以编程方式在Mapbox地图中打开弹出窗口

时间:2013-08-19 21:04:43

标签: javascript leaflet mapbox

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

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

我已经打了一段时间,似乎我需要:

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

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

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

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

    有什么建议吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

但将来可能会不推荐使用https://github.com/mapbox/mapbox-gl-js/blob/master/CHANGELOG.md#0450