在维护QGIS拓扑的同时对多边形文件进行泛化?


35

我有一个多边形Shapefile,需要对其进行概括。如何将poligon泛化,并确保没有诸如“条子”之类的拓扑错误。

我已经尝试过:

  1. 矢量->几何工具->多边形到线
  2. 矢量->几何工具->简单的几何...在这里我已经可以在屏幕上看到,但是我正在产生重叠和间隙,现在我尝试
  3. 矢量->几何工具->到线条的线

此处程序显示错误并崩溃

在此处输入图片说明


关于这个问题有什么消息吗?
Oystein

不幸的是:否
Kurt

Answers:


16

GRASS具有拓扑意识。您可以使用“处理”工具箱中的v.generalize来简化多边形,如果输入数据在拓扑上正确,则输出也将正确。

在此处输入图片说明


使用Windows安装程序,当我尝试运行v.generalize时出现错误(缺少依赖项)。是否需要特殊配置?
Kurt 2014年

@Kurt:独立安装程序?不知道它包括哪个GRASS版本。在处理设置中,您可以指定GRASS 6.x或7.x以及其安装位置。尝试根据您的设置调整这些配置。
昏暗

是的,我使用stanalone安装程序。根据您的建议,我通过处理选项停用了grass 7,并正确配置了qrass 6的路径。此路径不正确,这是旧版qgis的遗留物。现在我可以运行v.generalize,但是最后我得到一个新错误:无法打开输出层,最后消息说草似乎已正确安装和配置。你能给我任何建议或提示吗?
Kurt 2014年

通常,此错误表示地理处理在某个阶段失败。您必须检查在工具运行时生成的日志,以查看错误发生的位置。
昏暗

7

可以将其视为@Underdark答案的前提,在此之前,您可以泛化之前清理矢量层的拓扑。GRASS具有v.clean函数,其中包含许多用于修复图层的工具,例如:

  • 哪些“捕捉”线捕捉到最近的顶点
  • rmdangle消除了任何令人讨厌的悬挂
  • rmdupl删除重复的几何特征

以及下图中显示的其他各种:

v。清洁

您还可以根据希望工具运行的敏感程度来设置阈值。我个人倾向于使用QGIS中的“ 检查几何有效性”功能(“ 矢量” >“ 几何工具” >“ 检查几何有效性”)来检查是否有任何错误,如果存在,请使用v.clean中的适当工具。消除错误后,您应该可以更好地进行概括。

希望这可以帮助!


3
如果简单的顶点缩减就足够了,那么v.generalize就没有必要了,因为修剪工具可以做到这一点。
Gabor Farkas 2014年

感谢您对@Underdark的回答的初步了解,其中包含有价值的信息。尽管我没有明确说出来,但是我想归纳的多边形文件在拓扑上当然是干净的。垃圾-垃圾清除:-)]
Kurt

@Kurt,这很有意义:)
Joseph

2

您是否尝试过使用MapShaper?我发现这是概括多边形的一种好方法。如果您要下载代码,则还有一个离线版本。

另一种选择是将其转换为GeoJson,然后将TopoJson转换为支持“保留拓扑的形状简化”的https://github.com/mbostock/topojson


尝试过Mapshaper,它确实是一个很棒的工具
Kurt

1
另一则评论:正如标题所述:我正在寻找qgis的解决方案。Mapshaper恕我直言,它不保留拓扑(通过进行非常强大的概括来证明自己!)。Topojson:这是一堆javascript源代码,仅对程序员有用,恕我直言
Kurt

哎呀,错过了QGIS的唯一方面。QGIS确实可以处理geojson。我想知道将topojson简化功能集成到QGIS插件中以使非程序员可以访问它是否有意义
djq 2014年

我继续题外话:OpenJUMP为此目的提供了一个工具“ Simplify Polygon Coverage”。
user30184 2014年

0

我只是做了一个快速测试,“矢量”菜单下的“简化几何”工具似乎尊重拓扑结构。我尝试了是否在“捕捉选项”下选中了“启用拓扑编辑”。是否尝试过?

编辑:这是直接在多边形文件上完成的-为什么您要先转换为线?


嗨,达伦(Darren),谢谢您的提示,我将尝试使用enablr拓扑编辑
Kurt

1
嗨,达伦,恕我直言,它不尊重拓扑结构。与“启用拓扑编辑”没有区别。我想这是因为概括会生成一个层,而“启用拓扑编辑”似乎仅适用于选定的现有层。您能否进行非常强大的通用化,然后再次检查(如果您现在具有正确的拓扑)?谢谢
库尔特(Kurt)

1
库尔特 有趣。进行强大的概括时,看起来您是对的!抱歉!
达伦·科普

1
如果任何人都可以搜索,此复选框在QGIS 2.2(可能更早)中已消失。
lynxlynxlynx 2014年

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.