1、獲取當前位置經緯度
onLoad: function (options) {
var that = this;
campaign_id = campaign_id
wx.getLocation({
type: 'wgs84',
success: function (res) {
console.log(res)
lat1 = res.latitude,
lng1 = res.longitude
}
})
}
2、通過點擊事件打開地圖選擇位置
site: function () {
var that = this;
wx.chooseLocation({
success: function (res) {
// name 位置名稱
// address 詳細地址
// latitude 緯度,浮點數,范圍為 - 90~90,負數表示南緯
// longitude 經度,浮點數,范圍為 - 180~180,負數表示西經
console.log(res);
var site_val = res.address;
lat2 = res.latitude;
lng2 = res.longitude;
if (Number(juli(lat1, lng1, lat2, lng2))>0.5){
wx.showModal({
title: '溫馨提示',
content: '位置不能離你大於500米',
success: function (res) {
if (res.confirm) {
that.site()
} else if (res.cancel) {
console.log('用戶點擊取消')
}
}
});
}else{
that.setData({
site_val: site_val
});
}
console.log('兩點之間距離多少km:',juli(lat1, lng1, lat2, lng2));
}
})
},
3、計算兩地之間的距離
// 計算兩地之間的距離
function juli(lat1, lng1, lat2, lng2) {
console.log(lat1, lng1, lat2, lng2)
var radLat1 = lat1 * Math.PI / 180.0;
var radLat2 = lat2 * Math.PI / 180.0;
var a = radLat1 - radLat2;
var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
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;
return s
}