我想创建一个带有一些引脚的地图(使用传单)。当用户点击其中一个时,地图应移动,直到图钉位于水平中心地图的底部。
我的地图是400像素高,所以我正在使用此代码:
map.panTo(new L.LatLng(lat, lng));
map.panBy(new L.Point(0, -200));
它的工作就像一个魅力 - 只有IE有一些问题:它开始向地图的中心移动(panTo
),但一旦它的状态向底部移动( panBy
)停止向中心移动。
我如何结合这两个动作?我不能等到panTo
将地图居中,因为如果地图位于地图的下半部分,这会导致地图上下跳跃。
答案 0 :(得分:6)
从传单文档中,您可以使用以下方法将纬度/经度点作为像素:
latLngToPoint( <LatLng> latlng, <Number> zoom )
修改它,然后用:
将其转换回lat / long pointToLatLng( <Point> point, <Number> zoom )
答案 1 :(得分:0)
您还可以使用以下两个函数,可以直接在地图对象上调用:
// get your coordinates from marker or map.getCenter() or something else
let pixelPosition = map.latLngToLayerPoint(coord);
// edit pixel coordinates in pixelPosition object
let latLng = map.layerPointToLatLng(point);
map.setView(latLng);