3

我编写了加入(联合)几何的代码。我将它包装到 Java8 流Collector中。在它里面它只是使用Geometry#union来联合几何:

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

不幸的是,它的工作速度相当慢。

是否可以通过使用准备好的几何图形或其他一些技巧来使其更快?

更新

几何形状是这样的:在此处输入图像描述

它们的规模非常不同。

4

2 回答 2

2

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

于 2017-06-01T12:49:56.993 回答
1

您所说的方法会很慢,因为它将每个几何图形按顺序合并到结果中,结果可能会随着每个联合而变得越来越大。

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

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

于 2017-12-17T01:38:31.587 回答