【问题标题】:Programmatically opening a popup in a Mapbox map以编程方式在 Mapbox 地图中打开一个弹出窗口
【发布时间】:2013-08-19 21:04:42
【问题描述】:

我在http://bei.dev.bclcmaps.com/ 有一个地图框地图,它会在单击标记时打开弹出窗口。

我的问题是我需要一种方法来根据 URL 中的值设置默认弹出窗口以在页面加载时打开。这可以是纬度和经度或其他值,只要最简单即可。

我已经研究了一段时间,看来我要么需要:

  1. 通过 Mapbox JS API 以编程方式打开一个弹出窗口,我无法弄清楚,因为我的弹出窗口似乎是在单击标记时自动生成的,或者
  2. 以编程方式单击标记以打开其弹出窗口。我无法弄清楚这一点,因为 1)我不知道如何通过 lat/lon 找到标记,以及 2)我不知道如何使用 JS 点击标记。

我试过这个:

map.gridLayer.fire('click', {latLng: L.latLng(28.04419, -81.947864)});

关闭所有现有打开的弹出窗口,但似乎没有打开自己的。我还尝试在地图和传单对象中进行挖掘,以查看位置/标记数据是否存储在其中,除了图块之外我找不到任何东西。

我能找到的大多数示例似乎都在使用我没有使用的 GeoJSON,这让事情变得很困难。

有什么建议吗?

【问题讨论】:

  • 你能分享一些示例代码吗?我以前从未使用过 Leaflet,但它不会比调试/扩展 OpenLayers shudder 更糟糕。也许这对 Mapbox/Leaflet 专家来说很容易,否则我很乐意在更多背景下尝试一下。

标签: javascript leaflet mapbox


【解决方案1】:
map.fireEvent('click', {latlng: L.latLng(28.04419, -81.947864)});

你很接近 - 'click' 事件需要一个名为 'latlng'(小写)的 latLng 对象

【讨论】:

    【解决方案2】:

    对于 mapbox gl,您当前可以使用 map.fire('click', [-118.3214,34.0318])

    但将来可能会被弃用https://github.com/mapbox/mapbox-gl-js/blob/master/CHANGELOG.md#0450

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2015-04-10
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      相关资源
      最近更新 更多