2017-06-01 121 views
3

我写代码加入(联合)几何。我将它封装到Java8流Collector。它里面它只是使用Geometry#union工会几何:JTS中联盟几何更快?

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

不幸的是,它的工作原理相当缓慢。

是否有可能与prepared geometry一些使用或一些其他黑客,使其更快?

UPDATE

几何结构是这样的:enter image description here

,他们有很大的不同尺度的。

+0

你能提供一些数据吗?多少几何图形有多慢? –

+0

我总共有大约8000个几何图形,但是我构建了复杂的树来分层连接它们(这些是地图上的区域,块,人口普查区域等,我想处理不同的缩放),每秒需要约3个几何图形才能加入。所以,我需要40分钟以上的时间来处理它们。 – Dims

回答

1

你的既定方针将是缓慢的,因为它结合了每个几何图形按顺序进入的结果,这有可能得到与各工会越来越大。

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

PreparedGeometry不提供像联合等重叠操作的任何加速。