经纬度距离的简化计算
地球是椭圆的,用经纬度表示地点的坐标,精确计算距离的公式非常复杂,在精度要求不高的情况下,可以用简化的公式计算近似值。一般人用圆球的公式进行简化,但误差可能超过0.5%,而且还用到三角函数公式。
有一种更简化的方法是利用多项式代替计算,完全不采用三角函数,只需要加减乘除和开根号即可。计算速度更快,误差更小,即便没有三角函数的计算器也能实现。
考虑中国主要城市的纬度在20~46之间,下面是专用于纬度20°~46°的简化计算公式,
假设两点的经纬度坐标为(x1,y1)和(x2,y2)
第一步:计算三个参数:
经度差值dx=x2-x2
纬度差值dy=y2-y1
平均纬度 b =(y1+y2)*0.5
第二步,计算东西方向距离和南北方向距离(单位:米)
东西距离采用三阶多项式,南北采用一阶多项式即可
东西距离Lx = (0.05 * b*b*b - 19.16 * b*b + 47.13 * b + 110966 ) * dx 南北距离Ly = (17 * b + 110352) * dy |
第三步,用平面的方长形对角距离公式计算总距离:
总距离 = sqrt ( Lx * Lx + Ly * Ly)
其它说明:
1) 经纬度采用最新的GPS坐标系或中国2000坐标,而不采用旧的北京BJ54坐标或西安C80坐标。
2) 本公式的平均误差约万分之一,最大误差约万分之二,如果发现误差过大的情况,恳请告知本人修正公式。
3) 公式适用于纬度20°~46°之间的城市,海拔高度小于600米,两地距离在300公里内的情况,如果超出纬度、高度或距离,都将会导致误差增加,精度下降。
4) 公式的各个参数是阿广辛苦试出来的,大家可以免费使用,没有版权限制。
5) 今后考虑海拔高度修正、大地凸起修正、经纬夹角修正等因素,力求将适用范围扩大。