.. _cgi_controls:
:Revision: $Revision: 9764 $
:Date: $Date: 2010-09-23 21:11:00 +0000 (Sat, 29 Sept 2010) $
*****************************************************************************
Contrôles CGI pour MapServer
*****************************************************************************
Variables
==========
BUFFER [distance]
Une distance, dans le même système de coordonnées que le mapfile,
utilisée en conjonction avec MAPXY pour créer une nouvelle étendue de carte.
CONTEXT [filename]
Chemin vers un fichier contexte. Le chemin est relatif au mapfile à
utiliser ou peut être également un chemin URL (voir la section "Support
du Web Map Context (WMC) via CGI" plus bas dans ce document pour
plus de détails).
ICON [layername],[classindex]
Utilisé avec MODE=legendicon pour générer une icône de légende pour
une couche. La valeur classindex est optionnelle et vaut 0 par défaut.
ID [id-string]
Par défaut MapServer génère un identifiant unique de session basé sur
l'heure du système et l'identifiant du processus. Ce paramètre remplace
la valeur par défaut.
IMG
Le nom associé à l'image de la carte embarquée est utilisé pour enregistrer
les clics de l'utilisateur. Ce sont deux variables img.x et img.y qui sont passées.
Pour les applications CGI c'est une variable essentielle, regardez les
exemples pour son utilisation.
IMGBOX [x1] [y1] [x2] [y2]
Coordonnées (en pixels) du cadre dessiné dans l'image. La plupart du
temps utilisé en conjonction avec un frontend Java pour MapServer.
IMGEXT [minx] [miny] [maxx] [maxy]
L'étendue spatiale de l'image embarquée existante que les utilisateurs
peuvent visualiser dans leur navigateur.
IMGSHAPE [x1 y1 x2 y2 x3 y3 ...]
Shape donné en coordonnées d'image.
Un polygone arbitraire est utilisé pour les requêtes. Plusieurs instances
peuvent simplement additionner des éléments d'un Shape, il est donc
possible de construire un Shape avec des trous. Utilisé avec les modes
NQUERY et NQUERYMAP.
IMGSIZE [cols] [rows]
La taille (en pixels) de l'image embarquée existante.
IMGXY [x] [y]
Coordonnées (en pixels) d'un simple clic de souris. Utilisé le plus souvent
en conjonction avec un frontend Java pour MapServer.
LAYER [name]
Le nom d'une couche tel qu'il apparaît dans le map file. Envoie à mapserv le
nom d'une couche dont l'état (STATUS) passera à ON.
LAYERS [name name ...]
Les noms des couches à activer. Les noms des couches doivent être séparés
par des espaces.
Dans les versions 4.4 et supérieures : LAYERS=all activera automatiquement
toutes les couches.
MAP [filename]
Chemin, relatif au répertoire CGI, du map file à utiliser.
MAPEXT [minx] [miny] [maxx] [maxy] , MAPEXT (shape)
L'étendue spatiale de la carte à créer.
Peut être renseignée avec "shape" comme option alternative. Dans ce
cas MAPEXT sera défini par l'étendue du Shape sélectionné. A utiliser
avec les requêtes.
MAPSIZE [cols] [rows]
La taille (en pixels) de l'image à créer. Particulièrement utile pour
permettre aux utilisateurs de changer dynamiquement la résolution
de la carte de sortie.
MAPSHAPE [x1 y1 x2 y2 x3 y3 ...]
Shape en coordonnées de la carte.
Un polygone arbitraire est utilisé pour les requêtes. Plusieurs instances
peuvent simplement additionner des éléments d'un Shape, il est donc
possible de construire un Shape avec des trous. Utilisé avec les modes
NQUERY et NQUERYMAP.
MAPXY [x] [y] , MAPXY (shape)
Un point, dans le même système de coordonnées que les fichiers Shape,
à utiliser en conjonction avec un tampon (buffer) ou une échelle pour
construire une étendue de carte.
Peut être renseigné avec "shape" comme option alternative. Dans ce
cas l'étendue de la carte sera définie par l'étendue du Shape sélectionné.
À utiliser avec les requêtes.
MINX | MINY | MAXX | MAXY [number]
Coordonnées x/y minimales/maximales de l'étendue spatiale pour une
nouvelle carte/requête. Ces paramètres sont des éléments de MAPEXT.
MODE [value]
Mode de l'opération. Les options suivantes sont supportées (notez que tous
les modes de requêtes supportent également les modes carte seule, par
exemple ITEMQUERYMAP, mais ceux-ci ne sont pas listés pour rester bref) :
BROWSE
Interface totalement interactive dans laquelle les cartes (et les pages
interactives) sont créées. Ceci est le mode par défaut.
QUERY
Une recherche spatiale (trouve le plus proche) est déclenchée par un clic
sur une carte.
NQUERY
Une recherche spatiale (trouve tout) est déclenchée par un clic sur une
carte ou par un cadre de sélection défini par l'utilisateur.
ITEMQUERY
Une recherche textuelle dans les données attributaires est déclenchée
en utilisant une couche QTRING. Retourne la première correspondance.
ITEMNQUERY
Une recherche textuelle dans les données attributaires est déclenchée
en utilisant un QTRING. Retourne toutes les correspondances.
FEATUREQUERY
Une recherche spatiale qui utilise une entité de SLAYER pour
interroger les autres couches.
FEATURENQUERY
Une recherche spatiale qui utilise plusieurs entités de SLAYER pour
interroger les autres couches.
ITEMFEATUREQUERY
Une recherche textuelle dans les données attributaires est déclenchée
par un QSTRING. Retourne la première correspondance. La couche
cherchée est définie en utilisant le paramètre slayer. Les résultats de
cette recherche sont appliqués aux autres couches interrogeables (qui
peuvent être limitées en utilisant le paramètre QLAYER).
ITEMFEATURENQUERY
Une recherche textuelle dans les données attributaires est déclenchée
par un QSTRING. Retourne toutes les correspondances. La couche à
chercher est définie en utilisant le paramètre slayer. Les résultats de
cette recherche sont appliqués aux autres couches interrogeables (qui
peuvent être limitées en utilisant le paramètre QLAYER).
LEGENDICON
Une icône de légende est retournée. Le paramètre ICON peut également
être utilisé pour spécifier le nom de la couhe et un index de classe. La
valeur de l'index de classe est optionnelle et vaut 0 par défaut. Par exemple :
::
mapserv.exe?map=/ms4w/apps/gmap/htdocs/gmap75.map&MODE=legendicon&ICON=popplace,0
MAP
La carte de référence créée est retournée. Utilisé avec une balise
.
REFERENCE
La carte de référence créée est retournée. Utilisé avec une balise
.
SCALEBAR
L'échelle créée est retournée. Utilisé avec une balise
.
LEGEND
La légende créée est retournée. Utilisé avec une balise
.
ZOOMIN
Modifie le mode de navigation (BROWSE) avec ZOOMDIR=1.
ZOOMOUT
Modifie le mode de navigation (BROWSE) avec ZOOMDIR=-1.
INDEXQUERY
Consulte une entité basée sur les valeurs des paramètres SHAPEINDEX
et TILEINDEX. SHAPEINDEX est obligatoire, TILEINDEX est optionnel et
est utilisé seulement avec les couches shapefile assemblées.
COORDINATE
À clarifier.
QLAYER [name]
Interrogation de couche. Le nom de la couche qui doit être interrogée tel
qu'il apparaît dans le mapfile. S'il n'est pas indiqué alors toutes les couches
sont interrogées successivement.
QITEM [name] (optional)
Le nom d'un attribut dans la table attributaire d'une couche à interroger.
Le paramètre est optionnel et est utilisé en conjonction avec QSTRING pour
les requêtes attributaires.
QSTRING [expression]
Requêtes attributaires : le texte de la requête est passé à la fonction de requête.
QUERYFILE [filename]
Utilisé avec les modes BROWSE ou NQUERY. Cette option identifie un
fichier requête à charger avant tout processus régulier. Dans le mode
BROWSE cela produit une carte requise à la place d'une carte normale.
Ceci est utile quand vous voulez mettre en évidence une entité lors d'un
changement de zoom (mode pan/zoom). Dans le mode NQUERY vous
obtenez l'accès à l'un des modèles utilisés normalement dans la présentation
de la requête, ainsi vous avez accès aux cartes requises ET aux informations
attributaires. Voyez l'option SAVEQUERY.
REF
Le nom associé à l'image embarquée de la carte de référence utilisé pour
enregistrer les clics de l'utilisateur. Deux variables sont passées, ref.x et
ref.y.
Pour les applications CGI ce sont des variables essentielles quand les cartes
de référence sont utilisées, voyez les exemples.
REFXY [x] [y]
Coordonnées (en pixels) d'un simple clic de souris sur l'image de
référence. Utilisé en conjonction avec une frontend Java pour
MapServer.
SAVEQUERY
Utilisé avec n'importe quel autre des modes de requête, ceci indique à
MapServer de sauvegarder les résultats de la requête vers un fichier
temporaire pour des opérations ultérieures (voir QUERYFILE). Très
utile pour rendre des requêtes permanentes.
SCALEDENOM [number]
Échelle pour créer une nouvelle carte. L'échelle donnée est le dénominateur
de la fraction de l'échelle réelle, par exemple pour une carte d'échelle
1:24000, utilisez 24000. Implémenté dans MapServer 5.0 pour remplacer
le paramètre obsolète SCALE.
SCALE [number] - deprecated
Depuis MapServer 5.0 le bon paramètre à utiliser est SCALEDENOM à
la place de SCALE. Ce paramètre obsolète est l'échelle à laquelle créer une
nouvelle carte. Utilisé avec MAPXY. L'échelle donnée est le dénominateur
de la fraction de l'échelle réelle, par exemple pour une carte d'échelle
1:24000, utilisez 24000.
SEARCHMAP
Il est possible de créer des interfaces pour gérer le zoom (pan/zoom)
en utilisant des querymaps. Dans ces cas, vous aimerez avoir l'information
sur les contenus de la nouvelle carte plutôt que celle de la précédente carte
ce qui est la façon normale de fonctionnement des requêtes. Quand
SEARCHMAP est spécifié la nouvelle carte est créée et son étendue est
utilisée pour les couches de requêtes. Très utile avec le mode NQUERY
uniquement.
SHAPEINDEX [index]
Utilisé pour indexer les requêtes (en combinaison avec INDEXQUERY).
SLAYER [name]
Couche de sélection. Le nom de la couche devant être utilisé pour
l'une des fonctions de recherche sur l'entité (par exemple STAGED).
La couche sélectionnée doit être une couche de polygones. La ou les
entités sélectionnées sont disponibles pour être présentées à l'utilisateur.
TILEINDEX [index]
Utilisé pour indexer les requêtes (en combinaison avec INDEXQUERY),
utilisé avec les couches de Shape assemblés (tiled shapefiles).
ZOOM [number]
Echelle de zoom à appliquer lors de la création d'une nouvelle carte. Les
valeurs supérieures à 0 indiquent un agrandissement (zoom in), 0 pour
la vue d'ensemble (pan), et les valeurs négatives indiquent un
rétrécissement (zoom out). Une valeur de 2 indique un "agrandissement
par deux".
ZOOM peut être utilisé comme un raccourci de la combinaison
ZOOMDIR/ZOOMSIZE. Le zoom est limité par le paramètre
MINZOOM/MAXZOOM compilé dans MapServer (-25/25) par défaut.
ZOOMDIR [1 | 0 | -1]
Direction du zoom. Voir ci-dessus.
ZOOMSIZE [number]
Grandeur absolue d'un zoom. Utilisé avec ZOOMDIR.
ZOOMDIR est limité par MAXZOOM compilé dans MapServer (25 par défaut).
Modifier les paramètres du mapfile via un formulaire ou une URL
==================================================================
À partir de la version 3.3 il est possible de changer virtuellement toute valeur
du mapfile via un formulaire ou une URL. La syntaxe pour cela est assez simple
et dépend de la version de MapServer que vous utilisez. Une utilisation potentielle
très puissante de cette capacité est de changer les paramètres du mapfile via une
URL entrainant le changement des expressions de classe à la volée.
Utilisation d'une version de MapServer >= 5
------------------------------------------------------------
Les versions précédentes du programme MapServer CGI permettaient de
changer certains paramètres via une URL en utilisant une syntaxe lourde
comme map_layer_0_class_0_color=255+0+0 qui change la couleur
d'une classObj. Il fallait donc par le passé changer les paramètres un à la
fois. Maintenant vous pouvez envoyer des morceaux de mapfile (avec des
restrictions de sécurité) à l'interface CGI. La notation map object reste
nécessaire pour identifier quel objet vous voulez modifier mais vous pouvez
changer plusieurs propriétés en même temps. Notez que vous pouvez
utiliser un '_' ou un '.' pour séparer les identifiants.
Exemple 1, changement de l'objet scalebar :
::
...&map.scalebar=UNITS+MILES+COLOR+121+121+121+SIZE+300+2&...
Exemple 2, changement du style de présentation :
::
...&map.layer[lakes].class[0].style[0]=SYMBOL+crosshatch+COLOR+151+51+151+SIZE+15&...
Exemple 3, création d'une nouvelle entité :
::
...&map_layer[3]=FEATURE+POINTS+500000+1000000+END+TEXT+'A+test+point'+END&...
Exemple 4, définition des paramètres de plusieurs objets web :
::
...&map_web=imagepath+/ms4w/tmp/ms_tmp/+imageurl+/ms_tmp/
Exemple 5, définition de la taille de la carte :
::
...&map_size=800+400
La variable identifie un objet unique (par son nom ou son index dans le cas de
layerObj et de classObj). La valeur est un extrait d'un mapfile. Vous ne pouvez
pas créer de nouveaux objets autres que les entités embarquées à ce niveau.
Utilisation d'une version de MapServer < 5
------------------------------------------------------------------
Pour les versions de MapServer < 5, toute valeur peut être exprimée en utilisant
la hiérarchie du mapfile. Une carte contient une couche, qui contient une classe,
qui contient une étiquette (label), qui a une couleur. Cette hiérarchie est exprimée
comme une séquence de mots-clés MapServer séparés par des underscores. Par
exemple pour changer la couleur d'une couche nommée "lakes" avec une seule classe
définie, vous devriez utiliser une variable de formulaire nommée
"map_lakes_class_color" et lui assigner une couleur comme "0 0 255". Les couches
peuvent être référencées par un index (par exemple map_layer_0...) ou par un
nom comme montré ci-dessus. Les classes de couche sont référencées par une
valeur d'index (par exemple map_layer_0_class_2). S'il n'y a qu'une seule classe
pour une couche alors l'index devrait être omis. Ces variables doivent toujours
commencer par la séquence "map_". Les valeurs assignées doivent être conformes
à la syntaxe d'un mapfile.
Il est également possible de définir des entités embarquées en utilisant ce
mécanisme. C'est le seul cas où vous pouvez ajouter quelque chose au mapfile.
Vous pouvez éditer/changer les paramètres de la couche mais vous ne pouvez
pas créer une nouvelle couche. Avec les entités embarquées vous devez d'abord
créer une entité et ensuite construire sur cette ase, cependant, la couche à
laquelle appartient l'entité doit exister. Voici un extrait d'une requête GET qui
ajoute une entité à une couche utilisateur :
::
. . . &map_webuser_feature=new&map_webuser_feature_points=12345.6789+12345.6789&map_webuser_feature_text=My+House!& . . .
Le "map_webuser_feature=new" crée une nouvelle entité pour la couche
utilisateur. Tous les appels ultérieurs à cet objet entité pour cette couche
modifieront la nouvelle entité. Vous pouvez répéter ce processus pour créer
des entités supplémentaires. Ceci reste réellement applicable pour de très
petits ensembles de données (point, rectangle).
Contrôles de l'applet ROSA
===========================
*Note : le développement et la maintenance de ROSA ont été stoppés.*
Les paramètres de l'applet ROSA ont été ajoutés à MapServer CGI dans la version
3.6. Cette applet Java fournit une interface utilisateur plus intuitive à MapServer.
Le site MapTools fournit des informations détaillées sur l'applet ROSA.
Les paramètres peuvent également être utilisés par d'autres interfaces et outils
s'ils ont les bonnes valeurs. Veuillez noter que les deux paramètres doivent être
envoyés à l'application CGI dans l'ordre indiqué ci-dessous.
INPUT_TYPE (auto_rect | auto_point)
Le paramètre INPUT\_TYPE est nécessaire pour identifier si les coordonnées
envoyées à MapServer doivent être interprétées comme un rectangle ou une
donnée ponctuelle.
INPUT_COORD [minx,miny;maxx,maxy]
L'applet ROSA renseigne toujours la paire de coordonnées. Dans le cas d'un
point (input\_type=auto\_point) les coordonnées min et max sont égales
(Mapserver utilise la valeur min).