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

使用OSMnx提取佛兰德斯骑行节点网络:仅获节点问题求助

解决方案

问题根源

你用ox.geometries_from_place仅拿到节点数据,主要有两个原因:

  1. 默认查询模板未递归获取关系/路径的子元素(对应Overpass里的>; out skel qt逻辑),无法完整拉取网络拓扑;
  2. Nominatim返回的区域边界可能和你在Overpass Turbo中使用的边界不完全匹配,导致查询范围存在差异。

解决方法:使用自定义Overpass查询直接调用

既然你已经在Overpass Turbo中成功获取到目标数据,直接将该查询移植到OSMnx中,用ox.geometries_from_overpass执行即可,这样能完全复现Turbo中的查询逻辑和范围。

示例代码

import osmnx as ox

# 替换成你在Overpass Turbo中验证过的查询语句
overpass_query = """
[out:json][timeout:25];
# 精准匹配鲁汶的区域边界,避免Nominatim的歧义匹配
area["name"="Leuven"]["admin_level"="8"]->.searchArea;
# 同时查询节点、路径、关系三种元素
(
  node["network:type"="node_network"](area.searchArea);
  way["network:type"="node_network"](area.searchArea);
  relation["network:type"="node_network"](area.searchArea);
);
out body;
# 递归获取关联的子元素,确保完整网络结构
>;
out skel qt;
"""

# 执行查询并获取完整几何数据
Leuven_test = ox.geometries_from_overpass(overpass_query)

# 验证结果
print(Leuven_test.head())
Leuven_test.plot()

额外说明

  • 若不确定Overpass查询的区域边界,可直接在Overpass Turbo中导出查询语句后复制到代码中;
  • 处理大范围数据时,可适当调高超时时间(将timeout:25改为更大数值);
  • 若后续需要构建拓扑图而非单独几何元素,可基于获取到的几何数据用ox.graph_from_gdfs转换为NetworkX图结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:02:37