Skip to content
Snippets Groups Projects
getfeatureinfo.md 4.97 KiB
Newer Older
# Interrogation GetFeatureInfo

Dans vMap il est déjà possible d'interroger une couche au travers d'un objet métier qui permettra 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 qu'à 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 major 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.

## 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 3.1.1), lors du dépliage du volet de gauche pour les calques définis comme interrogeable 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 pourraient avoir 3 états pour gérer les configurations intermédiaires (calques partiellement interrogeables).

![Selection couches GetFeatureInfo](../images/getfeatureinfo/mode_carto_2.jpg)



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.  La section 3.2 montre la démarche à suivre avec vMap/MapServer.

### 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.

![Utilisation GetFeatureInfo dans vMap](../images/getfeatureinfo/mode_carto.jpg)

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 GetFeatureInfo.
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é.

![Activation GetFeatureInfo](../images/getfeatureinfo/config_vmap.jpg)

### 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.

Pour générer ou mettre à jour le template il suffira de cliquer sur le bouton **Template GetFeatureInfo** qui va l'enregistrer au format HTML dans le serveur.

Dans la définition de la couche il faudra alors placer dans chaque balise **CLASS** la ligne suivante :
```
TEMPLATE "../template/getfeatureinfo/{LAYER_NAME}.html"
```

![Administration couche GetFeatureInfo](../images/getfeatureinfo/admin_couche.jpg)

### 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.

![Administration couche GetFeatureInfo](../images/getfeatureinfo/admin_calque.jpg)