乐于分享
好东西不私藏

用QGIS下载区域实体轮廓矢量

用QGIS下载区域实体轮廓矢量

一、下载行政区划矢量图

第一步:登录进入天地图https://www.tianditu.gov.cn官网,点击右上角注册登录个人账号,无账号先简单注册即可。

第二步:进入服务中心首页点击【服务中心】,在页面上部选择【开始制作】,跳转至用户登录界面完成登录核验。

第三步:找到数据资源入口登录成功后,在页面菜单栏点击【数据资源】,选择行政区域可视化功能。根据需要选择“基础地理信息数据”或“行政区划可视化”。

第四步:选择区域一键下载在可视化界面,按需挑选全国、省份、地市或区县范围,选定后直接下载数据。下载的数据自带官方审图号(GS (2024) 0650),格式为 GeoJSON,权威正规可放心使用。

第五步:导入软件编辑使用将下载好的矢量边界数据,导入ArcGISQGISPS 等绘图 / GIS 软件,即可自由编辑、制图、做可视化图表。若需转为SHPSVG 等格式,可借助在线工具一键转换,操作超简单。

注意:Arcgis等软件无法识别天地图网站下载的数据,需要转换后才可以导入编辑。

二、下载市政轮廓切片
基于天地图的电子地图,对电子地图中的建筑轮廓数据进行颜色采样
第一步:加载天地图。打开QGIS[英文版应通过“Settings”菜单-Options-General-User interface translation设置成简体中文],在QGIS插件管理器中搜索“TianDiTu tools”安装插件,用天地图的插件加载天地图电子地图。

插件“TianDiTu tools”安装完成之后,会出现相应的工具条,再配置天地图key(浏览端应用),然后添加【天地图-矢量地图】图层。具体key的申请,可访问:http://lbs.tianditu.gov.cn/server/MapService.html;

当然,也可以通过url,以WMTS服务的形式把地图加载进来。URL为你需要加载的地图对应连接数据添加参数,在参数栏写tk(应用类型为浏览端),再加载在线地图,可动态缩放到已有图层位置。
请求示例:
(1)元数据查询,通过添加WMTS服务器实现。
http://t0.tianditu.gov.cn/img_w/wmts?request=GetCapabilities&service=wmts
(2)地图瓦片获取,通过QGis自定义在线天地图-矢量图实现。

墨卡托投影矢量图:https://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&LAYER=vec&STYLE=default&FORMAT=tiles&TILEMATRIXSET=w&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=4267820f43926eaf808d61dc07269beb

墨卡托投影标记:https://t0.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&LAYER=cva&STYLE=default&FORMAT=tiles&TILEMATRIXSET=w&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=4267820f43926eaf808d61dc07269beb

或者自定义:http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={x}&TILECOL={y}&tk=您的密钥

如果直接用上述地址(如http://t0.tianditu.gov.cn/vec_c/wmts),则接入的在线地图是偏移的,要实现不偏移只要在地址/wmts加上esri表示即可,如链接http://t0.tianditu.gov.cn/vec_c/esri/wmts,如构建不同地理类型地图,只要将其中vec_c替换成上述表中相应的图层类型(红色)即可。

矢量地理坐标:

底图:http://t0.tianditu.gov.cn/vec_c/esri/wmts

注记:http://t0.tianditu.gov.cn/cva_c/esri/wmts

影像地理坐标

底图:http://t0.tianditu.gov.cn/img_c/esri/wmts

注记:http://t0.tianditu.gov.cn/cia_c/esri/wmts

地形地理坐标

底图:http://t0.tianditu.gov.cn/ter_c/esri/wmts

注记:http://t0.tianditu.gov.cn/cta_c/esri/wmts

第二步:符号化设置。右键点击【天地图-矢量地图】图层,选择属性界面,切换到符号化界面,再设置一下他的伽玛值,滑到最左即可,这样做的目的是方便我们更容易区分建筑和其他地图元素,最后点击应用即可;接着,我们可以看到整体地图的配色就发生变化了,建筑的颜色变成偏绿的效果了。同时,将波段渲染类型改为“单波段灰度”波段选择“绿色”,从而实现颜色“8位灰度”变化。
第三步:构建提取区域。在QGIS中添加【提取区域.shp】图层和【谷歌影像】,并设置好红线样式。或者,使用QGIS新建形状文件图层,确定区域,或者用确定影像的覆盖顺序,把边框图层放置在最后使之不可见,也可以关闭掉下载边界的图层。

QGIS导出图片出图范围提供了『 6 』种导出范围的界定: ① 按照工程文件坐标系四至范围确定边界;如果坐标系是地理坐标系(例如4326)则是经纬度;如果是投影坐标系(如3857)则投影坐标系单位。 ② 根据图层范围确定边界;③ 以布局中地图范围确定边界;④ 以书签范围导出;⑤ 当前地图区域显示窗口为界(QGIS默认出图范围);⑥ 画一个临时窗口为界。 本文主要阐述②(图层范围)的出图方法,当然④、⑤、⑥也会做简单的演示。

第四步:确定出图比例。怎样才能导出更高清的影像呢,也很简单,那就是改变出图的比例即可。① 在QGIS状态栏将比例尺调整为我们需要的比例,或者将鼠标移动到地图窗口缩放到合适的尺度;② 拾取到【出图设置】中,即可改变最后影像的出图比例;③随后选择出图范围。总结起来就是,【导出界面】的出图比例并不影响输出图像的比例,实际的出图比例是由状态栏的显示比例所影响的。

QGIS里有一个自带的小面板,可以在“视图-面板-切片比例面板”中直接看和调瓦片缩放级别。打开后,画面上会出现一个和瓦片等级相关的比例控制。可以把它调到18级附近,再观察当前在线影像的清晰度。

第五步:切片地图导出图像。天地图加载进来后,选择需要提取建筑轮廓的区域,这里需要注意的是,区域不要过大,区域过大,处理的时间就越久。接着选择菜单栏下 【 Projects 】>>【 Import/Export 】>>【 Export map to Image 】

 (虽然叫天地图矢量图像,但本质是服务器端渲染使用矢量数据制作的切片图片,在客服端显示而已,并不是矢量。)

第六步:切片图像导出栅格文件。将刚导出的切片图像文件导入图层,设置对应的源坐标系,然后找到并打开影像导出窗口:右键导出-另存为Save As…,将栅格图层另存。如果项目坐标系是经纬度坐标系,分辨率单位通常是“度”,如果是投影坐标系,分辨率单位通常是“米”。可以在弹出的窗体中,按照下图中标红CRS:WGS84经纬坐标系进行设置,参考系EPSG为3857-WGS84,对应经纬“度”。分辨率是按照地图单位进行设置的,即:一个像素代表的实际尺寸,也可以通过下面的行列进行像素值设定。如果提示“不能写入栅格。代码错误:目标提供程序。”,表示输出文件夹不存在或无效,应改变文件夹位置或具体.TIFF文件名称。如果把矢量经度当成米会引致裁剪出黑块,应统一目标CRS后裁剪。一般估算,第18级在赤道附近大约是0.6米/像素。
保存文件的名称通常与栅格数据文件的名称相同,但其后缀名是在栅格数据文件的后缀名后加上字母“w”,如“jpgw”、“tifw”、“tiffw”和“pngw”等。

左:下载的天地图矢量图像;右边:放大后

三、栅格二值化
第一步:导入上述处理后的地图,点击菜单“视图”通过“识别要素”功能拾取属性,获取栅格文件的色分带波段值,如下:
这个值很重要,一定要记住,一会做栅格二值化的时候会用到,主要有4个Band,表示RGBA;
第二步:接着我们在菜单“数据处理”的“工具箱”中点击“栅格分析”下的【Raster calculator】栅格计算器;接着在弹框中,设置【Input layers】输入图层(待处理图层),然后设置输出范围(默认从图层计算即可),以及输出CRS,选择EPSG:3857,最后设置相应的输出路径;
第三步:添加第二行这个Expression表达式,点击表达式,在弹出窗中,按照上述咱们获取的RGB值进行过滤,目的是只过滤出建筑轮廓,这里需要注意的是,图层后面都会有一个@符号,后面跟1、2、3,1表示R,2表示G,3表示B,A不用关注,然后再把相应的值对上即可,最后通过and(并)的方式构建条件语句;
最后点击确定退出编辑,再点运行run执行,我们就获取到了只包含建筑数据的栅格二值化的灰度图,如下:
四、栅格输出矢量shp
第一步:就需要把栅格图转成矢量数据了,点击工具箱中“GDAL”下的“栅格转换”中的“栅格转矢量”工具,如下图:
在弹窗中选择刚才输出的二值化数据,设置输出路径,即可完成建筑矢量shp数据的输出;
第二步:数据美化。输出之后的shp数据,会有一个大的范围底面,我们只需要通过编辑,将相应的底面删除即可,这里不再赘述,这里需要着重说的一个点是,导出的数据有些轮廓的锯齿感很明显,这个时候需要对数据进行简化平滑处理,消除多余的锯齿。
点击工具箱,在工具箱中“矢量几何图形【Vector geometry】”中找到“通过最大距离分段”【Simplify】化简按钮,如下图:
点击化简,在弹窗选择刚刚输出的shp数据,设置相应的输出路径,其他参数默认即可,最终完成相应的数据化简;
至此,就完成了整个建筑轮廓的提取,整体精度是相当高的。