修复QGIS中的几何有效性错误?


31

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

我正在使用QGIS 2.4.0。


2
您是否尝试在草丛中导入文件并使用v.clean?它可能会解决许多错误。
塞尔吉奥2014年

Answers:


20

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


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

18

当我的图层有错误时,通常通过“ 处理工具箱”中的GRASS函数v.clean运行该图层。尽管我从来没有真正弄清楚哪种工具在那种情况下最好,但是我通常会在那儿选择bpol函数。

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

例如,对齐将对齐边界,这些边界本来应该是共享的边界,但偏移很小,最小的区域可以消除相交处的细条。

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


11

您可以在QGIS中直接使用ST_MakeValid,添加lwgeom插件,从而将lwgeom提供程序添加到处理工具箱=>您可以将MakeValid直接应用于已加载的图层,而无需转换postigs / spatialite。Postgis / spatialite使用相同的liblwgeom执行ST_MakeValid

您必须安装liblwgeom并配置处理提供程序以指向它

可以通过实验找到lwgeom提供程序:https://plugins.qgis.org/plugins/processinglwgeomprovider/


3
我刚刚发布了新版本的processinglwgeom提供程序,以便与qgis processing的当前主版本一起使用。(处理过程正在重构中)
Luigi Pirelli 2014年

2
@LuigiPirelli,您好我尝试使用Lwgeom插件解决类似的问题,但是在执行过程中它总是崩溃,因此我需要重新启动QGis。有什么办法可以解决这个问题?谢谢。
AlexFernándezPoulussen

1
没有更多的运行环境很难说。顺便说一句,自2014年以来,qgis中提供了更多的修复几何仪器。通常,lwgeom中的崩溃是已加载或共享的对象中的未对齐(脏安装)问题。您是否测试了其他工具?
路易吉·皮雷利

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

1
只是更新...自从那时以来,QGIS3.x就具有处理本机的固定几何算法,该算法是GEOS lwgeom MakeValid算法的包装。无需数据库。
路易吉·倍耐力


2

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.