#1 Tue 27 May 2008 11:22
- geocarto28
- Participant occasionnel
- Date d'inscription: 8 May 2008
- Messages: 21
MapServer : Fonctionnement TEMPLATE
Bonjour,
Après avoir créé un mapfile (Paris.map) en mode map (carte statique), j'aimerais rendre mes cartes interactives (mode Browse) en leur ajoutant une légende, une échelle, un zoom, une sélection des couches...
Ces divers paramètres ont bien été renseignés dans le mapfile. Puis 2 fichiers ont été créés en suivant les indications du tutorial (section 2) : un fichier HTML (Paris.html) et un fichier HTML TEMPLATE (Paris_template.html) qui sert de modèle à MapServer.
Donc dans le mapfile, on a rajouté ce bloc WEB :
Code:
WEB TEMPLATE 'c:/ms4w/apps/France/htdocs/Paris.html' IMAGEPATH 'c:/ms4w/tmp/ms_tmp/' IMAGEURL 'c:/ms_tmp/' END
Et le problème surgit lors du chargement de la page web :
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/France/htdocs/Paris.map
&layer=arrondissements&mode=browse&root=/France
&program=/cgi-bin/mapserv.exe&map_web=template+Paris.html
loadWeb(): General error message. URL-based TEMPLATE configuration failed pattern validation.
Merci d'avance pour vos conseils :-)
Dernière modification par geocarto28 (Tue 27 May 2008 12:05)
Hors ligne
#2 Tue 27 May 2008 11:29
Re: MapServer : Fonctionnement TEMPLATE
Bonjour,
Quel est le contenu de Paris.html ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Tue 27 May 2008 11:58
- geocarto28
- Participant occasionnel
- Date d'inscription: 8 May 2008
- Messages: 21
Re: MapServer : Fonctionnement TEMPLATE
Voici le contenu du fichier Paris.html :
Code:
<html> <head> <title>MapServer Paris</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link type="text/css" rel="stylesheet" href="[root]/ms35.css" /> </head> <body bgcolor="#FFFFFF" text="#000000"> <table align="center" border="0"><tr> <td> <h3 align="center">carte interactive</h3> <!-- START OF MAPSERVER FORM --> <form name="mapserv" method="GET" action="[program]"> <!-- HIDDEN MAPSERVER CGI VARIABLES --> <input type="hidden" name="root" value="[root]"> <input type="hidden" name="program" value="[program]"> <input type="hidden" name="map_web" value="[map_web]"> <input type="hidden" name="map" value="[map]"> <input type="hidden" name="imgext" value="[mapext]"> <input type="hidden" name="imgxy" value="[center]"> <table width="600" border="2" align="center"> <tr> <td> <table width="400" border="1" align="center"> <tr> <td colspan="4">Select Layers: <!-- SPECIFY VECTOR LAYERS --> <input type="checkbox" name="layer" value="arrondissements" [arrondissements_check] checked> arrondissements <input type="checkbox" name="layer" value="ZAC" [ZAC_check]> ZAC <input type="checkbox" name="layer" value="ZAD" [ZAD_check]> ZAD<br> <!-- SPECIFY MAP MODE --> <div align="center">Map Mode:<br> <select name="mode"> <option value="browse" [browse_select]>Browse</option> </select> </div> </td> <td> <!-- FORM SUBMIT BUTTON --> <div align="center"> <input type="submit" name="submit" value="Refresh"> </div> </td> <td> <!-- ZOOM/PAN CONTROLS --> <div align="center">Map Control: <br> <select name="zoom"> <option value="4" [zoom_4_select]>Zoom In 4x</option> <option value="3" [zoom_3_select]>Zoom In 3x</option> <option value="2" [zoom_2_select]>Zoom In 2x</option> <option value="1" [zoom_1_select]>Recenter</option> <option value="-2" [zoom_-2_select]>Zoom Out 2x</option> <option value="-3" [zoom_-3_select]>Zoom Out 3x</option> <option value="-4" [zoom_-4_select]>Zoom Out 4x</option> </select> </div> </td> <!-- REFERENCE AND LEGEND COLUMN --> <!-- DISPLAY THE MAPSERVER-CREATED MAP IMAGE --> <td colspan="3" align="center" valign="top"> <input type="image" name="img" src="[img]" width="400" height="300" border="0"> </td> </tr> </table> </td> </tr> </table> </form> </td> </table> </body> </html>
ps : vector layers = fichiers MapInfo .TAB
Dernière modification par geocarto28 (Tue 27 May 2008 12:07)
Hors ligne
#4 Tue 27 May 2008 12:01
- geocarto28
- Participant occasionnel
- Date d'inscription: 8 May 2008
- Messages: 21
Re: MapServer : Fonctionnement TEMPLATE
Et le contenu de mon fichier TEMPLATE est le suivant :
Code:
<html> <head> <title>Paris Template Source</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link type="text/css" rel="stylesheet" href="/tutorial/ms35.css" /> </head> <body> <table width="600" align="center"> <tr> <td> <h3 align="center">Paris HTML Template</h3> <hr> <xmp> <html> <head> <title>MapServer Paris</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link type="text/css" rel="stylesheet" href="/tutorial/ms35.css" /> </head> <body bgcolor="#FFFFFF" text="#000000"> <table align="center" border="0"><tr> <td> <h3 align="center">Carte interactive</h3> <!-- START OF MAPSERVER FORM --> <form name="mapserv" method="GET" action=[b]"/cgi-bin/mapserv.exe"[/b]> <!-- HIDDEN MAPSERVER CGI VARIABLES --> <input type="hidden" name="map" value="[map]"> <input type="hidden" name="imgext" value="[mapext]"> <input type="hidden" name="imgxy" value=[b]"199.5 149.5"[/b]> <table width="600" border="0" align="center"> <tr> <td> <table width="400" border="1" align="center"> <tr> <td> <!-- SPECIFY VECTOR LAYERS --> <!-- SPECIFY MAP MODE --> <div align="center">Map Mode:<br> <select name="mode"> <option value="browse" [browse_select]>Browse</option> </select> </div> </td> <td> <!-- FORM SUBMIT BUTTON --> <div align="center"> <input type="submit" name="submit" value="Refresh"> </div> </td> <td colspan="4">Select Layers: <!-- SPECIFY VECTOR LAYERS --> <input type="checkbox" name="layer" value="arrondissements" [arrondissements_check] checked> arrondissements <input type="checkbox" name="layer" value="ZAC" [ZAC_check]> ZAC <input type="checkbox" name="layer" value="ZAD" [ZAD_check]> ZAD<br> <!-- ZOOM/PAN CONTROLS --> <div align="center">Map Control: <br> <select name="zoom"> <option value="4" [zoom_4_select]>Zoom In 4x</option> <option value="3" [zoom_3_select]>Zoom In 3x</option> <option value="2" [zoom_2_select]>Zoom In 2x</option> <option value="1" [zoom_1_select]>Recenter</option> <option value="-2" [zoom_-2_select]>Zoom Out 2x</option> <option value="-3" [zoom_-3_select]>Zoom Out 3x</option> <option value="-4" [zoom_-4_select]>Zoom Out 4x</option> </select> </div> </td> <!-- REFERENCE AND LEGEND COLUMN --> <!-- DISPLAY THE MAPSERVER-CREATED MAP IMAGE --> <td colspan="3" align="center" valign="top"> <input type="image" name="img" src="[img]" width="400" height="300" border="0"> </td> </tr> </table> </td> </tr> </table> </form> </td> </table> </body> </html>
Dernière modification par geocarto28 (Tue 27 May 2008 12:04)
Hors ligne
#5 Tue 27 May 2008 12:05
Re: MapServer : Fonctionnement TEMPLATE
Bonjour,
Je ne vois rien qui pose problème (mais je connais mal ce mode d'utilisation de mapserver). Tu peux tenter en enlevant une partie du contenu pour retrouver la ligne qui fait planter le script CGI. Ou bien tenter d'activer les logs de mapserver.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#6 Tue 27 May 2008 12:11
- geocarto28
- Participant occasionnel
- Date d'inscription: 8 May 2008
- Messages: 21
Re: MapServer : Fonctionnement TEMPLATE
Ok merci, je vais alléger le contenu des 2 fichiers HTML et voir si le problème se reproduit.
Qu'entends-tu par "activer les logs MapServer" ?
Autrement, je viens de penser à truc : le fait que l'extension.TAB des couches vecteur n'est pas précisée dans la partie <! -- SPECIFY VECTOR LAYERS -->, ne pose pas de souci ?
Hors ligne
#7 Tue 27 May 2008 12:16
Re: MapServer : Fonctionnement TEMPLATE
Bonjour,
Ok merci, je vais alléger le contenu des 2 fichiers HTML et voir si le problème se reproduit.
Qu'entends-tu par "activer les logs MapServer" ?
Il y a possibilité pour que mapserver envoie des informations dans des fichiers de log (généralement inclus dans ceux d'Apache).
Autrement, je viens de penser à truc : le fait que l'extension.TAB des couches vecteur n'est pas précisée dans la partie <! -- SPECIFY VECTOR LAYERS -->, ne pose pas de souci ?
Je ne pense pas.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#8 Wed 28 May 2008 11:00
Re: MapServer : Fonctionnement TEMPLATE
Bonjour.
Essei avec ton address:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/France/htdocs/Paris.map Simplement car map server applel a Paris.html directement.
Si no, pour debuger tu peux ayouter a tes objets MAP et Layers l'option DEBUG ON (ou un valeur numerique de 1 a 5 le 5 est plus detaille)
Hors ligne
#9 Thu 29 May 2008 09:33
- geocarto28
- Participant occasionnel
- Date d'inscription: 8 May 2008
- Messages: 21
Re: MapServer : Fonctionnement TEMPLATE
Bonjour,
Après vérification du mapfile et des fichiers HTML et Template, l'os venait du mapfile dans lequel on avait omis le paramètre
TEMPLATEPATTERN 'toto*'...
En voici le code corrigé :
Code:
MAP NAME Paris IMAGETYPE JPEG EXTENT 530000 142000 535000 150000 UNITS meters SIZE 800 800 SHAPEPATH "../data" IMAGECOLOR 220 240 255 SYMBOLSET "/ms4w/apps/tutorial/symbols/symbols35.sym" FONTSET "/ms4w/apps/tutorial/fonts/fonts.list" TEMPLATEPATTERN 'Paris*' ...etc.
A bientôt
Dernière modification par geocarto28 (Thu 29 May 2008 09:35)
Hors ligne
#10 Tue 01 December 2009 11:01
- Fritsch
- Participant occasionnel
- Lieu: Paris
- Date d'inscription: 8 Nov 2006
- Messages: 32
Re: MapServer : Fonctionnement TEMPLATE
Bon, m'étant frotté au même problème, je me permets de dépoussiérer ce sujet.
1- Le message d'erreur est dû au fait que MapServer n'arrive pas à apparier la commande map_web=template+Paris.html avec un objet du mapfile.
2- Cette commande de map_web sert à basculer dynamiquement d'un template vers un autre. Ici, il ne bascule rien, car il reste sur Paris.html, mais en vrai, c'est à cela qu'il sert.
3- pendant ce temps là, le fichier Paris_template.html ne sert à rien. En fait, c'est lui qui doit figurer, soit dans la commande map_web=, soit dans l'objet WEB du mapfile.
4- le barrage du TEMPLATEPATTERN ressemble à une sécurité, et la proposition '.' me semble un peu trop permissive.
Et deux références :
http://n2.nabble.com/Changing-layer-tem … 72037.html
http://mapserver.org/cgi/controls.html# … m-or-a-url
Emmanuel.
Dernière modification par Fritsch (Tue 01 December 2009 11:09)
Hors ligne