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

あなたは私が推測するあなたの配列上のプレーンな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);
      }
   });

}

編集:このコードスニペットは最適化できることに注意してください、それはあなたのニーズに対処するための簡単な方法です(しゃれは意図されていません);)

于 2012-12-31T14:18:05.903 に答える