使用 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))
我正在使用 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))