写点什么

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

作者:源字节1号
  • 2022-10-26
    浙江
  • 本文字数:597 字

    阅读完需:约 2 分钟

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

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

思路

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

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

思路如下:

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



// 计算距离let lat1 = 39.909let lng1 = 116.39742let lat2 = this.latitudelet lng2 = this.longitudeuni.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 = 6378137;				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

用户头像

源字节1号

关注

一个着迷于技术又喜欢不断折腾的技术活跃者 2022-03-09 加入

一个着迷于技术又喜欢不断折腾的技术活跃者。喜欢并热爱编程,执着于努力之后所带来的美好生活!

评论

发布
暂无评论
js通过经纬度来计算两地之间的距离_微信小程序_源字节1号_InfoQ写作社区