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 ;

tuto_geocode_1

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.

tuto_geocode_2

Cliquez pour agrandir l'image

On va ensuite délicatement copier ces adresses pour les coller dans le champ "Input" de Batch Geocoding.

tuto_geocode_3

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.

tuto_geocode_4

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.

tuto_geocode_5

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.

tuto_geocode_6

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.

tuto_geocode_6

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.

tuto_geocode_7

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.

tuto_geocode_8

Cliquez pour agrandir l'image

On valide, et la récompense apparaît : les points s'affichent bien correctement sur la bonne commune.

tuto_geocode_9

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 :

tuto_geocode_10

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 :

tuto_geocode_11

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 :

tuto_geocode_12

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 :

tuto_geocode_13

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 :

tuto_geocode_14

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...) :

tuto_geocode_15

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 :

tuto_geocode_16

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é 🙂 !