利用大弧法和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;