计算两个经纬度坐标点之间的距离

怼烎@ 2022-10-05 06:49 509阅读 0赞
  1. /** * 计算两个经纬度坐标点之间的距离 * @param {Point} pointA 起点坐标点 * @param {Point} pointB 终点坐标点 * @return {Number} 计算后得出两点之间的距离 */
  2. function getDistance(pointA, pointB) {
  3. let getRad = (d) => (d * Math.PI / 180.0); //经纬度转换成三角函数中度分表形式
  4. let radLat1 = getRad(pointA.lat);
  5. let radLat2 = getRad(pointB.lat);
  6. let a = radLat1 - radLat2;
  7. let b = getRad(pointA.lng) - getRad(pointB.lng);
  8. 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)));
  9. s = s * 6378137; // 地球半径(米);
  10. return s;
  11. }
  12. //应用示例
  13. let aPoint = { lng: 116.399957, lat: 40.000328 }; //起点
  14. let bPoint = { lng: 116.511778, lat: 39.841846 }; //终点
  15. let d = getDistance(aPoint, bPoint);

发表评论

表情:
评论列表 (有 0 条评论,509人围观)

还没有评论,来说两句吧...

相关阅读

    相关 根据经纬度计算之间距离

        经纬度计算有各种计算方式,一般误差也各不相同。个人觉着结合地球半径的计算方法可能靠谱一些,但是具体的计算公式是怎么来的,就不清楚,不知道谁提出的。下面给出一个计算方法和

    相关 根据经纬度坐标计算距离

    现在如果有个业务需求,就是要做一个根据定位坐标实现计算距离并找到附近的店铺的推荐功能,已知数据库中会存储店铺的经纬度坐标。那么,这个需求已经很明确了,在要求不高的情况下,只要计