Matlab计算两点(经纬度坐标)距离(大弧法和Haversine法)

利用大弧法和Haversine法计算两个经纬度之间的距离。Python版本请参考 Python实现Haversine公式计算两点(经纬度坐标)距离

R = 6371;

% great cricle arc
arcLAT1 = LAT * pi / 180.0;
arcLAT2 = LAT_minus * pi / 180.0;
arcLON1 = LON * pi / 180.0;
arcLON2 = LON_minus * pi / 180.0;

cos_sita = sin(arcLAT1) .* sin(arcLAT2) + ...
    cos(arcLAT1) .* cos(arcLAT2) .* cos(arcLON1 - arcLON2);
sita = acos(cos_sita);
tyTransDist_gca = R * sita;

% haversine
arcLAT1 = LAT * pi / 180.0;
arcLAT2 = LAT_minus * pi / 180.0;
arcLON1 = LON * pi / 180.0;
arcLON2 = LON_minus * pi / 180.0;
dLon = arcLAT1 - arcLAT2;
dLat = arcLON1 - arcLON2;

a = sin(dLat / 2) .^ 2 + ...
    + (1 - sin(dLat / 2) .^ 2 - sin((arcLAT1 + arcLAT2) / 2)) .* sin(dLon / 2) .^ 2;
c = 2 * asin(sqrt(a));
tyTransDist_hav = R .* c;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A-Chin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值