Problem:WST/Geotools Prawidłowe union/różnica stwardnienia geometrii
Mam shapefile zawierający obszaru docelowego (żółte).
Mam plik kształtu, który zawiera budynki (zielony).
Potrzebuję białej przestrzeni w żółtym obszarze.
obrazku:: //db.tt/kjjXZlQF
Moje rozwiązania:
Uzyskaj wszystkie budynki w tej okolicy
Filter inPolygon = CQL.toFilter("WITHIN(the_geom,"+wktwriter.write(targetarea) + ")");
FeatureCollection<SimpleFeatureType, SimpleFeature> collection = featureSource.getFeatures(inPolygon);//this works
Z każdego budynku dostać to geometria i wykorzystanie różnicy na obszarze docelowym
toCover = toCover.Difference(building);
LUB sekund rozwiązanie:
Unia każdego budynku, a następnie różnica na końcu.
LUB trzeci rozwiązanie:
umieścić je wszystkie w unii połączeń GeomtryCollection a następnie użyć różnica
Każdy z tych rozwiązań nie da mi coś takiego jak na poniższym rysunku
obrazku: https://dl.dropboxusercontent.com/u/639458/stackoverflow/stfr2.png
Niech będzie jasne, że wypróbowałem kilka sposobów rozwiązania tego problemu, używając różnych sposobów jego tworzenia/tworzenia lub używania. Nawet z podanym kodem w witrynie poniżej nie działał poprawnie.
http://docs.geotools.org/latest/userguide/library/jts/combine.html
może uzyskać więcej odpowiedzi na http://gis.stackexchange.com/ –
Próbowałaś wywołanie '.buffer (0)' na zestawie budynków? – mdup