Leaflet.js 中是否可以同时使用 center 和 bounds 属性?
Is it possible to simultaneously use both the center and bounds attributes in Leaflet.js?
我有一个 Web 应用程序,使用 Angular.js 和 angular-leaflet-directive 编写,可在地图上显示道路选择。我已经包含了一些书签以便于导航到某些区域,因此地图范围导航基于使用 center
和 zoom
属性。
我现在还包括确定道路在当前地图范围内是否可见的功能,使用:
map.getBounds().contains([roadLatA, roadLngA]) || map.getBounds().contains([roadLatB, roadLngB])
,其中 A 和 B 指道路的终点。
这在页面加载时完美运行,但在任何类型的交互(例如拖动、缩放事件)之后当再次调用 getBounds()
时,它 returns 边界框的每个角都有相同的 LatLng ,这是设置为默认 center
坐标的值。经过大量重构后,我找不到成功合并 center
和 getBounds()
的方法。
angular-leaflet-directive 或 leaflet.js 是否可能或是否存在限制,这意味着设置地图范围的两种方法相互冲突?
我现在已经解决了这个问题,问题是在调用 leafletData.getMap()
时没有传入地图元素的 id
。
这种行为让我感到震惊,因为最初的 getMap()
调用(没有 id
)返回了正确的地图对象,但在后续调用中(在用户交互之后)$promise
没有得到解决,所以我没有得到 undefined 或任何其他错误。我猜 getBounds()
函数随后在错误的地图对象上被调用。
我有一个 Web 应用程序,使用 Angular.js 和 angular-leaflet-directive 编写,可在地图上显示道路选择。我已经包含了一些书签以便于导航到某些区域,因此地图范围导航基于使用 center
和 zoom
属性。
我现在还包括确定道路在当前地图范围内是否可见的功能,使用:
map.getBounds().contains([roadLatA, roadLngA]) || map.getBounds().contains([roadLatB, roadLngB])
,其中 A 和 B 指道路的终点。
这在页面加载时完美运行,但在任何类型的交互(例如拖动、缩放事件)之后当再次调用 getBounds()
时,它 returns 边界框的每个角都有相同的 LatLng ,这是设置为默认 center
坐标的值。经过大量重构后,我找不到成功合并 center
和 getBounds()
的方法。
angular-leaflet-directive 或 leaflet.js 是否可能或是否存在限制,这意味着设置地图范围的两种方法相互冲突?
我现在已经解决了这个问题,问题是在调用 leafletData.getMap()
时没有传入地图元素的 id
。
这种行为让我感到震惊,因为最初的 getMap()
调用(没有 id
)返回了正确的地图对象,但在后续调用中(在用户交互之后)$promise
没有得到解决,所以我没有得到 undefined 或任何其他错误。我猜 getBounds()
函数随后在错误的地图对象上被调用。