X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/b82c10bcd1fe5975edaa2cb0aedeec13add4ef34..5620d7263a36fe842f4d97bc21dda5edd0651b37:/public/openlayers/OpenStreetMap.js diff --git a/public/openlayers/OpenStreetMap.js b/public/openlayers/OpenStreetMap.js index 40722d4e0..f472d3fc1 100644 --- a/public/openlayers/OpenStreetMap.js +++ b/public/openlayers/OpenStreetMap.js @@ -16,11 +16,13 @@ OpenLayers.Util.OSM.MISSING_TILE_URL = "http://openstreetmap.org/openlayers/img/ OpenLayers.Util.OSM.originalOnImageLoadError = OpenLayers.Util.onImageLoadError; /** - * Function: onImageLoadError + * Function: onImageLoadError */ OpenLayers.Util.onImageLoadError = function() { - if (this.src.match(/^http:\/\/[abc]\.[a-z]+\.openstreetmap\.org/)) { + if (this.src.match(/^http:\/\/[abc]\.[a-z]+\.openstreetmap\.org\//)) { this.src = OpenLayers.Util.OSM.MISSING_TILE_URL; + } else if (this.src.match(/^http:\/\/[def]\.tah\.openstreetmap\.org\//)) { + // do nothing - this layer is transparent } else { OpenLayers.Util.OSM.originalOnImageLoadError; } @@ -28,35 +30,43 @@ OpenLayers.Util.onImageLoadError = function() { /** * @requires OpenLayers/Layer/TMS.js - * + * * Class: OpenLayers.Layer.OSM - * + * * Inherits from: * - */ OpenLayers.Layer.OSM = OpenLayers.Class(OpenLayers.Layer.TMS, { /** * Constructor: OpenLayers.Layer.OSM - * + * * Parameters: * name - {String} * url - {String} * options - {Object} Hashtable of extra options to tag onto the layer */ initialize: function(name, url, options) { - options = OpenLayers.Util.extend(options, { attribution: "Data by OpenStreetMap" }); - OpenLayers.Layer.TMS.prototype.initialize.apply(this, arguments); - }, - + options = OpenLayers.Util.extend({ + attribution: "Data by OpenStreetMap", + maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), + maxResolution: 156543.0339, + units: "m", + projection: "EPSG:900913", + transitionEffect: "resize" + }, options); + var newArguments = [name, url, options]; + OpenLayers.Layer.TMS.prototype.initialize.apply(this, newArguments); + }, + /** * Method: getUrl - * + * * Parameters: * bounds - {} - * + * * Returns: - * {String} A string with the layer's url and parameters and also the - * passed-in bounds and appropriate tile size specified as + * {String} A string with the layer's url and parameters and also the + * passed-in bounds and appropriate tile size specified as * parameters */ getURL: function (bounds) { @@ -91,14 +101,14 @@ OpenLayers.Layer.OSM = OpenLayers.Class(OpenLayers.Layer.TMS, { /** * Class: OpenLayers.Layer.OSM.Mapnik - * + * * Inherits from: * - */ OpenLayers.Layer.OSM.Mapnik = OpenLayers.Class(OpenLayers.Layer.OSM, { /** * Constructor: OpenLayers.Layer.OSM.Mapnik - * + * * Parameters: * name - {String} * options - {Object} Hashtable of extra options to tag onto the layer @@ -109,23 +119,24 @@ OpenLayers.Layer.OSM.Mapnik = OpenLayers.Class(OpenLayers.Layer.OSM, { "http://b.tile.openstreetmap.org/", "http://c.tile.openstreetmap.org/" ]; + options = OpenLayers.Util.extend({ numZoomLevels: 19 }, options); var newArguments = [name, url, options]; OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments); - }, + }, CLASS_NAME: "OpenLayers.Layer.OSM.Mapnik" }); /** * Class: OpenLayers.Layer.OSM.Osmarender - * + * * Inherits from: * - */ OpenLayers.Layer.OSM.Osmarender = OpenLayers.Class(OpenLayers.Layer.OSM, { /** * Constructor: OpenLayers.Layer.OSM.Osmarender - * + * * Parameters: * name - {String} * options - {Object} Hashtable of extra options to tag onto the layer @@ -136,9 +147,54 @@ OpenLayers.Layer.OSM.Osmarender = OpenLayers.Class(OpenLayers.Layer.OSM, { "http://b.tah.openstreetmap.org/Tiles/tile.php/", "http://c.tah.openstreetmap.org/Tiles/tile.php/" ]; + options = OpenLayers.Util.extend({ numZoomLevels: 18 }, options); var newArguments = [name, url, options]; OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments); - }, + }, CLASS_NAME: "OpenLayers.Layer.OSM.Osmarender" }); + +/** + * Class: OpenLayers.Layer.OSM.Maplint + * + * Inherits from: + * - + */ +OpenLayers.Layer.OSM.Maplint = OpenLayers.Class(OpenLayers.Layer.OSM, { + /** + * Constructor: OpenLayers.Layer.OSM.Maplint + * + * Parameters: + * name - {String} + * options - {Object} Hashtable of extra options to tag onto the layer + */ + initialize: function(name, options) { + var url = [ + "http://d.tah.openstreetmap.org/Tiles/maplint.php/", + "http://e.tah.openstreetmap.org/Tiles/maplint.php/", + "http://f.tah.openstreetmap.org/Tiles/maplint.php/" + ]; + options = OpenLayers.Util.extend({ numZoomLevels: 18, isBaseLayer: false, visibility: false }, options); + var newArguments = [name, url, options]; + OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments); + }, + + CLASS_NAME: "OpenLayers.Layer.OSM.Maplint" +}); + +OpenLayers.Layer.Data = OpenLayers.Class(OpenLayers.Layer, { + setVisibility: function(vis) { + var oldvis = this.visibility; + OpenLayers.Layer.prototype.setVisibility.apply(this, arguments); + if (!this.map) { return; } + if (vis && !oldvis) { + new Ajax.Request('/browse/start', {asynchronous:true, evalScripts:true}); + } else { + if (this.stopBrowse) { + this.stopBrowse(); + closeSidebar(); + } + } + } +});