获取指定城市的路网数据(Python+Openstreetmap)

在物流或者交通领域,经常需要获取某个地区或城市的路网数据,但是没有接触过这方面的人一开始都会有点摸不着头脑,刚好今天帮室友处理了一下这个问题,借助AI的力量解决了,浅做记录也方便大家使用。

import osmnx as ox

# 设置城市名称和国家代码
city = "Caofeidian, China"

# 下载路网数据
graph = ox.graph_from_place(city, network_type='drive')

# # 检查边的标签
# edges = ox.graph_to_gdfs(graph, nodes=False)
# # 显示边的前几条记录以及所有列名
# print(edges.head())
# print(edges.columns)

# 指定保存的路径
filepath = "graph.gpkg"

# 保存图形为 GeoPackage
ox.save_graph_geopackage(graph, filepath=filepath)

其实逻辑是非常简单的,事实上最重要的是学会把Python当做一个工具去使用,能够解决生活和工作中很多问题,减少注册和访问若干奇奇怪怪的链接的可能。

需要提醒的是,使用一切函数前都记得先配置环境哈,装库是必须的,安装osmnx的命令如下:

pip install osmnx

### 使用 Python 操作 OpenStreetMap 数据或服务 #### 导入必要的库 为了操作 OpenStreetMap (OSM)数据和服务,`osmnx` 是一个非常有用的 Python 库。该库可以方便地下载、构建、分析和可视化基于 OSM 的街道网络和其他地理基础设施[^1]。 ```python import osmnx as ox ox.config(use_cache=True, log_console=True) ``` #### 下载地图数据 通过 `osmnx.geocode_to_gdf()` 函数可以根据地址获取相应的地理位置边界框,并返回 GeoDataFrame 对象。这有助于进一步处理特定区域的地图信息。 ```python place_name = "Piedmont, California, USA" gdf = ox.geocode_to_gdf(place_name) print(gdf) ``` #### 获取并绘制路网图 利用 `osmnx.graph_from_place()` 方法能够依据指定地点名称来提取道路网络结构;之后借助内置绘图功能展示这些路径节点及其连接情况。 ```python G = ox.graph_from_place(place_name, network_type='drive') fig, ax = ox.plot_graph(G) ``` #### 处理和保存图形文件 完成上述步骤后,还可以将生成的道路网络图像保存成不同格式的图片文档供后续分享交流之用。 ```python fig.savefig('road_network.png', dpi=600, bbox_inches='tight') ``` 除了以上介绍的功能外,`osmnx` 还支持更多高级特性如最短路径计算等复杂运算任务,适用于各类空间数据分析场景中的应用开发需求。 对于更广泛的 GIS 功能,则可能涉及到其他工具如 QGIS 中的相关插件来进行辅助工作,例如可以通过安装 QuickMapServices 和 OSMDownloader 插件,在桌面端更加便捷高效地管理和导出 OSM 数据集[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值