给定中心 GPS 坐标、向西倾斜以及长宽和短宽,如何找到椭圆焦点的 GPS 坐标(纬度、经度)?
我查阅了以下内容:
How can I determine if a GPS Coordinate is on or in an Ellipse?
How to determine if a latitude & longitude is within an ellipse
以及涉及几何但不涉及 GPS 坐标的其他来源。几何源非常适合计算笛卡尔平面中的焦点位置,但我还没有找到带有代码的解决方案,可以在 Scala(或 Java)中在 GPS 坐标和笛卡尔坐标之间进行转换。
如果长轴为4公里,短轴为2公里,倾斜度为20度,如何获得焦点的GPS坐标?谢谢。
更新:针对评论,我想澄清一下,椭圆的尺寸足够小,我可以将椭圆下的地球近似为平坦的。
最佳答案
我想我明白了。给定长轴和短轴的长度、中心点以及与椭圆北(方位角)的角度,我可以如下计算焦点的位置。
首先,我可以使用可用公式 here 计算从中心到任一焦点的距离。 :
d = srqt(|a*a - b*b|)
其中,d
是中心与任一焦点之间的距离,a
a 是长(短)轴的半长度,b
是短(长)轴的长度。
其次,由于我有来自北方的角度,因此我有方位,并且可以使用该方位以及到任一焦点的距离来计算任一焦点的位置,使用...可用here部分下给出的公式:
φ2 = asin( sin φ1 ⋅ cos δ + cos φ1 ⋅ sin δ ⋅ cos θ )
λ2 = λ1 + atan2( sin θ ⋅ sin δ ⋅ cos φ1, cos δ − sin φ1 ⋅ sin φ2 )
其中φ
是纬度,λ
是经度,θ
是方位角(从北顺时针方向),δ
是角距离d/R
; d 是行驶距离,R
是地球半径。
对于 θ
,我会使用北边的角度来找到一个焦点的位置,然后我会使用北边的角度加上 180 度来找到另一个焦点。
关于java - 如何找到椭圆焦点的GPS坐标(纬度、经度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47615869/