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:
parent
84b39122f1
commit
53b0ace4c0
2 changed files with 42 additions and 59 deletions
|
@ -34,21 +34,24 @@ function createMap(divName, options) {
|
||||||
var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), {
|
var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), {
|
||||||
keyid: "mapnik",
|
keyid: "mapnik",
|
||||||
displayOutsideMaxExtent: true,
|
displayOutsideMaxExtent: true,
|
||||||
wrapDateLine: true
|
wrapDateLine: true,
|
||||||
|
layerCode: "M"
|
||||||
});
|
});
|
||||||
map.addLayer(mapnik);
|
map.addLayer(mapnik);
|
||||||
|
|
||||||
var osmarender = new OpenLayers.Layer.OSM.Osmarender(i18n("javascripts.map.base.osmarender"), {
|
var osmarender = new OpenLayers.Layer.OSM.Osmarender(i18n("javascripts.map.base.osmarender"), {
|
||||||
keyid: "osmarender",
|
keyid: "osmarender",
|
||||||
displayOutsideMaxExtent: true,
|
displayOutsideMaxExtent: true,
|
||||||
wrapDateLine: true
|
wrapDateLine: true,
|
||||||
|
layerCode: "O"
|
||||||
});
|
});
|
||||||
map.addLayer(osmarender);
|
map.addLayer(osmarender);
|
||||||
|
|
||||||
var cyclemap = new OpenLayers.Layer.OSM.CycleMap(i18n("javascripts.map.base.cycle_map"), {
|
var cyclemap = new OpenLayers.Layer.OSM.CycleMap(i18n("javascripts.map.base.cycle_map"), {
|
||||||
keyid: "cyclemap",
|
keyid: "cyclemap",
|
||||||
displayOutsideMaxExtent: true,
|
displayOutsideMaxExtent: true,
|
||||||
wrapDateLine: true
|
wrapDateLine: true,
|
||||||
|
layerCode: "C"
|
||||||
});
|
});
|
||||||
map.addLayer(cyclemap);
|
map.addLayer(cyclemap);
|
||||||
|
|
||||||
|
@ -60,16 +63,11 @@ function createMap(divName, options) {
|
||||||
], {
|
], {
|
||||||
displayOutsideMaxExtent: true,
|
displayOutsideMaxExtent: true,
|
||||||
wrapDateLine: true,
|
wrapDateLine: true,
|
||||||
numZoomLevels: 19
|
numZoomLevels: 19,
|
||||||
|
layerCode: "N"
|
||||||
});
|
});
|
||||||
map.addLayer(noname);
|
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);
|
var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
|
||||||
|
|
||||||
markers = new OpenLayers.Layer.Markers("Markers", {
|
markers = new OpenLayers.Layer.Markers("Markers", {
|
||||||
|
@ -226,39 +224,52 @@ function getEventPosition(event) {
|
||||||
function getMapLayers() {
|
function getMapLayers() {
|
||||||
var layerConfig = "";
|
var layerConfig = "";
|
||||||
|
|
||||||
for (var layers = map.getLayersBy("isBaseLayer", true), i = 0; i < layers.length; i++) {
|
for (var i = 0; i < map.layers.length; i++) {
|
||||||
layerConfig += layers[i] == map.baseLayer ? "B" : "0";
|
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;
|
return layerConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setMapLayers(layerConfig) {
|
function setMapLayers(layerConfig) {
|
||||||
var l = 0;
|
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++) {
|
for (var layers = map.getLayersBy("isBaseLayer", true), i = 0; i < layers.length; i++) {
|
||||||
var c = layerConfig.charAt(l++);
|
var c = layerConfig.charAt(l++);
|
||||||
|
|
||||||
if (c == "B") {
|
if (c == "B") {
|
||||||
map.setBaseLayer(layers[i]);
|
map.setBaseLayer(layers[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
while (layerConfig.charAt(l) == "B" || layerConfig.charAt(l) == "0") {
|
while (layerConfig.charAt(l) == "B" || layerConfig.charAt(l) == "0") {
|
||||||
l++;
|
l++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var layers = map.getLayersBy("isBaseLayer", false), i = 0; i < layers.length; i++) {
|
for (var layers = map.getLayersBy("isBaseLayer", false), i = 0; i < layers.length; i++) {
|
||||||
var c = layerConfig.charAt(l++);
|
var c = layerConfig.charAt(l++);
|
||||||
|
|
||||||
if (c == "T") {
|
if (c == "T") {
|
||||||
layers[i].setVisibility(true);
|
layers[i].setVisibility(true);
|
||||||
} else if(c == "F") {
|
} else if(c == "F") {
|
||||||
layers[i].setVisibility(false);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,31 +111,3 @@ OpenLayers.Layer.OSM.CycleMap = OpenLayers.Class(OpenLayers.Layer.OSM, {
|
||||||
|
|
||||||
CLASS_NAME: "OpenLayers.Layer.OSM.CycleMap"
|
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"
|
|
||||||
});
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue