java 根据圆心计算圆弧上点的经纬度_【MATLAB】经纬度换算距离

57adee14996f0813851a8d923b676759.png

文章来源于我的B站专栏:

用经纬度算距离​www.bilibili.com
1851f6b85e9244836529d2a0dc9e06a8.png

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

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

首先说一下经纬度,

  • 经度,是地球上一个地点离一根被称为本初子午线的南北方向走线以东或以西的度数。本初子午线的经度是0°,地球上其它地点的经度是向东到180°或向西到180°。
  • 纬度,是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。

这里定义:

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

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

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

d4567b660e301d7c2357a77b57d33d72.png
单位向量

由角度到弧度对应关系:

9c09e234505aad8f195cd0cfe1dce924.png
度-->弧度

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

009532f96adb7625e3aaeefad0d1cc3a.png
向量夹角公式

bb8795b9bde31708e19b240cd675ccdd.png
球面两点示意图

假设地球为理想球体:(半径为:6378.1370Km),则由半径和夹角可求弧长:

e73391def147aa5039a4bfab0142d321.png
弧长公式

由此就全部理论就有了、但是还没完^.^ 。 下面由以上结论使用 MATLAB 验证。

a0b98d256a560dd9669c40037ce2d4ff.png

0151e1b296d2c2049582fa8027292baa.png

b6b089df64eaa9d9b3ff007187a7ddeb.png

d0fbae01fd29297dd19fb7b021bdbbfd.png

下面使用Google Map 做个验证:

3ef5849f2acf90f7f15e2def93de3125.png

fcc4124eb7e89bd8d55d12cf2428abd7.png

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

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

4e601dfbc80165ddce1bcabd5dd96ce5.png

奇怪,直接用上面的坐标得到结果也有0.25Km的误差。(这个是手动两次选取起始点不一致造成的)

76abafaa1dd697475cd7a0ca522b2d1a.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值