0

我正在从 XML 列表中导入地图数据并将其放入 markerArray,然后调用 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());
    }); 
}
4

1 回答 1

3

marker每次循环迭代都会重新定义。绑定到的函数'click'应该用marker. 我不得不做一次类似的事情并使用它:

 google.maps.event.addListener(marker, 'click', 
   (function(marker_inner) {
      return function() {
        map.setZoom(9);
        map.setCenter(marker_inner.getPosition());
      }
   })(marker)
 ); 
于 2013-08-01T12:08:09.267 回答