如何找到椭圆焦点的 GPS 坐标(纬度、经度)?

Posted

技术标签:

【中文标题】如何找到椭圆焦点的 GPS 坐标(纬度、经度)?【英文标题】:How to find the GPS coordinates (latitude, longitude) of the foci of an ellipse? 【发布时间】:2017-12-03 06:23:02 【问题描述】:

在给定中心 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 坐标?谢谢。

更新:针对 cme​​ts,我想澄清一下椭圆的尺寸足够小,我可以将椭圆下的地球近似为平坦的。

【问题讨论】:

“一种带有代码的解决方案,用于在 GPS 坐标和笛卡尔坐标之间进行转换”。问the flat earth guys,他们肯定有方法。我们在圆形地球上使用球坐标,而不是笛卡尔坐标。球体上没有任何合适的椭圆。椭圆是平的。球体上的所有平面形状都是圆形。 OTOH 如果你的“椭圆”很小(所以下面的地球大致是平的)并且远离极地(所以西倾的概念相对明确),你可以假装你的纬度和经度是笛卡尔坐标。您只需要缩放它们以使它们是同质的(如果我没记错的话,您基本上使用 (long/cos lat, lat) 作为笛卡尔坐标)。 话虽如此,究竟是什么阻止您仅使用已链接问题的答案? 【参考方案1】:

我想我明白了。给定长轴和短轴的长度、中心点以及与椭圆的北(方位角)的角度,我可以如下计算焦点的位置。

首先,我可以使用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 度来找到另一个焦点。

【讨论】:

以上是关于如何找到椭圆焦点的 GPS 坐标(纬度、经度)?的主要内容,如果未能解决你的问题,请参考以下文章

将 GPS 坐标转换为纬度经度?

如何找到经度和纬度位置的平均值?

给定 GPS 的地理位置,如何在给定的 x 米半径内找到纬度和经度

MYSQL查询对GPS坐标进行排序

如何在Android中获取某人的纬度和经度?

GPS坐标系及转换