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.
Vous devez passer le contexte en mode édition
Naviguez jusqu’à la section des plugins et voir les plugins activés
Recherchez le plugin « Tabou2 »
Ouvrir la configuration du module Tabou2 en cliquant sur Modifier la configuration du plugin :
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è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 :
Récupérer les entités de la couche programme qui correspondent à ces dates
Récupérer les couches operations et secteur qui intersectent les programmes et uniquement les programmes qui correspondent aux dates choisies
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 :
Une liste des couches (visibles) cliquées qui retournent des features au clic
Une liste qui permet de sélectionner la feature à afficher pour la couche sélectionnée (non visible si une seule feature cliquée)
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 }