javascript - 将 PHP 数组传递给 Google map 标记 (Javascript)

标签 javascript php arrays google-maps

我将数据存储到 php 数组中,并尝试将其传递给 javascript 以使谷歌地图显示 php 数组中的所有点。下面是 php 代码(简化版)和 google map 的 javascript 代码。

-----PHP代码--------

foreach(json_decode($response)->data as $item){ 
$name= $item->user->name;
   $latitude = $item->latitude;
   $longitude = $item->longitude;
$Array[$count] = array('name'=>$name,'lat'=>$latitude, 'long'=>$longitude, 'rgb'=>$count);
$js_array = json_encode($Array);
$count++;}

-----javascript

<script type="text/javascript">   
 var locations = <?php echo $js_array;?>;    
var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(-33.92, 151.25),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var infowindow = new google.maps.InfoWindow();

var marker, i;

for (i = 0; i < locations.length; i++) {  
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    map: map
  });

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}

更新了 JavaScript

var locations = <?php echo json_encode($js_array);?>;

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(<?php echo $latitude;?>, <?php echo $longitude;?>),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var infowindow = new google.maps.InfoWindow();

var marker, i;

for (i = 0; i < locations.length; i++) {  
console.log(locations[i].lat);
    marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i].lat, locations[i].long),
    map: map
  });

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i].name);
      infowindow.open(map, marker);
    }
  })(marker, i));
}

最佳答案

在更新的 JavaScript 中,您需要删除 json_encode(已存在于 PHP 中)。你已经做了两次了。

关于javascript - 将 PHP 数组传递给 Google map 标记 (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26580448/

相关文章:

php - Facebook 登录困惑

ruby - Ruby 的 Array#to_a 方法有什么区别

javascript - 如何为同一 jquery 对话框的不同实例调用不同的操作?

javascript - 我应该使用工厂或服务在AngularJS中获取数据吗?

php - Mysql加入而不替换原始id的值

php - tidy_parse_string 更改之前使用 setlocale 设置的区域设置

c - C 中动态分配数组的数组元素数

java - ArrayList 内容检查整个数组

javascript - 如何使用 react-table 仅重新呈现更新的行?

javascript - 未捕获的类型错误未定义不是函数