如果初始化后要查询的图层未加载,那么监听zoomend事件之后还是查不到数据,因为此时要查询的图层还是没有加载出来;
可以使用setInterval循环检测资源是否加载完毕,加载完毕后再查询;(type为symbol的图层感觉加载慢)
var timer = setInterval( function(){
setTimeout(function () {//如果下面长时间不触发"取消循环监听",5秒后自动取消循环监听 clearInterval(timer);//取消循环监听 },5000); if(map.isSourceLoaded("图层资源ID")){//判断资源是否加载完毕 clearInterval(timer);//取消循环监听 var features = map.querySourceFeatures("图层资源ID", {//开始查询 sourceLayer: "图层资源ID, filter: ['==', '字段名"字段名", ""] }); } },50);