js通过经纬度来计算两地之间的距离

js通过经纬度来计算两地之间的距离最近工作需要 网上搜索了下根据经纬度计算两地距离的方法 发现要么是几何法 画图 作一堆辅助线 然后证明推理 要么二话不说直接套公式 这篇文章介绍一种容易理解的方式来求这个距离 思路地球是个不规则的椭球体 为了简便我们当作球体来计算

大家好,欢迎来到IT知识分享网。

最近工作需要,网上搜索了下根据经纬度计算两地距离的方法,发现要么是几何法,画图、作一堆辅助线,然后证明推理,要么二话不说直接套公式。这篇文章介绍一种容易理解的方式来求这个距离。

思路

地球是个不规则的椭球体、为了简便我们当作球体来计算。

球体上两地的最短距离就是经过两点的大圆的劣弧长度。

思路如下:

弧长 ← 弦长(两点距离) ← 两点坐标(直角坐标) ← 经纬度

js通过经纬度来计算两地之间的距离

// 计算距离 let lat1 = 39.909 let lng1 = 116.39742 let lat2 = this.latitude let lng2 = this.longitude uni.getLocation({ type: 'gcj02', success: res=> { lat1 = res.latitude lng1 = res.longitude this.distance = this.getDistance(lat1,lng1 ,lat2 , lng2); } }) getDistance(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 = ; 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))); return (distance/1000).toFixed(2); }

如若转载,请注明出处:开源字节
https://sourcebyte.cn/article/252.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/179132.html

(0)
上一篇 2025-05-23 08:00
下一篇 2025-05-23 08:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信