2012-03-09 10 views
1

저는 잠시 동안 환상적인 OpenStreetMap 매핑 라이브러리 인 leaflet.js를 사용해 왔으며 방금 this clustering plugin을 구현하기 시작했습니다. 지도와 클릭 가능한 사이드 바에 다른 레이어를로드하는 현재 프로젝트에서 제대로 작동합니다.OpenPopup()을 Leaflet.js + 클러스터링과 함께 사용

유일한 문제는 사이드 바 항목을 클릭하고 해당 마커가 클러스터링 객체에있는 경우 오류가 발생한다는 것입니다.

$('.item').click(function() { 
    currentlayer = this.id; 
... 
     try { 
      geojson._layers[currentlayer].openPopup(); 
     } catch(e) { 
      map.setView(geojson._layers[currentlayer]._latlng, 16); 
      geojson._layers[currentlayer].openPopup(); 
     }     
... 
    return false; 
}); 

유일한 문제는 내가 openPopup를 실행하려고 같은 오류를 얻을 수 있다는 것입니다 : 나는 아래로 그래서 레이어가 표시입니다 (시도/캐치를 사용) 오류를 확인하고 확대하여이 문제를 가지고() 메소드를 사용하여 사이드 바를 다시 클릭해도 팝업이 정상적으로 표시됩니다.

http://www2.lichfielddc.gov.uk/myarea/map2.php

어떤 아이디어 : 현재 행동에 그것을 볼 수 있습니까?

답변

2

그래, 나는 그 플러그인에 동일한 문제가 있었다. 그래서 나는 내 자신을 개발했다. 그것은 팝업을 올바르게 배치해야한다. 또한 일부 이벤트에서 빌드 중이므로 클러스터를 클릭 할 때 코드를 실행하거나 확대/축소 수준이 변경되지 않도록 할 수 있습니다.

https://github.com/cavis/leafpile

또한, 나는 당신에게 유사한 프로젝트에서 일하고 있어요 - https://github.com/cavis/slidemapper. 그것은지도에 따라 슬라이드 쇼를 만드는 jquery 플러그인입니다. 나는 그것으로 직접 내 leafpile 플러그인을 통합하고 있습니다.

https://github.com/Leaflet/Leaflet.markercluster/issues/75

:
0

은 아마 당신은 zoomToShowLayer를 사용하여 클러스터 계층으로 확대했다