地图regionchange问题
地图regionchange,在map初始化的时候,会多次调用regionchange事件,即会多次输出 “位置更新”。 若此处有调数据接口函数的话,数据接口函数就会被调取多次。 太耗性能。 期望状态:在map初始化的时候,此事件不触发,只有在用户拖动改变地图视野时触发。 或者您有更好的解决方式。 安卓机 经测试,请求数量正确,测试机 vivo 与 华为 部分代码: regionchange(e) { if(e.type=='end'){ console.log("位置更新",e.type) this.getCenterLo(); //获取地图中心点,见下方 } } 优化部分代码2(此处为获得中心点的代码。在 e.type === "end" 时触发): ************************ getCenterLo(){ let _this=this; let last_long = _this.long; let last_lati = _this.lati; let range_long,range_lati; this.mapCtx.getCenterLocation({ success: function(res) { _this.long = parseFloat(res.longitude); _this.lati = parseFloat(res.latitude); range_long = _this.long - last_long; range_lati = _this.lati - last_lati; console.log("当前位置更新-1-旧的中心点",last_long,last_lati,"范围",range_long,range_lati); _this.$apply(); }, complete:function (response) { console.log("位置-3",range_long); if(range_long>0.02||range_long<-0.02||range_lati>0.02||range_lati<-0.02){ //一定范围内才加载数据 console.log("加载数据-4"); _this.getfindNearByStore(_this.long, _this.lati); //调取数据接口 } } }) } ********************* 说明:安卓 位置-3 处,输出值为0,所以不会加载数据。 但是 ios输出值为 -7.394241777 _this.long 初始值 ios上为 当前位置值,安卓上为 默认地址值。(理想状态下,应为默认地址值)