Suite

Conversion du fichier GeoJSON de SimpleGeo Places en fichier de formes ?


SimpleGeo a récemment mis à disposition gratuitement son ensemble de données "Lieux", ce qui est EXCELLENT, car nous pouvons maintenant l'utiliser à nos propres fins, même hors ligne. J'ai donc téléchargé le jeu de données de 2 Go, qui contient des fichiers de pays compressés au format GeoJSON.

C'est ici que commence mon problème… lorsque j'essaie de charger un fichier de pays (*.geojson) directement dans QGIS ou même de le convertir en fichier de formes à l'aide d'ogr2ogr, je me retrouve avec une seule entité ponctuelle.

Il est clair qu'il y a plus de données disponibles dans ces fichiers que je ne suis pas en mesure de "voir" ou de récupérer, alors qu'est-ce que je fais de mal ? Quelqu'un peut-il me fournir des suggestions sur la façon de transformer ces fichiers en fonctionnalités SIG utilisables ?

Question mise à jour : je veux vraiment convertir le fichier geojson en un fichier de formes (ou un format SIG standard similaire) pour une utilisation dans un logiciel SIG de bureau.

Extrait du blog SimpleGeo du 1er août 2011 :

"L'ensemble de données CC0 Places de SimpleGeo est désormais disponible en téléchargement gratuit. Si vous souhaitez mettre la main sur plus de 21 millions de points d'intérêt couvrant 63 pays, nous sommes prêts à vous les remettre dans un seul fichier. Le fichier est d'environ 2 Go au format .ZIP, et n'oubliez pas, avec la licence CC0, ces données deviennent les vôtres - libres et claires - pour faire ce que vous voulez. Nous espérons que vous en ferez des choses géniales ! Vous pouvez les télécharger dès maintenant en cliquant ici."

Mettre à jour: 12 janvier 2012 : Après l'acquisition de SimpleGeo par Urban Airship en octobre 2011, Urban Aiship a déclaré : « réduire la disponibilité des versions actuelles de [SimpleGeo] Places, Context et Storage au cours des prochains mois. »… La date cible pour le débranchement officiel aura lieu le 31 mars 2012. Lien


Essayez d'envelopper les fonctionnalités dans ce qui suit :

{"type":"FeatureCollection","features":[ **** TOUTES LES DONNÉES ICI -- SÉPARÉES PAR DES virgules**** ]}

et en séparant chaque caractéristique par une virgule.

Par exemple, voici les deux premières fonctionnalités de l'ensemble de données IE :

{"geometry": {"type": "Point", "coordinates": [-6.422587, 53.293363]}, "type": "Feature", "id": "[email protected]", "properties " : {"website": "http://www.buongiorno.com", "city": "Dublin", "name": "Buongiorno", "tags": ["mobile", "vas", "communauté ", "réseau social", "appareils-connectés", "android", "tablettes", "smartphones"], "pays": "IE", "classificateurs": [{"category": "Professionnel", " type": "Services", "subcategory": "Services informatiques"}], "href": "http://api.simplegeo.com/1.0/features/[email protected]", "adresse " : "Lake Drive City West Digital Park", "owner": "simplegeo", "postcode": "3050"}} {"geometry": {"type": "Point", "coordinates": [-6.250848, 53.339347]}, "type": "Feature", "id": "[email protected]", "properties": {"website": "http://www.simchronise.com", "city" : "Dublin", "name": "SIMchronise", "tags": ["mobile-solutions", "mobile-data", "data-synch ronisation", "mobile-security", "backup", "restore", "mobile-contacts", "web-2.0-addressbook", "phonebackup"], "country": "IE", "classifiers": [{ "category": "Professional", "type": "Services", "subcategory": "Computer Services"}], "href": "http://api.simplegeo.com/1.0/features/SG_1dnWbWIg8hX3VyfUKIDRz9_53.339347_-- [email protected]", "address": "78 Merrion Square", "owner": "simplegeo", "postcode": "Dublin2"}}

… et les voici en tant que FeatureCollection GeoJSON :

{"type":"FeatureCollection","features":[ {"geometry": {"type": "Point", "coordinates": [-6.422587, 53.293363]}, "type": "Feature", "id ": "[email protected]", "properties": {"website": "http://www.buongiorno.com", "city": "Dublin", "name": "Buongiorno", " tags": ["mobile", "vas", "community", "social-networking", "connected-devices", "android", "tablettes", "smartphones"], "country": "IE", " classificateurs": [{"category": "Professional", "type": "Services", "subcategory": "Computer Services"}], "href": "http://api.simplegeo.com/1.0/features /[email protected]", "address": "Lake Drive City West Digital Park", "owner": "simplegeo", "postcode": "3050"}}, {"geometry": {" type": "Point", "coordinates": [-6.250848, 53.339347]}, "type": "Feature", "id": "[email protected]", "properties": {"website": "http://www.simchronise.com", "city": "Dublin", "name": "SIMchronise", "tags": ["mob ile-solutions", "mobile-data", "data-synchronisation", "mobile-security", "backup", "restore", "mobile-contacts", "web-2.0-addressbook", "phonebackup"], "country": "IE", "classifiers": [{"category": "Professional", "type": "Services", "subcategory": "Computer Services"}], "href": "http:// api.simplegeo.com/1.0/features/[email protected]", "address": "78 Merrion Square", "owner": "simplegeo", "code postal": "Dublin2"}} ]}

Merci beaucoup à @fod & @Sasa Ivetic de m'avoir mis sur la bonne voie ! J'ai dû abandonner ce projet pendant un certain temps, mais je m'y suis finalement remis aujourd'hui et je voulais transmettre mes résultats pour aider toute autre personne qui aurait pu avoir des difficultés avec cela.

En utilisant les informations fournies dans la réponse de @fod, j'ai écrit ce script Python pour convertir les fichiers de vidage au format geojson "correct". Ce script py convertira les données dans un format lisible par ogr2ogr, vous pourrez ensuite les convertir dans le format de votre choix.

infile = sys.argv[1] outfile = sys.argv[2] ## Préparer l'entrée/sortie pour la lecture/écriture des fichiers fin = open(infile, 'r') fout = open(outfile, 'w') # #Ajouter au nouveau fichier les informations d'en-tête appropriées fout.write('{"type":"FeatureCollection","features":[' + '
') ## Lire chaque ligne de l'entrée et écrire dans la sortie pour la ligne en fin : ##écrivez chaque ligne du tableau et remplacez les retours chariot par "," + retour chariot fout.write(line.replace("
",",
")) ##Ajoutez le nouveau fichier avec infos de pied de page appropriées fout.write(']}') ##Fermez les fichiers d'entrée et de sortie pour libérer le verrouillage de fichier fin.close() fout.close()

Vous pouvez essayer FME pour le faire. Il lit GeoJSON et écrit Shape et - plus important encore - dispose d'un tas de "transformateurs" pour gérer JSON (JSONExploder, JSONFlattener, JSONExtractor). Je pense donc que cela aiderait à sortir le contenu dans un format utilisable.

Il a également un essai gratuit disponible!

NB : Je travaille pour Safe Software, créateur de FME.


Voir la vidéo: How to convert shapefile to geojson in ArcGIS (Octobre 2021).