微信小程序 高德地图知道两点求道路_微信小程序——计算2点之间的距离
關于計算2點之間的距離都依賴了騰訊地圖,所以請先在
下面具體講計算2點之間距離的方法。
方法一:
getPosition: function() {var that = this;
wx.getLocation({
success:function(res) {
that.setData({
fromLng: res.longitude,
fromLat: res.latitude
})
}
})
},
2.通過騰訊地圖?逆解析?你的目的地地址,獲取經度,緯度:
wx.request({
url:'https://apis.map.qq.com/ws/geocoder/v1/',
data: {"key": "你的騰訊地圖 key","address": "目的地"},
method:'GET',
success:function(res) {if(res.data.result) {
const addressLocation=res.data.result.location;
const courseLat= addressLocation.lat;//獲取目的地的緯度
const courseLng = addressLocation.lng;//獲取目的地的經度
}
that.setData({
toLat: courseLat,
toLng:courseLng
})
}
})
3.定義?計算距離的?方法:
getDistance: function(lat1, lng1, lat2, lng2) {
lat1= lat1 || 0;
lng1= lng1 || 0;
lat2= lat2 || 0;
lng2= lng2 || 0;var rad1 = lat1 * Math.PI / 180.0;var rad2 = lat2 * Math.PI / 180.0;var a = rad1 -rad2;var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;var r = 6378137;var distance = r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)));returndistance;
}
4.調用該方法:
getDistance(fromLng,fromLat,toLat,toLng)
我需要同時計算多條數據的距離,我發現在遍歷返回目的地經緯度的時候,它返回來的結果并不是按照你列表的順序返回來的,而且有些地址還解析不出來。
不知道是我的寫法有問題,還是接口調用的問題。如果哪位大神看到網上有這種示例,麻煩提供一下鏈接給我,借鑒學習一下~后面我采取的是下面這種方法:
方法二:通過騰訊地圖的距離計算接口
1.跟方法一第1步一樣,獲取用戶的接口權限;
2.把?qqmap-wx-jssdk.min.js?加到你小程序;
3.在需要計算距離的js頁面引用 qmap-wx-jssdk.min.js?,并實例化該對象:
const QQMapWX = require('../../lib/js/qqmap-wx-jssdk.min.js');varqqmapsdk;
onLoad:function(options) {//實例化API核心類
qqmapsdk = newQQMapWX({
key:'VBXBZ-YVGRW-2Z4RK-O6H27-WEXUT-3ZB2M'});
},
4.先逆解析目的地,再調用
wx.request({
url:'https://apis.map.qq.com/ws/geocoder/v1/',
data: {"key": "你的key","address": "目的地名稱"},
method:'GET',
success:function(res) {if(res.data.result) {
const addressLocation=res.data.result.location;
const courseLat=addressLocation.lat;
const courseLng=addressLocation.lng;
let destinationDistance;
qqmapsdk.calculateDistance({
to: [{
latitude: courseLat,
longitude: courseLng
}],
success:function(res) {
destinationDistance= res.result.elements[0].distance;
let distanceKm= `${(destinationDistance/1000).toFixed(2)}Km`;//轉換成km
that.setData({
distance: distanceKm
})
},
fail:function(res) {
console.log(res);
}
});
}
}
})
注意騰訊地圖的請求限制:
總結
以上是生活随笔為你收集整理的微信小程序 高德地图知道两点求道路_微信小程序——计算2点之间的距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis转义反斜杠_MyBatis
- 下一篇: c语言小游戏 精简_一个简易的贪吃蛇小游