Overpass Turbo如何过滤指定标签并同时获取几何信息?
Overpass查询:同时获取指定标签与几何信息的解决方案
需求背景
需要查询符合条件的道路数据,同时满足两个核心要求:
- 仅保留
name和speed两个标签,避免全标签查询导致结果过大触发Overpass的大小限制 - 必须获取完整的几何信息
之前尝试的两种查询均未达成目标:
- 示例1使用
out body但错误添加了无效的["geometry"]标签筛选,无法过滤多余标签 - 示例2使用
out tags只能拿到标签数据,丢失了几何信息
可行解决方案
使用Overpass的out body tags(...)语法,既能保留几何信息,又能精准过滤所需标签:
[out:json] [date:"2013-12-31T23:59:59Z"] [maxsize:1073741824] [timeout:600] [bbox:{{bbox}}]; // 筛选带有name和speed标签的指定类型道路 way["highway"~"(motorway|trunk|primary|secondary)"]["name"]["speed"]; // 获取道路关联的节点数据(用于生成几何) (._;>;); // 输出包含几何信息的结果,仅保留name和speed标签 out body tags("name","speed");
关键说明
out body:确保输出包含完整的几何结构(道路的节点引用、节点的坐标信息)tags("name","speed"):强制只保留指定的两个标签,自动过滤所有其他无关标签,有效控制结果体积- 前置的
way筛选条件["name"]["speed"]:先过滤出本身带有这两个标签的道路,减少后续处理的数据量
对之前错误的分析
- 示例1中的
["geometry"]是无效筛选条件:Overpass中几何信息不是以标签形式存在的,无法通过标签键筛选,需通过out指令的参数控制是否输出几何 - 示例2使用
out tags:该指令仅输出标签数据,不会包含任何几何相关的节点或引用信息,直接丢失了核心需求的几何数据
内容的提问来源于stack exchange,提问作者vkrk
相关产品推荐
相关产品推荐

