如何从OSM大数据集获取美国带building:levels标签的建筑中心坐标与楼层数
获取美国带
building:levels标签建筑数据的简便方法 优化Overpass Turbo查询(优先推荐)
针对超时和冗余标签问题,直接修改查询语句即可解决:
- 拆分查询范围:不要一次性查询整个美国,按州级区域拆分(比如先查加利福尼亚州),避免数据量过大触发超时
- 精准控制输出:只保留
building:levels标签和中心坐标,减少资源消耗
优化后的查询示例:
[out:json][timeout:600]; // 延长超时时间至10分钟 // 定位目标州(以加利福尼亚州为例) area["name"="California"]["admin_level"="4"]->.boundaryarea; // 筛选州内带building:levels标签的建筑 way["building:levels"](area.boundaryarea); // 仅输出中心坐标和所需标签,优化查询效率 out center tags qt;
核心优化点:
- 用
area.boundaryarea替代{{bbox}},精准限定州级边界,避免无效范围查询 - 延长超时时间适配州级数据量,用
qt排序提升查询速度 - 自动过滤冗余标签,仅保留
building:levels和坐标相关数据
若需全美国数据,分批次查询各州后合并结果即可。
批量处理方案:区域切片+osmium工具
无需下载完整Planet.osm,直接用美国区域OSM切片数据处理:
- 获取美国区域的OSM切片文件(.osm.pbf格式)
- 安装
osmium工具后,执行以下命令提取数据:- 第一步:筛选带
building:levels标签的建筑osmium tags-filter us-latest.osm.pbf w/building:levels -o us-building-levels.osm.pbf - 第二步:导出为包含中心坐标和楼层数的CSV文件
osmium export us-building-levels.osm.pbf --csv "id,lon,lat,building:levels" -o us-building-levels.csv
- 第一步:筛选带
内容的提问来源于stack exchange,提问作者wizmer
相关产品推荐
相关产品推荐

