From 72d1b54956ec2e04ada213318a1f6578c49204a2 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Fri, 27 Apr 2012 09:25:52 -0400 Subject: [PATCH] Also taking into account zoomOffset. Now the meaning of getServerZoom is fully clarified, and we can get rid of some code again as well. --- lib/OpenLayers/Layer/Grid.js | 13 +++++++------ lib/OpenLayers/Layer/TMS.js | 2 +- lib/OpenLayers/Layer/WMTS.js | 2 +- lib/OpenLayers/Layer/XYZ.js | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/OpenLayers/Layer/Grid.js b/lib/OpenLayers/Layer/Grid.js index f5837b15fc..ab83779334 100644 --- a/lib/OpenLayers/Layer/Grid.js +++ b/lib/OpenLayers/Layer/Grid.js @@ -651,17 +651,18 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, { /** * Method: getServerZoom - * Return the zoom value corresponding to the best zoom supported by the server - * resolution. + * Return the zoom value corresponding to the best matching server + * resolution, taking into account and . * * Returns: - * {Number} The closest server supported zoom. + * {Number} The closest server supported zoom. This is not the map zoom + * level, but an index of the server's resolutions array. */ getServerZoom: function() { - var serverResolution = this.getServerResolution(); + var resolution = this.getServerResolution(); return this.serverResolutions ? - OpenLayers.Util.indexOf(this.serverResolutions, serverResolution) : - this.map.getZoomForResolution(serverResolution); + OpenLayers.Util.indexOf(this.serverResolutions, resolution) : + this.map.getZoomForResolution(resolution) + (this.zoomOffset || 0); }, /** diff --git a/lib/OpenLayers/Layer/TMS.js b/lib/OpenLayers/Layer/TMS.js index c4024edde3..da879b1de4 100644 --- a/lib/OpenLayers/Layer/TMS.js +++ b/lib/OpenLayers/Layer/TMS.js @@ -173,7 +173,7 @@ OpenLayers.Layer.TMS = OpenLayers.Class(OpenLayers.Layer.Grid, { var res = this.getServerResolution(); var x = Math.round((bounds.left - this.tileOrigin.lon) / (res * this.tileSize.w)); var y = Math.round((bounds.bottom - this.tileOrigin.lat) / (res * this.tileSize.h)); - var z = this.getServerZoom() + (this.zoomOffset || 0); + var z = this.getServerZoom(); var path = this.serviceVersion + "/" + this.layername + "/" + z + "/" + x + "/" + y + "." + this.type; var url = this.url; if (OpenLayers.Util.isArray(url)) { diff --git a/lib/OpenLayers/Layer/WMTS.js b/lib/OpenLayers/Layer/WMTS.js index 168ef5a89e..bf4cc5a38f 100644 --- a/lib/OpenLayers/Layer/WMTS.js +++ b/lib/OpenLayers/Layer/WMTS.js @@ -332,7 +332,7 @@ OpenLayers.Layer.WMTS = OpenLayers.Class(OpenLayers.Layer.Grid, { * Get the current index in the matrixIds array. */ getIdentifier: function() { - return this.getServerZoom() + (this.zoomOffset || 0); + return this.getServerZoom(); }, /** diff --git a/lib/OpenLayers/Layer/XYZ.js b/lib/OpenLayers/Layer/XYZ.js index dd1cc3c76f..504f093f62 100644 --- a/lib/OpenLayers/Layer/XYZ.js +++ b/lib/OpenLayers/Layer/XYZ.js @@ -143,7 +143,7 @@ OpenLayers.Layer.XYZ = OpenLayers.Class(OpenLayers.Layer.Grid, { (res * this.tileSize.w)); var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h)); - var z = this.getServerZoom() + (this.zoomOffset || 0); + var z = this.getServerZoom(); if (this.wrapDateLine) { var limit = Math.pow(2, z);