2021-07-18 用经纬度算距离

粉丝: 3702 文章: 9

突然对于经纬度与距离感兴趣了(公选课讲到东风系列弹道导弹射程),就想了解一下如何通过经纬度来计算距离。百度了一下,觉得不满意就自己尝试做一下,都是些基本的数学知识,感兴趣玩玩。(如果有错漏之处,欢迎指正!)

首先说思路:经纬度转换为空间直角坐标系,由此得到两个向量,求出向量夹角,由向量夹角和地球半径求出弧长,即距离。

首先说一下经纬度,

    经度:地球上一点与零度经线之间的夹角(相对于自转轴),并规定向东为正、向西为负。

    纬度:地球上一点与赤道之间的夹角(相对于赤道平面),并规定向北为正、向南为负。

这里定义:

X轴为地心到(经度:0°、纬度:0°)的向量。

Y轴为地心到(经度:90°、纬度:0°)的向量。

Z轴为地心到(纬度:90°)的向量。






经纬度与空间直角坐标系的对应关系(C为球面上一点)

由此可以得到由经纬度到空间直角坐标系的对应关系:(注意正弦函数的输入为弧度)






单位向量


由角度到弧度对应关系:






度–>弧度

由两个点对应的单位向量求出向量夹角:






向量夹角公式





球面两点示意图

假设地球为理想球体:(半径为:6378.1370Km)

则由半径和夹角可求弧长:






弧长公式

由此就全部理论就有了、但是还没完.

下面由以上结论使用 MATLAB 验证。





















下面使用Google Map 做个验证:






谷歌地图





差:0.127Km

还是很好用的呢.!!!

误差可能是由于取的坐标点与测量时的没有完全重合,误差还是很小的。

不过瘾,再来个大点的范围:北京到上海。






误差都是手误啊

奇怪,直接用上面的坐标得到结果也有0.25Km的误差。






算了,不纠结了。喜欢就点个赞呗......

投诉或建议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值