当前位置: 首页 > news >正文

保姆级教程:用QGIS 3.34处理OpenStreetMap中国路网数据,从下载.shp到筛选出城市道路

零基础实战:用QGIS 3.34精准提取中国城市路网数据全流程

当你第一次面对OpenStreetMap的海量数据时,是否曾被复杂的文件格式和GIS软件的操作界面劝退?作为城市规划专业的在读研究生,我曾经花了整整两周时间摸索如何从OSM中提取成都二环内的主干道路数据。本文将分享我通过多次实践总结出的完整避坑指南,从数据下载到最终导出,每个步骤都经过实测验证。

1. 前期准备与环境配置

在开始操作前,我们需要做好以下准备工作。首先确保你的电脑满足以下基础配置:

  • 操作系统:Windows 10/11或macOS 10.15+
  • 内存:建议8GB以上
  • 存储空间:至少10GB可用空间(中国省级SHP文件解压后可能占用较大空间)

必备软件安装

  1. QGIS 3.34长期稳定版(建议从官网直接下载)
  2. 7-Zip或WinRAR解压工具
  3. 文本编辑器(如VS Code或Notepad++,用于查看文件编码)

注意:QGIS安装时务必勾选"添加到系统PATH"选项,这会影响后续某些插件的正常运行。

针对中国用户常见的中文路径问题,建议:

  • 为项目创建全英文路径的专用文件夹(如D:/OSM_China_Roads
  • 关闭Windows的"隐藏已知文件扩展名"选项(方便查看完整文件名)
# 推荐的项目目录结构 OSM_China_Roads/ ├── raw_data/ # 存放原始下载文件 ├── processed/ # 处理后的数据 └── temp/ # 临时文件

2. 获取中国路网原始数据

OpenStreetMap提供了多种数据获取方式,但对于中国路网数据,Geofabrik是最稳定可靠的来源。以下是详细步骤:

  1. 访问Geofabrik中国数据页面:https://download.geofabrik.de/asia/china.html
  2. 找到对应省份的SHP格式链接(如四川省为sichuan-latest-free.shp.zip
  3. 使用下载工具(如IDM)获取文件,速度会比浏览器直接下载更快

下载完成后,你会得到一个ZIP压缩包,解压后应包含以下关键文件:

文件类型作用是否必需
.shp主形状文件
.shx形状索引文件
.dbf属性数据表
.prj坐标系统信息
.cpg编码声明文件处理中文时需要

常见问题:如果解压后缺少.cpg文件,可能导致中文字段显示乱码。解决方法是用文本编辑器创建同名的.cpg文件,内容写入UTF-8GBK并保存。

3. QGIS中的数据处理全流程

启动QGIS后,按照以下步骤导入并处理数据:

3.1 数据导入与初步筛选

  1. 点击"图层"→"添加图层"→"添加矢量图层"
  2. 选择解压后的gis_osm_roads_free_1.shp文件
  3. 右键图层选择"属性"→"符号系统",将渲染类型改为"分类",值字段选"fclass"

此时你会看到各种道路类型的分类显示。中国城市道路主要关注以下几类:

  • primary:城市主干道(如成都的人民南路)
  • secondary:次干道
  • tertiary:支路
  • trunk:快速路/高架路
  • motorway:高速公路
# 使用QGIS Python控制台快速筛选特定类型道路 layer = iface.activeLayer() selection = layer.getFeatures(QgsFeatureRequest().setFilterExpression('"fclass" IN (\'primary\',\'secondary\')')) layer.selectByIds([s.id() for s in selection])

3.2 空间范围精确裁剪

如果需要特定城市或区域的数据,可以使用以下两种方法:

方法一:按矩形范围裁剪

  1. 点击"处理工具箱"(Ctrl+Alt+T)
  2. 搜索"按范围裁剪矢量图层"
  3. 设置目标范围(可在地图上绘制或输入坐标)

方法二:按行政区划边界裁剪

  1. 从民政部官网获取行政区划SHP文件
  2. 使用"矢量"→"地理处理工具"→"相交"
  3. 选择道路图层和行政区划图层

实用技巧:在"项目"→"属性"中设置项目坐标系为"GCJ-02 / EPSG:4490",这是中国官方使用的加密坐标系,能更好匹配国内地图服务。

4. 数据优化与导出

处理后的数据通常需要进一步优化才能用于实际项目:

4.1 属性表精简

右键图层选择"属性"→"字段",隐藏不需要的列(如osm_id、name_1等),保留关键字段:

保留字段说明
fclass道路等级
name道路名称
oneway单行道标识
maxspeed限速信息
lanes车道数

4.2 拓扑检查与修复

  1. 安装"Topology Checker"插件
  2. 检查道路网络中的悬挂节点、重叠线段等问题
  3. 使用"节点工具"手动修复或运行自动修复算法
# 拓扑检查后的自动简化处理 processing.run("native:simplifygeometries", { 'INPUT': layer, 'METHOD': 0, # 道格拉斯-普克算法 'TOLERANCE': 0.0001, 'OUTPUT': 'memory:Simplified' })

4.3 最终导出设置

点击右键选择"导出"→"另存要素为",关键参数设置:

  • 格式:GeoPackage(推荐)或Shapefile
  • 坐标系:根据需求选择(WGS84 EPSG:4326或CGCS2000 EPSG:4490)
  • 编码:UTF-8(确保中文支持)
  • 几何图形类型:保持为"自动检测"

5. 进阶技巧与性能优化

当处理大型城市路网时,可能会遇到性能问题。以下是几个提升效率的方法:

空间索引创建

-- 在GeoPackage中创建空间索引 CREATE TABLE rtree_roads_geom ( id INTEGER PRIMARY KEY, minx FLOAT, maxx FLOAT, miny FLOAT, maxy FLOAT );

数据分块处理策略

  1. 使用"矢量"→"研究工具"→"创建网格"生成处理网格
  2. 按网格分块处理后再合并

QGIS性能设置调整

  • 编辑→选项→渲染
    • 勾选"使用渲染缓存"
    • 设置"最大缓存大小"为200MB以上
  • 项目→属性→数据源
    • 启用"连接池"并设置适当大小

在处理成都全市路网数据时,通过上述优化方法,我的处理时间从原来的45分钟缩短到了12分钟。特别是在使用空间索引后,属性查询速度提升了近8倍。

http://www.jsqmd.com/news/519617/

相关文章:

  • 零基础入行私密行业,选北京守嘉生殖健康咨询培训,线上轻松学 - 品牌排行榜单
  • [AGC016D] XOR Replace
  • 质谱基础与蛋白质组学:MALDI-TOF、ESI-MS/MS——肽段鉴定与定量的原理
  • 人社部生殖健康咨询技术培训,北京守嘉职业技能,私密行业持证上岗首选 - 品牌排行榜单
  • 蛋白质鉴定算法:从数据库搜索到从头测序,Mascot、SEQUEST、MaxQuant的工作机制
  • 2026更新版!9个AI论文网站测评:本科生毕业论文写作必备工具推荐
  • 【前沿解析】2026年3月22日:AI视频生成工业化与国产大模型效率革命的双重突破——从小云雀短剧Agent到小米MiMo-V2的范式转移
  • 不用Chrome也能用Vue DevTools:Edge浏览器专属配置指南
  • Python数据分析/机器学习中的内存陷阱:用pandas处理大数据时如何避免OOM(附memory_profiler使用技巧)
  • 2026 AI 新局:从“数字员工”到自主智能体,Golang 如何构建企业级 AI 治理基石
  • 定量蛋白质组学:iTRAQ、TMT、SILAC与标记-free方法的统计分析与比较
  • layuimini模板的快速浏览方法
  • 真心不骗你!AI论文网站 千笔写作工具 VS PaperRed,专为论文写作全流程设计
  • 计算机毕业设计 java 疫情防控形势下的高校食堂订餐管理系统 SpringBoot 高校食堂疫情防控订餐系统 JavaWeb 疫情期间高校餐饮订餐管理平台
  • openclaw安装skills - Leonardo
  • 对比一圈后!全领域适配的AI论文软件 —— 千笔·专业论文写作工具
  • 翻译后修饰组学:磷酸化、糖基化、泛素化修饰的富集与鉴定技术
  • 力扣打卡——螺旋矩阵、旋转图像
  • 微信可以用龙虾了!LobsterAI有道龙虾成国内首批接入微信“桌面级Agent”
  • 生殖健康咨询师培训哪家好?北京守嘉职业技能权威认证,线上易学易考 - 品牌排行榜单
  • 给宇树Go2机器人装‘眼睛’:在Jetson Orin Nano上从零部署YOLOv5的保姆级避坑实录
  • 计算机毕业设计 java 疫情期间社区人员流动系统 基于 SpringBoot 的社区疫情人员流动管理平台 JavaWeb 疫情期间社区人员出入登记系统
  • Hive中的排序与分桶技术详解
  • AI 在工作中的一些使用
  • 大数据领域HBase的高可用架构设计
  • 推荐系统召回算法实战:从协同过滤到YouTube深度学习,5种方法对比与选型指南
  • 蛋白质相互作用网络:亲和纯化质谱、酵母双杂交与计算方法预测
  • 代谢组学数据处理:峰提取、注释、统计分析与代谢通路富集
  • 47mt视角下考虑火蓄深度调峰的电网经济运行优化之旅
  • 探索numpy库:从基础到高级操作的详细指南