/** * 计算两个经纬度坐标点之间的距离 * @param {Point} pointA 起点坐标点 * @param {Point} pointB 终点坐标点 * @return {Number} 计算后得出两点之间的距离 */
function getDistance(pointA, pointB) {
let getRad = (d) => (d * Math.PI / 180.0); //经纬度转换成三角函数中度分表形式
let radLat1 = getRad(pointA.lat);
let radLat2 = getRad(pointB.lat);
let a = radLat1 - radLat2;
let b = getRad(pointA.lng) - getRad(pointB.lng);
let 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 * 6378137; // 地球半径(米);
return s;
}
//应用示例
let aPoint = { lng: 116.399957, lat: 40.000328 }; //起点
let bPoint = { lng: 116.511778, lat: 39.841846 }; //终点
let d = getDistance(aPoint, bPoint);
还没有评论,来说两句吧...