使用ogr2ogr合并两个GeoJSON文件时遇读取错误,寻求解决方案
解决ogr2ogr合并GeoJSON时最后一个文件无法识别的问题
问题现象
- Windows命令提示符执行命令:
返回错误:ogr2ogr PROW.geojson Rural.geojson Urban.geojsonUnable to open datasource `Urban.geojson' with the following drivers.
- AutoHotKey脚本中执行命令:
返回错误:runwait %comspec% /k ogr2ogr PROW.geojson Rural.geojson Urban.geojsonCouldn't fetch requested layer 'Urban.geojson'!
无论调换文件顺序或更换其他GeoJSON,最后一个文件始终报同类错误。
解决方法
修正ogr2ogr命令语法
ogr2ogr默认不支持直接在命令后追加多个输入文件,合并数据源需要使用-append和-update参数,正确命令格式如下:- 分两次执行(更直观):
# 先将第一个文件写入输出 ogr2ogr -f GeoJSON PROW.geojson Rural.geojson # 追加第二个文件到输出 ogr2ogr -f GeoJSON -append -update PROW.geojson Urban.geojson - 单次执行:
ogr2ogr -f GeoJSON PROW.geojson Rural.geojson -update -append Urban.geojson
说明:
-f GeoJSON明确指定输出格式;-update允许修改已存在的输出文件;-append将后续输入的图层追加到输出文件中。- 分两次执行(更直观):
确保文件路径正确
如果文件不在当前工作目录,必须使用完整绝对路径,路径含空格时需用引号包裹:- CMD示例:
ogr2ogr -f GeoJSON -append -update "C:\output\PROW.geojson" "C:\input\Rural.geojson" "C:\input\Urban.geojson" - AutoHotKey示例:
runwait %comspec% /k "ogr2ogr -f GeoJSON -append -update PROW.geojson Rural.geojson Urban.geojson"
- CMD示例:
校验GeoJSON文件完整性
使用QGIS、GDAL的ogrinfo命令检查报错的GeoJSON文件是否存在格式错误、数据损坏。比如用ogrinfo验证:ogrinfo Urban.geojson如果返回图层信息则文件正常,否则需修复文件格式。
内容的提问来源于stack exchange,提问作者DaveF
相关产品推荐
相关产品推荐

