나는 마커를 Spiderfy하고 그들에 리스너를 추가하려고합니다. Spidefying이 잘 작동한다는 것은 중복 된 마커를 spiderfied한다는 의미지만이 마커에 리스너를 추가하는 방법을 생각할 수 없다는 것이 문제입니다. 다시 말해서 나는 다음을 시도했다.Google지도 Spiderfying 마커 및 리스너 추가
oms.addListener()
을 반복한다. 이렇게하면 마커를 클릭하면 모두infoWindow
이 같은 표식으로 열리게되어 즐겁지 않습니다.oms.addListener()
을 OMS Git repo의 예제와 같이 루프 외부에 둡니다. https://github.com/jawj/OverlappingMarkerSpiderfier/blob/gh-pages/demo.html. 이 방법으로 모든 마커는 루프의 마지막 마커 인infoWindow
과 같습니다.var iw = new google.maps.InfoWindow(); var oms = new OverlappingMarkerSpiderfier(carte, {keepSpiderfied:true}); oms.addListener('click', function(marker){ iw.setContent(content); iw.open(carte, marker); }); var markers =[]; var bounds = new google.maps.LatLngBounds(); if (response.length != 0) { for (var i = 0 ; i < response.length; i++) { var loc = new google.maps.LatLng(response[i].latlong[0], response[i].latlong[1]); bounds.extend(loc); var lemarqueur = new google.maps.Marker({ position: loc, title: response[i].title }); content = '<table><tr><td><img src="' +response[i].image+'"/></td><td><p style="font-size: 13px">' +response[i].title+'</p> <p style="font-size: 10px"><b>Artists:</b> ' +response[i].artist+'<br><b>Date:</b> '+response[i].startDate+'<br>' +response[i].address.name +' '+response[i].address.street + '<br>' +response[i].address.postalcode +', '+response[i].address.city +', ' +response[i].address.country +'<br><a target="_blank" href =' +response[i].url+'>More info</a></p></td></tr></table>'; oms.addMarker(lemarqueur); markers.push(lemarqueur); }; carte.fitBounds(bounds); var markerCluster = new MarkerClusterer(carte, markers); markerCluster.setMaxZoom(15); markerCluster.setGridSize(40); google.maps.event.addDomListener(window, 'load', initialiser);
그래서 나는 내가
addListener()
블록을 넣어해야하는 위치를 알고 싶습니다 :
이 내 코드? 잘 작동 google.maps.event.addListener()
를 사용하여 내가 루프에서 이전에 사용 것을
이
, :google.maps.event.addListener(lemarqueur, 'click', function() {
InfoWindow.open(carte, lemarqueur);
});
나는 질문이 명확 충분히 사전에
감사 바랍니다.
이것은 Spiderifier에는 문제가되지 않으며, 기능 폐쇄 (마커 기능 생성)로 쉽게 해결할 수있는 문제입니다. http://stackoverflow.com/questions/4897316/google-maps-api-v3-infowindow-all-infowindows-displaying-same-content - http://stackoverflow.com/questions/3711700/all-infowindows-have- 동일한 데이터 – geocodezip
@geocodezip - 글쎄, 내 코드는 다음과 같은 의미로 함수 클로저를 가지고있다 :'function createMarker(); for() {마커 = createMarker;}'. 하지만 여기에 단순화를 위해 붙여 넣었습니다. 다른 주제가 여기에 있습니다. – Hamed
@geocodezip - 기능 폐쇄가있는 Spiderfying 예제를 제공하고 일부 JSON 데이터를 반복 할 수 있다면 알려주십시오. 그것은 꽤 많이 감사 할 것입니다. – Hamed