qgis修复拓扑错误_QGIS|三步拥有全国县级行政区划

“天地图”(http://www.tianditu.gov.cn)是我国自然资源部直属的国家基础地理信息中心建设的国家地理信息公共服务平台,以多种形式面向社会和公众提供地图与地理信息服务。

除提供常规的瓦片地图服务以外,“天地图”还以WFS(网络要素服务)的形式,提供了一类名为“数据API”的服务(http://lbs.tianditu.gov.cn/data/dataapi.html),其中包含了2017年县级行政区划界线,对于需要以行政区划为单位做数据分析的同学来说,这无疑是一个权威的底图来源。

但是,直接下载的行政区划数据存在部分县级区划被图幅拆分的情况,无法直接挂接属性表,需要做进一步处理。

本文使用QGIS 3.10演示从“天地图”数据服务下载县级行政区划,并对其进行数据融合、拓扑检查和修正,通过三大步骤,得到可以挂接属性表的行政区划底图。

 01 

数据下载

打开QGIS,在【浏览】面板右键单击【wfs】节点,选择【新建连接】,设置名称 “天地图”,URL填写:http://gisserver.tianditu.gov.cn/TDTService/wfs。

f3392e925fc9fec84d732f7e910b32dd.png

展开【wfs】->“天地图”节点,可以看到共有10个图层,行政区划线和面图层分别为“BOUL”和“BOUA”。右键点击这两个图层,从弹出菜单选择【导出图层】->【到文件…】,打开【矢量图层另存为…】对话框。

eb9404a7ed529b8d1b40987c05878044.png

设置文件存储路径和名称,其他参数保持默认,点击【OK】按钮,将图层下载到本地。这个过程根据网络状况可能需要几分钟,网络状况不好的朋友,可以关注本公众号,后台发送“天地图”获取已经下载好的GeoPackage格式数据。

f8bb7808bc2897c1d98e9ff885b4e6f0.png

下载完成后,点击【数据源管理器】工具栏的【打开数据源管理器】按钮,切换到【矢量】标签页,选择文件型数据源,浏览到下载的GeoPackage文件,将“BOUA”和“BOUL”图层添加到地图窗口中。

88dbf9f0a6275428e4631d9349992b7c.png

右键点击行政区划面图层“tianditu BOUA”,查看图层属性,可以看到该图层共包含6175个要素。

25c43acf33a9eafafdebad7bb31cc3f3.png

  02 

数据融合

仔细观察所得到的县级行政区划,共包含6个属性字段,“PAC”为6位行政区划代码,“NAME”为行政区划名称。

695bfe82e141393376d20bd643ab84f2.png

有些区划被分成了几个部分,导致政区代码和名称不唯一,无法挂接属性数据。

659de6f70dcbfa5ba3322c274c22855e.png

使用QGIS的数据融合(Dissolve)功能可以根据属性字段合并要素,即具有相同行政区划代码或者名称的要素将被合并。

点击菜单【矢量】->【地学数据处理工具】->【融合(dissolve)…】,直接对下载到的县级行政区划做融合,发现融合失败,提示图层中存在无效的几何图形,无法做数据融合,所以,首先要进行几何图形修正。

8e60a1ddbc69dfe81c13c17d6aceda48.png

点击菜单【处理】->【工具箱】,在右侧打开【处理工具箱】面板。

091488a31276090b520672e114341406.png

在搜索框中输入“fix”,找到【矢量几何图形】->【修正几何图形】,双击运行该工具。

cebff16db9b96e83dcf5aa1f33db9972.png

在【修正几何图形】对话框中,【输入图层】选择“tianditu BOUA”,确保勾选下方的“执行算法后打开输出文件”,点击【运行】按钮,开始修正几何图形。

6223bed246e4cf89c49041972e2068bd.png

算法运行结束后,点击【Close】按钮关闭对话框,回到QGIS主窗口,可以看到【图层】面板中增加了新图层“已修正几何图形”。

d4fcc7c6ce56dd7691f2696f19d49ddd.png

点击菜单【矢量】->【地学数据处理工具】->【融合(dissolve)…】,打开融合对话框。

e47d795b58278e62e8dd6260f3a17731.png

设置【输入图层】为“已修正几何图形”,点击【融合字段】右侧的【…】按钮,在弹出对话框中勾选字段“PAC”。其他参数保持默认,点击【运行】按钮,开始执行融合。

abea7f5594f76d7ef5cccb787b9898b9.png

等待算法执行完成后,点击【Close】关闭对话框,返回QGIS地图窗口。可以看到【图层】面板中增加了新图层“融合后”。

b9a3426df1c7fca689aa4bbeb715ff07.png

检查融合后的数据,发现具有相同行政区划代码的要素已经合并,但出现了少量悬挂线,有些多边形的共用边也没有正确擦除,这是由于原始数据中图幅分隔线与行政区划之间存在拓扑问题造成的。

ded8144b18c74d238988841287d840bb.png

  03 

拓扑检查和修复

接下来,我们将利用QGIS的拓扑检查工具,对融合后的行政区划做数据修正。

为了便于操作,先将融合后的临时图层保存到文件中。右键点击临时图层“融合后”,在弹出菜单中选择【导出】->【另存要素为…】,打开【保存草图图层】对话框。

设置保存格式为“GeoPackage”,选择存储路径并输入文件名“dissolve.gpkg”,点击【OK】按钮。

8f6dc1356bb185a0f8349dcabe757613.png

删除临时图层“融合后”,打开保存的行政区划图层,并将其设置为可编辑。

1c84eb0b0ae3596eb882860775810fc4.png

接下来启用拓扑检查插件。点击菜单【插件】->【管理并安装插件】,打开插件管理对话框。拓扑结构检查插件为核心插件,默认已经安装,只需切换到【已安装】标签页,找到【拓扑结构检查器】,勾选启用。

5eb3644c7e87071eb8e49680d0a48737.png

在工具栏点击【拓扑结构检查器】按钮,打开【拓扑检查面板】。

4580f4956a1536b5cb5a390faf6f6666.png

点击【拓扑检查面板】工具栏中【配置】按钮,设置拓扑规则。图层下拉框中选择“Dissolve 天地图县界”,规则选择“不允许有空隙”,点击【添加规则】按钮,将该规则添加到列表中。如下图:

28099ed174520b257d37c4d49988de51.png

点击【验证范围】按钮,检查当前地图可视范围内的拓扑情况。可以看到,根据设置的规则,当前窗口范围存在3个拓扑错误,以红色高亮显示在地图窗口中。也可以点击【全部验证】按钮,验证整个图层的拓扑结构。注意,如果图层要素过多,将会消耗比较长的时间。

d344a27e4ba46ae2e358fd0f65f3abce.png

单击拓扑错误列表的条目,地图窗口将放大居中显示该条错误对应的图形。

b1cd669b6aa7b0e7d86270b87198b8ef.png

面图层间隙的产生大多数是由于共用边的顶点没有完全重合导致,因此,只要保证共用顶点完全重合即可消除间隙。点击【捕捉】工具栏上的【启用捕捉】按钮,然后点击【数字化】工具栏的【顶点工具(当前图层)】。

56793ee995681f401be48ac8ad08e224.png

鼠标左键点击要编辑的顶点,移动到需要的位置,在此过程中,如果鼠标靠近其他顶点,将会显示为粉色,表示捕捉到该点。若要将点移动到捕捉位置,只需要单击鼠标即可。开启捕捉后,可以保证顶点完全重合。

5d27227e9ae5b5d28ae41773f39f44a4.png

逐个移动顶点到完全重合,点击【验证范围】按钮,检查当前范围的拓扑结构是否正确,直至完全消除该拓扑错误。

899a4bbf3623dcabf7c2b465b340e7c1.png

用同样步骤设置其他的拓扑规则,检查图层,并编辑图层以修正拓扑错误,得到可以挂接县级行政区划属性数据的基础地图。

吴建玲

2020年9月07日


【往期精品】

使用QGIS批量打包天地图WFS图层

浅谈XYZTiles


版权声明

本文欢迎转载,转载时请注明出处。

975ad2af75bc692777b4d9f3a507d4d2.png

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值