【发布时间】:2021-08-04 00:41:35
【问题描述】:
我想计算以下坐标的交点。我能够计算方位角,即这两个坐标之间的航向和距离。但不知道如何计算坐标的交点。
QGeoCoordinate sourceCoord(19.999601675,73.726176879);
QGeoCoordinate destinationCoord(19.999139102,73.725825826);
distance = 0.06318 km
bearing angle (heading) 1 to 2 = 215
bearing angle (heading) 2 to 1 = 35
要计算距离我使用这个公式:
//φ是纬度,λ是经度,R是地球半径
a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
// 两个坐标之间的距离
c = 2 ⋅ atan2( √a, √(1−a) )
d = R ⋅ c
为了计算方位角(航向),我使用了公式:
θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )
如何从方位角和航向计算两个地理坐标的交点?
【问题讨论】:
-
您是否考虑过转换为墨卡托投影(例如 UTM),然后计算交点,然后恢复为球坐标?
-
将 (R, φ1, λ1) 转换为 (x1,y1,z1) 并将 (R, φ2, λ2) 转换为 (x2,y2,z2)。平均 (x,y,z) 值。将平均值转换为 (R, φ3, λ3)。不过,您可能需要穿过地球。
-
我投票结束这个问题,因为它与编程无关
-
我不太明白你在问什么。 :( 我想我理解线的交点——但不知道什么是“坐标的交点”。你可能是指两条线的交点,从给定方向的两个点(由坐标给出)突出?
标签: c++ c math intersection coordinate-systems