使用QGIS实现道路分级可视化

本文详细介绍了如何使用QGIS将城市道路按等级(如高速公路、国道、主干道等)进行颜色分级的可视化,通过数据预处理、设置线型符号、处理转弯和端点、解决压盖和交叉口问题,最终模拟高德地图的路网风格。教程以郑州城市道路为例,提供了一步一步的操作指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我国的公路按照行政级别可分为国道、省道、县道、乡道、村道和专用公路六个等级,其中,国道包括国家高速公路和普通国道,省道包括省级高速公路和普通省道。按照技术等级又可以分为高速公路、一级公路、二级公路、三级公路和四级公路五个等级。其中,高速公路以外的其他公路称为普通公路。(GBT 917-2017)

 

对于城市道路,依据《城市道路交通规划设计规范》(GB50220-95)和《城市道路设计规范》(CJJ37-90)进行等级划分,一般分为快速路、主干道、次干道和支路4级。

 

如何将这些道路等级可视化,形成电子地图的骨架呢?本文以郑州城市道路为例,使用QGIS颜色道路分级可视化的过程。

 

 01 示范数据

 

本文选用OpenStreetMap下载的部分郑州区域道路为例,依照高德地图路网的风格演示道路分级可视化的过程。示范数据网盘地址为:

 

链接: https://pan.baidu.com/s/12_SIwK7dAAmDknZ1Ot-RGA 

提取码: k9w4 

 

 02  数据预处理

 

  • 打开数据

 

启动QGIS,点击工具栏的【添加矢量图层】按钮,在对话框中 【矢量】标签->【源】->【矢量数据源】右侧的【…】浏览到下载的OSM-zhengzhou.gpkg文件,点击下方的【添加】按钮,选中“lines”和“polygons”两个图层,点击【OK】添加到地图窗口。

 

 

 关闭数据源管理器,回到地图主窗口,可以看到示范数据如下:

 

 

在图层面板取消勾选“polygons”,暂时隐藏面图层。点击 【打开图层样式面板】按钮,打开图层样式面板。

 

 

  • 道路分级

 

双击规则列表中“未过滤”或者选中后点击下方的 【编辑当前规则】按钮,进入编辑规则面板:

 

 

 

在【标注】填入规则名称,此处为“高速公路”,点击【过滤器】右侧的 

### QGIS 中获取或处理中国全国范围内的路网数据 #### 数据源的选择 对于中国范围内路网数据的获取,可以利用开源平台 OpenStreetMap (OSM)[^1]。该平台提供了详尽的地图信息以及丰富的属性描述,适用于各种地理信息系统(GIS)的应用场景。 #### 下载并准备路网数据 为了便于操作和提高效率,建议下载特定地区的压缩包形式的 OSM 文件而不是整个中国的数据集。可以从专门提供按国家和地区划分好的 OSM 数据镜像站点下载所需的湖南或其他省份的数据文件。 #### 导入到 QGIS 并进行初步处理 一旦获得了合适的 OSM 路网数据文件(.osm),下一步是在 QGIS 中导入此文件。由于原始 .osm 格式的兼容性和性能考虑,通常先将其转换为更易于 GIS 处理的形式如 Shapefile (.shp) 或 GeoPackage (.gpkg)[^2]。这一步骤可以通过在线工具完成,之后再加载至 QGIS 进行进一步的操作。 #### 使用插件简化流程 QGIS 提供了多个用于直接访问 OSM 的插件,例如 QuickOSM 和 osmDownloader 插件可以帮助快速定位兴趣区,并自动执行从查询、下载直至加载的一系列动作。这类插件极大地提高了工作效率,减少了手动干预的需求。 #### 矢量数据分析——以湖南省为例的空间裁剪 当面对覆盖较大地域的数据时,可能只需要其中一部分作为研究对象。这时就可以采用矢量数据裁剪技术来提取目标区域的信息。具体来说,在拥有全国性的路网图层基础上,通过叠加行政区划边界(如省级行政界线),仅保留位于所选省内部的道路要素形成新的子集。 ```python import geopandas as gpd from shapely.geometry import Polygon, Point # 假设已经读取了两个 shapefile 文件为中国路网与中国各省边界 roads = gpd.read_file('path_to_roads.shp') provinces = gpd.read_file('path_to_provinces_boundary.shp') # 找到湖南省对应的几何图形 hunan_polygon = provinces[provinces['name'] == 'Hunan'].geometry.iloc[0] # 对于每条道路判断其是否完全/部分落在湖南省内 clipped_roads = roads.loc[roads.intersects(hunan_polygon)] # 将结果保存为新shapefile clipped_roads.to_file(driver='ESRI Shapefile', filename="hunan_road_network.shp") ``` 上述 Python 代码片段展示了如何基于 `geopandas` 库实现对中国某省(这里假设为湖南)境内路段的选择与导出功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值