【问题标题】:Is it possible to simultaneously use both the center and bounds attributes in Leaflet.js?是否可以同时使用 Leaflet.js 中的 center 和 bounds 属性?
【发布时间】:2016-03-27 17:37:52
【问题描述】:

我有一个使用 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 中是否可能或是否存在限制,这意味着设置地图范围的两种方法相互冲突?

【问题讨论】:

  • 你描述的getBounds行为很奇怪。您是否有机会共享更多代码,可能会在线重现您的问题? (例如在 Plunker 上)

标签: javascript angularjs leaflet angular-leaflet-directive


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多