Projet

Général

Profil

Development #27782

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

-suite de #17763, ajouter sur les map service la possibilité d'avoir des query pré-machés, un peu comme sur les csvdatasource.-

Copié d'une duplication de ce ticket (#39622): :

Ce ticket vise à remplacer la proposition dans #39612, le but étant de passer un minimum de chose bien typés dans les URLs vers le connecteur ArcGis:
* par rapport à #39612 ça évite de toucher à l'existant
* ce sera beaucoup plus simple à utiliser

Je reprendre ici les sources de donnée définies pour Cannes (donné dans #39612) :
<pre>
{{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&folder=geocannes&service=GEOCANNES_Adresse_reference&where=adresse%20like%20%27%{{form_var_recherche_adresse|default:"XYZXYZ"|upper|urlencode}}%%27&template=%7B%7Battributes.adresse%7Csafe%7D%7D+&#8212;+%7B%7Battributes.codepost|default:""%7D%7D+%7B%7Battributes.sectpost|default:""%7D%7D&id_template=%7B%7Battributes.ident%7D%7D&amp;orderByFields=nomvoie,numero_num&full=on

45: {{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=1&amp;folder=geocannes&amp;service=GEOCANNES_RU&amp;where=id_parc=%27{% if "adresse" in form_var_methode %}{{ form_var_parcelle_adresse }}{% elif "cart" in form_var_methode %}{{ form_var_parcelle_carte }}{% else %}{{ form_var_parcelle_manuelle }}{% endif %}%27

49: {% if form_var_num_voie %}{% load l10n %}{{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&amp;folder=geocannes&amp;service=GEOCANNES_Adresse_reference&amp;where=numero_num%20=%20{{form_var_num_voie}}%20and%20adresse%20like%20%27%{{form_var_voie}}%%27&amp;template=%7B%7Battributes.quartier%7D%7D&amp;full=on{% else %}{% load l10n %}{{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&amp;folder=geocannes&amp;service=GEOCANNES_Adresse_reference&amp;where=numero_num%20=%200%20and%20adresse%20like%20%27%{{form_var_voie}}%%27&amp;template=%7B%7Battributes.quartier%7D%7D&amp;full=on{% endif %}

50: {{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&amp;folder=geocannes&amp;service=GEOCANNES_Adresse_reference&amp;where=numero_num%20=%200%20AND%20adresse%20like%20%27%{{form_var_recherche_adresse|default:"XYZXYZ"|upper}}%%27&amp;template=%7B%7Battributes.nomvoie%7Csafe%7D%7D&amp;orderByFields=nomvoie&amp;full=on

51: {% if form_var_num_voie %}{% load l10n %}{{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&amp;folder=geocannes&amp;service=GEOCANNES_Adresse_reference&amp;where=numero_num%20=%20{{form_var_num_voie}}%20and%20adresse%20like%20%27%{{form_var_voie}}%%27&amp;template=%7B%7Battributes.secteur%7D%7D&amp;full=on{% else %}{% load l10n %}{{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&amp;folder=geocannes&amp;service=GEOCANNES_Adresse_reference&amp;where=numero_num%20=%200%20and%20adresse%20like%20%27%{{form_var_voie}}%%27&amp;template=%7B%7Battributes.secteur%7D%7D&amp;full=on{% endif %}

52: {{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&amp;folder=geocannes&amp;service=GEOCANNES_Adresse_reference&amp;where=adresse%20like%20%27%{{form_var_voie}}%%27&amp;template=%7B%7Battributes.numero_num%7D%7D&amp;orderByFields=numero_num&amp;full=on

53: {{ passerelle_url }}arcgis/geocannes/mapservice-query?layer=0&amp;folder=geocannes&amp;service=GEOCANNES_Adresse_reference&amp;where=adresse%20like%20%27%{{form_var_recherche_adresse|default:"XYZXYZ"|upper}}%%27&amp;template=%7B%7Battributes.adresse%7D%7D+&#8212;+%7B%7Battributes.quartier%7D%7D+&#8212;+%7B%7Battributes.codepost|default:""%7D%7D+%7B%7Battributes.sectpost|default:""%7D%7D&amp;id_template=%7B%7Battributes.ident%7D%7D&amp;orderByFields=nomvoie,numero_num&amp;full=on</pre>

Sont utilisés, les champs :
* layer
* folder
* service
* where
* template
* id_template

On y ajouterait un nom, un slug et une description pour obtenir un endpoint.

Au niveau du champ where on accepterait une chaîne de formatage Python standard (syntaxe différent de #39612) avec obligation de nommer les arguments, ex.:
<pre>
Where :
[ adresse LIKE {adresse:s} AND population < {population:d} ]
</pre>

L'idée étant de pouvoir déduire les arguments et types attendus pour le endpoint (ici un argument adresse de type chaîne et un argument population de type entier).

Ce serait appelable ainsi :

<pre>
{{ passerelle_url }}/arcgis/geocannes/q/adresse-population/?adresse=AVENUE+D'ANNAM&population=10000
</pre>

Retour