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