java - JTS/Geotools 修正多个几何体的并集/差集

标签 java geotools jts

问题:

我有一个包含目标区域(黄色)的形状文件。

我有一个包含建筑物(绿色)的形状文件。

我需要黄色区域的空白。

图片:://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);

第二种解决方案:

每个建筑的联合,最后的差异。

第三种解决方案:

将它们全部放在一个GeomtryCollection调用联合中,然后使用差异

这些解决方案中的每一个都给我类似下图的东西

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

明确地说,我尝试了几种方法来解决这个问题,通过使用不同的方式来创建/制作或使用它。即使使用下面网站中的给定代码,它也无法正常工作。

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

最佳答案

我的问题最终得到了解决,就像@mdup 建议使用

.buffer(0)

关于java - JTS/Geotools 修正多个几何体的并集/差集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16360492/

相关文章:

android - 在 RenderScript 中实现算法

java - 高效存储稀疏二维网格

java - 使用 CompositeFeatureCollection 的 FeatureJSON

java - 如何使用java代码制作service=wfs&version=1.1.0&request=DescribeFeatureType

swing - 如何在 Java Swing 应用程序中嵌入 Maven 项目

postgresql - 从边界框(内部和重叠)中提取几何图形并将结果复制到新的空数据库

java - Android Java Fingerpaint 清除所有功能?

java - Android http请求主线程错误

java - 我可以使用 Gson 来序列化方法本地类和匿名类吗?