【问题标题】:Calculate latitude/longitude between two other coordinates certain meters away计算几米以外的两个其他坐标之间的纬度/经度
【发布时间】:2015-05-26 11:53:55
【问题描述】:

我正在开发一个 Javascript 函数,用于计算其他两个坐标之间的“线”上的经纬度坐标。例如,我需要计算的这个坐标距离第一个坐标 300 米,而两个坐标之间的距离是 1600 米。

我已经拥有的是计算两个已知坐标之间距离的函数。

【问题讨论】:

标签: javascript mapping


【解决方案1】:

地球上两点之间的直线上有一个简单的方程。您可以尝试找到一个,或使用一些蛮力方法。 您可以使用Geolib library 或尝试在this 之上编写自己的代码

然后:

  • 您有 2 个点 (a,b),您想在它们之间的路径中找到一个点 c(也在指定距离内)
  • 创建多边形,使用 4 个点 p1、p2、p3、p4,其中 p1 是 a 稍微向北移动,p2 是 a 稍微向南移动,p3 是 b 向北移动,p4 是 b 向南移动。
  • 有了这个多边形,您可能知道给定点是否在 a 和 b 之间的线上,检查给定点是否在多边形内部(您可以使用 geolib.isPointInside 函数)李>
  • 现在您从 a 开始并稍微向 b 移动(您知道何时处于正确的轨道上)并计算生成点与 a 之间的距离。
  • 达到预期的距离。你有你的意思。

如前所述,这是对蛮力方法的解释。计算起来可能非常复杂,这取决于您需要的精确程度。

【讨论】:

    【解决方案2】:

    这就是我解决问题的方法:

    • 首先我以米为单位计算两个坐标之间的实际距离。 (在我的例子中是 1600 米)
    • 接下来我计算实际距离与我需要知道的点的距离之间的差异。 (在我的示例中为 300/1600*100=18.75%)
    • 接下来我使用 sin cos tan 来计算纬度和经度的水平和垂直值。
    • 之后,我使用百分比来缩放经纬度。
    • 最后我将经纬度添加到坐标中。

    这可能不是那么准确,但对我来说它会完成这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多