谷歌地图按属性地址显示多个项目

时间:2012-12-31 13:55:51

标签: google-maps

  

可能重复:
  Google Map V3 : Only some markers are displayed

我需要谷歌地图的帮助..我有以下代码使用地图上显示的1个属性,但我有许多地址/属性在同一地图上显示它们并没有成功。

var address = "<?php echo $address?>";
       var map = new google.maps.Map(document.getElementById('map'), {
           mapTypeId: google.maps.MapTypeId.ROADMAP,
           zoom: 16
       });
       var geocoder = new google.maps.Geocoder();
       geocoder.geocode({
          'address': address
       }, 
       function(results, status) {
          if(status == google.maps.GeocoderStatus.OK) {
             new google.maps.Marker({
                position: results[0].geometry.location,
                map: map
             });
             map.setCenter(results[0].geometry.location);
          }
       });

从php获取地址但JS端脚本对我来说很难..请帮助并告诉我需要更改的内容,以便将地址作为JS数组以及如何显示所有地址。

1 个答案:

答案 0 :(得分:0)

我想在你的数组上寻找一个简单的Javascript for循环,所以这应该是这样的(假设address是一个有效的Javascript数组):

// address = ... //define address array here

var map = new google.maps.Map(document.getElementById('map'), {
       mapTypeId: google.maps.MapTypeId.ROADMAP,
       zoom: 16
   });
var geocoder = new google.maps.Geocoder();

var nbAddresses = address.length;

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

  geocoder.geocode({
          'address': address[i]
   }, 
   function(results, status) {
      if(status == google.maps.GeocoderStatus.OK) {
         new google.maps.Marker({
            position: results[0].geometry.location,
            map: map
         });
         map.setCenter(results[0].geometry.location);
      }
   });

}

编辑:请注意,此代码段可以进行优化,这只是一种快速解决问题的方法(无需双关语);)