vue:如何通过两个点的经纬度进行距离的计算(很简单)

首先假设从api获取到了自己的纬经度和别人的纬经度

首先有一个概念需要说一下

地球半径

由于地球不是一个完美的球体,所以并不能用一个特别准确的值来表示地球的实际半径,不过由于地球的形状很接近球体,用[6357km] 到 [6378km]的范围值可以涵盖需要的所有半径。并且通常情况下,地球半径有几个常用值:

极半径,从地球中心至南极或北极的距离, 相当于6356.7523km; 赤道半径,从地球中心到赤道的距离,大约6378.137km; 平均半径,6371.393km,表示地球中心到地球表面所有各点距离的平均值; RE,地球半径,有时被使用作为距离单位, 特别是在天文学和地质学中常用,大概距离是6370.856km;

所以我们通过地球半径进行计算的时候,通常情况下,我们可以使用上面的每一个值都可以进行计算,不过或多或少都会有误差的,但这样的误差是也是允许存在的。最后通过let f = e.toFixed(2)保留距离的两位小数

通过生命周期函数mouted获取当前两个位置的距离

运行结果

这样就可以完成通过经纬度进行距离的计算了是不是很简单实用,直接复制粘贴方法调用就可以使用了。

方法:

calculateDistance(lat1, lon1, lat2, lon2) { //计算两点之间的距离
				console.log('lat1, lon1, lat2, lon2', lat1, lon1, lat2, lon2)
				let R = 6371; //地球半径
				let dLat = this.deg2rad(lat2 - lat1)
				let dLon = this.deg2rad(lon2 - lon1)
				let a =
					Math.sin(dLat / 2) * Math.sin(dLat / 2) +
					Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) *
					Math.sin(dLon / 2) * Math.sin(dLon / 2);
				let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
				let d = R * c; // 距离,单位:千米  
				let e = parseFloat(d)
				let f = e.toFixed(2)
				return f;
			},
 deg2rad(deg) {
			 return deg * (Math.PI / 180)
			},

相关推荐

  1. C# 计算坐标直接距离

    2024-04-21 17:38:05       14 阅读
  2. 实验5-4 使用函数计算距离

    2024-04-21 17:38:05       30 阅读
  3. mysql 根据经纬度计算距离

    2024-04-21 17:38:05       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-21 17:38:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-21 17:38:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-21 17:38:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-21 17:38:05       18 阅读

热门阅读

  1. Stable Diffusion 本地部署教程

    2024-04-21 17:38:05       15 阅读
  2. ubuntu常用方法

    2024-04-21 17:38:05       13 阅读
  3. asp.net core 8.0 使用 Autofac ioc 容器 具体实例

    2024-04-21 17:38:05       11 阅读
  4. Pandas连接MySQL数据库

    2024-04-21 17:38:05       12 阅读
  5. python获取键盘上哪个键按下

    2024-04-21 17:38:05       12 阅读
  6. 【设计模式】组合模式

    2024-04-21 17:38:05       12 阅读
  7. .NetCore——自定义筛选器

    2024-04-21 17:38:05       13 阅读