Mais

Opções GDAL -SQL ou -where


ogr2ogr -overwrite -t_srs EPSG: 3978 -f "ESRI Shapefile" -sql "SELECT * FROM 'Nome da Camada' WHERE FIELD_NAME = 'A CLASS'" dst.shp src.shp

ajude-me aqui - procurando 1) reprojetar uma forma e 2) selecionar apenas "A CLASS" no campo denominado "FIELD_NAME" 3) e salvá-lo em src.shp

minha saída é ERROR 1: Incompatibilidade de tipo ou tipo impróprio de argumentos para = operador.

Também tentei ogr2ogr -overwrite -t_srs EPSG: 3978 -f "ESRI Shapefile" -where "FIELD_NAME = 'A CLASS'" dst.shp src.shp resultando em: ERRO 1: Erro de análise de expressão SQL: erro de sintaxe FALHA: SetAttributeFilter (WHERE FIELD_NAME = 'A CLASSS') na camada 'LAYER NAME' falhou.

e

ogr2ogr -overwrite -t_srs EPSG: 3978 -f "ESRI Shapefile" -onde "FIELD_NAME LIKE 'A CLA%'" dst.shp src.shp com o las que produz apenas um resultado, onde mais de 10.000 registros satisfazem a consulta.


atualizar

ogr2ogr -overwrite -t_srs EPSG: 3978 -f "ESRI Shapefile" -dialect SQLite -sql "SELECT * FROM 'Layer Name' WHERE FIELD_NAME = 'A CLASS'" dst.shp src.shp

produz ERRO 1: Tipo incompatível ou tipo impróprio de argumentos para = operador. ERRO 1: Em ExecuteSQL (): sqlite3_step (SELECT * FROM 'Nome da Camada' WHERE GIVEN_CLASS = 'Classe A'): ​​Erro lógico SQL ou banco de dados ausente

um passo mais perto embora!


bem, o vencedor é não usar o sinal =. isso funciona para quem procura ...

ogr2ogr -overwrite -t_srs EPSG: 3978 -f "ESRI Shapefile" -dialect SQLite -onde "GIVEN_CLASS LIKE 'CLAS% A" dst src

indicando dialeto + usando o operador -where + Like.