如何在Javascript中获取两点折线之间固定数量的坐标

How to get a fixed number of coordinates between two points polyline in Javascript

我正在寻找一种方法来找到 Javascript 中两点之间的多个坐标(我不需要距离或中点)。

假设我有这两点:

我想在 A 点和 B 点之间生成例如 20 个坐标。

我尝试使用这段 Javacript 代码(在旧线程上找到):

   Point = function(x, y) {
      this.x = x;
      this.y = y;
    }
    var pointA = new Point(39.091868, -9.263187);
    var pointB = new Point(39.089815, -9.261857);
    
    var numberOfPoints = 20;
    var points = new Array();
    
    for (var i = 0; i < numberOfPoints; i++) {
      points.push(new Point((Math.abs(pointA.x - pointB.x) / 10) * i + pointB.y, (Math.abs(pointA.y - pointB.y) / numberOfPoints) * i + pointB.y));
    }
    
    console.log(points);

当我运行上面的代码时,它打印出点A和B之间点数组的20个值。但是,它似乎只存储了点的正确经度值。 (x 和 y 都显示经度值)。 例如points数组的第一项是:

Point x: -9.261857 y: -9.261857

我应该如何调整for循环内的计算,使A点和B点之间的每个点也存储正确的纬度值?或者有人知道另一种方法来计算 Javascript 中 2 点之间固定数量的坐标吗?

感谢任何形式的帮助

因为地球不平,小距离的计算可以很好

算点就行了。 1 度大约为 110 公里。所以你可以只对小距离进行 Pitagoras 计算并乘以 110 公里,然后进行迭代循环。

为了准确起见,您可以使用 open-layers 库(其中大部分是免费的),但您应该提供带投影的地图。让事情变得有点复杂。

其中一个功能是找到特定点的坐标,给出距离和方位角。

需要先找到两个点的方位角。

使用O/L: openlayers sphere getlength & bearing.

O/L distance

Open layers