Java 用JTS简化段列表

Java 用JTS简化段列表,java,geometry,jts,Java,Geometry,Jts,我正在使用JTS Java拓扑套件库进行测试,看看是否能够简化段列表。事实上,我对这个库知之甚少,而且我是一个编程新手,所以我不知道我试图实现的目标是否可能 我想要的是,转换一个多行列表,如下所示: 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)) 为此: MULTIL

我正在使用JTS Java拓扑套件库进行测试,看看是否能够简化段列表。事实上,我对这个库知之甚少,而且我是一个编程新手,所以我不知道我试图实现的目标是否可能

我想要的是,转换一个多行列表,如下所示:

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为线条添加节点 使用“线合并”合并节点线条 使用DouglasPeuckerSimplifier使用小公差简化线条 这将给你:

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

非常感谢你,马丁!顺致敬意,