mapbox将地图平移到标记和弹出窗口

时间:2014-07-26 21:54:07

标签: javascript mapbox geo

是否可以在内将地图平移到标记onClick关于弹出窗口height

目前,弹出窗口消失在地图的掩码后面。我正在寻找一种解决方案,以适应地图,标记和弹出窗口(如添加一些顶部填充)。

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

mapbox small map with cut popup

2 个答案:

答案 0 :(得分:2)

我找到了原生解决方案。

您需要将参数keepInView添加到bindPopup()命令。

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

Documentation

答案 1 :(得分: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不同。