2017-06-01 126 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不提供像聯合等重疊操作的任何加速。