#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