2013-05-03 68 views
5

問題:JTS/Geotools正確工會/差異

我有一個包含目標區域(黃色)的形狀文件。

我有一個包含建築物(綠色)的形狀文件。

我需要黃色區域的空白區域。

圖片://db.tt/kjjXZlQF

我的解決方案:

  1. 獲取所有的建築在這方面

    Filter inPolygon = CQL.toFilter("WITHIN(the_geom,"+wktwriter.write(targetarea) + ")");

    FeatureCollection<SimpleFeatureType, SimpleFeature> collection = featureSource.getFeatures(inPolygon);//this works

  2. 從每一個建築得到它的目標區域的幾何形狀和使用差異

    toCover = toCover.Difference(building);

OR 第二解決方案:

每一個建築的聯盟,然後在年底的區別。

OR 第三解決方案:

把它們放在一個GeomtryCollection電聯,然後使用差異

這些解決方案的每個人給我的東西像下面的圖片

圖片:https://dl.dropboxusercontent.com/u/639458/stackoverflow/stfr2.png

讓我們清楚,我嘗試了幾種方法來解決這個問題,通過使用不同的方式來創建/製作或使用它。即使使用下面網站中的代碼,它也不能正確工作。

http://docs.geotools.org/latest/userguide/library/jts/combine.html

+0

,你可能會得到http://gis.stackexchange.com/ – 2013-05-15 08:24:56

+1

你嘗試更多的答覆在這組建築物上調用'.buffer(0)'? – mdup 2013-06-05 13:44:44

回答