[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 » (-)