鉴于下面的地图,我想从外部视图放大/移动到内部视图,并保持左上角完全相同。
传单似乎只能移动到中心,而不是左上角和缩放级别。 我知道当前的缩放级别,范围和中心以及新的缩放级别和所需的左上角。 如何计算粉红色X? 另外,如果还有另一种更改到新视图的方法,我该怎么做?
答案 0 :(得分:1)
不需要为这种情况计算中心(实际上,这是XY problem);看来您错过了setZoomAround
method of L.Map
,它确实是您想做的第一件事:
setZoomAround(<LatLng> latlng, <Number> zoom, <Zoom options> options)
缩放地图,同时保持地图上指定的地理位置不变(例如,内部用于滚动缩放和双击缩放)。
setZoomAround(<Point> offset, <Number> zoom, <Zoom options> options)
缩放地图,同时保持地图上相对于左上角的指定像素不变。
要么获得地图范围的西北角,然后调用setZoomAround
,例如...
map.setZoomAround( map.getBounds().getNorthWest(), newZoomLevel );
...或将所需的固定像素坐标包装在L.Point
中,对于地图的左上角为[0, 0]
,例如...
map.setZoomAround( L.point([0, 0]), newZoomLevel );