1

markerclusterer 용 Google의 샘플 코드를 사용했습니다. markerclusterer v3에 대한 정보창에서 마커의 좌표를 표시하는 코드를 추가했지만 마지막 마커 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

가능한 중복 [Google지도 JS API를 V3 - 간단한 다중 마커 예] (http://stackoverflow.com/questions/3059044/google-maps-js-api -v3-simple-multiple-marker-example) – geocodezip

답변

2

여기 제공된 힌트 @geocodezip을 사용하여 답변을 찾았습니다. 다음과 같이 이벤트의 addListener을 변경해야합니다

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