Remove maplint layer fron the map

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.
This commit is contained in:
Tom Hughes 2010-07-20 18:21:54 +01:00
parent 84b39122f1
commit 53b0ace4c0
2 changed files with 42 additions and 59 deletions

View file

@ -34,21 +34,24 @@ function createMap(divName, options) {
var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), {
keyid: "mapnik",
displayOutsideMaxExtent: true,
wrapDateLine: true
wrapDateLine: true,
layerCode: "M"
});
map.addLayer(mapnik);
var osmarender = new OpenLayers.Layer.OSM.Osmarender(i18n("javascripts.map.base.osmarender"), {
keyid: "osmarender",
displayOutsideMaxExtent: true,
wrapDateLine: true
wrapDateLine: true,
layerCode: "O"
});
map.addLayer(osmarender);
var cyclemap = new OpenLayers.Layer.OSM.CycleMap(i18n("javascripts.map.base.cycle_map"), {
keyid: "cyclemap",
displayOutsideMaxExtent: true,
wrapDateLine: true
wrapDateLine: true,
layerCode: "C"
});
map.addLayer(cyclemap);
@ -60,16 +63,11 @@ function createMap(divName, options) {
], {
displayOutsideMaxExtent: true,
wrapDateLine: true,
numZoomLevels: 19
numZoomLevels: 19,
layerCode: "N"
});
map.addLayer(noname);
var maplint = new OpenLayers.Layer.OSM.Maplint(i18n("javascripts.map.overlays.maplint"), {
displayOutsideMaxExtent: true,
wrapDateLine: true
});
map.addLayer(maplint);
var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
markers = new OpenLayers.Layer.Markers("Markers", {
@ -226,18 +224,17 @@ function getEventPosition(event) {
function getMapLayers() {
var layerConfig = "";
for (var layers = map.getLayersBy("isBaseLayer", true), i = 0; i < layers.length; i++) {
layerConfig += layers[i] == map.baseLayer ? "B" : "0";
for (var i = 0; i < map.layers.length; i++) {
if (map.layers[i].layerCode && map.layers[i].getVisibility()) {
layerConfig += map.layers[i].layerCode;
}
for (var layers = map.getLayersBy("isBaseLayer", false), i = 0; i < layers.length; i++) {
layerConfig += layers[i].getVisibility() ? "T" : "F";
}
return layerConfig;
}
function setMapLayers(layerConfig) {
if (layerConfig.charAt(0) == "B" || layerConfig.charAt(0) == "0") {
var l = 0;
for (var layers = map.getLayersBy("isBaseLayer", true), i = 0; i < layers.length; i++) {
@ -261,6 +258,20 @@ function setMapLayers(layerConfig) {
layers[i].setVisibility(false);
}
}
} else {
for (var i = 0; i < map.layers.length; i++) {
if (map.layers[i].layerCode &&
layerConfig.indexOf(map.layers[i].layerCode) >= 0) {
if (map.layers[i].isBaseLayer) {
map.setBaseLayer(map.layers[i]);
} else {
map.layers[i].setVisibility(true);
}
} else {
map.layers[i].setVisibility(false);
}
}
}
}
function scaleToZoom(scale) {

View file

@ -111,31 +111,3 @@ OpenLayers.Layer.OSM.CycleMap = OpenLayers.Class(OpenLayers.Layer.OSM, {
CLASS_NAME: "OpenLayers.Layer.OSM.CycleMap"
});
/**
* Class: OpenLayers.Layer.OSM.Maplint
*
* Inherits from:
* - <OpenLayers.Layer.OSM>
*/
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/${z}/${x}/${y}.png",
"http://e.tah.openstreetmap.org/Tiles/maplint/${z}/${x}/${y}.png",
"http://f.tah.openstreetmap.org/Tiles/maplint/${z}/${x}/${y}.png"
];
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"
});