Ici nous présentons comment générer un imagemap pour les communes du Languedoc-Roussillon.
Dans un premier temps nous allons définir la requête à utliser dans la mapfile (plus précisément dans la section DATA
de la couche représentant ces communes) afin d'extraire les informations dont nous aurons besoin plus tard :
ndrpf : vous noterez que nous utilisons ici la fonction PostGIS simplify
décrite ici.
Cette couche est supposée de type PostGIS (la couche contient un ligne du type : CONNECTIONTYPE POSTGIS
), nous ne mentionnons pas ici la chaîne de connection au serveur PostgreSQL (la ligne CONNECTION
) étant donné qu'elle dépend fortement de votre configuration.
Cette couche utilisera les trois modèles suivant :
imagemap_header.html
: HEADER
de la couche) qui contiendra la ligne :
imagemap_template.html
: TEMPLATE
de la couche), ce modèle sera utilisé pour chaque élément retourné par la requête que nous avons défini ci-dessus, et il contiendra les lignes :
imagemap_footer.html
: FOOTER
de la couche) qui contiendra la ligne :
Nous vous donnons ci-dessous les lignes de la section format sortie de la mapfile (OUTPUTFORMAT
) :
Si comme nous vous souhaitez sauvegarder l'imagemap résultante dans un fichier XML nommé imagemap.xml
, utilisez la commande ci-dessous afin de récupérer le fichier désiré :
ndrpf : vous noterez que nous utilisons ici le script cgi mapserv
par souci de simplicité de ce manuel, néanmoins il est évident que vous pourriez générer l'imagemap en utilisant votre language de programmation préféré si le support mapscript
pour ce lanaguage est installé sur votre système.
Nous avons donc maintenant notre imagemap dans le fichier imagemap.xml
.
Dans notre page de consultation et plus précisément dans la balise img
correspondant à l'image de la carte, il faut lui ajouter l'attribut usemap
et y affecter le nom de notre imagemap.
Il va sans dire qu'il faut aussi ajouter le contenu de l'imagemap elle-même. Cela se fait facilement, par exemple si vous utilisez un script php
, il vous suffira d'utiliser la commande include
.
Dans notre cas, nous aurrons donc dans la page de consultation quelque chose du genre :
Si vous souhaitez plus d'information concernant le support des imagemaps pour Mapserver vous pouvez consulter cette page (en anglais).