0

我有大量由许多 LineStrings 组成的 GeoJson 数据。我需要重新排序所有 LineStrings 的坐标,以便尽可能少地出现之字形。所以例如我有这组坐标:

[
      [
        -149.858345,
        61.217461,
        0
      ],
      [
        -151.544282,
        59.646368,
        0
      ],
      [
        -124.099861,
        43.982118,
        0
      ],
      [
        -151.291694,
        60.689824,
        0
      ]
]

这导致了这一行

在此处输入图像描述

相反,它应该像这样重新排序

[
     [
        -149.858345,
        61.217461,
        0
      ],
      [
        -151.291694,
        60.689824,
        0
      ],
      [
        -151.544282,
        59.646368,
        0
      ],
      [
        -124.099861,
        43.982118,
        0
      ]
]

这使得这个

在此处输入图像描述

这是一条更明智的路线。

我意识到“明智”在这里是主观的,另一种看待它的方式是,如何重新排列坐标以便获得最直线?

这是我可以使用 turf.js 的东西吗?我浏览了文档,但找不到合适的功能(或者我想错了)

提前致谢!

4

1 回答 1

0

Turf 没有为此内置任何功能,如果您是一个人但很难用计算机定义,这往往是那些具有常识性解决方案的问题之一。也就是说,我将如何解决这个问题:

另一种方法是:

  • 使用 turf-concave 或 concaveman在点周围生成凹壳
  • 遍历船体的各个部分,找出最长的部分,然后将其移除,以使多边形成为 LineString。
于 2016-08-24T21:37:16.047 回答