【问题标题】:JTS/Geotools Correct union/difference of multiple geometryJTS/Geotools 多个几何图形的正确联合/差异
【发布时间】:2013-05-03 13:48:42
【问题描述】:

问题:

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

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

我需要黄色区域的空白。

图片:://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 调用 union 中,然后使用差异

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

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

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

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

【问题讨论】:

  • 您可能会在gis.stackexchange.com得到更多回复
  • 你有没有尝试在这组建筑物上调用.buffer(0)

标签: java geotools jts


【解决方案1】:

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

.buffer(0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多