我正在研究美国县一级的所有权数据。我每个县都有一个shapefile,其中包含数千个税包。我需要溶解代表同一个人拥有的宗地的多边形。当shapefile不干净时,QGIS中的“溶解”工具似乎不起作用,将冻结。我必须首先使用“检查几何体有效性”工具修复几何体有效性问题。但是,有时我会出现数百个错误。手动修复需要很多时间。还有其他策略可以节省我一些时间吗?

我正在使用QGIS 2.4.0。

#1 楼

尝试在多边形上运行微妙的缓冲区。如果您的CRS是UTM,则将-0.001设置为似乎值得尝试。 VECTOR | BUFFER

评论


我尝试了BillW最初建议的“缓冲区”解决方案。它解决了我97%的问题,这对我来说已经足够了。我可以手动完成工作。我相信,在多边形上运行一个小的缓冲区不会对我造成任何问题。但是我看到一些情况,使用ST_MakeValid或尝试使用v.clean可能会更好,更准确。

–巴普
2014年9月5日19:06



#2 楼

当我的图层出现错误时,通常会通过“处理工具箱”中的GRASS函数v.clean运行该图层。尽管我从未真正确定哪种工具最适合哪种情况,但通常我会在那儿选择bpol函数。

更重要的是,设置捕捉公差和最小面积的高级参数。
根据不同的图层,我通常选择0.1到2米的捕捉距离,例如最小面积为10平方米。

对齐要共享的边界但偏移量很小的边界,最小的区域消除了交点等处的细条。

与bpol一起,通常可以解决所有错误,而无需过多更改拓扑。

#3 楼

您可以在QGIS中直接使用ST_MakeValid,然后添加lwgeom插件,从而将lwgeom提供程序添加到处理工具箱=>您可以直接在加载的图层上应用MakeValid,而无需在postigs / spatialite中进行转换。 br />
您必须安装liblwgeom并配置处理程序提供程序以指向它。

lwgeom提供程序可以作为实验性文件:
https://plugins.qgis.org/插件/处理lwgeomprovider /

评论


这可用于QGIS 2.18吗?在我的QGIS版本中似乎不起作用,github.com / faunalia / processinglwgeomprovider

–罗格(RutgerH)
17年6月13日在18:49



只是更新...从那时起,QGIS3.x就具有处理本机的fixgeometry算法,该算法是GEOS lwgeom MakeValid算法的包装。无需数据库。

–路易·倍耐力(Luigi Pirelli)
18年8月28日在15:41

#4 楼

将数据保存到PostGIS中并运行ST_MakeValid可以帮助http://postgis.refractions.net/docs/ST_MakeValid.html。 Spatialite还具有ST_MakeValid,也http://www.gaia-gis.it/gaia-sins/spatialite-sql-latest.html。

#5 楼

尽管我知道这个问题是针对QGIS 2的,但是这里有人在寻找QGIS 3的答案吗?

处理->工具箱->矢量几何->修复几何

仅出于上下文考虑,我需要在收到以下错误后执行此操作:

Feature (820) has invalid geometry. Please fix the geometry or change the Processing setting to the "Ignore invalid input features" option.


#6 楼

我只是在qgis中遇到了类似的问题。我有一个保利开始错误地投影。正如Bernd建议的那样,我在“处理”工具箱中使用了Grass fuction v.clean。尽管bpol无效,但似乎已使用break函数修复。

#7 楼

有一个独立的实用程序可以解决此类问题,我发现它非常可靠。它被安德鲁·威廉姆森(Andrew Williamson)称为Shapechk。

可以从以下链接下载:
https://gis.stackexchange.com/a/7824/93912