Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Tue 10 September 2013 14:04
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
[Openlayers] Accéder aux couches d'un Mapfile ...
Bonjour,
je fais mes premières expérimentations en OpenLayers.
J'ai du mal à saisir la façon dont on accède au fichier Mapserver (et à ses différentes couches) :
J'ai un mapfile avec deux couches (communes et cantons par ex.)
J'affiche cette carte dans Openlayers à peu près sans soucis (...) les deux couches de mon Mapfile sont affichées alors que dans mon code OL je n'ai fait qu'un ajout de couche, via un new OpenLayers.Layer.WMS().
J'aurais deux questions :
1) Comment se fait-il qu'il affiche les deux couches de mon Mapfile ?
2) De façon générale comment accéder aux noms des n layers éventuellement présents dans un Mapfile de façon à jouer avec dans le code OL ?
Merci à vous ...
Hors ligne
#2 Tue 10 September 2013 14:40
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Bonjour,
Cela concerne le standard OGC WMS :
1. celui-ci prend dans une requête GetMap un paramètre nommé LAYERS qui liste les couches à afficher dans l'image. Si tu met deux couches, l'image résultante du serveur fera apparaitre les deux couches fusionnées. Si tu veux deux couches côté client il faut faire deux couches via le constructeur ol.layer.wms() appelé deux fois.
2. le nom des couches à appeler dans le paramètre LAYER sont les valeurs du paramètre NAME dans l'objet LAYER. Sinon tu envoie une requête GetCapabilities : http://localhost/cgi-bin/mapserv?map=/chemin/vers/mapfile&REQUEST=GetCapabilities&VERSION=1.3.0&SERVICE=WMS
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 10 September 2013 15:30
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Merci ... je vais creuser cela ...
Hors ligne
#4 Wed 11 September 2013 17:16
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Euh ... je reviens ... je pensais suivre ce que vous me disiez en faisant cette requête GETMAP :
Mais je constate que j'ai toujours mes deux couches dans l'image résultante (et non pas seulement celle spécifiée dans le paramètre LAYERS) ... ?
Je ne capte plus ...
Dernière modification par snaileater (Wed 11 September 2013 17:24)
Hors ligne
#5 Wed 11 September 2013 18:58
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Bonjour,
Votre appel ne comporte pas "service=WMS" dans l'URL pour information.
Un extrait de votre mapfile ou celui-ci en pièce jointe permettrait de voir votre configuration Mapserver pour mieux vous aider. Je pense plus pour une erreur de ce côté.
Le problème côté OpenLayers n'est que le symptôme du problème je pense.
Cordialement
ThomasG
Hors ligne
#6 Thu 12 September 2013 09:26
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Bonjour,
j'ai rajouté "service=WMS" mais cela n'a rien changé. Je joins mon mapfile (toto.map) qui est a priori tout simple et superpose deux couches (communes et cantons ...)
Qu'ai-je pu oublier ... ?
Merci d'avance ...
Dernière modification par snaileater (Thu 12 September 2013 09:29)
Hors ligne
#7 Thu 12 September 2013 10:41
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Bonjour,
Vous avez oublié de configurer tout le fonctionnement WMS dans votre mapfile donc ça ne peut pas marcher. Vous n'avez pas par exemple le bloc METADATA pour chaque LAYER.
Comme indiqué par Yves en l'appliquant à votre exemple, l'URL suivante doit renvoyer un retour XML
http://10.18.1.45:8081/cgi-bin/mapserv? … ERVICE=WMS
Relisez et appliquez le contenu de la doc WMS http://mapserver.org/fr/ogc/wms_server.html
Tant que l'URL avec le GetCapabilities ne renvoie par un retour correct, inutile de chercher à utiliser OpenLayers: votre problème est dans la configuration Mapserver.
Cordialement
ThomasG
Hors ligne
#8 Thu 12 September 2013 13:51
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Bonjour,
merci pour ces commentaires, je passe en revue les "warnings" ...
Pour info mm sans "service =WMS" les choses se sont mises à fonctionner après correction du mapfile en modifiant le STATUS des deux couches qui étaient sur DEFAULT.
En les passant en ON je suis parvenu à les "discriminer" via le paramètre LAYER.
PS : on ne peut pas marquer un post comme "résolu" ? c'est assez embétant ça ...
[modérateur] attention des enfants peuvent vous lire
Dernière modification par Yves (Thu 12 September 2013 14:51)
Hors ligne
#9 Thu 12 September 2013 14:53
Re: [Openlayers] Accéder aux couches d'un Mapfile ...
Bonjour,
Le paramètres SERVICE=WMS est bien obligatoire il me semble dans les spec, mais oui certain serveur n'en n'ont cure !
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