是否可以在Leaflet.js中同时使用center和bounds属性?

时间:2016-03-27 17:37:53

标签: javascript angularjs leaflet angular-leaflet-directive

我有一个使用Angular.js和angular-leaflet-directive编写的Web应用程序,它在地图上显示一系列道路。我已经添加了一些书签以便于导航到某些区域,因此使用centerzoom属性进行地图范围导航。

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

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

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

1 个答案:

答案 0 :(得分:0)

我现在已经解决了问题,问题在于调用leafletData.getMap()而没有传递map元素的id

这种行为让我失去了最初的getMap()调用(没有id)正在返回正确的地图对象,但是在后续调用中(用户交互之后)$promise不是正在解决,所以我没有得到未定义或任何其他错误。我想在{x}错误的地图对象上调用getBounds()函数。