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

如何使用ogr2ogr将Geofabric下载的Shapefile转换为GeoJSON

问题原因
  • 命令中引用的turkmenistan-latest-free.shp文件不存在:Geofabric提供的OSM数据Shapefile压缩包解压后是按要素类别拆分的多个独立Shapefile(建筑、道路、水系等要素各自对应一套shp相关文件),不存在覆盖全区域的单个Shapefile文件。
  • 单个GeoJSON文件默认仅支持存储一个图层:你直接将包含多个图层的整个文件夹作为输入,输出为单个GeoJSON时,ogr2ogr无法在同一个GeoJSON文件中创建多个图层,因此抛出对应报错。
解决方案

方案1:合并所有要素为单个GeoJSON

如果需要将全量要素整合到同一个GeoJSON文件中,可遍历所有Shapefile逐个追加到目标文件:

# 进入解压后的Shapefile所在文件夹
cd 你的解压目录路径
# 遍历所有shp文件,追加到同一个GeoJSON
for shp in *.shp; do ogr2ogr -f GeoJSON -append turk.geojson $shp; done

方案2:按要素类别输出多个GeoJSON

如果需要不同类型要素分开存储,可批量将每个Shapefile转换为独立的GeoJSON:

cd 你的解压目录路径
for shp in *.shp; do ogr2ogr -f GeoJSON ${shp/.shp/.geojson} $shp; done

转换完成后可直接将所有GeoJSON传入tippecanoe生成MBTiles:

tippecanoe -o turk.mbtiles *.geojson

方案3:跳过格式转换直接生成MBTiles

tippecanoe本身支持直接读取Shapefile文件,无需提前转成GeoJSON,可直接用所有Shapefile生成目标MBTiles:

cd 你的解压目录路径
tippecanoe -o turk.mbtiles *.shp

该方案执行效率更高,也能避免格式转换过程中可能出现的属性丢失问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:57:01