Configuration du plugin

Cette section vous permettra de comprendre la configuration du plugin en abordant tous les éléments essentiels de la configuration.

Accès à la configuration

Prérequis:

  • Vous devez détenir les droits suffisants pour modifier un contexte MpaStore2-geOrchestra.

  • Le plugin doit être installé (voir section « généralité technique »)

La configuration du plugin Tabou2 est accessible comme pour tous les autres plugins.

  1. Vous devez passer le contexte en mode édition

  2. Naviguez jusqu’à la section des plugins et voir les plugins activés

  3. Recherchez le plugin « Tabou2 »

  4. Ouvrir la configuration du module Tabou2 en cliquant sur Modifier la configuration du plugin :

ouvrir la configuration Tabou2

Ouvrir la configuration Tabou2.

Paramètres disponibles

La configuration d’un plugin MapStore est disponible en JSON. Le formalisme JSON doit être respecté. Un exemple complet de la configuration est fourni dans la partie suivante.

Voici la liste des paramètres et les explications correspondantes.

Explications détaillées

Les filtres du plugin Tabou2 permettent de réaliser des intersection spatiale entre une couche présente ou non dans le contexte Tabou2 avec une couche PA, SA, OA.

Ces cas pratiques permettront de bien comprendre la configuration.

1. Quartiers

  • Comportement attendu

Les valeurs des quartiers sont fournis par l’API Tabou2 afin d’être chargées et visibles dans la liste du filtre Quartier.

L’API fournie le numéro du quartier (utile pour la recherche dans la couche) et son nom (utile pour afficher le nom à la sélection).

Lors de la sélection d’un quartier, le plugin utilise la valeur sélectionnée (ex: Centre) pour réaliser une intersection spatiale (via geoserver cross layer) entre la couche quartier et chacune des couches programme, secteur et opération.

Le résultat permettra d’obtenir les IDs des entités de ces couches programme, secteur et opération qui intersectent le quartier sélectionné (ex: Centre).

Une fois les IDs récupérés, le plugin applique un filtre attributaire MapStore sur la couche OA, PA, SA selon les IDs récupérés et pour chaque couche.

  • Configuration à appliquer

1 "quartiers": {
2     "layer": "ladm_terri:quartier",
3     "geom": "shape",
4     "placeholder": "Quartiers",
5     "filterField": "nuquart",
6     "apiField": "nuQuart",
7     "apiLabel": "nom"
8 },
  • Explication de la configuration

Paramètres appliqués - filtre Quartier

Paramètre

Explications

layer

Nous utiliserons la layer ladm_terri:quartier diponible dans le geoserver pour le croisement spatial

geom

Le champ géométrique est nommé shape dans geoserver (utile pour l’intersection)

placeholder

Si l’utilisateur vide la sélection, il sera affiché Quartier dans le filtre

filterField

Le champ de la couche ladm_terri:quartier qui contient la valeur du quartier sélectionné, permettant donc le filtre, est nommé nuquart

apiField

Le champ contenant la valeur à rechercher dans la couche est appelé nuQuart (différent du nom du champ dans la couche)

apiLabel

Le champ de l’API qui contient le label à afficher dans la liste du filtre est nommé nom

2.Date DOC

  • Comportement attendu

L’utilisateur peut sélectionner une date et filtrer les couches programme, secteur, opération selon la date de début et de fin sélectionnée. La difficulté est que seule la couche programme contient cette information.

A la sélection d’une date, nous souhaitons donc donc :

  1. Récupérer les entités de la couche programme qui correspondent à ces dates

  2. Récupérer les couches operations et secteur qui intersectent les programmes et uniquement les programmes qui correspondent aux dates choisies

  3. filtrer dans MapStore2 les couches selon les IDs récupérés par l’intersection

  • Configurtion à appliquer

1 "doc": {
2     "layer": "app:tabou_v_oa_programme",
3     "geom": "shape",
4     "filterField": "doc_date",
5     "type": "date",
6     "placeholder": "Choisir une date"
7 },
  • Explication de la configuration

Styles de la sélection

Lorsqu’un utilisateur clique sur une ou plusieurs couches, la fiche information affiche :

  1. Une liste des couches (visibles) cliquées qui retournent des features au clic

  2. Une liste qui permet de sélectionner la feature à afficher pour la couche sélectionnée (non visible si une seule feature cliquée)

ouvrir la configuration Tabou2

Styles de sélection Tabou2.

Le style des entités par défaut (style « default ») et le style de l’entité affichée dans la fiche (style « selection ») doit correspondre aux paramètre possible pour le style OpenLayers. D’autres paramètres de style peuvent donc être ajoutés pour plus de personnalisation.

Enfin, en utilisant les paramètres d’opacité il est alors possible d’afficher l’entités en consultation dans la fiche et / ou les autres entités retournée par le clic pour la couche sélectionnée dans la liste.

  • Exemple de paramètres :

 1 "styles": {
 2     "selection": {
 3     "fillColor": "red",
 4     "fillOpacity": 0.8,
 5     "opacity": 1,
 6     "color": "yellow",
 7     "weight": 2
 8     },
 9     "default": {
10     "fillColor": "#6f718e",
11     "fillOpacity": 0,
12     "opacity": 0.8,
13     "color": "yellow",
14     "weight": 2,
15     "dashArray": [5, 5]
16     }
17 }

Exemple complet

Voici un exemple de configuration :

  1 {
  2     "cfg": {
  3         "styles": {
  4         "showClick": true,
  5         "selection": {
  6             "fillColor": "red",
  7             "fillOpacity": 0.5,
  8             "opacity": 1,
  9             "color": "red",
 10             "weight": 4
 11         },
 12         "default": {
 13             "fillColor": "#6f718e",
 14             "fillOpacity": 0,
 15             "opacity": 0.8,
 16             "color": "red",
 17             "weight": 2,
 18             "dashArray": [
 19             5,
 20             5
 21             ]
 22         }
 23         },
 24         "help": {
 25         "url": "https://public.sig.rennesmetropole.fr/ressources/app/georchestra/Portail%20web%20guide%20rapide%20de%20prise%20en%20main.pdf",
 26         "contact": "d.cottencin@rennesmetropole.fr",
 27         "agapeo": "https://public.sig.rennesmetropole.fr/ressources/app/georchestra/Portail%20web%20guide%20rapide%20de%20prise%20en%20main.pdf",
 28         "ddc": "https://public.sig.rennesmetropole.fr/ressources/app/georchestra/Portail%20web%20guide%20rapide%20de%20prise%20en%20main.pdf"
 29         },
 30         "geoserverURL": "/geoserver",
 31         "showIdentify": false,
 32         "layersOrder": [
 33         "Opérations",
 34         "Secteurs",
 35         "Programmes"
 36         ],
 37         "layersCfg": {
 38         "layerPA": {
 39             "nom": "tabou_test_v_oa_programme",
 40             "geomField": "shape",
 41             "idField": "objectid",
 42             "idType": "number"
 43         },
 44         "layerOA": {
 45             "nom": "tabou_test_v_oa_operation",
 46             "geomField": "shape",
 47             "idField": "objectid",
 48             "idType": "number"
 49         },
 50         "layerSA": {
 51             "nom": "tabou_test_v_oa_secteur",
 52             "geomField": "shape",
 53             "idField": "objectid",
 54             "idType": "number"
 55         }
 56         },
 57         "searchCfg": {
 58         "limit": 1500,
 59         "communes": {
 60             "layer": "ladm_terri:commune_emprise",
 61             "geom": "shape",
 62             "placeholder": "Communes",
 63             "filterField": "code_insee",
 64             "apiField": "codeInsee",
 65             "apiLabel": "nom"
 66         },
 67         "quartiers": {
 68             "layer": "ladm_terri:quartier",
 69             "geom": "shape",
 70             "placeholder": "Quartiers",
 71             "filterField": "nuquart",
 72             "apiField": "nuQuart",
 73             "apiLabel": "nom"
 74         },
 75         "iris": {
 76             "layer": "dem_stats:iris",
 77             "geom": "shape",
 78             "placeholder": "Iris",
 79             "filterField": "code_iris",
 80             "apiField": "codeIris",
 81             "apiLabel": "nmiris"
 82         },
 83         "etapesoa": {
 84             "layer": "tabou_test_v_oa_operation",
 85             "geom": "shape",
 86             "filterField": "etape",
 87             "placeholder": "Etapes OA",
 88             "apiField": "libelle",
 89             "apiLabel": "libelle"
 90         },
 91         "etapespa": {
 92             "layer": "tabou_test_v_oa_programme",
 93             "geom": "shape",
 94             "filterField": "etape",
 95             "apiLabel": "libelle",
 96             "apiField": "libelle",
 97             "type": "string",
 98             "placeholder": "Etapes PA"
 99         },
100         "secteurs-sam": {
101             "layer": "urba_zona:v_chargedoperation_secteur",
102             "geom": "geom",
103             "filterField": "nom_secteur",
104             "apiLabel": "nomSecteur",
105             "apiField": "nomSecteur",
106             "placeholder": "Sec. SAM"
107         },
108         "secteurs-speu": {
109             "layer": "urba_zona:v_referent_urbaniste_secteur",
110             "geom": "geom",
111             "filterField": "nom_secteur",
112             "apiLabel": "nomSecteur",
113             "apiField": "nomSecteur",
114             "placeholder": "Sec. SPEU"
115         },
116         "secteurs-sds": {
117             "layer": "urba_zona:v_instructeur_secteur",
118             "geom": "geom",
119             "filterField": "secteur",
120             "apiField": "secteur",
121             "apiLabel": "secteur",
122             "placeholder": "Sec. SDS"
123         },
124         "secteurs-foncier": {
125             "layer": "urba_zona:v_negociateurfoncier_secteur",
126             "geom": "geom",
127             "filterField": "negociateur",
128             "apiField": "negociateur",
129             "apiLabel": "negociateur",
130             "placeholder": "Sec. Foncier"
131         },
132         "natures": {
133             "layer": "tabou_test_v_oa_operation",
134             "geom": "shape",
135             "service": "operations?nature",
136             "attribute": "layerOA",
137             "spatial": [
138             "layerPA",
139             "layerSA"
140             ],
141             "filterField": "nature",
142             "apiField": "libelle",
143             "apiLabel": "libelle",
144             "placeholder": "Natures"
145         },
146         "amenageurOA": {},
147         "promoteurOA": {},
148         "types-financements": {
149             "cqlCcondition": {
150             "ACC_AIDEE": "logements_access_aide > 0",
151             "ACC_LIBRE": "logements_access_libre > 0",
152             "ACC_MAITRISEE": "logements_access_maitrise > 0",
153             "LOC_AIDE": "logements_locatif_aide_prevu > 0",
154             "LOC_REGULE_HLM": "logements_locatif_regule_hlm_prevu > 0",
155             "LOC_REGULE_PRIVE": "logements_locatif_regule_hlm_prevu > 0"
156             },
157             "layer": "tabou_test_v_oa_programme",
158             "geom": "shape",
159             "filterField": "code",
160             "apiField": "code",
161             "apiLabel": "libelle",
162             "placeholder": "Type de financement"
163         },
164         "plui": {
165             "layer": "urba_docs_plui:plui_plan_zonage_simplifie",
166             "geom": "shape",
167             "filterField": "etiquette",
168             "apiField": "libelle",
169             "apiLabel": "libelle",
170             "placeholder": "Zonage PLUI"
171         },
172         "daact": {
173             "layer": "tabou_test_v_oa_programme",
174             "geom": "shape",
175             "filterField": "daact_date",
176             "type": "date",
177             "placeholder": "Choisir une date"
178         },
179         "doc": {
180             "layer": "tabou_test_v_oa_programme",
181             "geom": "shape",
182             "filterField": "doc_date",
183             "type": "date",
184             "placeholder": "Choisir une date"
185         },
186         "livraison": {
187             "layer": "tabou_v_oa_programme",
188             "geom": "shape",
189             "filterField": "livraison_date",
190             "type": "date",
191             "placeholder": "Choisir une date"
192         },
193         "pbil": {
194             "layer": "app:tabou_v_pbil",
195             "geom": "shape"
196         }
197         },
198         "apiCfg": {
199         "apiURL": "/tabou2",
200         "documentsByPage": 5
201         }
202     },
203     "override": {}
204 }