项目指向球体上的线段

时间:2017-12-26 14:03:56

标签: c# math geometry geospatial

我有一个由球上的两个点(L 1 ,L 2 )和球体上的第三个点(P)定义的线段。我想找到投影P' P在线段上(L 1 ,L 2 )。

projection

我在飞机上解决了这个问题但需要帮助这个球形版本。

理想的是C#-snipped就像我对2D版本一样:

private Coordinate ProjectOnEdge(Coordinate L1, Coordinate L2, Coordinate P) { // ... }

更正式一点:
我想要通过P的大圆的交点,并且通过L1和L2垂直于大圆。

1 个答案:

答案 0 :(得分:0)

您可以组合latlong page的公式,以球坐标工作:

获取跨轨道角距离

XMLHttpRequest

使用它来获得沿轨道的角距离

 δxt = asin( sin(δ13) ⋅ sin(θ13−θ12) )

从起点ti终点计算轴承

 δat = acos( cos(δ13) / cos(δxt) )

最后使用“目的地点给定距离和起点承载”方法计算坐标:

θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )

最后两个步骤可能会改为“中间点”方法