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:

  1. Der PanZoomBar eine Id verpassen:

map.addControl (new OpenLayers.Control.PanZoomBar( {id:'myZoomBar', zoomStopHeight:5}));

  1. 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