使用 JTS 简化段列表

Simplify segment list with JTS

我正在使用 JTS (Java Topology Suite) 库进行测试,看看是否可以设法简化段列表。事实上,我对这个库知之甚少,而且我是一名编程新手,所以我不知道我想要实现的目标是否可行。

我想要的是,将 MULTILINESTRING 列表转换为如下所示:

MULTILINESTRING ((0 0, 50 50), (50 50, 100 100, 150 50), (50 150, 100 100, 150 150), (20 20, 80 80), (40 160, 70 130), (110 110, 140 140))

进入这个:

MULTILINESTRING ((40 160, 150 50), (0 0, 150 150))

换句话说,我想要的是根据长度获得一个包含最大段的列表。 是否可以进行这种转换,如果可以,如何进行?

非常感谢。

单纯使用 JTS 方法不可能得到您建议的答案。最接近的是:

  • 使用 Geometry.union()
  • 为线条添加节点
  • 使用 LineMerger
  • 合并节点线条
  • 使用小容差
  • 使用DouglasPeuckerSimplifier简化线条

那会给你:

MULTILINESTRING ((0 0, 100 100), (40 160, 100 100), (100 100, 150 150), (100 100, 150 50))