重新排序 LineString 坐标 GeoJson
reorder LineString coordinates GeoJson
我有一大组由许多 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
]
]
呈现这个
这是一条更明智的路线。
我意识到 "sensible" 在这里是主观的,另一种看待它的方式是,如何重新排列坐标以获得最直线?
这是我可以使用 turf.js 的东西吗?我查看了文档,但找不到合适的功能(或者我想的方式不对)
提前致谢!
Turf 没有为此内置任何内容,如果您是个人,这往往是具有常识性解决方案但难以对计算机定义的问题之一。也就是说,我将如何解决这个问题:
- 取直线中的每个坐标
- 找到最佳游览 - https://github.com/perrygeo/optimal_tour or https://github.com/yanatan16/d3-tsp-demo 将通过修改达到目的
另一种方法是:
- 使用turf-concave或concaveman在点
周围生成concave hull
- 遍历船体的线段,找出最长的线段并将其移除,使多边形成为 LineString。
我有一大组由许多 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
]
]
呈现这个
这是一条更明智的路线。
我意识到 "sensible" 在这里是主观的,另一种看待它的方式是,如何重新排列坐标以获得最直线?
这是我可以使用 turf.js 的东西吗?我查看了文档,但找不到合适的功能(或者我想的方式不对)
提前致谢!
Turf 没有为此内置任何内容,如果您是个人,这往往是具有常识性解决方案但难以对计算机定义的问题之一。也就是说,我将如何解决这个问题:
- 取直线中的每个坐标
- 找到最佳游览 - https://github.com/perrygeo/optimal_tour or https://github.com/yanatan16/d3-tsp-demo 将通过修改达到目的
另一种方法是:
- 使用turf-concave或concaveman在点 周围生成concave hull
- 遍历船体的线段,找出最长的线段并将其移除,使多边形成为 LineString。