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

OpenStreetMap技术问题:从选定国家导出城市坐标及行政边界列表

从OpenStreetMap导出指定国家的城市列表与行政边界

方法一:用Overpass Turbo网页工具(适合非技术用户)

这是最直观的在线工具,无需本地安装软件,直接完成查询与导出。

导出带坐标的城市列表

  1. 打开Overpass Turbo界面,顶部搜索框输入目标国家名称(比如“中国”),定位到目标区域。
  2. 在代码编辑框输入查询语句,以下是中国地区的示例(可根据目标国家调整参数):
[out:json][timeout:25];
// 匹配目标国家的国家级行政区域(admin_level=2代表国家级)
area["name:zh"="中国"][admin_level=2];
// 筛选标记为“城市”的节点,包含坐标与名称信息
node["place"="city"](area);
// 输出核心字段
out body;
>;
out skel qt;
  1. 点击顶部「运行」按钮,查询完成后点击「导出」,选择CSV(适配表格工具)或GeoJSON(适配GIS软件)格式保存即可。

导出各级行政边界

行政边界在OSM中以relation对象存储,不同层级对应不同的admin_level标签(不同国家层级定义有差异,比如中国区县对应admin_level=8,欧洲部分国家区县对应admin_level=6,需提前确认目标国家的标签规范)。

中国区县边界的查询示例:

[out:json][timeout:25];
area["name:zh"="中国"][admin_level=2];
// 筛选指定层级的行政边界关系
relation["admin_level"="8"]["boundary"="administrative"](area);
// 输出边界信息与名称
out body;
>;
out skel qt;

运行后导出为GeoJSON或其他支持边界的格式即可。

方法二:预提取OSM文件+osmium-tool命令行工具(适合批量处理)

如果需要处理大规模数据,建议用本地命令行工具,步骤如下:

  1. 获取目标国家的OSM预提取文件(PBF格式,体积小、处理效率高)。
  2. 安装osmium-tool工具。
  3. 导出城市列表为CSV:
# 过滤出所有标记为city的节点
osmium tags-filter country.osm.pbf n/place=city -o cities.osm.pbf
# 导出包含坐标、名称的CSV文件
osmium export cities.osm.pbf --output-format csv --columns id,lat,lon,name,place -o cities.csv
  1. 导出行政边界为GeoJSON:
# 过滤出指定层级的行政边界关系(以admin_level=8为例)
osmium tags-filter country.osm.pbf r/boundary=administrative,r/admin_level=8 -o admin_boundaries.osm.pbf
# 导出为GeoJSON格式
osmium export admin_boundaries.osm.pbf --output-format geojson -o admin_boundaries.geojson

注意事项

  • 不同国家的admin_level标签定义差异较大,比如美国的州对应admin_level=2,县对应admin_level=5,建议先查阅目标国家的OSM社区文档确认层级。
  • place标签除了city,还有town、village等取值,可根据需求调整过滤条件。
  • Overpass Turbo的超时时间可根据数据量调整,比如把timeout:25改为timeout:60避免查询中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:56:16