Convertendo GeoJSON em Shapefile usando ogr2ogr?

24

Eu tenho um arquivo GeoJson que desejo converter em ESRI Shapefile usando ogr2ogr no FWTools.

Eu tentei usar

ogr2ogr -F "ESRI Shapefile" filename.shp geojsonfile.json OGRGeoJSON

Eu consegui saída

ERRO 6: Não é possível criar campos do tipo StringList nas camadas de shapefile. ERRO 1: Tente escrever geometria que não seja polígono (PONTO) para digitar shapefile. ERRO 1: Terminando a tradução prematuramente após falha na tradução da camada OGRGeoJSON

A entrada GeoJSON que estamos fornecendo está no formato geojson padrão.

o conteúdo do geojson é como {para compartilhar, participei apenas de uma parte do array de recursos}

{"id":1223,
"properties":{"name":"3","level":2},
"map_version":11,"type":"FeatureCollection","x_id":1234,"obj_type":"LevelGeometry",
"features":[

{
"my_area":[131.40093253528894,33.58879853190332,6.515867411008615,3.490549810987222,-0.6237271428108215],
"id":1984791,
"location":{"type":"Point","coordinates":[131.4009325,33.5887985]},
"properties":{"display_name":"xyz"},
"type":"Feature",
"geometry":{"type":"Polygon","coordinates":[[[131.4009508,33.5888314],[131.4008895,33.5887946],[131.4009148,33.5887653],[131.4009761,33.5888020],[131.4009508,33.5888314]]]},
"obj_type":"Geometry"
}

]
}
sidd.k
fonte
2
Bem-vindo ao fórum SE.GIS. Têm uma aparência semelhante pergunta gis.stackexchange.com/questions/13762/...
Sunil
Obrigado pelo acolhimento :) Eu tinha passado por esse link antes de postar. Eu não quero usar o FME, quero fazê-lo usando o FWTools para linux. Eu havia convertido wkt para shapefile anteriormente, o que era bastante satisfatório, mas agora tenho os mesmos dados no formato geoJSON em vez de wkt. e precisa ter o arquivo shp, enquanto eu tento fazer eu recebo os erros;
sidd.k
Estou votando para mantê-lo aberto, pois a pergunta vinculada não responde a essa pergunta.
Devdatta Tengshe 8/08/13
A conversão dos seus dados de teste funciona bem para mim nas versões 1.9.2 e 1.10 do ogr2ogr. Um shapefile com 1 polígono é criado sem erros. Seu "FWTools for linux" pode ser muito antigo. O que ogr2ogr --versiondiz?
Hermann
11
A opção --version ainda não existia na versão do ogr2ogr que foi distribuída com o FWTools 2.0.6. Também estou supondo que ainda não suportava o GeoJSON. 2.0.6 é realmente antigo (~ 2006), existe uma razão para você não poder usar uma versão moderna do GDAL?
davidf

Respostas:

28

Você deve forçar o tipo de geometria SHP (porque o tipo de geometria GeoJSON Geometry Collection não é suportado em SHPs) e use a -skipfailuresopção:

ogr2ogr -nlt POINT -skipfailures points.shp geojsonfile.json OGRGeoJSON    
ogr2ogr -nlt LINESTRING -skipfailures linestrings.shp geojsonfile.json OGRGeoJSON
ogr2ogr -nlt POLYGON -skipfailures polygons.shp geojsonfile.json OGRGeoJSON

(Testado com GDAL 1.10.0, lançado em 24/04/2013)

Antonio Falciano
fonte
2
Para tirar o máximo proveito do Geojson, sugiro executar o mesmo para os pontos também (e linhas, se houver algum no Geojson). Dessa forma, você obtém dois ou três shapefiles de um Geojson.
Andrej
@AndreJoost Estou de acordo com você, este foi apenas um exemplo. Eu atualizo a resposta considerando sua sugestão. Obrigado.
Antonio Falciano 16/11
2
não é uma solução, mas tive boa sorte usando uma ferramenta on-line criada com ogr2ogr: ogre.adc4gis.com
JasonBK 26/11/14