0

多くの LineString で構成される GeoJson データの大規模なセットがあります。ジグザグができるだけ少なくなるように、すべての LineString の座標を並べ替える必要があります。たとえば、次の座標セットがあります。

[
      [
        -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 には何も組み込まれていません。これは、人間であれば常識的な解決策があるものの、コンピューターに定義するのが難しい問題の 1 つになる傾向があります。つまり、これを解決する方法は次のとおりです。

それを行う別の方法は次のとおりです。

  • turf-concaveまたはconcavemanを使用して、ポイントの周りに凹型のハルを生成します
  • 船体のセグメントを反復処理し、最も長いものを特定して削除し、ポリゴンを LineString にします。
于 2016-08-24T21:37:16.047 に答える