Transformer rapidement un geocode en coordonnées
Passer d'un geocode à un simple duo latitude/longitude peut s'avérer être assez long. Passage en revue d'une méthode (parmi d'autres) pour faire ça rapidement.
Prenons comme départ une situation simple : on a passé pas mal de temps à bidouiller une base de données patrimoniale pour obtenir des adresses postales complètes.
L'objectif ? Utiliser le geocoding, un processus qui transforme des informations postales en coordonnées géographiques latitude/longitude.
Des outils comme Google Fusion Table peuvent alors très rapidement passer des adresses à des marqueurs placés précisément sur ces coordonnées, à peu près comme sur l'image suivante ;
Cliquez pour agrandir l'image
Le rendu est pas trop mal, mais si l'on décide de réutiliser les marqueurs pour les personnaliser un peu plus, sur CardoDB ou MapBox par exemple ?
De prime abord, ça peut être un peu difficile, notamment parce qu'en téléchargeant les données de GFT, on n'aura pas les couples latitude/longitude...
On va tout de même tenter le coup , en allant depuis GFT dans >Fichier>Télécharger, puis en choisissant le format CSV.
Dans toutes ces données, la colonne qui va nous intéresser est évidemment celle des adresses complètes.
Cliquez pour agrandir l'image
On va ensuite délicatement copier ces adresses pour les coller dans le champ "Input" de Batch Geocoding.
Cliquez pour agrandir l'image
Petite parenthèse avant de reprendre :
Ce site n'est certainement pas le seul moyen d'obtenir les coordonnées d'un geocode, mais je l'ai trouvé diablement efficace, donc je n'ai pas spécialement cherché autre chose. Si un aimable lecteur connaît un autre moyen et a le temps de le présenter en commentaire, je suis preneur 😉 !
On retourne sur Batch Geocoding, en cliquant simplement sur "Geocode" après avoir correctement réglé deux ou trois paramètres.
Après avoir mouliné quelques minutes, on peut récupérer les fameux couples latitude/longitude dans le champ "Output".
L'idéal est de les copier ensuite dans un bloc-notes et d'enregistrer un petit .txt.
Cliquez pour agrandir l'image
En l'ouvrant ensuite dans Calc ou Excel, on peut copier/coller nos fameuses latitudes/longitudes et les poser dans la base de données originelle.
Cliquez pour agrandir l'image
On a maintenant des coordonnées en .csv, mais il serait évidemment plus intéressant de les convertir dans un format vectoriel, type .shp ou .kml. Et c'est rapidement faisable en utilisant l'incomparable QGis 🙂 !
D'un CSV avec coordonnées à un fichier vectoriel
Pour cette manipulation, on va commencer par charger un calque vectoriel "modèle", dans le but de vérifier que les coordonnées géographiques contenus dans le .csv s'affichent à peu près au bon endroit.
Dans mon cas, on peut par exemple charger les communes membres de la Communauté urbaine de Strasbourg.
Cliquez pour agrandir l'image
On va ensuite cliquer sur l'icône "Ajouter une couche de texte délimité", dans le menu vertical de gauche.
Cliquez pour agrandir l'image
Dans le menu suivant, on peut choisir notre fameux .csv, paramétrer deux ou trois choses comme l'encodage ou le symbole délimiteur si on a autre chose que la virgule, et vérifier que QGis interprète correctement les latitudes et longitudes.
Cliquez pour agrandir l'image
En cliquant sur "OK", on arrive à un menu suivant où il faut choisir le système de coordonnées de référence. C'est typiquement là qu'il faut être très vigilant sur la projection choisie !
Dans notre cas, on prend WGS 84.
Cliquez pour agrandir l'image
On valide, et la récompense apparaît : les points s'affichent bien correctement sur la bonne commune.
Cliquez pour agrandir l'image
Cette nouvelle couche, qui porte le même nom que le .csv importé, contient l'intégralité des attributs de ce dernier.
Il ne reste plus qu'à faire un clic droit dessus et à choisir "Sauvegarder sous" pour la convertir au format vectoriel souhaité 🙂 !
Un script taillé pour Google Drive
Ce que j'aime bien avec les mecs de MapBox, c'est que non seulement ils proposent un service on ne peut plus optimal, mais qu'en plus ils prévoient toujours quelques moyens de le bidouiller un petit peu plus.
On peut évidemment citer le logiciel TileMill, mais dans notre cas on va plutôt se pencher sur un script nommé "Geo for Google Docs".
Le principe ? Attacher à sa feuille de calcul Google un script qui permet :
- de transformer des adresses postales en coordonnées latitude/longitude
- de formater les cellules sélectionnées en geojson directement exploitables
Concrètement, il suffit d'ouvrir une feuille de calcul sur Google Drive, puis de sélectionner > Tools > Script editor :
Cliquez pour agrandir l'image
Dans l'éditeur, il ne reste plus qu'à effacer le petit code par défaut et de le remplacer par ledit script, avant de le sauvegarder :
Cliquez pour agrandir l'image
Une fois ceci fait, on remarque après mise à jour de la feuille de calcul une nouvelle option dans le menu du haut, nommée "Geo".
Il ne reste plus qu'à coller des données rattachées à des adresses. Par exemple, je vous le donne en mille, le patrimoine de Strasbourg :
Cliquez pour agrandir l'image
Si on n'a pas de latitude/longitude, pas de panique ! Il suffit de sélectionner la colonne des adresses complètes, puis d'aller dans > Geo > Geocode Adresses :
Cliquez pour agrandir l'image
Une fenêtre s'ouvre pour choisir entre trois services (Mapquest, Yahoo et Cicero). On ne va pas s'embêter et choisir Mapquest, qui ne requiert aucune clé d'API :
Cliquez pour agrandir l'image
Il se peut qu'un message d'erreur s'affiche après que vous ayez cliqué sur "Geocode", mais n'en tenez pas compte.
Vous verrez que trois colonnes s'implémentent automatiquement à côté des adresses, avec longitude, latitude et spécificité de l'endroit (maison, résidence, château, etc...) :
Cliquez pour agrandir l'image
Reste plus, après avoir sélectionné les données qu'on veut voir apparaître dans le geojson final, que de cliquer sur > Geo > Export GEOJSON.
De là, on choisit une colonne d'identifiants, et on on place les bonnes colonnes aux longitudes/latitudes :
Cliquez pour agrandir l'image
Un clic sur "Export" amènera la création d'un geojson directement dans son compte Google Drive, prêt à être réutilisé 🙂 !