Overpass Turbo中按标签可查关系但按ID查询无结果的原因
问题原因
- 按ID查询的写法错误:Overpass QL中,
["key"="value"]格式的语法仅用于匹配OSM元素上携带的标签(Tag),而OSM元素自身的唯一ID不属于标签范畴,不存在id=2704286这样的标签键值对。你写的relation["id"="2704286"](area.searchArea)实际是在区域内查找「携带了值为2704286的id标签」的关系,自然无法匹配到目标对象。 - 按ID查询OSM元素的正确语法是直接在元素类型后括号内写ID,即
relation(2704286);。OSM的节点、路径、关系ID全局唯一,直接指定ID即可定位对应元素,无需额外限定区域。如果需要验证该关系是否落在Briancon的区域范围内,可在ID查询后追加区域过滤,修正后的完整查询如下:
[out:json][timeout:25]; {{geocodeArea:briancon}}->.searchArea; ( relation(2704286)(area.searchArea); ); out body; >; out skel qt;
- 按
route=hiking标签查询能命中目标关系,是因为route=hiking是该关系真实存在的标签,完全符合标签匹配的语法规则,所以可以正确返回结果。
内容的提问来源于stack exchange,提问作者Jakob
相关产品推荐
相关产品推荐

