From e7292ecbe2ecee5f5254bec7655da4fc52575ae1 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Thu, 11 Oct 2012 22:26:59 +0200 Subject: [PATCH] Fixing ArcGISCache layer This is done by caching the tileOrigin at grid creation time. --- lib/OpenLayers/Layer/ArcGISCache.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/OpenLayers/Layer/ArcGISCache.js b/lib/OpenLayers/Layer/ArcGISCache.js index 27173392c4..e52ea645e6 100644 --- a/lib/OpenLayers/Layer/ArcGISCache.js +++ b/lib/OpenLayers/Layer/ArcGISCache.js @@ -358,6 +358,17 @@ OpenLayers.Layer.ArcGISCache = OpenLayers.Class(OpenLayers.Layer.XYZ, { return OpenLayers.Layer.XYZ.prototype.clone.apply(this, [obj]); }, + /** + * Method: initGriddedTiles + * + * Parameters: + * bounds - {} + */ + initGriddedTiles: function(bounds) { + delete this._tileOrigin; + OpenLayers.Layer.XYZ.prototype.initGriddedTiles.apply(this, arguments); + }, + /** * Method: getMaxExtent * Get this layer's maximum extent. @@ -379,8 +390,11 @@ OpenLayers.Layer.ArcGISCache = OpenLayers.Class(OpenLayers.Layer.XYZ, { * {} The tile origin. */ getTileOrigin: function() { - var extent = this.getMaxExtent(); - return new OpenLayers.LonLat(extent.left, extent.bottom); + if (!this._tileOrigin) { + var extent = this.getMaxExtent(); + this._tileOrigin = new OpenLayers.LonLat(extent.left, extent.bottom); + } + return this._tileOrigin; }, /**