banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9863
Site web

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

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 946
Site web

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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#7 Thu 12 September 2013 10:41

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 946
Site web

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 wink

Dernière modification par Yves (Thu 12 September 2013 14:51)

Hors ligne

 

#9 Thu 12 September 2013 14:53

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9863
Site web

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

 

Pied de page des forums

Powered by FluxBB