Projet

Général

Profil

Development #55522

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

Les adresses retournées par la BAN sont mises en cache pour 1 heure dans un modèle AddressCacheModel.

J'ai le cas sur #55426 d'une demande avec un champ adresse ouvert à l'édition via un champ liste avec autocomplétion, avant affichage du formulaire la "display" value est revérifié via un appel à @{{ datasource.url }}?id={{ form_var_adresse }}@ malheureusement c'est bien après la durée de vie d'1 heure pour ce cache et donc on a un champ Select2 avec le bon id mais pas d'adresse affiché (car passerelle a retourné une liste vide).

Solution rapide et simple, augmenter la durée du cache à 1 ou 2 semaines. Solution plus pérenne, ne pas se baser uniquement sur le cache mais retourner un id plus long, du style @<id> lat lon type@ et utiliser l'appel reverse de la BAN pour retrouver l'objet.

Ça veut dire suite à cet appel <pre>
https://gtm.toulouse-metropole.fr/search/?q=parc+de+la+&limit=5&citycode=31555

{
"attribution" : "SIG Toulouse Métropole",
"features" : [
{
"geometry" : {
"coordinates" : [
1.438935,
43.654259
],
"type" : "Point"
},
"properties" : {
"city" : "Toulouse",
"citycode" : "31555",
"context" : "31, Haute-Garonne, Occitanie (Midi-Pyrenees)",
"id" : "315559000483",
"importance" : 0.7695,
"label" : "Parc de la Violette 31200 Toulouse",
"name" : "Parc de la Violette",
"norme_postale" : "PARC DE LA VIOLETTE",
"population" : 440.2,
"postcode" : "31200",
"score" : 0.888136363636364,
"type" : "street",
"voie" : "PARC DE LA VIOLETTE",
"x" : 1574078,
"y" : 2273853
},
"type" : "Feature"
}
],
"filters" : {
"citycode" : "31555"
},
"licence" : "N/A",
"limit" : 5,
"query" : "parc de la ",
"type" : "FeatureCollection",
"version" : "draft"
}</pre>

on retournerait l'id <pre>315559000483 @315559000483 43.654259 1.438935 street</pre> street@.

De cet id on pourrait générer la requête reverse suivante en cas d'absence de cache :

<pre>
https://gtm.toulouse-metropole.fr/reverse/?lon=1.4389349999999999&lat=43.654259&type=street

{
"attribution" : "SIG Toulouse Métropole",
"features" : [
{
"geometry" : {
"coordinates" : [
1.438935,
43.654259
],
"type" : "Point"
},
"properties" : {
"city" : "Toulouse",
"citycode" : "31555",
"context" : "31, Haute-Garonne, Occitanie (Midi-Pyrenees)",
"distance" : 0,
"id" : "315559000483",
"importance" : 0.7695,
"label" : "Parc de la Violette 31200 Toulouse",
"name" : "Parc de la Violette",
"norme_postale" : "PARC DE LA VIOLETTE",
"population" : 440.2,
"postcode" : "31200",
"score" : 1,
"type" : "street",
"voie" : "PARC DE LA VIOLETTE",
"x" : 1574078,
"y" : 2273853
},
"type" : "Feature"
}
],
"filters" : {
"type" : "street"
},
"licence" : "N/A",
"limit" : 1,
"type" : "FeatureCollection",
"version" : "draft"
}
</pre>

Et via l'id natif de la BAN on récupérerait la bonne feature.

Retour