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

Overpass Query结果差异疑问:无[maxsize]为何返回更小数据集?

Overpass查询结果差异原因及解决方案

差异原因

两条查询的核心区别在于递归获取依赖元素的范围:

  • 第一条查询逻辑:

    1. 先抓取指定边界内的所有节点
    2. 筛选出引用这些节点的符合条件的道路way
    3. 仅对这些way执行(._;>;)——也就是获取这些way关联的所有子元素(包括不在初始边界内的节点、关系等)
    4. 最终输出的是「符合条件的way + 这些way的依赖元素」,初始边界内没被任何目标way引用的孤立节点不会被输出。
  • 第二条查询逻辑:

    1. 把「初始边界内的所有节点」和「引用这些节点的符合条件的way」放在同一个集合里
    2. 对这个完整集合执行(._;>;)——不仅会获取way的依赖元素,还会保留初始边界内所有孤立节点(即便它们没有关联元素)
    3. 最终输出包含「初始边界内所有节点 + 符合条件的way + 所有相关依赖元素」,文件自然更大。

关于第一条是否完整

如果你的目标是获取指定区域内的道路及其关联元素,第一条查询的结果是完整的——它没有遗漏任何符合条件的道路,以及这些道路必需的所有节点/关系。只是它自动排除了区域内和道路无关的孤立节点。

让两条结果相同的方案

方案1:修改第二条查询,对齐第一条逻辑

把第二条里的递归操作限定在way查询块内,同时保留maxsize参数避免报错:

[out:xml][maxsize:2000000000];
node(33.68336,-117.89466,34.14946,-117.03498);
way["highway"~"motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|road|residential|service"](bn);
(._;>;);
out;

方案2:修改第一条查询,匹配第二条结果

如果需要保留初始区域内的所有节点,同时加上道路元素,可调整第一条查询的结构并添加maxsize:

[out:xml][maxsize:2000000000];
(
  node(33.68336,-117.89466,34.14946,-117.03498);
  way["highway"~"motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|road|residential|service"](bn);
);
(._;>;);
out;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:05:26