добавление события клика к маркерам на картах google

Я интегрировал Карты Google на свой веб-сайт и установил на нем маркеры.

Когда я нажимаю на маркеры, я хочу получить ту же широту и долготу того конкретного, что я установил.

Для теста я установил два маркера.

Когда я нажимаю на маркеры каждый раз, когда в консоли отображаются широта и долгота последнего установленного маркера.

как мне это решить?

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());
          });
        }

person Community    schedule 12.12.2012    source источник


Ответы (1)


Как насчет закрытия?

 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, но я предполагаю, что это текущий маркер в цикле, так как он должен быть таким?

person adeneo    schedule 12.12.2012
comment
Эй, это здорово.. Ты рок-звезда @adeneo. Вы решили мою проблему - person ; 12.12.2012