在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
目的: 根据目的地的坐标计算自己手机的位置离目的地的距离的
核心思路: 后续操作必须等所有异步请求都返回了才能继续 使用
const qqmap = require("../../utils/qqmap-wx-jssdk.js")
var qqmapsdk;
onLoad: function () {
// 实例化API核心类
qqmapsdk = new qqmap({
key: '' //腾讯位置服务的key
});
this.data_list()
},
// 加载数据列表
data_list: function () {
const that =
this
const syncArr = []
const url = util.apiUrl +
'Index/index_show?program_id=' + app.program_id
util.request(url, 'post',
'', '正在加载数据',
function (res) {
for (let i =
0; i < res.data.k4.length; i++) {
syncArr.push(that.map(res.data.k4[i].sh_jd))
}
Promise.all(syncArr).then(results => {
for (let j =
0; j < results.length; j++) {
res.data.k4[j].sh_jd = results[j]
}
that.setData({
arr: res.data,
lunbo: res.data.k1,
images: res.data.k2,
nearby_merchant: res.data.k4
})
})
})
},
// 公共方法 根据腾讯地图接口获取计算距离http://lbs.qq.com/qqmap_wx_jssdk/method-calculatedistance.html
map(data) {
return new Promise((resolve) => {
const latitude = data.split(',')
qqmapsdk.calculateDistance({
to: [{
latitude: latitude[0],
longitude: latitude[1]
}],
success(res) {
const distance = Math.floor(res.result.elements[0].distance /
1000 * 100) /
100
resolve(distance)
},
fail() {
resolve('')
}
})
})
},
|
请发表评论