问题 :
我有一个包含目标区域(黄色)的形状文件。
我有一个包含建筑物(绿色)的形状文件。
我需要黄色区域的空白区域。
图片:://db.tt/kjjXZlQF
我的解决方案:
获取该区域的所有建筑物
Filter inPolygon = CQL.toFilter("WITHIN(the_geom,"+wktwriter.write(targetarea) + ")");
FeatureCollection<SimpleFeatureType, SimpleFeature> collection = featureSource.getFeatures(inPolygon);//this works
从每个建筑物中获取它的几何形状并在目标区域使用差异
toCover = toCover.Difference(building);
或第二种解决方案:
每一栋楼的联盟,然后在最后的差异。
或第三个解决方案:
将它们全部放在 GeomtryCollection 调用联合中,然后使用差异
这些解决方案中的每个人都给了我如下图所示的内容
图片:https ://dl.dropboxusercontent.com/u/639458/stackoverflow/stfr2.png
明确一点,我尝试了几种方法来解决这个问题,通过使用不同的创建/制作或使用方式。即使使用下面网站中的给定代码,它也不能正常工作。
http://docs.geotools.org/latest/userguide/library/jts/combine.html