Closed petzlux closed 9 years ago
Stéphane et moi avons brièvement discuté de ce point. Il nous semble qu'il est pertinent de faire deux requêtes, pour éviter de payer pour des coordonnées qui ne seront pas utilisées.
Est ce qu'on peut alors rédéfinir les deux interfaces ?
L'interface autocomplete sera alors sans geometry du tout, puis un service qui prend une ID et retourne geometry et attributs ?
À qui poses-tu ces questions ?
@sbrunner fait la spec de son service de recherche et @petzlux pourra l'implémenter avec elasticsearch pour que ce soit compatible
The server interface as I imagine:
Result Query: Parameters:
{
"results": [{
"id": <>,
"label": <>,
"layer_name": <>,
"params": <>, // {} in our case
"bbox": <>, // optional, only if no details
"has_details": <true|false>,
}, ...]
}
Details query: Parameters:
Is it ok for you ?
@sbrunner @petzlux is this finished? can we close this issue?
For me we can close it :-)
Where are the specs? Is https://github.com/Geoportail-Luxembourg/geoportailv3/wiki/Specification-du-service-de-recherche up to date?
Yes, as it stands now, it is uptodate
Is there a URL I can use to test the search service?
But, need to redefine interface following discussion to support two queries,
"L'interface autocomplete sera alors sans geometry du tout, puis un service qui prend une ID et retourne geometry et attributs"
Thanks @jaykayone.
@elemoine I have seen the example in ngeo for search and it seems to work fine, but it rests on the interface as it stands now.
Did we ever agree if we are going to redefine interface as discussed here or not ? Does ngeo code need adaptation if we change interface ?
@petzlux Sorry, I don't understand. What do mean by « if we change interface »? What is this interface you are referring to?
as @sbrunner said:
The server interface as I imagine: Result Query: Parameters: query: Text to search details: should be 'no', default is 'yes'. callback: For JSONP Result: { "results": [{ "id": <>, "label": <>, "layer_name": <>, "params": <>, // {} in our case "bbox": <>, // optional, only if no details "has_details": <true|false>, }, ...] } Details query: Parameters: id: element id callback: For JSONP Result: GeoJson with one geometry and the following parameters: 'id', 'label', 'layer_name', 'params'. Is it ok for you ?
The ngeo component knows nothing about the response format. There just it a GeoJSON Bloodhound factory that one can use when the search responses are GeoJSON responses. We could add other factories in the future.
Dans le géoportail existant, la recherche fonctionne avec deux calls:
Premièrement, le service autocomplete (locationsearch) retourne les résultats appropriés dans le format suivant:
Quand un résultat est sélectionné par l'utilisateur, une deuxième requête au service geometry est lancée, qui transmet l'id du feature sélectionnée, et qui retourne la géométrie (point, ligne ou polygone) du feature.
Est ce que cette distinction reste dans le nouveau systeme de recherche, ou est-ce que dans la requete autocomplete déjà, on transmet la géométrie (point, ligne ou polygone) et bbox des différents résultats?
Je vois ceci peut devenir lourd si l'on fait une recherche autocomplete qui aboutit a plusieurs polygones compliqués ?