0

ウェブサイトに Google マップを統合し、マーカーを設定しました

マーカーをクリックすると、設定した特定の緯度と経度を取得したいと考えています。

テストのために、2 つのマーカーを設定しました。

毎回マーカーをクリックすると、最後に設定されたマーカーの緯度と経度がコンソールに表示されます。

どうすればこれを解決できますか?

for(var gMarker = 0; gMarker < records.length ; gMarker++){
          var gMarkerThis = records[gMarker].LatLng;
          var marker = new google.maps.Marker({
            position: new google.maps.LatLng(gMarkerThis[0], gMarkerThis[1]),
            map:      map,
            title:    'Test'
          });  

          google.maps.event.addListener(gMarkerArray, 'click', function() {
             console.log(marker.position , marker.position.lat() , marker.position.lng());
          });
        }
4

1 に答える 1

2

閉鎖はどうですか?

 for(var gMarker = 0; gMarker < records.length ; gMarker++){
      var gMarkerThis = records[gMarker].LatLng;
      var marker = new google.maps.Marker({
          position: new google.maps.LatLng(gMarkerThis[0], gMarkerThis[1]),
          map:      map,
          title:    'Test'
      });  

      (function(Marker) {
          google.maps.event.addListener(gMarkerArray, 'click', function() {
              console.log(Marker.position , Marker.position.lat() , Marker.position.lng());
          });
       }(marker));
 }

gMarkerArrayがあるかわかりませんが、それがループ内の現在のマーカーであると仮定します。

于 2012-12-12T07:21:12.470 に答える