diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index 33daa3a66c..20bc652465 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -1701,6 +1701,30 @@ OpenLayers.Map = OpenLayers.Class({ this.events.triggerEvent("move"); } }, + + /** + * Method: adjustZoom + * + * Parameters: + * zoom - {Number} The zoom level to adjust + * + * Returns: + * {Integer} Adjusted zoom level that shows a map not wider than its + * 's maxExtent. + */ + adjustZoom: function(zoom) { + var resolution, resolutions = this.baseLayer.resolutions, + maxResolution = this.getMaxExtent().getWidth() / this.getSize().w; + if (this.getResolutionForZoom(zoom) > maxResolution) { + for (var i=zoom|0, ii=resolutions.length; i