来自附近地点的经纬度的位置

我怎样才能计算一个地方的纬度经度,当它附近3个地方的经纬度信息,以及到那个地方的距离是多少?

例如,A,B和C是经纬度(x1,y1),(x2,y2)和(x3,y3)三个地方。 设D分别距离A,B和C的距离为k1,k2和k3-km。 如何确定D的经纬度?

如果所有这些点A,B,C和D都在一个平面上,则可以通过确定三个圆的交点来计算半径为k1,k2和k3的A,B和C的交点,分别。 但是,如何确定位置,当点在球体上而不是在圆上?


从飞机开始,以下是您建议的3个圈子的替代方法:

  • 由于您知道A,B和C的坐标,您可以计算AB,AC和BC的长度。
  • 用X标记我们想要找到的点。
  • 我们知道AX = k1,BX = k2和CX = k3
  • 现在绘制3个三角形:ABX,ACX,EDX。 我们知道所有边的长度,因此我们可以计算角度。
  • 知道所有的坐标,长度和角度,我们可以计算X的坐标。
  • 对于一个球体 - 可以使用几乎相同的想法。 然而:

  • 坐标应该是纬度/经度弧度
  • 应使用大圆距公式计算距离。 参见航空配方。
  • 三角形中的总角度不是180 - 它在180和540之间。
  • 知道边缘长度,角度可以使用余弦的球面法则来计算
  • 现在,可以计算X的坐标。
  • 习惯使用球面三角函数需要一些时间,但这是解决这些问题的正确工具。


    我会假设k1,k2,k3是球体上的距离。

    您可以通过使用Vincenty公式的特例来解决这个问题。 用你的三组值x,y和k,你可以建立一个方程组来求解第四点的纬度和经度。 解决这个系统由于其复杂性可能会非常棘手,但可能有计算工具可以执行这样的解决方案。

    链接地址: http://www.djcxy.com/p/84899.html

    上一篇: Position from the latitude and longitude of nearby places

    下一篇: Java: Calculate distance between a large number of locations and performance