【问题标题】:Projection of a GPS point on a segment representing a trajectoryGPS 点在表示轨迹的线段上的投影
【发布时间】:2019-11-15 17:31:20
【问题描述】:
考虑下图中的 A-B 段;每个末端都是一个由纬度和经度定义的 GPS 点(该段实际上是一个弧,因为它位于地球表面上)。
点 C 不是该段的一部分。我想计算点 P 的纬度和经度,即点 C 在 A-B 段上的投影。
有没有办法在不移动到本地笛卡尔系统(例如 Lat/Long/Alt -> North/East/Down)并返回的情况下做到这一点?我想避免它,因为这些点实际上是跨越数公里的长路线的一部分,并且本地笛卡尔系统无法覆盖全部范围。
【问题讨论】:
标签:
geometry
gps
coordinates
projection
【解决方案1】:
可以使用latlong页面中的公式组合找到P点。
首先找到δ12和δ13 - 从起点到终点和第三点的角距离(距离部分)
然后轴承θ13和θ12从起点到第三点和终点(轴承段)
获取跨轨角距离
δxt = asin( sin(δ13) ⋅ sin(θ13−θ12) )
用它来获得沿轨道角距离
δat = acos( cos(δ13) / cos(δxt) )
并计算中间点P
a = sin(δ12 - δat) / sin δ12
b = sin(δat) / sin δ12
x = a ⋅ cos φ1 ⋅ cos λ1 + b ⋅ cos φ2 ⋅ cos λ2
y = a ⋅ cos φ1 ⋅ sin λ1 + b ⋅ cos φ2 ⋅ sin λ2
z = a ⋅ sin φ1 + b ⋅ sin φ2
φi = atan2(z, √x² + y²)
λi = atan2(y, x)