地图完成渲染后是否会触发事件?

时间:2016-12-21 15:52:45

标签: javascript mapbox-gl

我正在寻找在zoomend和/或moveend上触发的事件。
基本上我有一个弹出窗口需要在这些事件之后发生,而弹出窗口取决于在queryRenderedFeatures上,只有在地图视图中才能查询。

如果没有setTimeout,我目前正在使用zoomend功能,但这并不理想。
是的,我可以在这两种功能之后附加功能,但这会变得混乱。
我发现有一个map.on('data')事件,但有一个map.on('data.load')或类似内容,例如map.on('style.load')

我想要的是在不再发生任何map.on('data')事件后触发的内容。也许这可以使用setInterval或其他东西在Javascript中完成。

由于

1 个答案:

答案 0 :(得分:0)

您可以将查询功能绑定到map.on('move', function() {}),这会在地图被缩放或拖动时连续闪现。

在我的应用程序中,我使用map.on('move', function() {})来获取地图的中心纬度/经度。所以我的代码大致如下:

setCenter () {
  const center = map.getCenter()
  // render the center coords
}

// later in my code
map.on('move', this.setCenter)

// and when I'm done
map.off('move', this.setCenter)