Markerclusterer和infowindow v3无法正常工作

Markerclusterer和infowindow v3无法正常工作

问题描述:

我已经使用来自google的示例代码作为markerclusterer。我添加了一个代码来在markerclusterer v3的infowindow中显示标记的坐标,但问题是它只将最后一个标记latlang加载到窗口中:任何人都可以帮助解决此问题。Markerclusterer和infowindow v3无法正常工作

function initialize() { 
    var center = new google.maps.LatLng(37.4419, -122.1419); 
    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 3, 
     center: center, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    google.maps.event.addListener(map, 'click', function() { 
    infowindow.close(); 
    }); 

    var markers = []; 
    for (var i = 0; i < 100; i++) { 
     var dataPhoto = data.photos[i]; 
     var latLng = new google.maps.LatLng(dataPhoto.latitude, 
      dataPhoto.longitude); 
     var info = dataPhoto.photo_id; 
     var marker = new google.maps.Marker({ 
     position: latLng 


     }); 

    google.maps.event.addListener(marker, 'click', function() { 

    infowindow.setPosition(latLng); 
    infowindow.setContent(latLng.toString()); 

    infowindow.open(map,marker); 


    }); 
     markers.push(marker); 

    } 



    var markerCluster = new MarkerClusterer(map, markers); 
    } 


    google.maps.event.addDomListener(window, 'load', initialize); 

    var infowindow = new google.maps.InfoWindow(
    { 
    size: new google.maps.Size(150,50) 
    }); 

</script>` 
+0

可能重复[谷歌地图JS API V3 - 简单多个标记示例](http://stackoverflow.com/questions/3059044/google-maps-js-api -V3-简单多标记示例) – geocodezip 2013-03-24 14:59:16

在这里,我发现使用所提供的提示@geocodezip答案。本次活动的addListener应作如下修改:

google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     infowindow.setContent(marker.position.toString()); 
     infowindow.open(map, marker); 
    } 
    })(marker, i));