方法一
1、根据地理位置,将经纬度位置投影到2维平面上。使用GDAL执行投影变换(地理坐标转为投影坐标);
2、使用三角函数,求得目的地坐标;
3、将平面目的坐标再使用GDAL转换维地理坐标。
优点:精度高,米级精度,<10m
缺点:算法复杂,耗时,计算范围较小
方法二
使用大圆距离计算方法。
本算法假设地球为标准球体,需参考输入经纬度使用的椭球模型(如WGS84)。
# 输入:
# lat1, lon1:起点的纬度和经度(弧度)。
# d:沿大圆路径的距离(以地球半径为单位的弧长,需转换为弧度)。
# tc:初始方位角(真北方向顺时针弧度,范围通常为 [0, 2π))。
# 输出:终点经度和纬度(弧度)
lat =asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc))
dlon=atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(lat))
lon=mod( lon1-dlon +pi,2*pi )-pi
优点:算法快速,计算范围大
缺点:精度低
短距离(<100 km)误差 10-100米,
中距离(1000 km) 误差 1-3公里,
长距离(>10000 km)误差 10-30公里。