Interrogation GetFeatureInfo

Disponible uniquement à partir de vMap 2018.03.00

Dans vMap il est possible d”interroger les calques au travers d”objets métiers qui permettront en plus de la consultation des attributs, de mettre à jour la base de données, effectuer des jointures, visualiser des formulaires personnalisés interactifs etc…

Les objets métiers sont adaptés à l”utilisation dans vMap : ils ne permettront pas d”interroger une couche externe, ni d”interroger de façon attributaire une couche vMap depuis un logiciel tiers (FME, QGIS …). Pour faire cela il faudra utiliser les fonctionnalités d”interrogation WMS par requête GetFeatureInfo.

Le GetFeatureInfo est une fonction du protocole WMS permettant d”intérroger une couche dans le but de recevoir les informations attributaires au format JSON, HTML, image ou texte. Dans la majeur partie des cas et dans vMap c”est le format HTML qui sera utilisé.

Depuis le mode cartographie, il suffira de cliquer sur la carte pour interroger toutes les couches actives au GetFeatureInfo. L”administrateur pourra définir à l”avance les couches interrogeables depuis le mode calques et cartes et l”utilisateur pourra à tout moment cocher/dé-cocher les couches interrogeables depuis le menu jeux de données situé sur la gauche.

../../_images/mode_carto.jpgUtilisation GetFeatureInfo dans vMap

Utilisation dans le mode cartographie

Sélection des calques et couches à interroger

L’administrateur aura déterminé à l’avance quels sont les calques interrogeables via GetFeatureInfo (voir partie administration), lors du dépliage du volet de gauche pour les calques définis comme interrogeables GetFeatureInfo une nouvelle boite à cocher apparaîtra et permettra à l’utilisateur de définir si le calque ainsi que ses couches seront interrogés. Les boîtes à cocher peuvent avoir 3 états pour gérer les configurations intermédiaires (calques partiellement interrogeables).

../../_images/mode_carto_2.jpgSelection couches GetFeatureInfo

Les calques interrogeables sont ceux pour lesquels le service GetFeatureInfo a été défini. Cette définition n”est pas obligatoire, elle reste de la responsabilité du fournisseur de service.

Clic sur la carte

Après avoir sélectionné la méthode d’interrogation, quand on clique sur un objet cartographique de la carte une fenêtre apparaît avec les différentes couches ainsi que le résultat HTML de la requête. Comme la hauteur et la largeur du résultat peuvent être grandes, des barres de défilement apparaissent automatiquement.

../../_images/mode_carto.jpgUtilisation GetFeatureInfo dans vMap

On voit apparaître sur la carte en bleu le point qui a été cliqué, sur la droite de la carte une fenêtre résultante apparaît : on y retrouve la liste des couches potentiellement interrogeables de la carte, en cliquant sur un des éléments de cette dernière le résultat de la requête GetFeatureInfo correspondant s’inscrit sur la partie de droite de la fenêtre.

Sur la liste des couches interrogeables, on distinguera les couches avec et sans résultat.

Si pendant que la fenêtre résultante est affichée l’utilisateur effectue un autre clic sur la carte, alors les informations se rechargent, si une couche était sélectionnée dans la fenêtre elle restera affichée même si aucun résultat n’est ressorti.

La fermeture de la fenêtre contenant les informations entraîne la suppression du point bleu (localisation du clic). Le résultat affiché est celui de la requête GetFeatureInfo, il peut donc être potentiellement incohérent si le serveur renvoie un message d”erreur ou des documents non html (xml, json…).

Activation depuis l”interface d”administration

Pour activer les fonctionnalités d”interrogation WMS par requête GetFeatureInfo il faudra agir sur la configuration de l”application, sur les couches depuis le mode MapServer et sur les calques depuis le mode calques et cartes.

Configuration

Dans le mode configuration puis dans la section Configuration vMap il est possible d”activer la fonctionnalité.

../../_images/config_vmap.jpgActivation GetFeatureInfo

Mode MapServer

Pour que les couches puissent générer du GetFeatureInfo il faudra leur associer un template, pour cela il faudra le générer puis renseigner son emplacement dans la définition.

../../_images/admin_couche.jpgAdministration couche GetFeatureInfo

Pour administrer le template il faudra de cliquer sur le bouton Template GetFeatureInfo qui va permettre d”éditer, générer et enregistrer le fichier au format HTML sur le serveur.

../../_images/admin_couche_2.jpgAdministration couche GetFeatureInfo

Une fois le fichier enregistré, il faudra dans la définition de la couche placer dans chaque balise CLASS la ligne suivante :

TEMPLATE "../template/getfeatureinfo/{LAYER_NAME}.html"

Une dernière étape : renseigner le mime type au flux, pour cela il faudra ajouter dans le mode MapServer à l”objet web "wms_feature_info_mime_type" "text/html"

Exemple :

WEB
	METADATA
		"wms_title" "{WMSSERVICE_ID}"
		"wms_onlineresource" "{WMSSERVICE_URL}"
		"wms_feature_info_mime_type" "text/html"
		"wms_srs" "EPSG:2154"
		"wms_enable_request" "*"
	END
  # Les attributs TEMPLATE, IMAGEPATH et IMAGEURL sont ajoutés dynamiquement lors des tests. Ils sont inutiles en production
END

Mode calques et cartes

Enfin il faudra au travers du formulaire du calque définir que ce dernier est interrogeable au travers de la requête GetFeatureInfo.

../../_images/admin_calque.jpgAdministration couche GetFeatureInfo