You need to enable JavaScript to run this app. 使用Python的OSMNX包获取美国驾车路网报错是什么原因?
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的OSMNX包获取美国驾车路网报错是什么原因?

OSMNX获取美国全境路网报错原因解析

第一个报错原因(无Shapely几何对象)

运行代码:

import osmnx as ox
EU1=ox.graph_from_place('United States', network_type='drive')

触发ValueError: No Shapely geometry can be created from null value的原因:

  • graph_from_place依赖OSM的Nominatim地理编码服务查询地名对应的边界几何,搜索「United States」时默认返回的第一条结果未携带有效可解析的面域几何,或是接口返回为空,无法生成Shapely对象触发报错。

第二个报错原因(几何类型不匹配)

调整后代码:

EU1=ox.graph_from_place('United States', network_type='drive', which_result=2)

触发TypeError: Geometry must be a shapely Polygon or MultiPolygon的原因:

  • 指定which_result=2后返回的第二条搜索结果,几何类型不符合OSMNX的要求,不是多边形或多面类型,可能是点、线等其他几何类型,未通过OSMNX的参数校验。

补充说明

美国全境的驾车路网数据量极大,直接请求全境数据本身就不现实,就算几何参数正确,也会大概率出现请求超时、内存溢出、OSM接口限流等问题。如果确实需要美国范围的路网,推荐两种方案:

  • 按行政区分块拉取后合并:逐个拉取各州的路网,再使用ox.compose_graphs函数合并为全图
  • 过滤低等级道路减少数据量:通过custom_filter参数仅保留高速、国道等高等级道路,降低请求和处理压力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 18:24:03