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

如何修复Overpass QL查询以获取指定道路的前后关联道路?

修复Overpass QL查询以获取目标道路及其前后关联道路

原查询存在两个关键语法与逻辑错误:

  1. 提取way首尾节点的语法不合法:w.way.nodes[0]并非Overpass QL的正确写法,无法精准获取目标way的首尾节点ID。
  2. around搜索不符合需求:你的需求是基于节点关联关系(前序way的最后节点=原way首节点,后序way的首节点=原way尾节点),而非坐标范围搜索,around无法实现这种精准匹配。

以下是修复后的查询代码:

[out:json][timeout:25];
// 获取目标道路并保存到集合
way(805290645)->.target_way;
// 提取目标道路的首节点和尾节点
.node(w.target_way)[0]->.first_node;
.node(w.target_way)[-1]->.last_node;

// 查询前序道路:所有highway类型way,且其最后一个节点等于目标道路的首节点
way["highway"](node(last: .first_node))->.prev_ways;
// 查询后序道路:所有highway类型way,且其第一个节点等于目标道路的尾节点
way["highway"](node(first: .last_node))->.next_ways;

// 合并需要输出的所有道路
(
  .target_way;
  .prev_ways;
  .next_ways;
);
// 输出包含元数据的结果
out meta;

修复说明:

  • 使用.node(w.target_way)[0]和.node(w.target_way)[-1]是Overpass QL中提取way首尾节点的标准写法,确保能正确获取目标节点。
  • 通过node(last: .first_node)和node(first: .last_node)精准匹配节点关联关系,完全符合你对前序、后序道路的定义。
  • 添加timeout:25避免查询超时,这是Overpass查询的常规优化项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:45:46