计算某些米之外的两个其他坐标之间的纬度/经度

时间:2015-05-26 11:53:55

标签: javascript mapping

我正在研究一个Javascript函数,用于计算两个坐标之间“直线”上纬度和经度的坐标。我需要计算的这个坐标距离第一个坐标是300米,而两个坐标之间的距离是1600米。

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

的Gr。

2 个答案:

答案 0 :(得分:0)

地球上的点之间存在简单的等式。您可以尝试找一个,或使用一些强力方法。 您可以使用Geolib library或尝试在this

之上编写自己的代码

然后:

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

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

答案 1 :(得分:0)

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

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

这可能不那么准确,但对我来说它会起作用。