计算地球上A B两点间距离的计算公式
2010-05-18 08:50
211 查看
两点经纬度A(x,y) B(a,b)已知:
假设地球是一个标准球体,半径为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对球心所张角的球法实际上是求<OA>和<OB>两向量的夹角K。
用公式<OA>*<OB>=|OA|*|OB|*cosK
可以得到。
假设地球是一个标准球体,半径为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对球心所张角的球法实际上是求<OA>和<OB>两向量的夹角K。
用公式<OA>*<OB>=|OA|*|OB|*cosK
可以得到。
相关文章推荐
- 求通过经纬度计算地球表面任意两点间距离的公式
- 求通过经纬度计算地球表面任意两点间距离的公式
- 求通过经纬度计算地球表面任意两点间距离的公式
- 根据经纬度计算地球上两点之间的距离js实现代码
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 根据经纬度计算两点之间的距离的公式推导过程以及google.maps的测距函数
- 地球上两点之间的距离计算(java)
- 利用JavaScript实现的根据经纬度计算地球上两点之间的距离
- JAVA 计算地球上任意两点(经纬度)距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- php根据地球上任意两点的经纬度计算两点间的距离 原理
- c#中利用google map距离计算公式实现两点间距离的计算
- JAVA计算地球上任意两点(经纬度)距离
- 火星坐标与地球坐标的转换,以及地球上两点之间的距离计算
- 实用小程序记录1-计算地球两点之间的距离
- JAVA 根据经纬度计算地球上任意两点距离GPS
- 计算地球上两点的直线距离
- 通过两点经纬度计算两点距离的公式
- 如何通过经纬度粗略计算地球两点之间的距离?直接上代码