注:原文写法返回的距离单位是KM
vue写法
getDistance(latlng1, latlng2) {
let lat1 = latlng1.latitude;
let lng1 = latlng1.longitude;
let lat2 = latlng2.latitude;
let lng2 = latlng2.longitude;
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; // EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
return s * 1000;
}
网友评论