Géonym : des adresses là où il n’y a pas d’adresses ?

Communiquer la position d’un lieu se fait en général par une adresse, mais en l’absence d’adresse on ne peut que recourir en général qu’à des coordonnées géographiques difficiles à mémoriser et trop variables dans leurs formats (degrés, degrés+minutes, degrés+minutes+secondes, X/Y, etc).

Afin de combler ces deux manques, une position géographique peut être traduite en une série de caractères, mémorisable et facile à communiquer pour une livraison, des secours ou autre (comme le déploiement de la fibre).

Contrairement à d’autres solutions (what3words, locpin, loc8, etc), Géonym est LIBRE, basé sur un algorithme sous licence LGPL (openpostcode) et ne dépendant pas d’une API. Le calcul est simple et peut se faire directement côté client.

Comment ça marche ?

Une grille fixe est choisie pour une région donnée. Dans notre cas cette grille correspond à la France métropolitaine et englobe la majeure partie des eaux territoriales.

Elle est découpée en 25 zones de (5 x 5), elles mêmes découpées en 25 et ainsi de suite. Voir: http://www.geonym.fr/visu pour visualiser les zones et le fonctionnement (n’hésitez pas à zoomer).

Image for post
Image for post

A chaque zone on fait correspondre un chiffre ou une consonne (pris dans un alphabet prédéfinit) qui forme ainsi une série de caractères.

Image for post
Image for post

Plus cette série est longue, plus le geonym correspond donc à une petite zone géographique (25 fois plus petite en surface, donc des côtés 5 fois plus petits).

  • P = zone de 234km x 234km
  • PP = zone de 47km x 47km inclue dans celle de ‘P’
  • PP7 = zone de 9 x 9km inclue dans celle de ‘PP’
  • PP7K-RF4V = zone de 3m x 3m correspondant à l’entrée de la Tour Mirabeau à Paris

Voir: http://www.geonym.fr/visu/#19/48.84687/2.27924

L’algorithme utilisé est identique à OpenPostcode (licence LGPL), avec un alphabet différent limités aux chiffres de 0 à 9 et aux consonnes non ambigües (0/O, 1/I, 2/Z, 4/A, 5/S, 6/G, 8/B). Un caractère de contrôle peut s’ajouter en option pour vérifier que le geonym est sans erreur.

Le territoire couvert est ainsi découpé au final en milliards de carrés de 3m x 3m (plus de 60 milliards sur le territoire métropolitain).

Bien que le calcul soit relativement simple (il peut se faire sans problème sur le client et sans dépendance à une API externe), j’ai mis en place une petite API pour tester et apporter quelques services complémentaires. Bien entendu le code de cette API est lui aussi LIBRE, tout est sur github .

Bien entendu, pour permettre une réelle interopérabilité des Géonym, il est important que les paramètres de grille et d’alphabet soient fixés une fois pour toute !

API de conversion

Cette API permet de convertir un couple lat/lon ou X/Y (Lambert) en géonym ainsi que l’inverse.

Elle permet aussi de trouver le géonym d’une adresse (via l’API de géocodage de la BAN ) et l’inverse, c’est à dire l’adresse la plus proche correspondant au géonym.

Conversion géonym > lat/lon:

Conversion lat/lon > géonym:

Conversion X/Y Lambert > géonym:

Conversion adresse > géonym via géocodage intermédiaire:

La réponse est au format geojson et contient :

  • north/west/south/east : les limites du géonym (bbox)
  • lat/lon : centre de la bbox du géonym
  • X/Y : coordonnées Lambert 93 du centre de la bbox du géonym
  • params : paramètres de la grille (alphabet et limites géographiques)
  • geocode : réponse du géocodeur
  • reverse : l’adresse la plus proche trouvée par géocodage inversé (pour les géonym d’au moins 6 caractères), sauf si reverse=no passé en paramètre de la requête.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store