map-utils计算坐标距离

来源:互联网 发布:数据库编程软件有哪些 编辑:程序博客网 时间:2024/06/05 06:30
const PI = 3.14159265358979324; // 圆周率const R = 6367000; //6378.137; // 地球半径// 计算弧度function rad(d) {    return d * PI / 180.0;}/** * 计算坐标距离,单位米 * @param {Object} coordsA 坐标A * @param {Object} coordsB 坐标B * @return {Number} s 两点间距离 */export function getDistance(coordsA, coordsB) {    var radLngA = rad(coordsA.lng);    var radLatA = rad(coordsA.lat);    var radLngB = rad(coordsB.lng);    var radLatB = rad(coordsB.lat);    var a = radLatA - radLatB; // 纬度弧度差    var b = radLngA - radLngB; // 精度弧度差    var s = 2 * Math.asin(            Math.sqrt(                Math.pow(Math.sin(a / 2), 2) +                Math.cos(radLatA) * Math.cos(radLatB) * Math.pow(Math.sin(b / 2), 2)            )        );    s = s * R;    s = Math.round(s * 10000) / 10000;    return s;}

0 0