是否可以同时使用Leaflet.js中的中心和边界属性

Is it possible to simultaneously use both the center and bounds attributes in Leaflet.js?

本文关键字:属性 边界 js Leaflet 是否      更新时间:2023-09-26

我有一个使用Angular.js和Angular follower指令编写的web应用程序,它可以在地图上显示选定的道路。我已经包含了一些书签,以便轻松导航到某些区域,因此基于centerzoom属性的地图范围导航也是如此。

我现在还包括确定道路在当前地图范围中是否可见的功能,使用:
map.getBounds().contains([roadLatA, roadLngA]) || map.getBounds().contains([roadLatB, roadLngB]),其中A和B表示道路的终点。

这在页面加载时非常有效,但在任何类型的交互(例如拖动、缩放事件)之后,当再次调用getBounds()时,它会为边界框的每个角返回相同的LatLng,这些值被设置为默认的center坐标。经过大量的重构,我无法找到一种方法来成功地合并centergetBounds()

在angular follower指令或leaflet.js中是否有可能或存在限制,这意味着设置地图范围的两种方法相互冲突?

我现在已经解决了这个问题,问题是在没有传入map元素的id的情况下调用leafletData.getMap()

这种行为让我感到困惑,因为最初的getMap()调用(没有id)返回了正确的映射对象,但在随后的调用(用户交互后)中,$promise没有得到解决,因此我没有得到未定义或任何其他错误。我猜getBounds()函数当时是在错误的映射对象上调用的。