Google Map API:如何使用PHP中的数组显示地图标记?

时间:2016-05-20 01:49:14

标签: javascript php arrays google-maps google-maps-api-3

我正在尝试将PHP中的数组用作javascript中的var locations。这是我的阵列:

Array (
      [0] => Array (
          [0] => 001
          [1] => A
          [2] => 98
          [3] => -8.0092722
          [4] => 110.2965559
      )
      [1] => Array (
          [0] => 003
          [1] => C
          [2] => 90
          [3] => -7.9021438
          [4] => 110.3735387
      )
)

我正试图使用​​json_encode传递该数组,如下所示:

var markers = <?php json_encode($setarray); ?>

最后一个,这是我创建标记的代码:

var infowindow = new google.maps.InfoWindow(), marker, i;
var bounds = new google.maps.LatLngBounds();

for (i = 0; i < markers.length; i++) {  
   pos = new google.maps.LatLng(markers[i][3], markers[i][4]);
   bounds.extend(pos);
   marker = new google.maps.Marker({
       position: pos,
       map: map
   });
   google.maps.event.addListener(marker, 'click', (function(marker, i) {
       return function() {
           infowindow.setContent(markers[i][0]);
           infowindow.open(map, marker);
       }
  })(marker, i));
  map.fitBounds(bounds);
  }
 }
 google.maps.event.addDomListener(window, 'load', initialize);

我很确定我的问题是当我尝试将数组传递给javascript时,你能帮助我吗?实际上这是我第一次使用javascript,我对它并不熟悉。谢谢。

1 个答案:

答案 0 :(得分:0)

如果你在javascript中传递一个php变量,你必须回显变量var jsonMarkers = <?php echo json_encode($setarray); ?>

另外,要将其转换为所需的JSON对象,您必须执行此操作

var markers = JSON.parse(jsonMarkers);

然后你可以像这样使用

markers[i][j];