【已解】地址解析,设标注点。将结果存入数组,数组中有数据,但length为0;求教怎么样才可以存入? 您所在的位置:网站首页 如何在地图上标注自己的地址 【已解】地址解析,设标注点。将结果存入数组,数组中有数据,但length为0;求教怎么样才可以存入?

【已解】地址解析,设标注点。将结果存入数组,数组中有数据,但length为0;求教怎么样才可以存入?

2023-06-13 21:00| 来源: 网络整理| 查看: 265

想将一个数组中的地址通过qqmapsdk.geocoder进行解析,并作为markers在地图上标注出来。思路【将解析的结果放入数组中,后将此数组作markers】。但发现在地图上没有标注点显示。发现原因是虽然局部变量temp数组成功添加所有结果,但最终setData后,数组中有内容,却没有长度;网上找原因说是因为异步,自己尝试了很久都没办法成功,求大佬指教!菜且第一次提问,如果有描述不清楚希望多多包涵!并且可以说说我这个思路是否可行吗?谢谢

getLocat_mark: function (flag) { // 解析附近list(高&中)中地址 var _this = this; var index = 0 var temp = [] var address var Len var iconPath var timer = setInterval(function () { if (flag === 0) { address = _this.data.shListR[index].address; Len = _this.data.shListR.length; iconPath = './../../images/mark_red.png'; } else if (flag === 1) { address = _this.data.smListR[index].address; Len = _this.data.smListR.length; iconPath = './../../images/mark_yel.png'; } //调用地址解析接口 qqmapsdk.geocoder({ //获取表单传入地址 address: address, //地址参数,例:固定地址,address: '北京市海淀区彩和坊路海淀西大街74号' success: function (res) { //成功后的回调 console.log('res', res); var res = res.result; var latitude = res.location.lat; var longitude = res.location.lng; temp.push({ id: index, title: res.title, latitude: latitude, longitude: longitude, locate: address, iconPath: iconPath, width: 20, height: 20, }) console.log('请求后push',temp) //解决:此处setData更新数据 }, fail: function (error) { console.error(error); }, complete: function (res) { console.log(res); } }); index++; if (index >= Len) { clearInterval(timer); } }, 360) if (flag === 0) { _this.setData({ hListM: temp, // markers : temp }) } else { _this.setData({ mListM: temp }) }

【解决办法】

在拿到数据后用setData更新

(太菜了。。谢谢帮忙的大佬,感谢感谢)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有