计算距离一定米的两个坐标之间的经纬度

Calculate latitude/longitude between two other coordinates certain meters away

本文关键字:两个 坐标 经纬度 之间 距离 计算      更新时间:2023-09-26

我正在编写一个Javascript函数,用于在两个其他坐标之间的"线"上计算具有纬度和经度的坐标。例如,我需要计算的这个坐标与第一个坐标的距离为300米,而两个坐标之间的距离为1600米。

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

Gr .

地球上两点之间的直线上有一个简单的方程。您可以尝试找到一个,或者使用一些蛮力方法。您可以使用Geolib库或尝试在此

之上编写自己的代码。

:

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

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

我是这样解决我的问题的:

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

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