L'idée est d'avoir un bouton qui permet (ou non) d'afficher une couche IGN "ORTHOIMAGERY.ORTHOPHOTOS2000-2005", sans passer par la checkbox du LayersPanel.
Grace à quelques anciens posts, créer le bouton et le manipuler, j'y arrive de la manière suivante:
1 2 3 4 5 6 7
| new OpenLayers.Control.Button({
uis:[OpenLayers.UI],
uiOptions:{
title:"Affiche orthophoto",
displayClass:"olControlEssai1"
},
trigger:function() {....} |
Mon problème est plutôt la fonction trigger:
1/ Pour ouvrir la couche IGN, je recours à un classique:
viewer.addGeoportalLayer('ORTHOIMAGERY.ORTHOPHOTOS2000-2005')
Là, je pense que je ne fais pas d'erreur.
2/ Mais pour la fermer, j'ai quelques difficultés. Je me réfère bien à cette discussion et bidouille donc autour de removeGeoportalLayer() mais mon problème porte sur l'InterfaceViewer dans lequel est défini cette fonction. A partir de maintenant, mes propos peuvent être erronés car je ne maitrise pas bien le rapport entre viewer et InterfaceViewer. Comme je lance mon api via:
1 2 3 4 5 6 7 8 9 10 11 12 13
| viewer= new Geoportal.Viewer.Default(
"GeoportalviewerDiv",
OpenLayers.Util.extend({
minZoomLevel: 13,
maxZoomLevel: 18,
// proxy:'http://43.lignon.free.fr/cadastre/proxy.php?url=',
controlsOptions:{activeOverMapOnly:false,
logoSize:30},
nameInstance: 'viewer'
},
window.gGEOPORTALRIGHTSMANAGEMENT===undefined? {apiKey:['5qw17vy53whiib9eh7b22ttt']}:gGEOPORTALRIGHTSMANAGEMENT
)
);.... |
et non par le classique
1 2 3 4 5 6
| window.onload= function() {
iv= Geoportal.load(
// div's ID:
'viewerDiv',
// API's keys:
['CLEF'], |
je ne sais pas trop bien comment remonter à l'InterfaceViewer, et retrouver le code correct de gcebelieu dans le post cité.
Si on me donne le moyen de définir l'InterfaceViewer dans mon cas particulier, je pense pouvoir continuer sur la base donnée par gcebelieu...
Merci.
Partager