diff options
Diffstat (limited to 'misc/openlayers/lib/OpenLayers/Control/CacheRead.js')
-rw-r--r-- | misc/openlayers/lib/OpenLayers/Control/CacheRead.js | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/misc/openlayers/lib/OpenLayers/Control/CacheRead.js b/misc/openlayers/lib/OpenLayers/Control/CacheRead.js deleted file mode 100644 index 7768bce..0000000 --- a/misc/openlayers/lib/OpenLayers/Control/CacheRead.js +++ /dev/null @@ -1,156 +0,0 @@ -/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for - * full list of contributors). Published under the 2-clause BSD license. - * See license.txt in the OpenLayers distribution or repository for the - * full text of the license. */ - -/** - * @requires OpenLayers/Control.js - */ - -/** - * Class: OpenLayers.Control.CacheRead - * A control for using image tiles cached with <OpenLayers.Control.CacheWrite> - * from the browser's local storage. - * - * Inherits from: - * - <OpenLayers.Control> - */ -OpenLayers.Control.CacheRead = OpenLayers.Class(OpenLayers.Control, { - - /** - * APIProperty: fetchEvent - * {String} The layer event to listen to for replacing remote resource tile - * URLs with cached data URIs. Supported values are "tileerror" (try - * remote first, fall back to cached) and "tileloadstart" (try cache - * first, fall back to remote). Default is "tileloadstart". - * - * Note that "tileerror" will not work for CORS enabled images (see - * https://developer.mozilla.org/en/CORS_Enabled_Image), i.e. layers - * configured with a <OpenLayers.Tile.Image.crossOriginKeyword> in - * <OpenLayers.Layer.Grid.tileOptions>. - */ - fetchEvent: "tileloadstart", - - /** - * APIProperty: layers - * {Array(<OpenLayers.Layer.Grid>)}. Optional. If provided, only these - * layers will receive tiles from the cache. - */ - layers: null, - - /** - * APIProperty: autoActivate - * {Boolean} Activate the control when it is added to a map. Default is - * true. - */ - autoActivate: true, - - /** - * Constructor: OpenLayers.Control.CacheRead - * - * Parameters: - * options - {Object} Object with API properties for this control - */ - - /** - * Method: setMap - * Set the map property for the control. - * - * Parameters: - * map - {<OpenLayers.Map>} - */ - setMap: function(map) { - OpenLayers.Control.prototype.setMap.apply(this, arguments); - var i, layers = this.layers || map.layers; - for (i=layers.length-1; i>=0; --i) { - this.addLayer({layer: layers[i]}); - } - if (!this.layers) { - map.events.on({ - addlayer: this.addLayer, - removeLayer: this.removeLayer, - scope: this - }); - } - }, - - /** - * Method: addLayer - * Adds a layer to the control. Once added, tiles requested for this layer - * will be cached. - * - * Parameters: - * evt - {Object} Object with a layer property referencing an - * <OpenLayers.Layer> instance - */ - addLayer: function(evt) { - evt.layer.events.register(this.fetchEvent, this, this.fetch); - }, - - /** - * Method: removeLayer - * Removes a layer from the control. Once removed, tiles requested for this - * layer will no longer be cached. - * - * Parameters: - * evt - {Object} Object with a layer property referencing an - * <OpenLayers.Layer> instance - */ - removeLayer: function(evt) { - evt.layer.events.unregister(this.fetchEvent, this, this.fetch); - }, - - /** - * Method: fetch - * Listener to the <fetchEvent> event. Replaces a tile's url with a data - * URI from the cache. - * - * Parameters: - * evt - {Object} Event object with a tile property. - */ - fetch: function(evt) { - if (this.active && window.localStorage && - evt.tile instanceof OpenLayers.Tile.Image) { - var tile = evt.tile, - url = tile.url; - // deal with modified tile urls when both CacheWrite and CacheRead - // are active - if (!tile.layer.crossOriginKeyword && OpenLayers.ProxyHost && - url.indexOf(OpenLayers.ProxyHost) === 0) { - url = OpenLayers.Control.CacheWrite.urlMap[url]; - } - var dataURI = window.localStorage.getItem("olCache_" + url); - if (dataURI) { - tile.url = dataURI; - if (evt.type === "tileerror") { - tile.setImgSrc(dataURI); - } - } - } - }, - - /** - * Method: destroy - * The destroy method is used to perform any clean up before the control - * is dereferenced. Typically this is where event listeners are removed - * to prevent memory leaks. - */ - destroy: function() { - if (this.layers || this.map) { - var i, layers = this.layers || this.map.layers; - for (i=layers.length-1; i>=0; --i) { - this.removeLayer({layer: layers[i]}); - } - } - if (this.map) { - this.map.events.un({ - addlayer: this.addLayer, - removeLayer: this.removeLayer, - scope: this - }); - } - OpenLayers.Control.prototype.destroy.apply(this, arguments); - }, - - CLASS_NAME: "OpenLayers.Control.CacheRead" -}); |