Answers:
GRASS具有拓扑意识。您可以使用“处理”工具箱中的v.generalize来简化多边形,如果输入数据在拓扑上正确,则输出也将正确。
可以将其视为@Underdark答案的前提,在此之前,您可以在泛化之前清理矢量层的拓扑。GRASS具有v.clean函数,其中包含许多用于修复图层的工具,例如:
以及下图中显示的其他各种:
您还可以根据希望工具运行的敏感程度来设置阈值。我个人倾向于使用QGIS中的“ 检查几何有效性”功能(“ 矢量” >“ 几何工具” >“ 检查几何有效性”)来检查是否有任何错误,如果存在,请使用v.clean中的适当工具。消除错误后,您应该可以更好地进行概括。
希望这可以帮助!
您是否尝试过使用MapShaper?我发现这是概括多边形的一种好方法。如果您要下载代码,则还有一个离线版本。
另一种选择是将其转换为GeoJson,然后将TopoJson转换为支持“保留拓扑的形状简化”的https://github.com/mbostock/topojson
我只是做了一个快速测试,“矢量”菜单下的“简化几何”工具似乎尊重拓扑结构。我尝试了是否在“捕捉选项”下选中了“启用拓扑编辑”。是否尝试过?
编辑:这是直接在多边形文件上完成的-为什么您要先转换为线?