Contrôles CGI pour MapServer

Variables

Les noms de variable ne sont pas sensible à la casse.

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.

CLASSGROUP [name]

Le nom de la CLASSGROUP de l’objet LAYER. Définit le nom de la CLASSGROUP de l’objet LAYER à name pour toutes les couches qui ont au moins une ref:CLASS qui utilise le name de la CLASSGROUP donnée

CONTEXT [filename]

Chemin vers un fichier contexte. Le chemin est relatif au mapfile à utiliser ou peut être également un chemin URL (voir la section “Gestion 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]
By default MapServer generates a unique session id based on system time and process id. This parameter overwrites the default.
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 ...] | [WKT]

Un polygone arbitraire (spécifié en utilisant les coordonnées image) à utiliser pour les requêtes.

Le polygone est spécifié en listant des coordonnées (plusieurs instances peuvent simplement additionner des éléments d’un Shape, il est donc possible de construire un Shape avec des trous) ou en spécifiant la représentation WKT (Well Known Text)

Utilisé avec les modes NQUERY.

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 fichier map. Envoie à mapserv le nom d’une couche dont le paramètre STATUS passera à ON.

LAYERS [name name ...]

The names of the layers to be turned on. Layer names must be separated by spaces.

Dans les versions 4.4 et supérieures : ‘LAYERS=all’ activera automatiquement toutes les couches.

MAP [filename]
Path, relative to the CGI directory, of the map file to be used.
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é. À utiliser avec des requêtes.

MAPSHAPE [x1 y1 x2 y2 x3 y3 ...] | [WKT]

Un polygone arbitraire (spécifié en utilisant les coordonnées image) à utiliser pour les requêtes.

Le polygone est spécifié en listant des coordonnées (plusieurs instances peuvent simplement additionner des éléments d’un Shape, il est donc possible de construire un Shape avec des trous) ou en spécifiant une représentation WKT (Well Known Text)

Utilisé avec les modes NQUERY.

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.

MAPXY [x] [y] , MAPXY (shape)

A point, in the same coordinate system as the shapefiles, to be used in conjunction with a buffer or a scale to construct a map extent.

Peut être renseignée avec “shape” comme option alternative. Dans ce cas MAPEXT sera défini par l’étendue du Shape sélectionné. À utiliser avec des 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 d’opération. Les options suivantes sont gérées :

BROWSE

Interface totalement interactive dans laquelle les cartes (et les pages interactives) sont créées. Ceci est le mode par défaut.

COORDINATE

Returns a string of map coordinates based on a user click on an image.

mapserv.exe?map=/mapfiles/gmap75.map&MODE=coordinate&IMGEXT=0 0 100 100&IMGXY=10 10
FEATURENQUERY

Une recherche spatiale qui utilise plusieurs entités de SLAYER pour interroger les autres couches.

FEATUREQUERY

Une recherche spatiale qui utilise une entité de SLAYER pour interroger les autres couches.

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.

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

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

ITEMNQUERY

Une recherche textuelle dans les données attributaires est déclenchée en utilisant un QTRING. Retourne toutes les correspondances.

ITEMQUERY

Une recherche textuelle dans les données attributaires est déclenchée en utilisant une couche QTRING. Retourne la première correspondance.

LEGEND

La légende créée est retournée. Utilisé avec une balise <img ... >.

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=/mapfiles/gmap75.map&MODE=legendicon&ICON=popplace,0
MAP

La carte créée est retournée. Utilisé avec une balise <img ... >.

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.

QUERY

Une recherche spatiale (trouve le plus proche) est déclenchée par un clic sur une carte.

REFERENCE

La carte de référence créée est retournée. Utilisé avec une balise <img ... >.

SCALEBAR

L’échelle créée est retournée. Utilisé avec une balise <img ... >.

TILE
Generate a map tile. See Tile Mode for details.
ZOOMIN

Modifie le mode de navigation (BROWSE) avec ZOOMDIR=1.

ZOOMOUT

Modifie le mode de navigation (BROWSE) avec ZOOMDIR=-1.

Note

Les modes d’interrogation de type “map” antérieurement disponibles, c’est à dire ITEMQUERYMAP, ne sont plus maitenant supportés. Le paramètre QFORMAT est maintenant utilisé à la place.

QFORMAT [outputformat | mime/type] (optional)

Le format OUTPUTFORMAT ou le mime/type à utiliser pour traiter un jeu de résultats de requête (correspond au paramètre QUERYFORMAT de l’objet WEB). Le paramètre est optionnel et utilisé en conjonction avec les MODEs de requête. La valeur par défaut est text/html.

Exemple (carte en sortie) :

...&mode=nquery&qformat=png24&...
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.

QLAYER [name]

Interrogation de couche. Le nom de la couche qui doit être interrogée tel qu’il apparaît dans le mapfile.

QSTRING [expression]

Requêtes d’attribut: chaîne de requête passée à la fonction de requête. Depuis la version 5.0, qstring devra être spécifié dans le paramètre VALIDATION de la LAYER pour les requêtes qstring fonctionnent (qstring_validation_pattern METADATA au niveau de LAYER pour les versions de MapServer avant 5.4).

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

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

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 fichier map à l’aide d’un formulaire ou d’une URL

À partir de la version 3.3 il est possible de changer virtuellement toute valeur du mapfile via un formulaire ou une URL (voir Substitution à la volée). 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é à changer les paramètres du mapfile via une URL implique un changement, à la volée, des expressions de classe. VALIDATION est utilisé pour contrôler la substition à la volée. Essayer cette fonctionnalité..

Avertissement

Cette fonctionnalité est seulement disponible via l’application CGI mapserv. A l’aide de MapScript, il est facile de le faire par soi-même comme le développeur a un contrôle total sur la manière dont l’entrée est gérée.

Utilisation d’une version de MapServer >= 5

Previous versions of the MapServer CGI program allowed certain parameters to be changed via a URL using a cumbersome syntax such as map_layer_0_class_0_color=255+0+0 which changes the color in one classObj. So, in the past you had to change parameters one-at-a-time. Now you can pass chunks of mapfiles (with security restrictions) to the CGI interface. The map_object notation is still necessary to identify which object you want to modify but you can change multiple properties at one time. Note that you can use either a ‘_’ or a ‘.’ to separate identifiers.

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

For MapServer version < 5, any value can be expressed using the hierarchy used in a map file. A map contains a layer, which contains a class, which contains a label, which has a color. This hierarchy is expressed as a sequence of MapServer keywords separated by underscores. For example to change the color of a layer called “lakes” with only one class defined you would use a form variable named “map_lakes_class_color” and could assign it a color like “0 0 255”. Layers can be referenced by index (i.e. map_layer_0...) or by name as shown above. Layer classes are referenced by index value (i.e. map_layer_0_class_2). If there is only 1 class for a layer then the index should be omitted. These variables must always begin with the sequence “map_”. Values assigned must conform to the syntax of a map file.

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

Spécification de l’emplacement des mapfiles utilisant une variable Apache

Les variables Apache peuvent être utilisées pour spécifier l’emplacement de fichiers map (plutôt que d’exposer les chemins complets de mapfile au monde extérieur).

  1. Définir la variable (dans cet exemple MY_MAPFILE) dans le httpd.conf de Apache:

    SetEnv MY_MAPFILE "/opt/mapserver/map1/mymapfile.map"
    
  2. Se référer à la variable dans l’URL CGI de MapServer :

    http://localhost/cgi-bin/mapserv?map=MY_MAPFILE&mode=...
    

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