【问题标题】:Leaflet: How to zoom keeping a place fixed?传单:如何缩放以保持固定位置?
【发布时间】:2020-10-10 13:30:43
【问题描述】:

鉴于下面的地图,我想放大/从外部视图移动到内部视图,保持左上角完全相同。

传单似乎只允许移动到中心,而不是左上角和缩放级别。 我知道当前的缩放级别、边界和中心以及新的缩放级别和所需的左上角。 如何计算粉红色 X? 或者,如果有其他方法可以更改为新视图,我该怎么做?

【问题讨论】:

    标签: leaflet


    【解决方案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 );
    

    【讨论】:

    • 非常感谢 - 在阅读文档时,我没有考虑到静止点可能是西北角!
    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多