在 JTS 中联合几何更快?

Union geometries faster in JTS?

我编写了代码来连接(合并)几何图形。我将它包装成 Java8 流 Collector. Inside it it just uses Geometry#union 以联合几何:

geometries[0] = geometries[0].union(geometry);

不幸的是,它运行得相当慢。

是否可以通过使用 prepared geometry 或其他技巧来加快速度?

更新

几何图形是这样的:

而且它们的规模非常不同。

考虑使用一元联合。参见 http://bjornharrtell.github.io/jsts/1.2.1/apidocs/org/locationtech/jts/operation/union/UnaryUnionOp.html

您所述的方法会很慢,因为它将每个几何按顺序合并到结果中,每个并集可能会变得越来越大。

一元并集使用空间索引对几何图形进行聚类并按层次合并它们,从而提供更好的性能。不幸的是,这可能不适用于 Java 流的顺序性质。

PreparedGeometry 不为合并等叠加操作提供任何加速。