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;
}
};
/**
- * @requires OpenLayers/Layer/TMS.js
- *
- * Class: OpenLayers.Layer.OSM
- *
+ * Class: OpenLayers.Layer.OSM.Mapnik
+ *
* Inherits from:
- * - <OpenLayers.Layer.TMS>
+ * - <OpenLayers.Layer.OSM>
*/
-OpenLayers.Layer.OSM = OpenLayers.Class(OpenLayers.Layer.TMS, {
+OpenLayers.Layer.OSM.Mapnik = OpenLayers.Class(OpenLayers.Layer.OSM, {
/**
- * Constructor: OpenLayers.Layer.OSM
- *
+ * Constructor: OpenLayers.Layer.OSM.Mapnik
+ *
* 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 <a href='http://openstreetmap.org/'>OpenStreetMap</a>" });
- OpenLayers.Layer.TMS.prototype.initialize.apply(this, arguments);
- },
-
- /**
- * Method: getUrl
- *
- * Parameters:
- * bounds - {<OpenLayers.Bounds>}
- *
- * Returns:
- * {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) {
- var res = this.map.getResolution();
- var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
- var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
- var z = this.map.getZoom();
- var limit = Math.pow(2, z);
-
- if (y < 0 || y >= limit)
- {
- return OpenLayers.Util.OSM.MISSING_TILE_URL;
- }
- else
- {
- x = ((x % limit) + limit) % limit;
-
- var url = this.url;
- var path = z + "/" + x + "/" + y + ".png";
-
- if (url instanceof Array)
- {
- url = this.selectUrl(path, url);
- }
-
- return url + path;
- }
+ 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"
+ CLASS_NAME: "OpenLayers.Layer.OSM.Mapnik"
});
/**
- * Class: OpenLayers.Layer.OSM.Mapnik
- *
+ * Class: OpenLayers.Layer.OSM.Osmarender
+ *
* Inherits from:
* - <OpenLayers.Layer.OSM>
*/
-OpenLayers.Layer.OSM.Mapnik = OpenLayers.Class(OpenLayers.Layer.OSM, {
+OpenLayers.Layer.OSM.Osmarender = OpenLayers.Class(OpenLayers.Layer.OSM, {
/**
- * Constructor: OpenLayers.Layer.OSM.Mapnik
- *
+ * 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.tile.openstreetmap.org/",
- "http://b.tile.openstreetmap.org/",
- "http://c.tile.openstreetmap.org/"
+ "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.Mapnik"
+ CLASS_NAME: "OpenLayers.Layer.OSM.Osmarender"
});
/**
- * Class: OpenLayers.Layer.OSM.Osmarender
- *
+ * Class: OpenLayers.Layer.OSM.CycleMap
+ *
* Inherits from:
* - <OpenLayers.Layer.OSM>
*/
-OpenLayers.Layer.OSM.Osmarender = OpenLayers.Class(OpenLayers.Layer.OSM, {
+OpenLayers.Layer.OSM.CycleMap = OpenLayers.Class(OpenLayers.Layer.OSM, {
/**
- * Constructor: OpenLayers.Layer.OSM.Osmarender
- *
+ * 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.tah.openstreetmap.org/Tiles/tile.php/",
- "http://b.tah.openstreetmap.org/Tiles/tile.php/",
- "http://c.tah.openstreetmap.org/Tiles/tile.php/"
+ "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.Osmarender"
+ CLASS_NAME: "OpenLayers.Layer.OSM.CycleMap"
});