diff --git a/resources/lib/leaflet-providers/leaflet-providers.js b/resources/lib/leaflet-providers/leaflet-providers.js index 5c1dab9d..6b9d6baf 100644 --- a/resources/lib/leaflet-providers/leaflet-providers.js +++ b/resources/lib/leaflet-providers/leaflet-providers.js @@ -1,3 +1,5 @@ +// Copied on 2024-03-18 from https://raw.githubusercontent.com/leaflet-extras/leaflet-providers/master/leaflet-providers.js + (function (root, factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. @@ -56,7 +58,7 @@ if (attr.indexOf('{attribution.') === -1) { return attr; } - return attr.replace(/\{attribution.(\w*)\}/, + return attr.replace(/\{attribution.(\w*)\}/g, function (match, attributionName) { return attributionReplacer(providers[attributionName].options.attribution); } @@ -77,22 +79,16 @@ L.TileLayer.Provider.providers = { OpenStreetMap: { - url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + url: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', options: { maxZoom: 19, attribution: - '© OpenStreetMap' + '© OpenStreetMap contributors' }, variants: { Mapnik: {}, - BlackAndWhite: { - url: 'http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png', - options: { - maxZoom: 18 - } - }, DE: { - url: 'https://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png', + url: 'https://tile.openstreetmap.de/{z}/{x}/{y}.png', options: { maxZoom: 18 } @@ -108,13 +104,16 @@ url: 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', options: { maxZoom: 20, - attribution: '© Openstreetmap France | {attribution.OpenStreetMap}' + attribution: '© OpenStreetMap France | {attribution.OpenStreetMap}' } }, HOT: { url: 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', options: { - attribution: '{attribution.OpenStreetMap}, Tiles courtesy of Humanitarian OpenStreetMap Team' + attribution: + '{attribution.OpenStreetMap}, ' + + 'Tiles style by Humanitarian OpenStreetMap Team ' + + 'hosted by OpenStreetMap France' } }, BZH: { @@ -126,18 +125,33 @@ } } }, - OpenInfraMap: { - url: 'https://tiles-{s}.openinframap.org/{variant}/{z}/{x}/{y}.png', + MapTilesAPI: { + url: 'https://maptiles.p.rapidapi.com/{variant}/{z}/{x}/{y}.png?rapidapi-key={apikey}', options: { - maxZoom: 18, attribution: - '{attribution.OpenStreetMap}, About OpenInfraMap' + '© MapTiles API, {attribution.OpenStreetMap}', + variant: 'en/map/v1', + // Get your own MapTiles API access token here : https://www.maptilesapi.com/ + // NB : this is a demonstration key that comes with no guarantee and not to be used in production + apikey: '', + maxZoom: 19 }, variants: { - Power: 'power', - Telecom: 'telecoms', - Petroleum: 'petroleum', - Water: 'water' + OSMEnglish: { + options: { + variant: 'en/map/v1' + } + }, + OSMFrancais: { + options: { + variant: 'fr/map/v1' + } + }, + OSMEspagnol: { + options: { + variant: 'es/map/v1' + } + } } }, OpenSeaMap: { @@ -146,18 +160,11 @@ attribution: 'Map data: © OpenSeaMap contributors' } }, - OpenPtMap: { - url: 'http://openptmap.org/tiles/{z}/{x}/{y}.png', - options: { - maxZoom: 17, - attribution: 'Map data: © OpenPtMap contributors' - } - }, - oepnvkarte: { - url: 'http://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png', + OPNVKarte: { + url: 'https://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png', options: { - maxZoom: 17, - attribution: 'Map: memomaps.de CC-BY-SA, Map data: Openstreetmap ODbL' + maxZoom: 18, + attribution: 'Map memomaps.de CC-BY-SA, map data {attribution.OpenStreetMap}' } }, OpenTopoMap: { @@ -188,6 +195,137 @@ attribution: 'Map data: {attribution.OpenStreetMap} | Map style: © SafeCast (CC-BY-SA)' } }, + Stadia: { + url: 'https://tiles.stadiamaps.com/tiles/{variant}/{z}/{x}/{y}{r}.{ext}', + options: { + minZoom: 0, + maxZoom: 20, + attribution: + '© Stadia Maps ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'alidade_smooth', + ext: 'png' + }, + variants: { + AlidadeSmooth: 'alidade_smooth', + AlidadeSmoothDark: 'alidade_smooth_dark', + OSMBright: 'osm_bright', + Outdoors: 'outdoors', + StamenToner: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_toner' + } + }, + StamenTonerBackground: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_toner_background' + } + }, + StamenTonerLines: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_toner_lines' + } + }, + StamenTonerLabels: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_toner_labels' + } + }, + StamenTonerLite: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_toner_lite' + } + }, + StamenWatercolor: { + url: 'https://tiles.stadiamaps.com/tiles/{variant}/{z}/{x}/{y}.{ext}', + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_watercolor', + ext: 'jpg', + minZoom: 1, + maxZoom: 16 + } + }, + StamenTerrain: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_terrain', + minZoom: 0, + maxZoom: 18 + } + }, + StamenTerrainBackground: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_terrain_background', + minZoom: 0, + maxZoom: 18 + } + }, + StamenTerrainLabels: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_terrain_labels', + minZoom: 0, + maxZoom: 18 + } + }, + StamenTerrainLines: { + options: { + attribution: + '© Stadia Maps ' + + '© Stamen Design ' + + '© OpenMapTiles ' + + '{attribution.OpenStreetMap}', + variant: 'stamen_terrain_lines', + minZoom: 0, + maxZoom: 18 + } + } + } + }, Thunderforest: { url: 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', options: { @@ -216,113 +354,115 @@ }, Landscape: 'landscape', Outdoors: 'outdoors', - Pioneer: 'pioneer' + Pioneer: 'pioneer', + MobileAtlas: 'mobile-atlas', + Neighbourhood: 'neighbourhood' } }, - OpenMapSurfer: { - url: 'https://korona.geog.uni-heidelberg.de/tiles/{variant}/x={x}&y={y}&z={z}', + BaseMapDE: { + url: 'https://sgx.geodatenzentrum.de/wmts_basemapde/tile/1.0.0/{variant}/default/GLOBAL_WEBMERCATOR/{z}/{y}/{x}.png', + options: { + attribution: 'Map data: © dl-de/by-2-0', + variant: 'de_basemapde_web_raster_farbe', + }, + variants: { + Color: 'de_basemapde_web_raster_farbe', + Grey: 'de_basemapde_web_raster_grau' + } + }, + CyclOSM: { + url: 'https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png', options: { maxZoom: 20, - variant: 'roads', - attribution: 'Imagery from GIScience Research Group @ University of Heidelberg — Map data {attribution.OpenStreetMap}' - }, - variants: { - Roads: 'roads', - AdminBounds: { - options: { - variant: 'adminb', - maxZoom: 19 - } - }, - Grayscale: { - options: { - variant: 'roadsg', - maxZoom: 19 - } - } + attribution: 'CyclOSM | Map data: {attribution.OpenStreetMap}' } }, - Hydda: { - url: 'https://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png', + Jawg: { + url: 'https://tile.jawg.io/{variant}/{z}/{x}/{y}{r}.png?access-token={accessToken}', options: { - maxZoom: 18, - variant: 'full', - attribution: 'Tiles courtesy of OpenStreetMap Sweden — Map data {attribution.OpenStreetMap}' + attribution: + '© JawgMaps ' + + '{attribution.OpenStreetMap}', + minZoom: 0, + maxZoom: 22, + variant: 'jawg-streets', + // Get your own Jawg access token here : https://www.jawg.io/lab/ + // NB : this is a demonstration key that comes with no guarantee + accessToken: '', }, variants: { - Full: 'full', - Base: 'base', - RoadsAndLabels: 'roads_and_labels' + Streets: 'jawg-streets', + Terrain: 'jawg-terrain', + Lagoon: 'jawg-lagoon', + Sunny: 'jawg-sunny', + Dark: 'jawg-dark', + Light: 'jawg-light', + Matrix: 'jawg-matrix' } }, MapBox: { - url: 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}{r}.png?access_token={accessToken}', + url: 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}{r}?access_token={accessToken}', options: { attribution: - 'Imagery from MapBox — ' + - 'Map data {attribution.OpenStreetMap}', - subdomains: 'abcd', - id: 'streets', + '© Mapbox ' + + '{attribution.OpenStreetMap} ' + + 'Improve this map', + tileSize: 512, + maxZoom: 18, + zoomOffset: -1, + id: 'mapbox/streets-v11', accessToken: '', } }, - Stamen: { - url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', + MapTiler: { + url: 'https://api.maptiler.com/maps/{variant}/{z}/{x}/{y}{r}.{ext}?key={key}', options: { attribution: - 'Map tiles by Stamen Design, ' + - 'CC BY 3.0 — ' + - 'Map data {attribution.OpenStreetMap}', - subdomains: 'abcd', + '© MapTiler © OpenStreetMap contributors', + variant: 'streets', + ext: 'png', + key: '', + tileSize: 512, + zoomOffset: -1, minZoom: 0, - maxZoom: 20, - variant: 'toner', - ext: 'png' + maxZoom: 21 }, variants: { - Toner: 'toner', - TonerBackground: 'toner-background', - TonerHybrid: 'toner-hybrid', - TonerLines: 'toner-lines', - TonerLabels: 'toner-labels', - TonerLite: 'toner-lite', - Watercolor: { - url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}', - options: { - variant: 'watercolor', - minZoom: 1, - maxZoom: 16 - } - }, - Terrain: { - options: { - variant: 'terrain', - minZoom: 0, - maxZoom: 18 - } - }, - TerrainBackground: { - options: { - variant: 'terrain-background', - minZoom: 0, - maxZoom: 18 - } - }, - TopOSMRelief: { - url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}', + Streets: 'streets', + Basic: 'basic', + Bright: 'bright', + Pastel: 'pastel', + Positron: 'positron', + Hybrid: { options: { - variant: 'toposm-color-relief', - ext: 'jpg', - bounds: [[22, -132], [51, -56]] + variant: 'hybrid', + ext: 'jpg' } }, - TopOSMFeatures: { - options: { - variant: 'toposm-features', - bounds: [[22, -132], [51, -56]], - opacity: 0.9 - } - } + Toner: 'toner', + Topo: 'topo', + Voyager: 'voyager', + Ocean: 'ocean', + Backdrop: 'backdrop', + Dataviz: 'dataviz' + } + }, + TomTom: { + url: 'https://{s}.api.tomtom.com/map/1/tile/{variant}/{style}/{z}/{x}/{y}.{ext}?key={apikey}', + options: { + variant: 'basic', + maxZoom: 22, + attribution: + '© 1992 - ' + new Date().getFullYear() + ' TomTom. ', + subdomains: 'abcd', + style: 'main', + ext: 'png', + apikey: '', + }, + variants: { + Basic: 'basic', + Hybrid: 'hybrid', + Labels: 'labels' } }, Esri: { @@ -388,7 +528,7 @@ }, OceanBasemap: { options: { - variant: 'Ocean_Basemap', + variant: 'Ocean/World_Ocean_Base', maxZoom: 13, attribution: '{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri' } @@ -414,7 +554,7 @@ options: { maxZoom: 19, attribution: 'Map data © OpenWeatherMap', - apiKey:'', + apiKey: '', opacity: 0.5 }, variants: { @@ -434,20 +574,16 @@ HERE: { /* * HERE maps, formerly Nokia maps. - * These basemaps are free, but you need an API key. Please sign up at - * http://developer.here.com/getting-started - * - * Note that the base urls contain '.cit' whichs is HERE's - * 'Customer Integration Testing' environment. Please remove for production - * envirionments. + * These basemaps are free, but you need an api id and app key. Please sign up at + * https://developer.here.com/plans */ url: - 'https://{s}.{base}.maps.cit.api.here.com/maptile/2.1/' + + 'https://{s}.{base}.maps.api.here.com/maptile/2.1/' + '{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?' + 'app_id={app_id}&app_code={app_code}&lg={language}', options: { attribution: - 'Map © 1987-2014 HERE', + 'Map © 1987-' + new Date().getFullYear() + ' HERE', subdomains: '1234', mapID: 'newest', 'app_id': '', @@ -468,11 +604,21 @@ normalDayGreyMobile: 'normal.day.grey.mobile', normalDayTransit: 'normal.day.transit', normalDayTransitMobile: 'normal.day.transit.mobile', + normalDayTraffic: { + options: { + variant: 'normal.traffic.day', + base: 'traffic', + type: 'traffictile' + } + }, normalNight: 'normal.night', normalNightMobile: 'normal.night.mobile', normalNightGrey: 'normal.night.grey', normalNightGreyMobile: 'normal.night.grey.mobile', - + normalNightTransit: 'normal.night.transit', + normalNightTransitMobile: 'normal.night.transit.mobile', + reducedDay: 'reduced.day', + reducedNight: 'reduced.night', basicMap: { options: { type: 'basetile' @@ -503,6 +649,133 @@ variant: 'hybrid.day.mobile' } }, + hybridDayTransit: { + options: { + base: 'aerial', + variant: 'hybrid.day.transit' + } + }, + hybridDayGrey: { + options: { + base: 'aerial', + variant: 'hybrid.grey.day' + } + }, + hybridDayTraffic: { + options: { + variant: 'hybrid.traffic.day', + base: 'traffic', + type: 'traffictile' + } + }, + pedestrianDay: 'pedestrian.day', + pedestrianNight: 'pedestrian.night', + satelliteDay: { + options: { + base: 'aerial', + variant: 'satellite.day' + } + }, + terrainDay: { + options: { + base: 'aerial', + variant: 'terrain.day' + } + }, + terrainDayMobile: { + options: { + base: 'aerial', + variant: 'terrain.day.mobile' + } + } + } + }, + HEREv3: { + /* + * HERE maps API Version 3. + * These basemaps are free, but you need an API key. Please sign up at + * https://developer.here.com/plans + * Version 3 deprecates the app_id and app_code access in favor of apiKey + * + * Supported access methods as of 2019/12/21: + * @see https://developer.here.com/faqs#access-control-1--how-do-you-control-access-to-here-location-services + */ + url: + 'https://{s}.{base}.maps.ls.hereapi.com/maptile/2.1/' + + '{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?' + + 'apiKey={apiKey}&lg={language}', + options: { + attribution: + 'Map © 1987-' + new Date().getFullYear() + ' HERE', + subdomains: '1234', + mapID: 'newest', + apiKey: '', + base: 'base', + variant: 'normal.day', + maxZoom: 20, + type: 'maptile', + language: 'eng', + format: 'png8', + size: '256' + }, + variants: { + normalDay: 'normal.day', + normalDayCustom: 'normal.day.custom', + normalDayGrey: 'normal.day.grey', + normalDayMobile: 'normal.day.mobile', + normalDayGreyMobile: 'normal.day.grey.mobile', + normalDayTransit: 'normal.day.transit', + normalDayTransitMobile: 'normal.day.transit.mobile', + normalNight: 'normal.night', + normalNightMobile: 'normal.night.mobile', + normalNightGrey: 'normal.night.grey', + normalNightGreyMobile: 'normal.night.grey.mobile', + normalNightTransit: 'normal.night.transit', + normalNightTransitMobile: 'normal.night.transit.mobile', + reducedDay: 'reduced.day', + reducedNight: 'reduced.night', + basicMap: { + options: { + type: 'basetile' + } + }, + mapLabels: { + options: { + type: 'labeltile', + format: 'png' + } + }, + trafficFlow: { + options: { + base: 'traffic', + type: 'flowtile' + } + }, + carnavDayGrey: 'carnav.day.grey', + hybridDay: { + options: { + base: 'aerial', + variant: 'hybrid.day' + } + }, + hybridDayMobile: { + options: { + base: 'aerial', + variant: 'hybrid.day.mobile' + } + }, + hybridDayTransit: { + options: { + base: 'aerial', + variant: 'hybrid.day.transit' + } + }, + hybridDayGrey: { + options: { + base: 'aerial', + variant: 'hybrid.grey.day' + } + }, pedestrianDay: 'pedestrian.day', pedestrianNight: 'pedestrian.night', satelliteDay: { @@ -526,14 +799,14 @@ } }, FreeMapSK: { - url: 'http://t{s}.freemap.sk/T/{z}/{x}/{y}.jpeg', + url: 'https://{s}.freemap.sk/T/{z}/{x}/{y}.jpeg', options: { minZoom: 8, maxZoom: 16, - subdomains: '1234', + subdomains: 'abcd', bounds: [[47.204642, 15.996093], [49.830896, 22.576904]], attribution: - '{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 Freemap.sk' + '{attribution.OpenStreetMap}, visualization CC-By-SA 2.0 Freemap.sk' } }, MtbMap: { @@ -544,11 +817,11 @@ } }, CartoDB: { - url: 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.png', + url: 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', options: { - attribution: '{attribution.OpenStreetMap} © CartoDB', + attribution: '{attribution.OpenStreetMap} © CARTO', subdomains: 'abcd', - maxZoom: 19, + maxZoom: 20, variant: 'light_all' }, variants: { @@ -565,7 +838,7 @@ } }, HikeBike: { - url: 'http://{s}.tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png', + url: 'https://tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png', options: { maxZoom: 19, attribution: '{attribution.OpenStreetMap}', @@ -582,23 +855,38 @@ } }, BasemapAT: { - url: 'https://mapsneu.wien.gv.at/basemap/{variant}/{style}/google3857/{z}/{y}/{x}.{format}', + url: 'https://mapsneu.wien.gv.at/basemap/{variant}/{type}/google3857/{z}/{y}/{x}.{format}', options: { maxZoom: 19, attribution: 'Datenquelle: basemap.at', + type: 'normal', format: 'png', bounds: [[46.358770, 8.782379], [49.037872, 17.189532]], - variant: 'geolandbasemap', - style: 'normal' + variant: 'geolandbasemap' }, variants: { basemap: { options: { + maxZoom: 20, // currently only in Vienna variant: 'geolandbasemap' } }, grau: 'bmapgrau', overlay: 'bmapoverlay', + terrain: { + options: { + variant: 'bmapgelaende', + type: 'grau', + format: 'jpeg' + } + }, + surface: { + options: { + variant: 'bmapoberflaeche', + type: 'grau', + format: 'jpeg' + } + }, highdpi: { options: { variant: 'bmaphidpi', @@ -607,6 +895,7 @@ }, orthofoto: { options: { + maxZoom: 20, // currently only in Vienna variant: 'bmaporthofoto30cm', format: 'jpeg' } @@ -614,19 +903,20 @@ } }, nlmaps: { - url: 'https://geodata.nationaalgeoregister.nl/tiles/service/wmts/{variant}/EPSG:3857/{z}/{x}/{y}.png', + url: 'https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/{variant}/EPSG:3857/{z}/{x}/{y}.png', options: { minZoom: 6, maxZoom: 19, bounds: [[50.5, 3.25], [54, 7.6]], - attribution: 'Kaartgegevens © Kadaster' + attribution: 'Kaartgegevens © Kadaster' }, variants: { - 'standaard': 'brtachtergrondkaart', - 'pastel': 'brtachtergrondkaartpastel', - 'grijs': 'brtachtergrondkaartgrijs', + 'standaard': 'standaard', + 'pastel': 'pastel', + 'grijs': 'grijs', + 'water': 'water', 'luchtfoto': { - 'url': 'https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/1.0.0/2016_ortho25/EPSG:3857/{z}/{x}/{y}.png', + 'url': 'https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/Actueel_ortho25/EPSG:3857/{z}/{x}/{y}.jpeg', } } }, @@ -662,7 +952,7 @@ }, ModisTerraSnowCover: { options: { - variant: 'MODIS_Terra_Snow_Cover', + variant: 'MODIS_Terra_NDSI_Snow_Cover', format: 'png', maxZoom: 8, opacity: 0.75 @@ -688,27 +978,35 @@ }, NLS: { // NLS maps are copyright National library of Scotland. - // http://maps.nls.uk/projects/api/index.html + // http://maps.nls.uk/projects/subscription-api // Please contact NLS for anything other than non-commercial low volume usage // - // Map sources: Ordnance Survey 1:1m to 1:63K, 1920s-1940s + // Map sources: Ordnance Survey 1:1m to 1:63K, 1880s-1961 // z0-9 - 1:1m // z10-11 - quarter inch (1:253440) // z12-18 - one inch (1:63360) - url: 'https://nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg', + url: 'https://api.maptiler.com/tiles/{variant}/{z}/{x}/{y}.jpg?key={apikey}', options: { - attribution: 'National Library of Scotland Historic Maps', + attribution: 'National Library of Scotland Historic Maps', bounds: [[49.6, -12], [61.7, 3]], minZoom: 1, - maxZoom: 18, - subdomains: '0123', + maxZoom: 18 + }, + variants: { + osgb63k1885: 'uk-osgb63k1885', + osgb1888: 'uk-osgb1888', + osgb10k1888: 'uk-osgb10k1888', + osgb1919: 'uk-osgb1919', + osgb25k1937: 'uk-osgb25k1937', + osgb63k1955: 'uk-osgb63k1955', + oslondon1k1893: 'uk-oslondon1k1893' } }, JusticeMap: { // Justice Map (http://www.justicemap.org/) // Visualize race and income data for your community, county and country. // Includes tools for data journalists, bloggers and community activists. - url: 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', + url: 'https://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', options: { attribution: 'Justice Map', // one of 'county', 'tract', 'block' @@ -728,14 +1026,6 @@ plurality: 'plural' } }, - Wikimedia: { - url: 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}{r}.png', - options: { - attribution: 'Wikimedia', - minZoom: 1, - maxZoom: 19 - } - }, GeoportailFrance: { url: 'https://wxs.ign.fr/{apikey}/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE={style}&TILEMATRIXSET=PM&FORMAT={format}&LAYER={variant}&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', options: { @@ -746,29 +1036,174 @@ // Get your own geoportail apikey here : http://professionnels.ign.fr/ign/contrats/ // NB : 'choisirgeoportail' is a demonstration key that comes with no guarantee apikey: 'choisirgeoportail', - format: 'image/jpeg', - style : 'normal', - variant: 'GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD' + format: 'image/png', + style: 'normal', + variant: 'GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2' }, variants: { + plan: 'GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2', parcels: { - options : { - variant: 'CADASTRALPARCELS.PARCELS', - maxZoom: 20, - style : 'bdparcellaire', - format: 'image/png' + options: { + variant: 'CADASTRALPARCELS.PARCELLAIRE_EXPRESS', + style: 'PCI vecteur', + maxZoom: 20 } }, - ignMaps: 'GEOGRAPHICALGRIDSYSTEMS.MAPS', - maps: 'GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD', orthos: { options: { maxZoom: 19, + format: 'image/jpeg', variant: 'ORTHOIMAGERY.ORTHOPHOTOS' } } } - } + }, + OneMapSG: { + url: 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png', + options: { + variant: 'Default', + minZoom: 11, + maxZoom: 18, + bounds: [[1.56073, 104.11475], [1.16, 103.502]], + attribution: ' New OneMap | Map data © contributors, Singapore Land Authority' + }, + variants: { + Default: 'Default', + Night: 'Night', + Original: 'Original', + Grey: 'Grey', + LandLot: 'LandLot' + } + }, + USGS: { + url: 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}', + options: { + maxZoom: 20, + attribution: 'Tiles courtesy of the U.S. Geological Survey' + }, + variants: { + USTopo: {}, + USImagery: { + url: 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}' + }, + USImageryTopo: { + url: 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapServer/tile/{z}/{y}/{x}' + } + } + }, + WaymarkedTrails: { + url: 'https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png', + options: { + maxZoom: 18, + attribution: 'Map data: {attribution.OpenStreetMap} | Map style: © waymarkedtrails.org (CC-BY-SA)' + }, + variants: { + hiking: 'hiking', + cycling: 'cycling', + mtb: 'mtb', + slopes: 'slopes', + riding: 'riding', + skating: 'skating' + } + }, + OpenAIP: { + url: 'https://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.{ext}', + options: { + attribution: 'openAIP Data (CC-BY-NC-SA)', + ext: 'png', + minZoom: 4, + maxZoom: 14, + tms: true, + detectRetina: true, + subdomains: '12' + } + }, + OpenSnowMap: { + url: 'https://tiles.opensnowmap.org/{variant}/{z}/{x}/{y}.png', + options: { + minZoom: 9, + maxZoom: 18, + attribution: 'Map data: {attribution.OpenStreetMap} & ODbL, © www.opensnowmap.org CC-BY-SA' + }, + variants: { + pistes: 'pistes', + } + }, + AzureMaps: { + url: + 'https://atlas.microsoft.com/map/tile?api-version={apiVersion}'+ + '&tilesetId={variant}&x={x}&y={y}&zoom={z}&language={language}'+ + '&subscription-key={subscriptionKey}', + options: { + attribution: 'See https://docs.microsoft.com/en-us/rest/api/maps/render-v2/get-map-tile for details.', + apiVersion: '2.0', + variant: 'microsoft.imagery', + subscriptionKey: '', + language: 'en-US', + }, + variants: { + MicrosoftImagery: 'microsoft.imagery', + MicrosoftBaseDarkGrey: 'microsoft.base.darkgrey', + MicrosoftBaseRoad: 'microsoft.base.road', + MicrosoftBaseHybridRoad: 'microsoft.base.hybrid.road', + MicrosoftTerraMain: 'microsoft.terra.main', + MicrosoftWeatherInfraredMain: { + url: + 'https://atlas.microsoft.com/map/tile?api-version={apiVersion}'+ + '&tilesetId={variant}&x={x}&y={y}&zoom={z}'+ + '&timeStamp={timeStamp}&language={language}' + + '&subscription-key={subscriptionKey}', + options: { + timeStamp: '2021-05-08T09:03:00Z', + attribution: 'See https://docs.microsoft.com/en-us/rest/api/maps/render-v2/get-map-tile#uri-parameters for details.', + variant: 'microsoft.weather.infrared.main', + }, + }, + MicrosoftWeatherRadarMain: { + url: + 'https://atlas.microsoft.com/map/tile?api-version={apiVersion}'+ + '&tilesetId={variant}&x={x}&y={y}&zoom={z}'+ + '&timeStamp={timeStamp}&language={language}' + + '&subscription-key={subscriptionKey}', + options: { + timeStamp: '2021-05-08T09:03:00Z', + attribution: 'See https://docs.microsoft.com/en-us/rest/api/maps/render-v2/get-map-tile#uri-parameters for details.', + variant: 'microsoft.weather.radar.main', + }, + } + }, + }, + SwissFederalGeoportal: { + url: 'https://wmts.geo.admin.ch/1.0.0/{variant}/default/current/3857/{z}/{x}/{y}.jpeg', + options: { + attribution: '© swisstopo', + minZoom: 2, + maxZoom: 18, + bounds: [[45.398181, 5.140242], [48.230651, 11.47757]] + }, + variants: { + NationalMapColor: 'ch.swisstopo.pixelkarte-farbe', + NationalMapGrey: 'ch.swisstopo.pixelkarte-grau', + SWISSIMAGE: { + options: { + variant: 'ch.swisstopo.swissimage', + maxZoom: 19 + } + } + } + }, + TopPlusOpen: { + url: 'http://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/{variant}/default/WEBMERCATOR/{z}/{y}/{x}.png', + options: { + maxZoom: 18, + attribution: 'Map data: © dl-de/by-2-0', + variant: 'web', + }, + variants: { + Color: 'web', + Grey: 'web_grau' + } + } }; L.tileLayer.provider = function (provider, options) {