You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从OpenStreetMap中提取street graph或street network?

从OpenStreetMap提取道路网络(Street Graph/Street Network)操作指南

一、可使用的工具推荐

根据你的技术栈、处理数据范围不同,可选四类工具:

  • OSMnx(Python库):最适合快速提取中小范围(城市级)路网的工具,封装了OSM数据调用、标签过滤、拓扑构建全流程,无需手动处理原始OSM数据格式,是做路网分析、路径规划的首选工具
  • Osmium Tool(命令行工具):适合处理大范围OSM原始数据,可快速完成大文件的标签过滤、区域裁剪,性能远高于Python脚本,适合批处理场景
  • QGIS(桌面端GIS软件):适合可视化操作需求,不需要写代码即可完成路网提取、拓扑校验、成果导出,适合非开发人员使用
  • Osm2pgsql + PostGIS(数据库工具链):适合处理国家/洲际级别的超大规模路网,可通过SQL灵活完成要素筛选、拓扑计算、自定义属性扩展,适合企业级生产场景

二、具体实现步骤

通用流程

不管用什么工具,提取路网的核心逻辑都是一致的:

  1. 确定提取范围:支持自定义坐标 bounding box、行政区域名称、自定义矢量边界三种范围定义方式
  2. 道路要素过滤:基于OSM的highway标签筛选符合需求的道路,常见的机动车路网保留标签包括motorway、trunk、primary、secondary、tertiary、residential、unclassified,不需要的步行道、自行车道、服务性道路可直接过滤
  3. 拓扑构建:关联OSM的路径(way)和节点(node)数据,处理路段连接关系、单行线属性、道路权重(长度/通行时间等)
  4. 数据清洗:去除孤立路段、拓扑错误、重复节点,导出为需要的格式(GraphML、Shapefile、GeoJSON等)

各工具实操示例

OSMnx 操作示例

  1. 安装:pip install osmnx
  2. 提取指定城市机动车路网代码示例:
import osmnx as ox
# 提取上海市机动车可通行路网
G = ox.graph_from_place("Shanghai, China", network_type="drive")
# 保存为保留完整拓扑的GraphML格式
ox.save_graphml(G, "shanghai_drive_network.graphml")
# 导出为Shapefile格式用于GIS软件打开
ox.save_graph_shapefile(G, filepath="./shanghai_road_network/")
  1. 常用network_type参数:drive(机动车路网)、walk(步行路网)、bike(骑行路网)、all(全类型道路)

Osmium Tool 操作示例

  1. 提前下载对应范围的OSM原始PBF格式文件
  2. 过滤道路要素命令:osmium tags-filter input.osm.pbf w/highway=motorway,trunk,primary,secondary,tertiary,residential -o road_only.osm.pbf
  3. 裁剪指定bbox范围路网命令:osmium extract -b 120.8,30.7,122.2,31.5 road_only.osm.pbf -o shanghai_road.osm.pbf

QGIS 操作示例

  1. 顶部菜单栏选择「矢量」->「OpenStreetMap」->「下载数据」,选择提取范围后下载OSM数据
  2. 在Processing工具箱搜索「Extract specific tags」工具,筛选highway标签符合要求的道路要素
  3. 搜索「Network from lines」工具,选择筛选后的道路图层,构建拓扑路网

三、注意事项

  • 标签筛选要匹配使用场景:如果做机动车路径规划,除了筛选道路类型,还要注意处理oneway(单行线)、access(通行权限)标签,避免把禁止机动车通行的路段纳入路网
  • 大范围数据不要调用公共API:提取省级以上路网时,不要直接用OSMnx的在线API下载,容易触发限流,建议先下载对应区域的完整PBF文件本地处理
  • 必须做拓扑校验:OSM是用户贡献的开源数据,存在少量路段断开、标签错标的问题,提取后要检查拓扑,删除度数为0的孤立节点、长度小于1米的异常路段
  • 坐标系统一:OSM原始数据默认是WGS84(EPSG:4326)地理坐标系,如果要计算道路长度、做空间分析,需要先投影到对应区域的平面坐标系,避免距离计算出现误差

内容的提问来源于stack exchange,提问作者ethicnology

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:36:02