使用 ogr 和 SQLite 解析 shapefile 时出错
Error dissolving shapefile with ogr and SQLite
我正在尝试解散基于 this question and that instruction 的 shapefile。但是,当我 运行 我的代码行时:
ogr2ogr "c:/working/testing/dissolve.shp" "c:/working/testing/test.shp" -f"ESRI Shapefile" -dialect sqlite -sql "SELECT ST_Union(geometry) FROM 'test'"
我收到以下错误:
ERROR 1: In ExecuteSQL(): sqlite3_step(SELECT ST_Union(geometry) FROM 'temp_2'): SQL logic error or missing database
我错过了什么?
编辑:QGIS 的 "Dissolve" 算法工作得很好(不是使用 ogr2ogr 的算法,而是他们自己的算法)。有什么我不明白的魔法吗?
好的,我自己整理的。失败的原因是在 shapefile 中,某些特征已被标记为已删除,根据读取单个特征时的错误消息:
ERROR 1: Attempt to read shape with feature id (0), but it is marked deleted.
我现在可以通过复制 shapefile 来解决这个问题,它还会重新打包并删除所有标记为此类的功能。使用这个新副本,最初的代码行工作得很好。
我正在尝试解散基于 this question and that instruction 的 shapefile。但是,当我 运行 我的代码行时:
ogr2ogr "c:/working/testing/dissolve.shp" "c:/working/testing/test.shp" -f"ESRI Shapefile" -dialect sqlite -sql "SELECT ST_Union(geometry) FROM 'test'"
我收到以下错误:
ERROR 1: In ExecuteSQL(): sqlite3_step(SELECT ST_Union(geometry) FROM 'temp_2'): SQL logic error or missing database
我错过了什么?
编辑:QGIS 的 "Dissolve" 算法工作得很好(不是使用 ogr2ogr 的算法,而是他们自己的算法)。有什么我不明白的魔法吗?
好的,我自己整理的。失败的原因是在 shapefile 中,某些特征已被标记为已删除,根据读取单个特征时的错误消息:
ERROR 1: Attempt to read shape with feature id (0), but it is marked deleted.
我现在可以通过复制 shapefile 来解决这个问题,它还会重新打包并删除所有标记为此类的功能。使用这个新副本,最初的代码行工作得很好。