2014-07-26 3 views
1

에서 팝업을 height에 관한 마커 onClick에 매핑 할 수 있습니까?mapbox 마커 및 팝업으로지도 이동

현재지도의 마스크 뒤에서 팝업이 사라집니다. 맵, 마커 및 팝업 (상단 패딩 추가)에 모두 맞출 수있는 솔루션을 찾고 있습니다.

featureLayer.on('click', function(e) { 
    var latLng = e.layer.getLatLng(); 
    map.panTo(latLng); 
}); 

mapbox small map with cut popup

+0

모든 아이콘에 대해 확대/축소 레벨과 팝업이 고정되어 있습니까? 그렇다면, panTo 전에 약간의 고정 된 위도 단위를 추가 할 수있는 것처럼 보입니다. – geografa

+0

여기에 대한 예가 있습니까? 지도 상자는 일반적으로 오버레이에 맞게지도를 이동합니다. –

답변

2

나는 기본 솔루션을 발견했다.

bindPopup() 명령에 추가해야합니다. 다른 사람들이 너무 수도 있도록

layer.bindPopup('<p>Hello</p>', {keepInView: true}); 

Documentation

+0

문서에서 볼 때,지도를 펼친 후에도지도에서 멀리 스크롤 할 수 없다는 뜻이 아닙니까? – flup

+0

아무 것도없는 것보다 낫다. – mate64

0

방법 후반이 질문에 대답에,하지만 난 그것을 가로 질러왔다. 나는 비슷한 질문에 코드의이 비트와 유사한 문제 및 Dan Mandle answered을 가졌다 :

map.on('popupopen', function(e) { 
var px = map.project(e.popup._latlng); // find the pixel location on the map where the popup anchor is 
px.y -= e.popup._container.clientHeight/2 // find the height of the popup container, divide by 2, subtract from the Y axis of marker location 
map.panTo(map.unproject(px),{animate: true}); // pan to new center 

});

이 코드는 저에게 유용하며 keepInView와는 달리 팝업이 열려 있으면지도를 패닝 할 수 있습니다.