使用MapBox的queryRenderedFeatures进行地图查询的时候,会遇到一个问题,就是只能查询当前屏幕范围内渲染的要素,没有渲染出来的要素就查询不到。MapBox的fitBounds是一个过程,地图会进行缩放,如果在开始的时候,fitBounds后面直接进行要素查询,就会产生查询不到的结果,因为目标要素还没有渲染。这时候就需要给fitBounds加一个回调,MapBox.js加回调的方法也比较特别,网上这方便资料比较少。
首先是,定义地图缩放结束事件监听
map.on('moveend',function (e) {
if(e.moveend&&e.moveend=="111"){
//查询操作
}
});
其中的moveend=111是自定义的属性,会在fitBounds中使用。
map.fitBounds(bounds, options,{moveend:"111"});
MapBox的fitBounds就是也会触发map的各类缩放事件,通过在fitBounds里传入参数就可以实现缩放结束的回调