Netzwolf
(Netzwolf)
4
Moin,
Der Extent wird aus den Koordinaten Deiner Objekte berechnet, kennt aber die Ausdehnung der an den Koordinaten darzustellenden Objekte nicht.
Da die Grafiken beim Zoomen nicht mitschrumpfen und mitwachsen, kann man auch nicht einfach den Extent um einen fixen Betrag vergrößern.
Aber natürlich gibt es eine Lösung: man modifiziert die Methode der OpenLayers.Map-Klasse, die für Berechnung des Zooms zuständig ist:
// Sicherheitsabstand zwischen Extent und Kartenrand (in Pixeln)
map.safetyGap = 40;
// überschreibe die "getZoomForExtent"-Methode
map.getZoomForExtent=function(extent,closest){
var viewSize=this.getSize();
var idealResolution=Math.max(
extent.getWidth() /Math.max(viewSize.w-2*this.safetyGap,1),
extent.getHeight()/Math.max(viewSize.h-2*this.safetyGap,1));
return this.getZoomForResolution(idealResolution,closest);
};
Das Ganze natürlich vor dem Aufruf von “map.zoomToExtent()” 
Gruß Wolf