From 1c8a2ed00d525737a5e57f7b26a444d2c1623923 Mon Sep 17 00:00:00 2001 From: Laurent Panabieres <laurent.panabieres@veremes.com> Date: Thu, 20 Aug 2020 17:53:26 +0200 Subject: [PATCH] Update administration/getfeatureinfo.md --- administration/getfeatureinfo.md | 73 ++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 8 deletions(-) diff --git a/administration/getfeatureinfo.md b/administration/getfeatureinfo.md index e568374..5cf62d5 100644 --- a/administration/getfeatureinfo.md +++ b/administration/getfeatureinfo.md @@ -88,32 +88,89 @@ Enfin il faudra au travers du formulaire du calque définir que ce dernier est i  -### Informations au format GML +### Retour du GetFeatureInfo au format GML -Afin de retourner les informations de la requête GetFeatureInfo au format GML, plusieurs paramètres sont obligatoires : +La configuration du GetFeatureInfo réalisée ci-dessus permet d'obtenir des résultats au format "text/html", le format exploité par vMap. Afin de retourner un résultat au format GML, plusieurs étapes sont à réaliser. Malgré tout, ce résultat ne pourra être exploité dans l'application. Seul un logiciel tier aura la possibilité de le faire. Dans la documentation qui va suivre, allons donc détailler l'ensemble des étapes à réaliser pour retourner en GML le résultat d'une requête GetFeareInfo. Toutes les étapes ci-dessous n'impacteront pas le fonctionnement normal de vMap. Ainsi : -* Dans le mode MapServer à l'objet web : `"wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml"` et `"wms_feature_info_mime_type" "gml"`. +* Etape 1 : Créer un nouvel objet web avec la définition ci-dessous en adaptant les paramètres (wms_onlineresource, wms_srs...) si nécessaire : -Exemple : ``` WEB METADATA "wms_title" "{WMSSERVICE_ID}" - "wms_onlineresource" "{WMSSERVICE_URL}" + "wms_onlineresource" "{MS_CGI_URL}public/{WMSSERVICE_ID}" "wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml" "wms_feature_info_mime_type" "gml" - "wms_srs" "EPSG:2154" + "wms_srs" "EPSG:4326 EPSG:2154 EPSG:3857" "wms_enable_request" "*" END # Les attributs TEMPLATE, IMAGEPATH et IMAGEURL sont ajoutés dynamiquement lors des tests. Ils sont inutiles en production END ``` -* Dans chaque couche, ajouter le paramètre `"gml_include_items" "all"` afin de retourner tous les attributs. +Par rapport à un objet web "standard" de vMap, le paramètre `"wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml"` a été ajouté, la valeur `"gml"` a remplacé la valeur `"text/html"` dans le paramètre `"wms_feature_info_mime_type"`. + +* Etape 2 : Créer un nouveau Flux wms public et lui affecter l'objet web créé à l'étape 1. + +* Etape 3 : Créer un nouvelle métadonnée contenant le paramètre `"gml_include_items" "all"` Exemple : ``` METADATA - "gml_include_items" "all" + "wms_title" "{LAYER_TITLE}" + "wms_srs" "EPSG:3857 EPSG:2154 EPSG:4326" + "wms_name" "{LAYER_NAME}" + "wms_server_version" "1.3.0" + "wms_format" "image/png" + "wms_enable_request" "*" + "wms_extent" "-357823.2365 6037008.6939 1313632.3628 7230727.3772" + "gml_include_items" "all" END ``` + +*Attention, veillez à modifier certains paramètres (wms_srs, wms_server_version, wms_extent...) si nécessaire.* + +* Etape 4 : Cloner la couche que vous souhaitez interroger en GetFeatureInfo et dont le résultat sera retourné en GML. + +Il serait possible de ne pas réaliser cette étape si et seulement si l'interrogation en GetFeatureInfo n'a pas pour but d'être réalisée sous vMap. Si c'est le cas, il est indispensable de cloner la couche auquel cas le GetFeatureInfo ne fonctionnera pas dans vMap pour cette dernière. +Idée : Vous pouvez nommer la couche du même nom que la couche cloner en la suffixant par "_GML". Exemple : Commune_point_GML. + +* Etape 5 : Mettre à jour la couche créée à l'étape 4 et lui affecter la métadonnée créé à l'étape 3 + +Dans le même temps, s'assurer que la couche est bien interrogeable en GetFeatureInfo (cf. [Documentation ci-dessus](https://gitlab.veremes.net/Documentation/doc_module_vmap/blob/master/administration/getfeatureinfo.md#activation-depuis-linterface-dadministration)) + +* Etape 6 : Test + +Pour tester cette nouvelle configuration, exécuter une requête GetFeatureInfo dans un navigateur sur la couche que vous avez paramétré. Ce dernier va alors télécharger un nouveau fichier dont le contenu se retrouve au format GML. + +Exemple de requête GetFeatureInfo (modifier les paramètres nécessaires) : + +https://`[serveur]`/wms/public/`[nom_flux_public]`?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image/png&TRANSPARENT=true&QUERY_LAYERS=`Commune__point_GML`&LAYERS=`Commune__point_GML`&STYLES=&INFO_FORMAT=`GML`&I=50&J=50&CRS=EPSG%3A2154&WIDTH=101&HEIGHT=101&BBOX=642170.3063538198,6159025.597572117,661784.8780762318,6178640.16929453&vitis_version=3009 + +Attention : Le paramètre `INFO_FORMAT` doit impérativement avoir `GML` comme valeur. + +Exemple de résultat: +``` +<?xml version="1.0" encoding="UTF-8"?> + +<msGMLOutput + xmlns:gml="http://www.opengis.net/gml" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <Commune__point_GML_layer> + <gml:name>Commune__point_GML</gml:name> + <Commune__point_GML_feature> + <gml:boundedBy> + <gml:Box srsName="EPSG:2154"> + <gml:coordinates>679240.481423,6154435.540671 679240.481423,6154435.540671</gml:coordinates> + </gml:Box> + </gml:boundedBy> + <code>66049</code> + <nom>Ceret</nom> + <pop90>7289</pop90> + <nbr_service>1</nbr_service> + </Commune__point_GML_feature> + </Commune__point_GML_layer> +</msGMLOutput> +``` + -- GitLab