在传单中,fitBounds是否有回调?

时间:2016-01-28 00:43:14

标签: javascript leaflet mapbox

我有两种类型的搜索在地图上放置标记。一个搜索基于来自输入表单的搜索查询而另一个搜索在moveend事件上触发(即“重做地图移动搜索”)。结果数据不一样;前者使用半径,后者限制在界限内。

问题是,基于查询的搜索,我想将地图适合返回的标记。因此,我使用fitBounds()进行内部委托,并将平移动画设置为标记周围的最佳边界。

在动画结束时,它会触发moveend事件触发我的其他类型的搜索并重置我的结果,这是我不想要的行为。

为了解决此问题,我可以使用setTimeoutfitBounds()上的平移选项的已知持续时间。有了这个,我可以关闭moveend上的事件监听器,然后fitBounds需要.25秒,然后setTimeout .25秒(实际上,稍微长一点)回调添加moveend侦听器。

这可行,但如果fitBounds或panning本身有事件或回调,那将更实用。你能想到更好的解决方案吗?

2 个答案:

答案 0 :(得分:0)

如果你想要的是检测"拖动"地图上的活动,我认为最好使用dragend代替moveend

答案 1 :(得分:0)

您可以使用moveend + zoomend事件来捕获地图拟合的结束。
因为其中至少有一个在fitBounds执行结束时被调用