计算某些米外的其他两个坐标之间的 latitude/longitude

Calculate latitude/longitude between two other coordinates certain meters away

我正在研究 Javascript 函数,用于计算其他两个坐标之间 "line" 上的纬度和经度坐标。例如,我需要计算的这个坐标距离第一个坐标 300 米,而两个坐标之间的距离是 1600 米。

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

Gr.

地球上点之间的直线上有一个简单的方程式。您可以尝试找到一个,或使用一些蛮力方法。 您可以使用 Geolib library or try to write your own code on top of this

然后:

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

如前所述,这是对暴力法的解释。计算起来可能很复杂,这取决于你需要多精确。

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

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

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