如何根据PHP变量设置多个标记?

时间:2014-12-25 20:49:08

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

使用Google Maps JavaScript API v3,我有一张地图,可以根据LatLng定位标记。

 var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random()),

enter image description here

我想要做的是根据PHP变量E.G

在城市上放置一个标记
$town_1 = "London";
$town_2 = "Reading";

我想要的结果将分别是他们镇上的两个标记。

理论上看起来像这样:

for (var i = 0; i < 3; i++) {

                var marker = new google.maps.Marker({
                    position: <?php echo $town_1; ?>
                    map: map,
                    title: 'Town ' + i
                });

但是我的地图消失了,这根本不是很理想

如何在每个城市(非Lat / Long)的嵌入式Google地图上放置多个标记?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用从Google Map Api v3文档略微修改的脚本对城市进行地理编码:

function codeAddress() {
   var address = <?php echo $town_1; ?>
   geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
  map.setCenter(results[0].geometry.location);
  var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
  });
} else {
  alert('Geocode was not successful for the following reason: ' + status);
}

}); }

此处提供了文档:https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

地理编码可能是一个缓慢的操作:通常,如果可能的话,我在数据库中保存地址的坐标,在那里将设置标记。