Convertir GeoJSON en Shapefile en utilisant ogr2ogr?

24

J'ai un fichier GeoJson que je veux convertir en ESRI Shapefile en utilisant ogr2ogr dans FWTools.

J'ai essayé d'utiliser

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

J'ai eu une sortie

ERREUR 6: impossible de créer des champs de type StringList sur les couches de fichiers de formes. ERREUR 1: essayez d'écrire une géométrie non polygonale (POINT) pour taper le fichier de formes. ERREUR 1: interruption prématurée de la traduction après échec de la traduction de la couche OGRGeoJSON

L'entrée GeoJSON que nous donnons est au format geojson standard.

le contenu de geojson est comme {partager je n'ai pris qu'une partie du tableau des fonctionnalités}

{"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
la source
2
Bienvenue sur le forum SE.GIS. Posez une question similaire gis.stackexchange.com/questions/13762/…
Sunil
Merci d'avoir accueilli :) J'avais parcouru ce lien avant de poster. Je ne veux pas utiliser FME, je veux le faire en utilisant FWTools pour Linux. J'avais converti wkt en shapefile plus tôt, ce qui était assez satisfaisant, mais maintenant j'ai les mêmes données au format geoJSON au lieu de wkt. et besoin d'avoir le fichier shp, pendant que j'essaie de le faire, j'obtiens les erreurs;
sidd.k
Je vote pour le garder ouvert, car la question liée ne répond pas à cette question.
Devdatta Tengshe
La conversion de vos données de test fonctionne bien pour moi avec les versions ogr2ogr 1.9.2 et 1.10. Un fichier de formes avec 1 polygone est créé sans aucune erreur. Vos "FWTools pour linux" sont peut-être trop anciens. Que ogr2ogr --versiondit-on?
Hermann
1
Le commutateur --version n'existait pas encore dans la version d'ogr2ogr qui était distribuée avec FWTools 2.0.6 Je suppose également qu'il ne supportait pas encore GeoJSON non plus. 2.0.6 est vraiment ancien (~ 2006), y a-t-il une raison pour laquelle vous ne pouvez pas utiliser une version moderne de GDAL?
DavidF

Réponses:

28

Vous devez forcer le type de géométrie SHP (car le type de géométrie de GeoJSON Geometry Collection n'est pas pris en charge dans SHP) et utiliser l' -skipfailuresoption:

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

(Testé avec GDAL 1.10.0, publié le 04/04/2013)

Antonio Falciano
la source
2
Pour tirer le meilleur parti du Geojson, je suggérerais de faire de même pour les points (et les lignes, si vous en avez dans le Geojson). De cette façon, vous obtenez deux ou trois fichiers de formes à partir d'un Geojson.
AndreJ
@AndreJoost Je suis d'accord avec vous, ce n'était qu'un exemple. Je mets à jour la réponse en tenant compte de votre suggestion. Merci.
Antonio Falciano
2
pas une solution, mais j'ai eu de la chance en utilisant un outil en ligne construit avec ogr2ogr: ogre.adc4gis.com
JasonBK