调整单张地图大小时,如何保持地图居中?

3 leaflet

我正在使用Leaftlet在网页上创建地图。

在地图的左侧是一个滑出的面板。

当面板滑出时,将调整地图大小以填充页面上的剩余空间。

当面板向左滑动时,地图会调整大小,中心点也会向左移动。

理想情况下,地图的中心点应保持在相对中心。

狡猾的ASCII表示形式:(“。”表示地图的初始中心点。)

Panel closed:          [][    .    ]

Panel open (current):  [  ][     . ]

Panel open (desired):  [  ][   .   ]
Run Code Online (Sandbox Code Playgroud)

这是一个再现问题的jsFiddle

lee*_*man 6

我通过$(window).resize()更改传单地图大小后调用来解决此问题

更新:喜欢你的外貌需要调用map.invalidateSize(),而不是

更新了小提琴http://jsfiddle.net/YwbLg/11/(动画效果不佳)

  • @AlexandruC 在较新的 Leaflet 版本中,您可以使用 `map.invalidateSize({pan: false})` (3认同)