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 :
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.
Paramètre |
Exemple |
Description |
|---|---|---|
geoserverURL |
/geoserver |
URL du geoserver contenant les données cartographiques du contexte Tabou2 |
showIdentify |
false |
Permet de garder le volet natif d’identification au clic sur la carte ou de le masquer |
layersCfg |
Groupe de paramètres généraux des couches opération, programme et secteur |
|
layerPA |
Groupe de paramètres de la couche programme |
|
layerOA |
Groupe de paramètres de la couche opération |
|
layerSA |
Groupe de paramètres de la couche secteur |
|
nom |
app:tabou_v_oa_programme |
nom de la couche programme le geoserver tel que workspace:title |
geomField |
shape |
Nom du champ contenant la géométrie |
idField |
objectid |
nom du champ contenant l’id de la couche |
idType |
number |
Type du champ de l’identifiant |
searchCfg |
Groupe de paramètres pour l’outil de recherche par filtes Tabou2 (onglet rechercher) |
|
communes |
Groupe de paramètres du filtre de recherche par commune |
|
quartiers |
Groupe de paramètres du filtre de recherche par quartiers » |
|
iris |
Groupe de paramètres du filtre de recherche par iris |
|
etapesoa |
Groupe de paramètres du filtre de recherche selon une étape de la couche OA |
|
etapespa |
Groupe de paramètres du filtre de recherche selon une étape de la couche PA |
|
secteurs-sam |
Groupe de paramètres du filtre de recherche par secteur type SAM |
|
secteurs-speu |
Groupe de paramètres du filtre de recherche par secteur type SPEU |
|
secteurs-sds |
Groupe de paramètres du filtre de recherche par secteur type SDS |
|
secteurs-foncier |
Groupe de paramètres du filtre de recherche par secteur foncier |
|
natures |
Groupe de paramètres du filtre de recherche par nature |
|
types-financements |
Groupe de paramètres du filtre de recherche par types de financements |
|
plui |
Groupe de paramètres du filtre de recherche par zone PLUI |
|
daact |
Groupe de paramètres du filtre de recherche par date DAACT |
|
doc |
Groupe de paramètres du filtre de recherche par date DOC |
|
livraison |
Groupe de paramètres du filtre de recherche par date de livraison |
|
pbil |
Groupe de paramètres du filtre de recherche selon la couche PBIL |
|
apiCfg |
Groupe de paramètres pour l’utilisation de l’API Tabou2 |
|
apiURL |
/tabou2 |
URL de l’API Tabou2 |
layer |
Pour le filtre par IRIS ==> dem_stats:iris |
Nom de la couche geoserver du type workspace:title |
geom |
Pour le filtre par IRIS ==> shape |
Nom du champ contenant la géométrie |
placeholder |
Texte à afficher quand le filtre est vide |
|
filterField |
Pour croiser la couche IRIS avec la couche des opérations, on réalisera un filtre sur le champ code_iris de la couche IRIS |
Nom du champ à filtrer au sein de la couche ciblée par l’intersection spatiale |
apiField |
Nom du champ fourni par l’API qui contient la valeur à filtrer dans le champ de la couche cible de l’intersection spatial (voir paramètre filterField) |
|
apiLabel |
Nom du champ de l’API qui contient la valeur à afficher dans le filtre dans le cas d’une liste ou d’une multiselection |
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
Exemple complet¶
Voici un exemple de configuration :
1 {
2 "cfg": {
3 "geoserverURL": "/geoserver",
4 "showIdentify": false,
5 "layersCfg": {
6 "layerPA": {
7 "nom": "app:tabou_v_oa_programme",
8 "geomField": "shape",
9 "idField": "objectid",
10 "idType": "number"
11 },
12 "layerOA": {
13 "nom": "app:tabou_v_oa_operation",
14 "geomField": "shape",
15 "idField": "objectid",
16 "idType": "number"
17 },
18 "layerSA": {
19 "nom": "app:tabou_v_oa_secteur",
20 "geomField": "shape",
21 "idField": "objectid",
22 "idType": "number"
23 }
24 },
25 "searchCfg": {
26 "communes": {
27 "layer": "ladm_terri:commune_emprise",
28 "geom": "shape",
29 "placeholder": "Communes",
30 "filterField": "code_insee",
31 "apiField": "codeInsee",
32 "apiLabel": "nom"
33 },
34 "quartiers": {
35 "layer": "ladm_terri:quartier",
36 "geom": "shape",
37 "placeholder": "Quartiers",
38 "filterField": "nuquart",
39 "apiField": "nuQuart",
40 "apiLabel": "nom"
41 },
42 "iris": {
43 "layer": "dem_stats:iris",
44 "geom": "shape",
45 "placeholder": "Iris",
46 "filterField": "code_iris",
47 "apiField": "codeIris",
48 "apiLabel": "nmiris"
49 },
50 "etapesoa": {
51 "layer": "app:tabou_v_oa_operation",
52 "geom": "shape",
53 "filterField": "etape",
54 "placeholder": "Etapes OA",
55 "apiField": "libelle",
56 "apiLabel": "libelle"
57 },
58 "etapespa": {
59 "layer": "app:tabou_v_oa_programme",
60 "geom": "shape",
61 "filterField": "etape",
62 "apiLabel": "libelle",
63 "apiField": "libelle",
64 "type": "string",
65 "placeholder": "Etapes PA"
66 },
67 "secteurs-sam": {
68 "layer": "urba_zona:v_chargedoperation_secteur",
69 "geom": "geom",
70 "filterField": "nom_secteur",
71 "apiLabel": "nomSecteur",
72 "apiField": "nomSecteur",
73 "placeholder": "Sec. SAM"
74 },
75 "secteurs-speu": {
76 "layer": "urba_zona:v_referent_urbaniste_secteur",
77 "geom": "geom",
78 "filterField": "nom_secteur",
79 "apiLabel": "nomSecteur",
80 "apiField": "nomSecteur",
81 "placeholder": "Sec. SPEU"
82 },
83 "secteurs-sds": {
84 "layer": "urba_zona:v_instructeur_secteur",
85 "geom": "geom",
86 "filterField": "secteur",
87 "apiField": "secteur",
88 "apiLabel": "secteur",
89 "placeholder": "Sec. SDS"
90 },
91 "secteurs-foncier": {
92 "layer": "urba_zona:v_negociateurfoncier_secteur",
93 "geom": "geom",
94 "filterField": "negociateur",
95 "apiField": "negociateur",
96 "apiLabel": "negociateur",
97 "placeholder": "Sec. Foncier"
98 },
99 "natures": {
100 "layer": "app:tabou_v_oa_operation",
101 "geom": "shape",
102 "service": "operations?nature",
103 "attribute": "layerOA",
104 "spatial": [
105 "layerPA",
106 "layerSA"
107 ],
108 "filterField": "nature",
109 "apiField": "libelle",
110 "apiLabel": "libelle",
111 "placeholder": "Natures"
112 },
113 "amenageurOA": {},
114 "promoteurOA": {},
115 "types-financements": {
116 "filterField": "code",
117 "apiField": "code",
118 "apiLabel": "libelle",
119 "placeholder": "Type de financement"
120 },
121 "plui": {
122 "layer": "urba_docs_plui:plui_plan_zonage_simplifie",
123 "geom": "shape",
124 "filterField": "etiquette",
125 "apiField": "libelle",
126 "apiLabel": "libelle",
127 "placeholder": "Zonage PLUI"
128 },
129 "daact": {
130 "layer": "app:tabou_v_oa_programme",
131 "geom": "shape",
132 "filterField": "daact_date",
133 "type": "date",
134 "placeholder": "Choisir une date"
135 },
136 "doc": {
137 "layer": "app:tabou_v_oa_programme",
138 "geom": "shape",
139 "filterField": "doc_date",
140 "type": "date",
141 "placeholder": "Choisir une date"
142 },
143 "livraison": {
144 "layer": "app:tabou_v_oa_programme",
145 "geom": "shape",
146 "filterField": "livraison_date",
147 "type": "date",
148 "placeholder": "Choisir une date"
149 },
150 "pbil": {
151 "layer": "app:tabou_v_pbil",
152 "geom": "shape"
153 }
154 },
155 "apiCfg": {
156 "apiURL": "/tabou2"
157 }
158 },
159 "override": {}
160 }