根据经纬度,如何求地球上任意两点间距离

问题描述:

根据经纬度,如何求地球上任意两点间距离
要求精度 或者 说 准确度 的
写出数学公式
我写了一个 精确度感觉差了好多 对于某些地点 差了10km
这五分是我唯一剩下的几分了
我也只有这么多了

假设地球是一个标准球体,半径为R,并且假设东经为正,西经为负,北纬为正,南纬为负,
则 A(x,y)的坐标可表示为(R*cosy*cosx,R*cosy*sinx,R*siny)
B(a,b)可表示为(R*cosb*cosa,R*cosb*sina,R*sinb)
于是,AB对于球心所张的角的余弦大小为
cosb*cosy*(cosa*cosx+sina*sinx)+sinb*siny=cosb*cosy*cos(a-x)+sinb*siny
因此AB两点的球面距离为
R*{arccos[cosb*cosy*cos(a-x)+sinb*siny]}
注:1.x,y,a,b都是角度,最后结果中给出的arccos因为弧度形式.
2.所谓的“东经为正,西经为负,北纬为正,南纬为负”是为了计算的方便.
比如某点为西京145°,南纬36°,那么计算时可用(-145°,-36°)
3.AB对球心所张角的球法实际上是求和两向量的夹角K.
用公式*=|OA|*|OB|*cosK
可以得到.