在列表中显示我的位置距离商家位置 的距离长度,请问具体怎么求距离然后怎么通过列表渲染显示出来?
我用下边的代码可以计算位置的距离,但是在列表中怎么去计算啊?
下边是计算距离的代码
onLoad: function (options) {
//获取当前位置
wx.getLocation({
type:'gcj02',
success:(res) => {
console.log("当前位置:",res)
const distance_new = this.getDistance(res.latitude,res.longitude,this.data.latitude2,this.data.longitude2);
console.log(distance_new);
})
}
})
},
// 计算距离函数
Rad(d) {
//根据经纬度判断距离
return d * Math.PI / 180.0;
},
getDistance(lat1, lng1, lat2, lng2) {
// lat1用户的纬度
// lng1用户的经度
// lat2商家的纬度
// lng2商家的经度
var radLat1 = this.Rad(lat1);
var radLat2 = this.Rad(lat2);
var a = radLat1 - radLat2;
var b = this.Rad(lng1) - this.Rad(lng2);
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * 6378.137;
s = Math.round(s * 10000) / 10000;
s = s.toFixed(1) + 'km' //保留两位小数
console.log('经纬度计算的距离:' + s)
return s
},
下边是列表渲染的代码
DB.collection('BMP_LieBiao')
.where({})
.orderBy('sevtime', 'desc')
.get()
.then(res => {
console.log('详情页获取成功', res)
this.setData({ //更新列表数组的记录(当前读取记录+刷新前记录),实现下拉刷新
xiangqingShuZu: res.data
}),
this.weizhi_shouquan()
}).catch(err => {
console.log('详情页获取失败')
})
可以看看这个
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/aggregate/Aggregate.geoNear.html
腾讯位置服务里,有个距离计算,正在学习。遇到的问题是,怎么把item.lat 和 itme.lng组合起来,赋值到input 中的value中去。