【发布时间】:2021-11-11 21:54:10
【问题描述】:
当通过 ID 加载 web 地图时,部分响应有一个范围,传单然后调用 fitBounds 最终缩放地图,覆盖设置的默认缩放。
有没有办法防止这种缩放?我可以覆盖它,但地图会放大然后再次缩小,这是不可取的。
【问题讨论】:
-
请提供可重现的示例。请阅读stackoverflow.com/help/minimal-reproducible-example
当通过 ID 加载 web 地图时,部分响应有一个范围,传单然后调用 fitBounds 最终缩放地图,覆盖设置的默认缩放。
有没有办法防止这种缩放?我可以覆盖它,但地图会放大然后再次缩小,这是不可取的。
【问题讨论】:
我假设您可以更改使用 fitBounds 的代码,并且您希望阻止该操作更改缩放,因此仅更改地图视图的(中心)坐标。
在这种情况下,当您获得响应时,您可以简单地计算边界中心和panTo 它,而不是让地图“适合”响应边界:
https://leafletjs.com/reference-1.7.1.html#map-panto
将地图平移到给定的中心。
const responseCenter = responseBounds.getCenter();
map.panTo(responseCenter);
【讨论】:
fitBounds 并且Leaflet 会进行缩放。我尝试使用 zoomstart 事件将缩放重置为默认值,然后再根据范围进行缩放,但它似乎不起作用,而是使用我在下次启动缩放时提供的缩放值。