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.

Paramètres Tabou2

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è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

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 }