Remove the maplint layer from the map and change the way layers are encoded in URLs to make links more robust when the available layers are changed.
113 lines
3.5 KiB
JavaScript
113 lines
3.5 KiB
JavaScript
/**
|
|
* Namespace: Util.OSM
|
|
*/
|
|
OpenLayers.Util.OSM = {};
|
|
|
|
/**
|
|
* Constant: MISSING_TILE_URL
|
|
* {String} URL of image to display for missing tiles
|
|
*/
|
|
OpenLayers.Util.OSM.MISSING_TILE_URL = "http://openstreetmap.org/openlayers/img/404.png";
|
|
|
|
/**
|
|
* Property: originalOnImageLoadError
|
|
* {Function} Original onImageLoadError function.
|
|
*/
|
|
OpenLayers.Util.OSM.originalOnImageLoadError = OpenLayers.Util.onImageLoadError;
|
|
|
|
/**
|
|
* Function: onImageLoadError
|
|
*/
|
|
OpenLayers.Util.onImageLoadError = function() {
|
|
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;
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Class: OpenLayers.Layer.OSM.Mapnik
|
|
*
|
|
* Inherits from:
|
|
* - <OpenLayers.Layer.OSM>
|
|
*/
|
|
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
|
|
*/
|
|
initialize: function(name, options) {
|
|
var url = [
|
|
"http://a.tile.openstreetmap.org/${z}/${x}/${y}.png",
|
|
"http://b.tile.openstreetmap.org/${z}/${x}/${y}.png",
|
|
"http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"
|
|
];
|
|
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>
|
|
*/
|
|
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
|
|
*/
|
|
initialize: function(name, options) {
|
|
var url = [
|
|
"http://a.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png",
|
|
"http://b.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png",
|
|
"http://c.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png"
|
|
];
|
|
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.CycleMap
|
|
*
|
|
* Inherits from:
|
|
* - <OpenLayers.Layer.OSM>
|
|
*/
|
|
OpenLayers.Layer.OSM.CycleMap = OpenLayers.Class(OpenLayers.Layer.OSM, {
|
|
/**
|
|
* Constructor: OpenLayers.Layer.OSM.CycleMap
|
|
*
|
|
* Parameters:
|
|
* name - {String}
|
|
* options - {Object} Hashtable of extra options to tag onto the layer
|
|
*/
|
|
initialize: function(name, options) {
|
|
var url = [
|
|
"http://a.andy.sandbox.cloudmade.com/tiles/cycle/${z}/${x}/${y}.png",
|
|
"http://b.andy.sandbox.cloudmade.com/tiles/cycle/${z}/${x}/${y}.png",
|
|
"http://c.andy.sandbox.cloudmade.com/tiles/cycle/${z}/${x}/${y}.png"
|
|
];
|
|
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.CycleMap"
|
|
});
|