1

可能重复:
Google Map V3:仅显示一些标记

我需要谷歌地图的帮助。我有以下代码使用地图上显示的 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 数组以及如何显示所有地址。

4

1 回答 1

0

我猜你正在寻找一个简单的 Javascriptfor循环在你的数组上,所以这应该是这样的(假设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);
      }
   });

}

编辑:请注意,此代码片段可以进行优化,这只是满足您需求的一种快速方法(没有双关语);)

于 2012-12-31T14:18:05.903 回答