IGN

Géoservices IGN

Look4 - autocompléter les rues d'une commune grâce à Look4

15 Janvier 2018

Comment utiliser Look4 pour mettre en oeuvre une base de rues de référence dans un formulaire web.

Un utilisateur des web services de géocodage d’adresse du Géoportail a récemment approché l’IGN avec le problème suivant : “comment faire en sorte que le Géoportail renvoie des résultats sur une recherche de nom de rue UNIQUEMENT SUR LA COMMUNE CONSIDÉRÉE ?”

Sa problématique : permettre à un utilisateur de son application en ligne qui s’est localisé sur la commune de Neuilly de trouver le boulevard Paul-Emile Victor. Cet utilisateur peut être amené à saisir n’importe quel terme du nom de la rue : “bd Paul..”, “Paul-Emile” ou encore “Victor”.
Le gain à chaque remplissage de formulaire est de l’ordre d’une ou deux secondes, mais à raison de milliers de formulaires par jour, les secondes deviennent vite des semaines ! En outre, il y a un bénéfice additionnel à cette saisie guidée : les erreurs sont filtrées dès la saisie, ce qui réduit d’autant les non-qualités ultérieures.

La solution (imparfaite) avec le service d’auto-complétion traditionnel :

Le service d’auto-complétion traditionnel du Géoportail ne supporte pas nativement le filtrage par commune. Il est possible cependant à un développeur de contourner ceci assez simplement en concaténant la recherche avec le code postal de la commune sur laquelle il souhaite filtrer :

(ex de requête : http://wxs.ign.fr/VOTRE_CLE/ols/apis/completion?text=bd%20pau,92200&type=StreetAddress)

Les résultats souhaités arrivent dès les premiers caractères :

Saisie : 1er résultat
BD PA,92200 bd du parc, 92200 Neuilly-sur-Seine (le bd Paul-Emile Victor apparaît en 2ème résultat
BD PAU,92200 bd paul emile victor, 92200 Neuilly-sur-Seine

Point positif :

  • le service d’auto-complétion arrive également à proposer des résultats à un utilisateur qui aurait par erreur saisi “rue Paul-Emile”
  • Points négatifs :
  • le service d’auto-complétion, contrairement au service de géocodage, ne renvoie aucune valeur de score pour déterminer la fiabilité des réponses
  • le service ne reconnaît pas les codes INSEE (92051 pour Neuilly-sur-Seine), juste les codes postaux.
  • le service n’arrive pas à trouver des résultats si est omis le type de voie (rue, avenue, boulevard).
Saisie : 1er résultat
BD PAUL,92051 r paul amusant, 97300 Cayenne
PAUL,92200 la pauline, 13009 Marseille
PAUL-E,92200 #Erreur#
VIC,92200 victoria, 54110 Rosières-aux-Salines
VICT,92200 la victoire, 50700 Valognes
VICTOR,92200 la victorerie, 50260 Bricquebec-en-Cotentin

La solution (meilleure !) avec le nouveau service Look4 :

L’IGN propose depuis décembre 2017 une version documentée et publique du nouveau service de recherche Look4. Parmi les index proposés dans la recherche, “voies_nommees” indexe les rues de France par région, commune, département.

L’auto-complétion avec filtrage sur le nom de la commune, le code postal ou encore le code INSEE avec l’outil Look4 est dorénavant possible.

Exemple de requête : http://wxs.ign.fr/beta//look4/user/search?indices=voies_nommees&method=prefix&match[fulltext]=bd%20pau&match[fields][code_postal]=92200&filter[fields][code_postal]=92200&nb=20)

Sur une saisie avec type de voie, le comportement reste le même qu’avec l’auto-complétion “traditionnelle”, à la différence près qu’un “score” est fourni pour évaluer le résultat et qu’il est possible de choisir le nombre de résultats renvoyés :

Saisie : 1er résultat
BD PA,92200 bd du parc, 92200 Neuilly-sur-Seine
BD PAU,92200 bd paul emile victor, 92200 Neuilly-sur-Seine

En revanche, Look4 se démarque dès lors qu’un un nom sans voie est saisi, ou encore un nom associé à un code INSEE (rappel : un code postal peut être partagé par plusieurs communes, alors qu’un code INSEE est unique et propre à chaque commune) :

Saisie : 1er résultat
BD PAUL,92051 bd paul emile victor, 92200 Neuilly-sur-Seine
PAUL,92200 rue pauline borghese, 92200 Neuilly-sur-Seine (le bd Paul-Emile Victor apparaît en 4ème résultat)
PAUL-EM,92200 bd paul emile victor, 92200 Neuilly-sur-Seine
PAULEM bd paul emile victor, 92200 Neuilly-sur-Seine
PAUL VICT,92200 bd paul emile victor, 92200 Neuilly-sur-Seine
VICT,92200 bd victor hugo, 92200 Neuilly-sur-Seine (le bd Paul-Emile Victor apparaît en 3ème résultat)

Look4 permet donc de proposer un service d’auto-complétion de nom de rue plus efficace pour gagner du temps dans la saisie de formulaires, le tout basé sur des données faisant autorité et constamment entretenues.
Si vous ne l’avez pas déjà fait, c’est le moment de l’essayer !

Pour en savoir plus sur Look4, l’article d’introduction du blog contient tous les détails nécessaires.

Raffinement : autocompléter sur un département ou un EPCI

Si la recherche se limite à un ensemble de communes et non à une commune seule, il est possible, toujours avec Look4, d’utiliser une expression régulière en tant que filtre.

Je recherche : Je saisis :
Les rues contenant “PAUL” dans les Hauts-de-Seine match[fulltext]=paul&match[fields][code_postal]=92*
Les rues contenant “PAUL” dans l’EPT Grand Paris Seine Ouest (*) match[fulltex]=paul&match[fields][code_insee]=[92048,92012,92022,92040,92047,92072,92075,92077]&nb=20)

(*Meudon, Boulogne-Billancourt, Chaville, Issy-les-Moulineaux, Marnes-la-Coquette, Sèvres, Vanves, Ville-d’Avray)