// ==UserScript==
// @id iitc-plugin-outdoormaps@vrabcak
// @name IITC plugin: various outdoor maps tiles
// @category Map Tiles
// @version 0.1.1
// @namespace https://github.com/vrabcak/iitc-outdoormaps
// @updateURL
// @downloadURL
// @description Add various outdoor map tiles as an optional layer.
// @include https://www.ingress.com/intel*
// @include http://www.ingress.com/intel*
// @match https://www.ingress.com/intel*
// @match http://www.ingress.com/intel*
// @include https://www.ingress.com/mission/*
// @include http://www.ingress.com/mission/*
// @match https://www.ingress.com/mission/*
// @match http://www.ingress.com/mission/*
// @grant none
// ==/UserScript==
/*jshint esnext: true*/
function wrapper(plugin_info) {
// ensure plugin framework is there, even if iitc is not yet loaded
if (typeof window.plugin !== 'function') window.plugin = function () {};
// PLUGIN START ////////////////////////////////////////////////////////
// use own namespace for plugin
window.plugin.outdoorMaps = function () {};
window.plugin.outdoorMaps.addLayer = function () {
/*global L, layerChooser*/
const osmAttribution = `Map data © OpenStreetMap contributors,
CC-BY-SA"`;
const seznamAttribution = `
© Seznam.cz,a.s,
© Přispěvatelé OpenStreetMap,
© NASA`;
const PNKLayer = L.tileLayer('http://tiles.prahounakole.cz/{z}/{x}/{y}.png', {
attribution: osmAttribution,
maxNativeZoom: 18,
maxZoom: 22
});
const MTBMapLayer = L.tileLayer('http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png', {
attribution: osmAttribution,
maxNativeZoom: 18,
maxZoom: 22
});
const waymarkedTrailsCyclingLayer = L.tileLayer('http://tile.waymarkedtrails.org/cycling/{z}/{x}/{y}.png', {
attribution: osmAttribution,
maxNativeZoom: 17,
maxZoom: 22
});
const waymarkedTrailsHikingLayer = L.tileLayer('http://tile.waymarkedtrails.org/hiking/{z}/{x}/{y}.png', {
attribution: osmAttribution,
maxNativeZoom: 17,
maxZoom: 22
});
const mapyCzHikingLayer = L.tileLayer('http://m{s}.mapserver.mapy.cz/turist-m/{z}-{x}-{y}', {
attribution: seznamAttribution,
subdomains: '1234',
maxNativeZoom: 18,
maxZoom: 22
});
const mapyCzWinterLayer = L.tileLayer('http://m{s}.mapserver.mapy.cz/wturist_winter-m/{z}-{x}-{y}', {
attribution: seznamAttribution,
subdomains: '1234',
maxNativeZoom: 18,
maxZoom: 22
});
const mapyCzOrtophotoLayer = L.tileLayer('http://m{s}.mapserver.mapy.cz/ophoto-m/{z}-{x}-{y}', {
attribution: seznamAttribution,
subdomains: '1234',
maxNativeZoom: 18,
maxZoom: 22
});
// base layers
layerChooser.addBaseLayer(mapyCzHikingLayer, 'Mapy.cz cykloturist.');
layerChooser.addBaseLayer(mapyCzWinterLayer, 'Mapy.cz ski');
layerChooser.addBaseLayer(mapyCzOrtophotoLayer, 'Mapy.cz ortophoto');
layerChooser.addBaseLayer(PNKLayer, 'Prahou na kole');
layerChooser.addBaseLayer(MTBMapLayer, 'MTB map');
// overlays
layerChooser.addOverlay(waymarkedTrailsHikingLayer, 'Waymarked Trails hiking');
layerChooser.addOverlay(waymarkedTrailsCyclingLayer, 'Waymarked Trails cycling');
};
const setup = window.plugin.outdoorMaps.addLayer;
// PLUGIN END //////////////////////////////////////////////////////////
setup.info = plugin_info; //add the script info data to the function as a property
if (!window.bootPlugins) window.bootPlugins = [];
window.bootPlugins.push(setup);
// if IITC has already booted, immediately run the 'setup' function
if (window.iitcLoaded && typeof setup === 'function') setup();
} // wrapper end
// inject code into site context
var script = document.createElement('script');
var info = {};
/*global GM_info*/
if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = {
version: GM_info.script.version,
name: GM_info.script.name,
description: GM_info.script.description
};
script.appendChild(document.createTextNode('(' + wrapper + ')(' + JSON.stringify(info) + ');'));
(document.body || document.head || document.documentElement).appendChild(script);