球面两点间的角距离应用
问题1:给出目的地,计算自己所在地点到目的地的距离?
通过GPRS,可以测量出自己所在地和目的地的经纬度。
然后所在地,目的地和地心,这三点在同一平面上形成一个弧形。
只要求出弧形的角度,即两点的角距离,就能求出弧形的弧长,即两点的球面距离。
问题2:给出指定时间,计算出该时间点,某建筑的影子长度?(注:影子是切面影面,并不是球面影子)
太阳入射点,指的是太阳连接地心的直线,与地面的交点的经纬度。
通过指定时间,可以计算出太阳的入射点的经纬度。
通过GPRS,可以测量出某建筑所在位置的经纬度。
建筑所在切面上形的形子,与建筑构成直角三角形。
太阳连接地心的直线与建筑点的切面有一个交点,这个交点到建筑点的连线,与建筑点到地心的连线构成直角三角形。
两个三角形相似,只要求出太阳入射点与建筑点的角距离,就能求出影子长。
问题3:已知两点的经纬度,如何求出两点的角距离?
假设:两点A和B的经纬度分别为(α1,β1),(α2,β2)。
在空间上,经纬度的含意是,点(0,r,0)先绕x轴旋转β度,再绕Z轴旋转α度,r是球体半径,即地球的半径。
根据这个含意,可以得出坐标(x1,y1,z1):
x1 = r*cos(β1)*cos(α1)
y1 = r*cos(β1)*sin(α1)
z1 = r*sin(β1)
同理得出坐标(x2,y2,z2)。
根据两点距离公式,可以得出:
AO = r
BO = r
AB = r * √(2 - 2*cos(β1)*cos(β2)*cos(a1-a2) - 2*sin(α1)*sin(α2))
已知三边,得出∠AOB:
∠AOB = arccos( cos(β1)*cos(β2)*cos(a1-a2) + sin(α1)*sin(α2) )
总结:
两点间的球面距离公式:AB = r * ∠AOB,r为地球半径。
建筑的切面影长公式:l = h * tan(∠AOB),h为建筑高度。