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é ?

#1 Wed 06 October 2010 07:20

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

[Openlayers] accès aux paramètres d'un layer WMS

Bonjour,

Dans mon code, je déclare un layer WMS :

Code:

SMF_images = new OpenLayers.Layer.WMS("SMF_images", "http://www.adresse_wms", 
                                    {layers:smfImages, format:'image/png', transparent:true}, 
                                    {isBaseLayer:false});

ou smfImages est une chaine que j'ai crée auparavant.
ça ça marche.

mais dans la suite du code, quand je veux accéder à la propriété layers du layer (SMF_Images.params.layers), il me met "undefined".
Comment accéder à ce paramatètre ?

Merci,

Nico

Hors ligne

 

#2 Wed 06 October 2010 08:37

Laurent Jégou
Participant assidu
Lieu: Toulouse
Date d'inscription: 5 Sep 2005
Messages: 447
Site web

Re: [Openlayers] accès aux paramètres d'un layer WMS

Il s'agit d'un problème de portée de la variable. En Js il faut prendre quelques précautions pour que les variables déclarées à un endroit soient accessibles à d'autres, par exemple en les déclarant au début du code, hors de toute fonction, avec l'instruction "var".

http://www.commentcamarche.net/contents … jsvar.php3


Enseignant-Chercheur en Géomatique
UT2J - Dept Géo / CNRS UMR LISST-Cieu / Master Sigma - Revue Mappemonde

Hors ligne

 

#3 Thu 07 October 2010 06:09

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

Re: [Openlayers] accès aux paramètres d'un layer WMS

Bonjour,

J'ai déclaré mon layer au début :

Code:

SMF_images = new OpenLayers.Layer.WMS("SMF_images", "http://www.adresse_wms", 
                                    {format:'image/png', transparent:true}, 
                                    {isBaseLayer:false});

puis dans ma fonction, j'ajoute la propriété layers :

Code:

SMF_images.mergeNewParams({layers: smfImages});

Mais quand je fais un affichage de la propriété layers, il me met toujours 'undefined'.
J'ai essayé d'initialiser layers:'' dans la déclaration initiale du layer, c'est pas mieux.
alors ?

Merci,

Nico

Hors ligne

 

#4 Thu 07 October 2010 08:20

Laurent Jégou
Participant assidu
Lieu: Toulouse
Date d'inscription: 5 Sep 2005
Messages: 447
Site web

Re: [Openlayers] accès aux paramètres d'un layer WMS

var SMF_images; au tout début ? L'outil pratique pour ce genre de problème c'est le plugin FireBug de FireFox, avec le débogage pas à pas du script et le test de valeurs de variables avancé.


Enseignant-Chercheur en Géomatique
UT2J - Dept Géo / CNRS UMR LISST-Cieu / Master Sigma - Revue Mappemonde

Hors ligne

 

#5 Thu 07 October 2010 14:42

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

Re: [Openlayers] accès aux paramètres d'un layer WMS

Au tout début, je déclare :

Code:

var SMF_images = new OpenLayers.Layer.WMS("SMF_images", WMS_address, {format:'image/png', transparent:true}, {isBaseLayer:false});

ensuite, j'ai une fonction init() qui est appellée dans le onload de ma page web.
si je fais dans cette fonction:

Code:

Alert(SMF_images.params.format)

j'ai comme réponse "undefined"

Nicolas

Hors ligne

 

#6 Fri 08 October 2010 10:37

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

Re: [Openlayers] accès aux paramètres d'un layer WMS

j'ai trouvé !! :
en fait, quand il crée le layer, il transforme les noms des paramètres en MAJUSCULES !!

donc pour y accéder, il faut faire :

Code:

SMF_images.params.FORMAT

de la même manière, si on veut ajouter le paramètre layers, on peut faire :

Code:

SMF_images.mergeNewParams({layers: 'toto,titi'});

mais ensuite, pour y accéder, il faut faire :

Code:

SMF_images.params.LAYERS

Lu dans la doc :

Code:

mergeNewParams :
Catch changeParams and uppercase the new params to be merged in before calling changeParams on the super class.
Once params have been changed, the tiles will be reloaded with the new parameters.

Nico

Hors ligne

 

Pied de page des forums

Powered by FluxBB