Netzwolf
(Netzwolf)
9
Nahmd,
Die Anzahl der Schritte auf der Slider-Skala hängt von der maximal erlaubten Auflösung ab und wird automatisch gewählt.
Die Rasterweite in Pixeln aber kann man im Parameter “zoomStopHeight” angeben; als Standardwert wird 11 angenommen.
Eine kürzere Skala bekommst Du also so:
new OpenLayers.Control.PanZoomBar( {zoomStopHeight:5})
Der Slider rastet damit in Abständen von 5 Pixeln.
Die sichtbare Skala bleibt dabei unverändert; sie wird innerhalb der OL-Klasse mit “xxx.style.backgroundImage=…” gesetzt und kann auch nicht per CSS ausgetauscht werden. Es geht aber so:
- Der PanZoomBar eine Id verpassen:
map.addControl (new OpenLayers.Control.PanZoomBar( {id:'myZoomBar', zoomStopHeight:5}));
- nach dem Laden der Karte über die Id das Element finden und ins richtige Unter-DIV ein anderes Background-Image eintragen:
document.getElementById ('myZoomBar').childNodes[5].style.backgroundImage='url(i/zoombar_18x05.png)';
Leider geht es nicht schöner, weil die Grafik kein Parameter, sondern fester Bestandteil des OL-Codes ist.
Und so sieht das Ergebnis aus: http://www.netzwolf.info/kartografie/openlayers/panzoombar.htm
Gruß Wolf