You need to enable JavaScript to run this app. Overpass查询如何筛选完全位于指定区域内的relation要素
优惠活动
大模型
产品
解决方案
定价
更多

Overpass查询如何筛选完全位于指定区域内的relation要素

关于返回部分重叠要素是否为Bug

这是Overpass的正常逻辑,不是Bug。relation(area.germany)这类区域过滤器的默认匹配规则是:只要要素和指定区域存在任意空间重叠就会命中,不会校验要素是否完全落在区域内。边境处的跨国家行政区只要有部分范围落在查询区域内就会被返回,属于预设的设计逻辑,符合预期。

实现仅返回完全位于德国境内联邦州的方案

该需求可以通过二次范围校验实现,在原有查询基础上增加范围包含校验逻辑即可,修正后的查询语句如下:

[out:json];
relation(51477);
map_to_area -> .germany;
relation(area.germany)["type"="boundary"]["boundary"="administrative"]["admin_level"="4"];
// 新增完全包含校验逻辑
map_to_area -> .candidate;
area.candidate(area.germany);
relation(pivot);
out tags;

新增逻辑说明:

  • 首先把初步筛选到的所有四级行政区relation转为对应面要素
  • 校验这些面要素是否完全被德国区域包含,仅保留符合条件的结果
  • 再通过pivot操作把筛选后的面要素关联回对应的原始relation输出,最终得到的就是完全属于德国的联邦州列表,会自动过滤掉格罗宁根这类仅部分和德国重叠的荷兰行政区。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 02:15:00