문제

방금 전단지와 마커를 구성하여 마커를 구성합니다.

문제 # 1 : 클러스터되지 않은 마커를 클릭하면 팝업이 나타나지 않습니다.

문제 # 2 : 클러스터를 여러 번 클릭하면 해당 클러스터 내의 모든 마커가 나타나고이 마커 중 하나가 클릭하면 팝업이 나타납니다! 그러나지도를 클릭하여 팝업을 닫은 후에는 이러한 클러스터 된 마커를 클릭하면 팝업이 열리지 않습니다!

3 개의 클러스터되지 않은 마커 만 있으면 팝업이 잘 작동합니다. 그러나 더 많은 마커가 추가되면 클러스터 양식을 한 번 클러스터 내에서 마커를 클릭하면 팝업이 열리지 않습니다!

MarkerClusterer 초기화

markers = new L.MarkerClusterGroup();
map.addLayer(markers);
.

markercluster markers에 추가 된 모든 마커

render 함수에서 루프 호출을 눌러 marker를 만들고 MarkerClusterer의 배열 markers에 추가하십시오. (Backbone.js 코드 무시)

ListingMarkerView = Backbone.View.extend({
    template: _.template( $('#tpl_ListingMarkerView').html() ),

    render: function() {

        // Create marker
        var content = this.template( this.model.toJSON() );
        var marker = new L.marker(
            [this.model.get('lat'), this.model.get('lng')],
            {content: content});
        marker.bindPopup(content);

        // Add to markerclusterer
        markers.addLayer(marker);
    }
});
.

마커 클러스터가없는

marker를 MarkerClusterer 배열 대신 map에 직접 추가하면 팝업이 잘 작동하므로 문제가 MarkerClusterer와 관련이있는 것이 있습니다.

팝업의 행동을 가져온 것이 잘못 되었습니까? 모든 도움이 감사 드리며 감사합니다!

도움이 되었습니까?

해결책

클러스터 마커 그룹에 대해 알고있는 작은 것들은 다음을 수행해야합니다.

var markerGroup = new L.MarkerClusterGroup();
markerGroup.on('click', function(ev) {
    // Current marker is ev.layer
    // Do stuff
});
.

클러스터 레이어에 이벤트 핸들러를 추가하려면 다음을 수행하십시오.

markerGroup.on('clusterclick', function(ev) {
    // Current cluster is ev.layer
    // Child markers for this cluster are a.layer.getAllChildMarkers()
    // Do stuff
});
.

아, github Readme 조심스럽게 ...

다른 팁

전단지 + 클러스터 러 스택 (JS 및 CSS)에 올바른 버전의 버전이 있는지 확인하십시오.클러스터 러 GitHub Repo의 예와 비교합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top