aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/osm.pm13
-rw-r--r--underlays/osm/ikiwiki/osm.js7
2 files changed, 19 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/osm.pm b/IkiWiki/Plugin/osm.pm
index 764767525..21d1dce3f 100644
--- a/IkiWiki/Plugin/osm.pm
+++ b/IkiWiki/Plugin/osm.pm
@@ -67,6 +67,13 @@ sub getsetup () {
safe => 0,
rebuild => 1,
},
+ osm_map_url => {
+ type => "string",
+ example => "/tiles/\${z}/\${x}/\${y}.png",
+ description => "Url to get map tiles from (if none specified, uses the openstreetmap server, see http://wiki.openstreetmap.org/wiki/Creating_your_own_tiles for more info on serving your own tiles)",
+ safe => 0,
+ rebuild => 1,
+ },
}
@@ -540,6 +547,8 @@ sub map_setup_code($;@) {
my $name=shift;
my %options=@_;
+ my $mapurl = $config{osm_map_url};
+
eval q{use JSON};
error $@ if $@;
@@ -556,6 +565,10 @@ sub map_setup_code($;@) {
$options{'kmlurl'} = urlto($map."/pois.kml");
}
+ if ($mapurl) {
+ $options{'mapurl'} = $mapurl;
+ }
+
return "mapsetup('mapdiv-$name', " . to_json(\%options) . ");";
}
diff --git a/underlays/osm/ikiwiki/osm.js b/underlays/osm/ikiwiki/osm.js
index d7e3d53f4..644d4b573 100644
--- a/underlays/osm/ikiwiki/osm.js
+++ b/underlays/osm/ikiwiki/osm.js
@@ -37,8 +37,13 @@ function mapsetup(divname, options) {
numZoomLevels: 18
});
+ if (options.mapurl) {
+ var newLayer = new OpenLayers.Layer.OSM("Local Tiles", options.mapurl, {numZoomLevels: 19, isBaseLayer: true});
+ map.addLayer(newLayer);
+ } else {
+ map.addLayer(new OpenLayers.Layer.OSM());
+ }
- map.addLayer(new OpenLayers.Layer.OSM());
if (options.format == 'CSV') {
pois = new OpenLayers.Layer.Text( "CSV",
{ location: options.csvurl,