谷歌地图标记.getPosition只使用最后一个单词

Google Maps marker.getPosition only uses last co-ords

本文关键字:最后一个 单词 getPosition 地图 图标 谷歌      更新时间:2023-09-26

我从XML列表中导入地图数据,并将其放入markrArray中,然后调用createMarkers();标记会显示在地图上,但单击总是转到列表上的最后一个标记。

感谢所有的帮助。

function createMarkers() {
for (i=0; i<markerArray.length; i++){
 var marker = new google.maps.Marker({position:markerArray[i].latlng, map:map, title:markerArray[i].label, icon:images[markerArray[i].type]});
 google.maps.event.addListener(marker, 'click', function() {
        map.setZoom(9);
  map.setCenter(marker.getPosition());
    }); 
}

marker在每次循环迭代中都被重新定义。绑定到'click'的函数应该封装在具有marker的本地副本的闭包中。我曾经做过类似的事情,并使用了这个:

 google.maps.event.addListener(marker, 'click', 
   (function(marker_inner) {
      return function() {
        map.setZoom(9);
        map.setCenter(marker_inner.getPosition());
      }
   })(marker)
 );