MediaWiki:Kartographer.js
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* This JavaScript is loaded on all pages containing maps */
(function (mw) {
// Define overlay and base layers separately
const tileLayers = {
overlays: {
openseamap: {
name: "Open Sea Map",
layer: L.tileLayer("https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png", {
wvIsExternal: true,
wvIsOverlay: true,
defaultActive: true,
attribs: [
{
url: "https://www.openstreetmap.org/copyright",
name: "OpenStreetMap",
label: "Map data"
},
{
url: "https://www.openseamap.org/",
name: "Open Sea Map",
label: "Map style"
}
]
})
},
contours: {
name: "Contours",
layer: L.vectorGrid.protobuf("https://tiles.scuba-spot.info/contours/{z}/{x}/{y}", {
vectorTileLayerStyles: {
merged: {
weight: 1,
color: '#333'
}
},
interactive: true
})
}
},
baseLayers: {
// Example for future use:
// mapnik: {
// name: "Mapnik",
// layer: L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { subdomains: ["a", "b", "c"] })
// }
}
};
function addCustomLayers(map) {
const base = {};
const overlays = {};
for (const key in tileLayers.baseLayers) {
const entry = tileLayers.baseLayers[key];
base[entry.name] = entry.layer;
}
for (const key in tileLayers.overlays) {
const entry = tileLayers.overlays[key];
overlays[entry.name] = entry.layer;
}
L.control.layers(base, overlays).addTo(map);
// Activate default overlays
for (const key in tileLayers.overlays) {
const entry = tileLayers.overlays[key];
if (entry.layer && entry.layer.options.defaultActive) {
entry.layer.addTo(map);
}
}
}
// Hook into Kartographer's map initialization
mw.hook('wikipage.maps').add(function (maps) {
maps.forEach(addCustomLayers);
});
})(mediaWiki);