Skip to content

[OpenLayers] Désactiver un des boutons de pan/zoom

Il arrive que dans certains projets, certains boutons de pan/zoom intégrés par défaut à une carte OpenLayers soient de trop. Si désactiver totalement un des objets « Control » d’OpenLayers est trop contraignant, vous avez la possibilité de désactiver/cacher un des quatre boutons de « pan » (nord, est, sud, ouest) et des trois boutons de « zoom » (in, max, out) avec une petite fonction assez méconnue.

var carte = new OpenLayers.Map('cartographie');

...

for(var i in carte.controls)
{
    if(carte.controls[i].displayClass == 'olControlPanZoom')
    {
        carte.controls[i]._removeButton(carte.controls[i]['buttons'][5]);
    }
}

La petite difficulté réside dans le fait que cette fonction _removeButton() s’appelle sur un objet « Control » et qu’elle prend en argument un objet « Button ».

Le chiffre 5 présent dans ce bout de code correspond au numéro du bouton que l’on cherche à désactiver. Voici la liste des boutons que vous pouvez désactiver/cacher et leur numéro respectif :

– 0, 1, 2 et 3 : boutons « pan »
– 4 : bouton « zoom in » (+)
– 5 : bouton « zoom to max extent »
– 6 : bouton « zoom out » (-)

Pas encore de commentaire

Rédiger votre commentaire

Vous pouvez utiliser un peu d'HTML dans votre commentaire.
Votre adresse e-mail ne sera pas publiée.

S'inscrire au flux RSS des commentaires de ce billet