Development #50935
Ajout d'un connecteur Photon
0%
Description
Connecteur qui implémente les endpoints de géocodage et géodage inversé (search et reverse, comme dans le connecteur base adresse).
Documentation : https://github.com/komoot/photon#search-api
Fichiers
Révisions associées
Historique
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0001-photon-new-geographic-information-connector-50935.patch 0001-photon-new-geographic-information-connector-50935.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
J'ai quelques questions que je n'avais pas vu venir quand j'ai chiffré le connecteur :
- Faut-il gérer la compatibilité avec wcs : ie que wcs puisse adresser photon via le connecteur de la même manière qu'il appelle (directement) la base adresse (je pense aux paramètres suivants qui me semblent être utilisés par wcs) ?
- absence des paramètres "zoom" et "bounded"
- le paramètre "viewbox" devient "bbox"
- le paramètre "accept-language" devient "lang"
- Faut-il retourner le même contenu que le connecteur base_adresse (parce que j'ai deux différences, une sur la forme et l'autre sur le contenu) ?
- les résultats renvoyés ne retournent pas de champ "citycode" (le code insee)
- le champ "city" contient aussi le numéro de l'arrondissement, ex: "Lyon 3ème Arrondissement"
- un truc qui n'a rien à voir : pourquoi dans le endpoint "reverse" (que j'ai copié de la base adresse) on ne renvoie pas la première adresse retournée ?
for feature in result_response.json().get('features'): if not feature['geometry']['type'] == 'Point': continue # skip unknown result = self.format_address_data(feature) return result
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0001-photon-new-geographic-information-connector-50935.patch 0001-photon-new-geographic-information-connector-50935.patch ajouté
Pour le premier point, je réalise que si l'on explicite les variables 'geocoding_service_url
' et 'reverse_geocoding_service_url
', on évite le code ( wcs/quomon/publisher.py
) qui utilise les attributs zoom
, viewbox
et bounded
.
Mais on en utilise de toute façon d'autres attributs qui ne sont pasnon plus équivalent sur les 2 API : addressdetails et accept-language.
Et, on peut aussi vouloir tirer profit de la "bounding box" fournie par photon.
(zoom et addressdetails sont introduits en même temps que la géoloc : #5855, viewbox et bounded sont introduits par #46410)
Donc dans le connecteur j'ai traduit les paramètres qui ont leur équivalent côté photon, et ignoré les autres (kwargs
non utilisé).
- zoom => ignoré
- viewbox => bbox
- bounded => ignoré
- format => format (idem)
- accept-language => lang
- addressdetails => ignoré
1) géoloc inverse : clic sur une carte donne champs rue, ville...
- dans un formulaire ajouter un champ carte
- puis un champs texte préremplis avec "géolocalisation" + "rue" ou "ville" ou...
- dans un formulaire activer la géolocalisation (pour avoir 2 champs lat et lon que l'on va remplir)
- dans son workflow ajouter une action de géolocalisation
Mais bon, je rate peut-être d'autres cas d'usage.
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0001-photon-new-geographic-information-connector-50935.patch 0001-photon-new-geographic-information-connector-50935.patch ajouté
Patch qui corrige le 3ème point.
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0001-photon-new-geographic-information-connector-50935.patch 0001-photon-new-geographic-information-connector-50935.patch ajouté
(avec black)
Mis à jour par Frédéric Péters il y a environ 3 ans
description=_('Saerch API'),
Plutôt comme base adresse, faire description=_('Geocoding (Nominatim API)')
, qu'on comprenne bien que c'est la même chose.
raimbow
rainbow; mais tant qu'à chercher n'importe quoi autant mettre quelque chose qui soit compris directement par la personne qui lira les logs (ex: passerelle status check).
super(Photon, self).hourly()
On peut zapper la partie Photon, self, juste écrire super().hourly()
.
Est-ce que ça a été testé avec l'instance déployée par GL ?
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0001-photon-new-geographic-information-connector-50935.patch 0001-photon-new-geographic-information-connector-50935.patch ajouté
(remarques prises en compte)
Est-ce que ça a été testé avec l'instance déployée par GL ?
oui, et via wcs :
Passerelle :- URL du webservice: https://download.data.grandlyon.com/geocoding/photon-bal/
WCS :
$ cat /var/lib/wcs/wcs.dev.publik.love/site-options.cfg -n 20 [options] ... nominatim_url = https://passerelle.dev.publik.love/photon/test map-bounds-top-left = 45.753;4.830 map-bounds-bottom-right = 45.754;4.831
Mis à jour par Frédéric Péters il y a environ 3 ans
Le truc moche de création d'un identifiant stable c'est parce que la BAN ne garantissait pas d'identifiant stable, ici on pourrait visiblement utiliser osm_id. Idéalement il y aurait aussi une API permettant de retrouver un élément via l'id, il n'y a pas ça ? (d'un rapide coup d'œil à leur doc et github je n'ai rien vu, ne perdons pas de temps ici). (mais utilise l'osm_id quand même, si jamais un jour ils ajoutent ou on trouve l'API).
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0001-photon-new-geographic-information-connector-50935.patch 0001-photon-new-geographic-information-connector-50935.patch ajouté
ici on pourrait visiblement utiliser osm_id
Merci, je suis complètement passé à côté.
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Nicolas Roche il y a environ 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 2d649b2247e3b0529e601953b22619536551236b Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Sun Feb 7 21:34:04 2021 +0100 photon: new geographic information connector (#50935)
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
photon: new geographic information connector (#50935)