我有一个使用Angular.js和angular-leaflet-directive编写的Web应用程序,它在地图上显示一系列道路。我已经添加了一些书签以便于导航到某些区域,因此使用center
和zoom
属性进行地图范围导航。
我现在还包括确定道路在当前地图范围内是否可见的功能,使用:
map.getBounds().contains([roadLatA, roadLngA]) || map.getBounds().contains([roadLatB, roadLngB])
,其中A和B指的是道路的终点。
这在页面加载时非常有效,但在再次调用getBounds()
之后进行任何类型的交互(例如拖动,缩放事件)时,它会为边界框的每个角返回相同的LatLng,这些值是被设置为默认的center
坐标。经过大量重构后,我无法找到成功合并center
和getBounds()
的方法。
是否有可能或者在angular-leaflet-directive或leaflet.js中有限制,这意味着设置地图范围的两种方法相互冲突?
答案 0 :(得分:0)
我现在已经解决了问题,问题在于调用leafletData.getMap()
而没有传递map元素的id
。
这种行为让我失去了最初的getMap()
调用(没有id
)正在返回正确的地图对象,但是在后续调用中(用户交互之后)$promise
不是正在解决,所以我没有得到未定义或任何其他错误。我想在{x}错误的地图对象上调用getBounds()
函数。