aboutsummaryrefslogtreecommitdiff
path: root/underlays/osm
diff options
context:
space:
mode:
authorAntoine Beaupré <anarcat@koumbit.org>2012-08-25 08:53:30 -0400
committerAntoine Beaupré <anarcat@koumbit.org>2012-08-25 08:53:33 -0400
commit636e04a13a96f11c67d82aebfb4ee9fd51b61110 (patch)
tree48dcc3d99b0eadc7b792153ceefa482f0a0ba0c1 /underlays/osm
parentc7070ddd48232f43cbc4d48b399aad9636084364 (diff)
downloadikiwiki-636e04a13a96f11c67d82aebfb4ee9fd51b61110.tar
ikiwiki-636e04a13a96f11c67d82aebfb4ee9fd51b61110.tar.gz
make layers an array
this simplifies the code, make the configuration more intuitive, at the cost of making the labels on the layers automatically generated and therefore less customizable
Diffstat (limited to 'underlays/osm')
-rw-r--r--underlays/osm/ikiwiki/osm.js29
1 files changed, 12 insertions, 17 deletions
diff --git a/underlays/osm/ikiwiki/osm.js b/underlays/osm/ikiwiki/osm.js
index 8b2170706..5ba3223ad 100644
--- a/underlays/osm/ikiwiki/osm.js
+++ b/underlays/osm/ikiwiki/osm.js
@@ -41,23 +41,22 @@ function mapsetup(divname, options) {
numZoomLevels: 19
});
- for (x in options.layers_order) {
- layer = options.layers_order[x];
- console.log("setting up layer: " + layer + " with argument : " + options.layers[layer]);
+ for (x in options.layers) {
+ layer = options.layers[x];
+ console.log("setting up layer: " + layer);
if (layer.indexOf("Google") >= 0) {
if (options.google_apikey && options.google_apikey != 'null') {
var gtype = G_NORMAL_MAP;
- var gtext = "";
- if (options.layers[layer] == "Satellite") {
+ if (layer.indexOf("Satellite") >= 0) {
gtype = G_SATELLITE_MAP;
- } else if (options.layers[layer] == "Hybrid") {
+ } else if (layer.indexOf("Hybrid") >= 0) {
gtype = G_HYBRID_MAP // the normal map overlaying the satellite photographs
- } else if (options.layers[layer] == "Physical") {
+ } else if (layer.indexOf("Physical") >= 0) {
gtype = G_PHYSICAL_MAP // terrain information
}
// this nightmare is possible through http://docs.openlayers.org/library/spherical_mercator.html
googleLayer = new OpenLayers.Layer.Google(
- "Google (" + options.layers[layer] + ")",
+ layer,
{type: gtype,
'sphericalMercator': true,
'maxExtent': new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
@@ -67,15 +66,11 @@ function mapsetup(divname, options) {
} else {
console.log("no API key defined for Google layer, skipping");
}
- } else { // OSM
- if (options.layers[layer] != 1) {
- l = options.layers[layer];
- fqdn = l.split("/")[2].split(".");
- text = fqdn[fqdn.length-2] + "." + fqdn[fqdn.length-1];
- map.addLayer(new OpenLayers.Layer.OSM(layer + " (" + text + ")", l));
- } else {
- map.addLayer(new OpenLayers.Layer.OSM(layer + " (Mapnik)"));
- }
+ } else if (layer == 'OSM') { // OSM default layer
+ map.addLayer(new OpenLayers.Layer.OSM("OSM (Mapnik)"));
+ } else { // assumed to be a URL
+ text = layer.match(/([^.\/]*\.[^.\/]*(\/[^\$]*)?)\/.*$/i) // take the first two parts of the FQDN and everything before the first $
+ map.addLayer(new OpenLayers.Layer.OSM("OSM (" + text[1] + ")", layer));
}
}