← Retour aux issues

Comparer photon et pelias pour l'intégration d'OpenAdresses

publié le , mis à jour
Avatar Codeberg de etienneJretienneJr

OpenAdresses est un répertoire des adresses en opendata du monde entier.

Pour la France, on utilise déjà les données opendata de la BAN, en appelant l'api de la geoplateforme data.geopf.fr/geocodage/search. Voir #2001 et #2365

Mais si on veut étendre au monde entier (ou même à l'Europe dans un premier temps), on ne pourra pas appeler chaque api de chaque pays, il faudra monter une instance d'un géocodeur qui digère les données d'OpenAdresses.

pelias

Pelias a l'air d'être l'option classique, directement apte à digérer les fichiers d'OpenAdresses. https://pelias.io/ https://github.com/pelias et notamment la documentation https://github.com/pelias/documentation

@severo a l'expérience de l'avoir utilisé pour le Brésil Voir ses notes sur https://github.com/severo/pelias-vagrant Il signale aussi un outil qui permet de comparer les résultats https://pelias.github.io/compare/

photon

https://photon.komoot.io/ https://github.com/komoot/photon On connait déjà photon, car on a une instance pour la recherche de texte dans OSM. Elle utilise des dump json fournis par graphopper (car sinon il faudrait une instance nominatim en plus) Au SOTM 2026, Sarah nous a confirmé que photon pourrait lui aussi être utilisé pour digérer les données d'OpenAdresses. voir le replay de la présentation pour comprendre comment photon fonctionne : https://peertube.openstreetmap.fr/w/2Joj2hkpqB3Dgoft3NWjbf Mais ici, on n'aurait pas besoin des données OSM, on pourrait (en parallèle de notre instance actuelle qui traite OSM) monter une 2e instance qui s'occupe uniquement des adresses (et on supprimerait les doublons après lecture des 2 résultats). En revanche, (je n'ai pas vérifié mais) je pense que ça impliquera de prétraiter les fichiers d'OpenAdresses pour les mettre dans le bon format pour photon. Mais l'avantage d'utiliser photon c'est i) qu'on pourra surement demander de l'aide à Sarah si besoin, et ii) que ça sera plus simple si à terme on doit fusionner la recherche dans OSM et la recherche dans OpenAdresses

todo-list

  • identifier dans OpenAdresses les jeux de données de l'Europe, en choisir une sous-partie pour les tests
  • tester pelias
  • tester photon
    • quel prétraitement des données pour les rendre digérable par photon ?
  1. Avatar Codeberg de KaolityKaolity

    Pour les tests, on veut utiliser l'instance photon de demo, ou alors il faudra monter une instance en local ?

  2. Avatar Codeberg de etienneJretienneJr

    @Kaolity wrote in https://codeberg.org/cartes/web/issues/3320#issuecomment-27296019:

    Pour les tests, on veut utiliser l'instance photon de demo, ou alors il faudra monter une instance en local ?

    On ne peut pas utiliser l'instance de komoot, ni la nôtre, elles ne contiennent que OSM. Donc obligation de monter une nouvelle instance, qu'on remplit avec les données OpenAdresses et non avec OSM.

  3. Avatar Codeberg de KaolityKaolity

    Pour la partie photon , je note un peu les expérimentations faites hier.

    • Build photon depuis master (KO -> problème certificat_unknown )
      • Backup récupérer le jar photon-1.3.0.jar
    • Récupérer quelques jeux de données d'adresses européennes sur OpenAddress image
    • Importer les geojson dans photon via: java -jar photon.jar import -import-file photon_data_raw/source.geojson (KO il semble qu'il y a des pb de format) -> [d.k.p.j.JsonReader ] Missing 'content' field at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1, column: 304]
      • Identifier les diffs entre le format attend par proton et ceux des geojson openaddress
      • Vérifier si openAddress propose d'autres formats de données
      • Vérifier si un script est nécessaire pour convertir les json ou si il vaut mieux proposer une amélioration dans photon pour traiter nativement ces données
      • Développer ce qui est nécessaire
    • Lancer photon
      • Sur le jeu de données photon-db-germany-1.0-latest pour voir si tout marche bien en local
      • Sur un jeu de données openAddress
    • Tester

✏️ Participer à la discussion