是否有任何方法可以使用GDAL/OGR API或命令行工具溶解(合并)重叠的多边形,同时保持结果中非重叠区域的明显性?我已经搜索了很多,但我找不到类似于我需要的东西。不过,我认为这个问题很不可能还没有被解决。
以下是我需要的更详细的描述:
- 我的输入包括一个单一的形状文件(ESRI Shapefile),其中包含一个图层。 - 该图层包含的多边形在属性上无法区分(所有多边形具有相同的属性)。 - 其中许多是重叠的,我想获取那些重叠部分的联合。 - 没有连接的区域应该生成单独的多边形。
正是最后一点引起了麻烦。基本上,我获得了我需要的,除了最后一点。如果我运行溶解形状文件的典型解决方案
我最终得到了一个单一的多边形,其中包括所有区域,即使这些区域并不相连。
更新: 我通过完全放弃GDAL来解决了这个问题。正如许多来源指出的那样,使用fiona和shapely处理shapefiles通常是更好的方法。我在下面发布了我的解决方案。
以下是我需要的更详细的描述:
- 我的输入包括一个单一的形状文件(ESRI Shapefile),其中包含一个图层。 - 该图层包含的多边形在属性上无法区分(所有多边形具有相同的属性)。 - 其中许多是重叠的,我想获取那些重叠部分的联合。 - 没有连接的区域应该生成单独的多边形。
正是最后一点引起了麻烦。基本上,我获得了我需要的,除了最后一点。如果我运行溶解形状文件的典型解决方案
$ ogr2ogr -f "ESRI Shapefile" dissolved.shp input.shp -dialect sqlite -sql "select ST_union(Geometry) from input"
我最终得到了一个单一的多边形,其中包括所有区域,即使这些区域并不相连。
更新: 我通过完全放弃GDAL来解决了这个问题。正如许多来源指出的那样,使用fiona和shapely处理shapefiles通常是更好的方法。我在下面发布了我的解决方案。