首先在这里声明,本次使用的地球模型采用的是球形。参考的文章是美团的距离计算,说的很清晰,感兴趣的朋友可以参考。我自己使用了MATLAB实现了其中的算法。仅供参考,互相学习。
大致地说,这里实现的方法就是通过将经纬坐标转换为三维的以球心为原点的立体坐标计算地球表面两点之间的距离长度。
function [x y z] = LL2era(lon,lat)
%函数实现将经纬度坐标转换为以地心为原点的三维立体坐标
%lon:输入精度
%lat:输入纬度
%模型采用地球为球形
lat = lat*pi/180;
lon = lon*pi/180;
r = 6367000; %地球的半径
x = r*cos(lat)*cos(lon);
y = r*cos(lat