vendor: 24,312 bytes, lines 1-850
1(function (root, factory) { 2 if (typeof define === 'function' && define.amd) { 3 // AMD. Register as an anonymous module. 4 define(['leaflet'], factory); 5 } else if (typeof modules === 'object' && module.exports) { 6 // define a Common JS module that relies on 'leaflet' 7 module.exports = factory(require('leaflet')); 8 } else { 9 // Assume Leaflet is loaded into global object L already 10 factory(L); 11 } 12}(this, function (L) { 13 'use strict'; 14 15 L.TileLayer.Provider = L.TileLayer.extend({ 16 initialize: function (arg, options) { 17 var providers = L.TileLayer.Provider.providers; 18 19 var parts = arg.split('.'); 20 21 var providerName = parts[0]; 22 var variantName = parts[1]; 23 24 if (!providers[providerName]) { 25 throw 'No such provider (' + providerName + ')'; 26 } 27 28 var provider = { 29 url: providers[providerName].url, 30 options: providers[providerName].options 31 }; 32 33 // overwrite values in provider from variant. 34 if (variantName && 'variants' in providers[providerName]) { 35 if (!(variantName in providers[providerName].variants)) { 36 throw 'No such variant of ' + providerName + ' (' + variantName + ')'; 37 } 38 var variant = providers[providerName].variants[variantName]; 39 var variantOptions; 40 if (typeof variant === 'string') { 41 variantOptions = { 42 variant: variant 43 }; 44 } else { 45 variantOptions = variant.options; 46 } 47 provider = { 48 url: variant.url || provider.url, 49 options: L.Util.extend({}, provider.options, variantOptions) 50 }; 51 } 52 53 // replace attribution placeholders with their values from toplevel provider attribution, 54 // recursively 55 var attributionReplacer = function (attr) { 56 if (attr.indexOf('{attribution.') === -1) { 57 return attr; 58 } 59 return attr.replace(/\{attribution.(\w*)\}/g, 60 function (match, attributionName) { 61 return attributionReplacer(providers[attributionName].options.attribution); 62 } 63 ); 64 }; 65 provider.options.attribution = attributionReplacer(provider.options.attribution); 66 67 // Compute final options combining provider options with any user overrides 68 var layerOpts = L.Util.extend({}, provider.options, options); 69 L.TileLayer.prototype.initialize.call(this, provider.url, layerOpts); 70 } 71 }); 72 73 /** 74 * Definition of providers. 75 * see http://leafletjs.com/reference.html#tilelayer for options in the options map. 76 */ 77 78 L.TileLayer.Provider.providers = { 79 OpenStreetMap: { 80 url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 81 options: { 82 maxZoom: 19, 83 attribution: 84 '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' 85 }, 86 variants: { 87 Mapnik: {}, 88 DE: { 89 url: 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', 90 options: { 91 maxZoom: 18 92 } 93 }, 94 CH: { 95 url: 'https://tile.osm.ch/switzerland/{z}/{x}/{y}.png', 96 options: { 97 maxZoom: 18, 98 bounds: [[45, 5], [48, 11]] 99 } 100 }, 101 France: { 102 url: 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', 103 options: { 104 maxZoom: 20, 105 attribution: '© OpenStreetMap France | {attribution.OpenStreetMap}' 106 } 107 }, 108 HOT: { 109 url: 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', 110 options: { 111 attribution: 112 '{attribution.OpenStreetMap}, ' + 113 'Tiles style by <a href="https://www.hotosm.org/" target="_blank">Humanitarian OpenStreetMap Team</a> ' + 114 'hosted by <a href="https://openstreetmap.fr/" target="_blank">OpenStreetMap France</a>' 115 } 116 }, 117 BZH: { 118 url: 'https://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png', 119 options: { 120 attribution: '{attribution.OpenStreetMap}, Tiles courtesy of <a href="http://www.openstreetmap.bzh/" target="_blank">Breton OpenStreetMap Team</a>', 121 bounds: [[46.2, -5.5], [50, 0.7]] 122 } 123 } 124 } 125 }, 126 OpenSeaMap: { 127 url: 'https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', 128 options: { 129 attribution: 'Map data: © <a href="http://www.openseamap.org">OpenSeaMap</a> contributors' 130 } 131 }, 132 OPNVKarte: { 133 url: 'https://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png', 134 options: { 135 maxZoom: 18, 136 attribution: 'Map <a href="https://memomaps.de/">memomaps.de</a> <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, map data {attribution.OpenStreetMap}' 137 } 138 }, 139 OpenTopoMap: { 140 url: 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', 141 options: { 142 maxZoom: 17, 143 attribution: 'Map data: {attribution.OpenStreetMap}, <a href="http://viewfinderpanoramas.org">SRTM</a> | Map style: © <a href="https://opentopomap.org">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)' 144 } 145 }, 146 OpenRailwayMap: { 147 url: 'https://{s}.tiles.openrailwaymap.org/standard/{z}/{x}/{y}.png', 148 options: { 149 maxZoom: 19, 150 attribution: 'Map data: {attribution.OpenStreetMap} | Map style: © <a href="https://www.OpenRailwayMap.org">OpenRailwayMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)' 151 } 152 }, 153 OpenFireMap: { 154 url: 'http://openfiremap.org/hytiles/{z}/{x}/{y}.png', 155 options: { 156 maxZoom: 19, 157 attribution: 'Map data: {attribution.OpenStreetMap} | Map style: © <a href="http://www.openfiremap.org">OpenFireMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)' 158 } 159 }, 160 SafeCast: { 161 url: 'https://s3.amazonaws.com/te512.safecast.org/{z}/{x}/{y}.png', 162 options: { 163 maxZoom: 16, 164 attribution: 'Map data: {attribution.OpenStreetMap} | Map style: © <a href="https://blog.safecast.org/about/">SafeCast</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)' 165 } 166 }, 167 Stadia: { 168 url: 'https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png', 169 options: { 170 maxZoom: 20, 171 attribution: '© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a> © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors' 172 }, 173 variants: { 174 AlidadeSmooth: { 175 url: 'https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png' 176 }, 177 AlidadeSmoothDark: { 178 url: 'https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/{z}/{x}/{y}{r}.png' 179 }, 180 OSMBright: { 181 url: 'https://tiles.stadiamaps.com/tiles/osm_bright/{z}/{x}/{y}{r}.png' 182 }, 183 Outdoors: { 184 url: 'https://tiles.stadiamaps.com/tiles/outdoors/{z}/{x}/{y}{r}.png' 185 } 186 } 187 }, 188 Thunderforest: { 189 url: 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 190 options: { 191 attribution: 192 '© <a href="http://www.thunderforest.com/">Thunderforest</a>, {attribution.OpenStreetMap}', 193 variant: 'cycle', 194 apikey: '<insert your api key here>', 195 maxZoom: 22 196 }, 197 variants: { 198 OpenCycleMap: 'cycle', 199 Transport: { 200 options: { 201 variant: 'transport' 202 } 203 }, 204 TransportDark: { 205 options: { 206 variant: 'transport-dark' 207 } 208 }, 209 SpinalMap: { 210 options: { 211 variant: 'spinal-map' 212 } 213 }, 214 Landscape: 'landscape', 215 Outdoors: 'outdoors', 216 Pioneer: 'pioneer', 217 MobileAtlas: 'mobile-atlas', 218 Neighbourhood: 'neighbourhood' 219 } 220 }, 221 CyclOSM: { 222 url: 'https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png', 223 options: { 224 maxZoom: 20, 225 attribution: '<a href="https://github.com/cyclosm/cyclosm-cartocss-style/releases" title="CyclOSM - Open Bicycle render">CyclOSM</a> | Map data: {attribution.OpenStreetMap}' 226 } 227 }, 228 Jawg: { 229 url: 'https://{s}.tile.jawg.io/{variant}/{z}/{x}/{y}{r}.png?access-token={accessToken}', 230 options: { 231 attribution: 232 '<a href="http://jawg.io" title="Tiles Courtesy of Jawg Maps" target="_blank">© <b>Jawg</b>Maps</a> ' + 233 '{attribution.OpenStreetMap}', 234 minZoom: 0, 235 maxZoom: 22, 236 subdomains: 'abcd', 237 variant: 'jawg-terrain', 238 // Get your own Jawg access token here : https://www.jawg.io/lab/ 239 // NB : this is a demonstration key that comes with no guarantee 240 accessToken: '<insert your access token here>', 241 }, 242 variants: { 243 Streets: 'jawg-streets', 244 Terrain: 'jawg-terrain', 245 Sunny: 'jawg-sunny', 246 Dark: 'jawg-dark', 247 Light: 'jawg-light', 248 Matrix: 'jawg-matrix' 249 } 250 }, 251 MapBox: { 252 url: 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}{r}?access_token={accessToken}', 253 options: { 254 attribution: 255 '© <a href="https://www.mapbox.com/about/maps/" target="_blank">Mapbox</a> ' + 256 '{attribution.OpenStreetMap} ' + 257 '<a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a>', 258 tileSize: 512, 259 maxZoom: 18, 260 zoomOffset: -1, 261 id: 'mapbox/streets-v11', 262 accessToken: '<insert your access token here>', 263 } 264 }, 265 MapTiler: { 266 url: 'https://api.maptiler.com/maps/{variant}/{z}/{x}/{y}{r}.{ext}?key={key}', 267 options: { 268 attribution: 269 '<a href="https://www.maptiler.com/copyright/" target="_blank">© MapTiler</a> <a href="https://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap contributors</a>', 270 variant: 'streets', 271 ext: 'png', 272 key: '<insert your MapTiler Cloud API key here>', 273 tileSize: 512, 274 zoomOffset: -1, 275 minZoom: 0, 276 maxZoom: 21 277 }, 278 variants: { 279 Streets: 'streets', 280 Basic: 'basic', 281 Bright: 'bright', 282 Pastel: 'pastel', 283 Positron: 'positron', 284 Hybrid: { 285 options: { 286 variant: 'hybrid', 287 ext: 'jpg' 288 } 289 }, 290 Toner: 'toner', 291 Topo: 'topo', 292 Voyager: 'voyager' 293 } 294 }, 295 Stamen: { 296 url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 297 options: { 298 attribution: 299 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ' + 300 '<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — ' + 301 'Map data {attribution.OpenStreetMap}', 302 subdomains: 'abcd', 303 minZoom: 0, 304 maxZoom: 20, 305 variant: 'toner', 306 ext: 'png' 307 }, 308 variants: { 309 Toner: 'toner', 310 TonerBackground: 'toner-background', 311 TonerHybrid: 'toner-hybrid', 312 TonerLines: 'toner-lines', 313 TonerLabels: 'toner-labels', 314 TonerLite: 'toner-lite', 315 Watercolor: { 316 url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}', 317 options: { 318 variant: 'watercolor', 319 ext: 'jpg', 320 minZoom: 1, 321 maxZoom: 16 322 } 323 }, 324 Terrain: { 325 options: { 326 variant: 'terrain', 327 minZoom: 0, 328 maxZoom: 18 329 } 330 }, 331 TerrainBackground: { 332 options: { 333 variant: 'terrain-background', 334 minZoom: 0, 335 maxZoom: 18 336 } 337 }, 338 TerrainLabels: { 339 options: { 340 variant: 'terrain-labels', 341 minZoom: 0, 342 maxZoom: 18 343 } 344 }, 345 TopOSMRelief: { 346 url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}', 347 options: { 348 variant: 'toposm-color-relief', 349 ext: 'jpg', 350 bounds: [[22, -132], [51, -56]] 351 } 352 }, 353 TopOSMFeatures: { 354 options: { 355 variant: 'toposm-features', 356 bounds: [[22, -132], [51, -56]], 357 opacity: 0.9 358 } 359 } 360 } 361 }, 362 TomTom: { 363 url: 'https://{s}.api.tomtom.com/map/1/tile/{variant}/{style}/{z}/{x}/{y}.{ext}?key={apikey}', 364 options: { 365 variant: 'basic', 366 maxZoom: 22, 367 attribution: 368 '<a href="https://tomtom.com" target="_blank">© 1992 - ' + new Date().getFullYear() + ' TomTom.</a> ', 369 subdomains: 'abcd', 370 style: 'main', 371 ext: 'png', 372 apikey: '<insert your API key here>', 373 }, 374 variants: { 375 Basic: 'basic', 376 Hybrid: 'hybrid', 377 Labels: 'labels' 378 } 379 }, 380 Esri: { 381 url: 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 382 options: { 383 variant: 'World_Street_Map', 384 attribution: 'Tiles © Esri' 385 }, 386 variants: { 387 WorldStreetMap: { 388 options: { 389 attribution: 390 '{attribution.Esri} — ' + 391 'Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012' 392 } 393 }, 394 DeLorme: { 395 options: { 396 variant: 'Specialty/DeLorme_World_Base_Map', 397 minZoom: 1, 398 maxZoom: 11, 399 attribution: '{attribution.Esri} — Copyright: ©2012 DeLorme' 400 } 401 }, 402 WorldTopoMap: { 403 options: { 404 variant: 'World_Topo_Map', 405 attribution: 406 '{attribution.Esri} — ' + 407 'Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community' 408 } 409 }, 410 WorldImagery: { 411 options: { 412 variant: 'World_Imagery', 413 attribution: 414 '{attribution.Esri} — ' + 415 'Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community' 416 } 417 }, 418 WorldTerrain: { 419 options: { 420 variant: 'World_Terrain_Base', 421 maxZoom: 13, 422 attribution: 423 '{attribution.Esri} — ' + 424 'Source: USGS, Esri, TANA, DeLorme, and NPS' 425 } 426 }, 427 WorldShadedRelief: { 428 options: { 429 variant: 'World_Shaded_Relief', 430 maxZoom: 13, 431 attribution: '{attribution.Esri} — Source: Esri' 432 } 433 }, 434 WorldPhysical: { 435 options: { 436 variant: 'World_Physical_Map', 437 maxZoom: 8, 438 attribution: '{attribution.Esri} — Source: US National Park Service' 439 } 440 }, 441 OceanBasemap: { 442 options: { 443 variant: 'Ocean_Basemap', 444 maxZoom: 13, 445 attribution: '{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri' 446 } 447 }, 448 NatGeoWorldMap: { 449 options: { 450 variant: 'NatGeo_World_Map', 451 maxZoom: 16, 452 attribution: '{attribution.Esri} — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC' 453 } 454 }, 455 WorldGrayCanvas: { 456 options: { 457 variant: 'Canvas/World_Light_Gray_Base', 458 maxZoom: 16, 459 attribution: '{attribution.Esri} — Esri, DeLorme, NAVTEQ' 460 } 461 } 462 } 463 }, 464 OpenWeatherMap: { 465 url: 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 466 options: { 467 maxZoom: 19, 468 attribution: 'Map data © <a href="http://openweathermap.org">OpenWeatherMap</a>', 469 apiKey: '<insert your api key here>', 470 opacity: 0.5 471 }, 472 variants: { 473 Clouds: 'clouds', 474 CloudsClassic: 'clouds_cls', 475 Precipitation: 'precipitation', 476 PrecipitationClassic: 'precipitation_cls', 477 Rain: 'rain', 478 RainClassic: 'rain_cls', 479 Pressure: 'pressure', 480 PressureContour: 'pressure_cntr', 481 Wind: 'wind', 482 Temperature: 'temp', 483 Snow: 'snow' 484 } 485 }, 486 HERE: { 487 /* 488 * HERE maps, formerly Nokia maps. 489 * These basemaps are free, but you need an api id and app key. Please sign up at 490 * https://developer.here.com/plans 491 */ 492 url: 493 'https://{s}.{base}.maps.api.here.com/maptile/2.1/' + 494 '{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?' + 495 'app_id={app_id}&app_code={app_code}&lg={language}', 496 options: { 497 attribution: 498 'Map © 1987-' + new Date().getFullYear() + ' <a href="http://developer.here.com">HERE</a>', 499 subdomains: '1234', 500 mapID: 'newest', 501 'app_id': '<insert your app_id here>', 502 'app_code': '<insert your app_code here>', 503 base: 'base', 504 variant: 'normal.day', 505 maxZoom: 20, 506 type: 'maptile', 507 language: 'eng', 508 format: 'png8', 509 size: '256' 510 }, 511 variants: { 512 normalDay: 'normal.day', 513 normalDayCustom: 'normal.day.custom', 514 normalDayGrey: 'normal.day.grey', 515 normalDayMobile: 'normal.day.mobile', 516 normalDayGreyMobile: 'normal.day.grey.mobile', 517 normalDayTransit: 'normal.day.transit', 518 normalDayTransitMobile: 'normal.day.transit.mobile', 519 normalDayTraffic: { 520 options: { 521 variant: 'normal.traffic.day', 522 base: 'traffic', 523 type: 'traffictile' 524 } 525 }, 526 normalNight: 'normal.night', 527 normalNightMobile: 'normal.night.mobile', 528 normalNightGrey: 'normal.night.grey', 529 normalNightGreyMobile: 'normal.night.grey.mobile', 530 normalNightTransit: 'normal.night.transit', 531 normalNightTransitMobile: 'normal.night.transit.mobile', 532 reducedDay: 'reduced.day', 533 reducedNight: 'reduced.night', 534 basicMap: { 535 options: { 536 type: 'basetile' 537 } 538 }, 539 mapLabels: { 540 options: { 541 type: 'labeltile', 542 format: 'png' 543 } 544 }, 545 trafficFlow: { 546 options: { 547 base: 'traffic', 548 type: 'flowtile' 549 } 550 }, 551 carnavDayGrey: 'carnav.day.grey', 552 hybridDay: { 553 options: { 554 base: 'aerial', 555 variant: 'hybrid.day' 556 } 557 }, 558 hybridDayMobile: { 559 options: { 560 base: 'aerial', 561 variant: 'hybrid.day.mobile' 562 } 563 }, 564 hybridDayTransit: { 565 options: { 566 base: 'aerial', 567 variant: 'hybrid.day.transit' 568 } 569 }, 570 hybridDayGrey: { 571 options: { 572 base: 'aerial', 573 variant: 'hybrid.grey.day' 574 } 575 }, 576 hybridDayTraffic: { 577 options: { 578 variant: 'hybrid.traffic.day', 579 base: 'traffic', 580 type: 'traffictile' 581 } 582 }, 583 pedestrianDay: 'pedestrian.day', 584 pedestrianNight: 'pedestrian.night', 585 satelliteDay: { 586 options: { 587 base: 'aerial', 588 variant: 'satellite.day' 589 } 590 }, 591 terrainDay: { 592 options: { 593 base: 'aerial', 594 variant: 'terrain.day' 595 } 596 }, 597 terrainDayMobile: { 598 options: { 599 base: 'aerial', 600 variant: 'terrain.day.mobile' 601 } 602 } 603 } 604 }, 605 HEREv3: { 606 /* 607 * HERE maps API Version 3. 608 * These basemaps are free, but you need an API key. Please sign up at 609 * https://developer.here.com/plans 610 * Version 3 deprecates the app_id and app_code access in favor of apiKey 611 * 612 * Supported access methods as of 2019/12/21: 613 * @see https://developer.here.com/faqs#access-control-1--how-do-you-control-access-to-here-location-services 614 */ 615 url: 616 'https://{s}.{base}.maps.ls.hereapi.com/maptile/2.1/' + 617 '{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?' + 618 'apiKey={apiKey}&lg={language}', 619 options: { 620 attribution: 621 'Map © 1987-' + new Date().getFullYear() + ' <a href="http://developer.here.com">HERE</a>', 622 subdomains: '1234', 623 mapID: 'newest', 624 apiKey: '<insert your apiKey here>', 625 base: 'base', 626 variant: 'normal.day', 627 maxZoom: 20, 628 type: 'maptile', 629 language: 'eng', 630 format: 'png8', 631 size: '256' 632 }, 633 variants: { 634 normalDay: 'normal.day', 635 normalDayCustom: 'normal.day.custom', 636 normalDayGrey: 'normal.day.grey', 637 normalDayMobile: 'normal.day.mobile', 638 normalDayGreyMobile: 'normal.day.grey.mobile', 639 normalDayTransit: 'normal.day.transit', 640 normalDayTransitMobile: 'normal.day.transit.mobile', 641 normalNight: 'normal.night', 642 normalNightMobile: 'normal.night.mobile', 643 normalNightGrey: 'normal.night.grey', 644 normalNightGreyMobile: 'normal.night.grey.mobile', 645 normalNightTransit: 'normal.night.transit', 646 normalNightTransitMobile: 'normal.night.transit.mobile', 647 reducedDay: 'reduced.day', 648 reducedNight: 'reduced.night', 649 basicMap: { 650 options: { 651 type: 'basetile' 652 } 653 }, 654 mapLabels: { 655 options: { 656 type: 'labeltile', 657 format: 'png' 658 } 659 }, 660 trafficFlow: { 661 options: { 662 base: 'traffic', 663 type: 'flowtile' 664 } 665 }, 666 carnavDayGrey: 'carnav.day.grey', 667 hybridDay: { 668 options: { 669 base: 'aerial', 670 variant: 'hybrid.day' 671 } 672 }, 673 hybridDayMobile: { 674 options: { 675 base: 'aerial', 676 variant: 'hybrid.day.mobile' 677 } 678 }, 679 hybridDayTransit: { 680 options: { 681 base: 'aerial', 682 variant: 'hybrid.day.transit' 683 } 684 }, 685 hybridDayGrey: { 686 options: { 687 base: 'aerial', 688 variant: 'hybrid.grey.day' 689 } 690 }, 691 pedestrianDay: 'pedestrian.day', 692 pedestrianNight: 'pedestrian.night', 693 satelliteDay: { 694 options: { 695 base: 'aerial', 696 variant: 'satellite.day' 697 } 698 }, 699 terrainDay: { 700 options: { 701 base: 'aerial', 702 variant: 'terrain.day' 703 } 704 }, 705 terrainDayMobile: { 706 options: { 707 base: 'aerial', 708 variant: 'terrain.day.mobile' 709 } 710 } 711 } 712 }, 713 FreeMapSK: { 714 url: 'https://{s}.freemap.sk/T/{z}/{x}/{y}.jpeg', 715 options: { 716 minZoom: 8, 717 maxZoom: 16, 718 subdomains: 'abcd', 719 bounds: [[47.204642, 15.996093], [49.830896, 22.576904]], 720 attribution: 721 '{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 <a href="http://freemap.sk">Freemap.sk</a>' 722 } 723 }, 724 MtbMap: { 725 url: 'http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png', 726 options: { 727 attribution: 728 '{attribution.OpenStreetMap} & USGS' 729 } 730 }, 731 CartoDB: { 732 url: 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 733 options: { 734 attribution: '{attribution.OpenStreetMap} © <a href="https://carto.com/attributions">CARTO</a>', 735 subdomains: 'abcd', 736 maxZoom: 20, 737 variant: 'light_all' 738 }, 739 variants: { 740 Positron: 'light_all', 741 PositronNoLabels: 'light_nolabels', 742 PositronOnlyLabels: 'light_only_labels', 743 DarkMatter: 'dark_all', 744 DarkMatterNoLabels: 'dark_nolabels', 745 DarkMatterOnlyLabels: 'dark_only_labels', 746 Voyager: 'rastertiles/voyager', 747 VoyagerNoLabels: 'rastertiles/voyager_nolabels', 748 VoyagerOnlyLabels: 'rastertiles/voyager_only_labels', 749 VoyagerLabelsUnder: 'rastertiles/voyager_labels_under' 750 } 751 }, 752 HikeBike: { 753 url: 'https://tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png', 754 options: { 755 maxZoom: 19, 756 attribution: '{attribution.OpenStreetMap}', 757 variant: 'hikebike' 758 }, 759 variants: { 760 HikeBike: {}, 761 HillShading: { 762 options: { 763 maxZoom: 15, 764 variant: 'hillshading' 765 } 766 } 767 } 768 }, 769 BasemapAT: { 770 url: 'https://maps{s}.wien.gv.at/basemap/{variant}/{type}/google3857/{z}/{y}/{x}.{format}', 771 options: { 772 maxZoom: 19, 773 attribution: 'Datenquelle: <a href="https://www.basemap.at">basemap.at</a>', 774 subdomains: ['', '1', '2', '3', '4'], 775 type: 'normal', 776 format: 'png', 777 bounds: [[46.358770, 8.782379], [49.037872, 17.189532]], 778 variant: 'geolandbasemap' 779 }, 780 variants: { 781 basemap: { 782 options: { 783 maxZoom: 20, // currently only in Vienna 784 variant: 'geolandbasemap' 785 } 786 }, 787 grau: 'bmapgrau', 788 overlay: 'bmapoverlay', 789 terrain: { 790 options: { 791 variant: 'bmapgelaende', 792 type: 'grau', 793 format: 'jpeg' 794 } 795 }, 796 surface: { 797 options: { 798 variant: 'bmapoberflaeche', 799 type: 'grau', 800 format: 'jpeg' 801 } 802 }, 803 highdpi: { 804 options: { 805 variant: 'bmaphidpi', 806 format: 'jpeg' 807 } 808 }, 809 orthofoto: { 810 options: { 811 maxZoom: 20, // currently only in Vienna 812 variant: 'bmaporthofoto30cm', 813 format: 'jpeg' 814 } 815 } 816 } 817 }, 818 nlmaps: { 819 url: 'https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/{variant}/EPSG:3857/{z}/{x}/{y}.png', 820 options: { 821 minZoom: 6, 822 maxZoom: 19, 823 bounds: [[50.5, 3.25], [54, 7.6]], 824 attribution: 'Kaartgegevens © <a href="https://www.kadaster.nl">Kadaster</a>' 825 }, 826 variants: { 827 'standaard': 'standaard', 828 'pastel': 'pastel', 829 'grijs': 'grijs', 830 'water': 'water', 831 'luchtfoto': { 832 'url': 'https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/Actueel_ortho25/EPSG:3857/{z}/{x}/{y}.jpeg', 833 } 834 } 835 }, 836 NASAGIBS: { 837 url: 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}', 838 options: { 839 attribution: 840 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System ' + 841 '(<a href="https://earthdata.nasa.gov">ESDIS</a>) with funding provided by NASA/HQ.', 842 bounds: [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 843 minZoom: 1, 844 maxZoom: 9, 845 format: 'jpg', 846 time: '', 847 tilematrixset: 'GoogleMapsCompatible_Level' 848 }, 849 variants: { 850 ModisTerraTrueColorCR: 'MODIS_Terra_CorrectedReflectance_True
850Color', 851 ModisTerraBands367CR: 'MODIS_Terra_CorrectedReflectance_Bands367', 852 ViirsEarthAtNight2012: { 853 options: { 854 variant: 'VIIRS_CityLights_2012', 855 maxZoom: 8 856 } 857 }, 858 ModisTerraLSTDay: { 859 options: { 860 variant: 'MODIS_Terra_Land_Surface_Temp_Day', 861 format: 'png', 862 maxZoom: 7, 863 opacity: 0.75 864 } 865 }, 866 ModisTerraSnowCover: { 867 options: { 868 variant: 'MODIS_Terra_NDSI_Snow_Cover', 869 format: 'png', 870 maxZoom: 8, 871 opacity: 0.75 872 } 873 }, 874 ModisTerraAOD: { 875 options: { 876 variant: 'MODIS_Terra_Aerosol', 877 format: 'png', 878 maxZoom: 6, 879 opacity: 0.75 880 } 881 }, 882 ModisTerraChlorophyll: { 883 options: { 884 variant: 'MODIS_Terra_Chlorophyll_A', 885 format: 'png', 886 maxZoom: 7, 887 opacity: 0.75 888 } 889 } 890 } 891 }, 892 NLS: { 893 // NLS maps are copyright National library of Scotland. 894 // http://maps.nls.uk/projects/api/index.html 895 // Please contact NLS for anything other than non-commercial low volume usage 896 // 897 // Map sources: Ordnance Survey 1:1m to 1:63K, 1920s-1940s 898 // z0-9 - 1:1m 899 // z10-11 - quarter inch (1:253440) 900 // z12-18 - one inch (1:63360) 901 url: 'https://nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg', 902 options: { 903 attribution: '<a href="http://geo.nls.uk/maps/">National Library of Scotland Historic Maps</a>', 904 bounds: [[49.6, -12], [61.7, 3]], 905 minZoom: 1, 906 maxZoom: 18, 907 subdomains: '0123', 908 } 909 }, 910 JusticeMap: { 911 // Justice Map (http://www.justicemap.org/) 912 // Visualize race and income data for your community, county and country. 913 // Includes tools for data journalists, bloggers and community activists. 914 url: 'https://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 915 options: { 916 attribution: '<a href="http://www.justicemap.org/terms.php">Justice Map</a>', 917 // one of 'county', 'tract', 'block' 918 size: 'county', 919 // Bounds for USA, including Alaska and Hawaii 920 bounds: [[14, -180], [72, -56]] 921 }, 922 variants: { 923 income: 'income', 924 americanIndian: 'indian', 925 asian: 'asian', 926 black: 'black', 927 hispanic: 'hispanic', 928 multi: 'multi', 929 nonWhite: 'nonwhite', 930 white: 'white', 931 plurality: 'plural' 932 } 933 }, 934 GeoportailFrance: { 935 url: 'https://wxs.ign.fr/{apikey}
935/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE={style}&TILEMATRIXSET=PM&FORMAT={format}&LAYER={variant}&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 936 options: { 937 attribution: '<a target="_blank" href="https://www.geoportail.gouv.fr/">Geoportail France</a>', 938 bounds: [[-75, -180], [81, 180]], 939 minZoom: 2, 940 maxZoom: 18, 941 // Get your own geoportail apikey here : http://professionnels.ign.fr/ign/contrats/ 942 // NB : 'choisirgeoportail' is a demonstration key that comes with no guarantee 943 apikey: 'choisirgeoportail', 944 format: 'image/png', 945 style: 'normal', 946 variant: 'GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2' 947 }, 948 variants: { 949 plan: 'GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2', 950 parcels: { 951 options: { 952 variant: 'CADASTRALPARCELS.PARCELLAIRE_EXPRESS', 953 style: 'PCI vecteur', 954 maxZoom: 20 955 } 956 }, 957 orthos: { 958 options: { 959 maxZoom: 19, 960 format: 'image/jpeg', 961 variant: 'ORTHOIMAGERY.ORTHOPHOTOS' 962 } 963 } 964 } 965 }, 966 OneMapSG: { 967 url: 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png', 968 options: { 969 variant: 'Default', 970 minZoom: 11, 971 maxZoom: 18, 972 bounds: [[1.56073, 104.11475], [1.16, 103.502]], 973 attribution: '<img src="https://docs.onemap.sg/maps/images/oneMap64-01.png" style="height:20px;width:20px;"/> New OneMap | Map data © contributors, <a href="http://SLA.gov.sg">Singapore Land Authority</a>' 974 }, 975 variants: { 976 Default: 'Default', 977 Night: 'Night', 978 Original: 'Original', 979 Grey: 'Grey', 980 LandLot: 'LandLot' 981 } 982 }, 983 USGS: { 984 url: 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/M
vendor: 4,237 bytes, lines 984-1107
984apServer/tile/{z}/{y}/{x}', 985 options: { 986 maxZoom: 20, 987 attribution: 'Tiles courtesy of the <a href="https://usgs.gov/">U.S. Geological Survey</a>' 988 }, 989 variants: { 990 USTopo: {}, 991 USImagery: { 992 url: 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}' 993 }, 994 USImageryTopo: { 995 url: 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapServer/tile/{z}/{y}/{x}' 996 } 997 } 998 }, 999 WaymarkedTrails: { 1000 url: 'https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png', 1001 options: { 1002 maxZoom: 18, 1003 attribution: 'Map data: {attribution.OpenStreetMap} | Map style: © <a href="https://waymarkedtrails.org">waymarkedtrails.org</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)' 1004 }, 1005 variants: { 1006 hiking: 'hiking', 1007 cycling: 'cycling', 1008 mtb: 'mtb', 1009 slopes: 'slopes', 1010 riding: 'riding', 1011 skating: 'skating' 1012 } 1013 }, 1014 OpenAIP: { 1015 url: 'https://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.{ext}', 1016 options: { 1017 attribution: '<a href="https://www.openaip.net/">openAIP Data</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-NC-SA</a>)', 1018 ext: 'png', 1019 minZoom: 4, 1020 maxZoom: 14, 1021 tms: true, 1022 detectRetina: true, 1023 subdomains: '12' 1024 } 1025 }, 1026 OpenSnowMap: { 1027 url: 'https://tiles.opensnowmap.org/{variant}/{z}/{x}/{y}.png', 1028 options: { 1029 minZoom: 9, 1030 maxZoom: 18, 1031 attribution: 'Map data: {attribution.OpenStreetMap} & ODbL, © <a href="https://www.opensnowmap.org/iframes/data.html">www.opensnowmap.org</a> <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>' 1032 }, 1033 variants: { 1034 pistes: 'pistes', 1035 } 1036 }, 1037 AzureMaps: { 1038 url: 1039 'https://atlas.microsoft.com/map/tile?api-version={apiVersion}'+ 1040 '&tilesetId={variant}&x={x}&y={y}&zoom={z}&language={language}'+ 1041 '&subscription-key={subscriptionKey}', 1042 options: { 1043 attribution: 'See https://docs.microsoft.com/en-us/rest/api/maps/render-v2/get-map-tile for details.', 1044 apiVersion: '2.0', 1045 variant: 'microsoft.imagery', 1046 subscriptionKey: '<insert your subscription key here>', 1047 language: 'en-US', 1048 }, 1049 variants: { 1050 MicrosoftImagery: 'microsoft.imagery', 1051 MicrosoftBaseDarkGrey: 'microsoft.base.darkgrey', 1052 MicrosoftBaseRoad: 'microsoft.base.road', 1053 MicrosoftBaseHybridRoad: 'microsoft.base.hybrid.road', 1054 MicrosoftTerraMain: 'microsoft.terra.main', 1055 MicrosoftWeatherInfraredMain: { 1056 url: 1057 'https://atlas.microsoft.com/map/tile?api-version={apiVersion}'+ 1058 '&tilesetId={variant}&x={x}&y={y}&zoom={z}'+ 1059 '&timeStamp={timeStamp}&language={language}' + 1060 '&subscription-key={subscriptionKey}', 1061 options: { 1062 timeStamp: '2021-05-08T09:03:00Z', 1063 attribution: 'See https://docs.microsoft.com/en-us/rest/api/maps/render-v2/get-map-tile#uri-parameters for details.', 1064 variant: 'microsoft.weather.infrared.main', 1065 }, 1066 }, 1067 MicrosoftWeatherRadarMain: { 1068 url: 1069 'https://atlas.microsoft.com/map/tile?api-version={apiVersion}'+ 1070 '&tilesetId={variant}&x={x}&y={y}&zoom={z}'+ 1071 '&timeStamp={timeStamp}&language={language}' + 1072 '&subscription-key={subscriptionKey}', 1073 options: { 1074 timeStamp: '2021-05-08T09:03:00Z', 1075 attribution: 'See https://docs.microsoft.com/en-us/rest/api/maps/render-v2/get-map-tile#uri-parameters for details.', 1076 variant: 'microsoft.weather.radar.main', 1077 }, 1078 } 1079 }, 1080 }, 1081 SwissFederalGeoportal: { 1082 url: 'https://wmts.geo.admin.ch/1.0.0/{variant}/default/current/3857/{z}/{x}/{y}.jpeg', 1083 options: { 1084 attribution: '© <a href="https://www.swisstopo.admin.ch/">swisstopo</a>', 1085 minZoom: 2, 1086 maxZoom: 18, 1087 bounds: [[45.398181, 5.140242], [48.230651, 11.47757]] 1088 }, 1089 variants: { 1090 NationalMapColor: 'ch.swisstopo.pixelkarte-farbe', 1091 NationalMapGrey: 'ch.swisstopo.pixelkarte-grau', 1092 SWISSIMAGE: { 1093 options: { 1094 variant: 'ch.swisstopo.swissimage', 1095 maxZoom: 19 1096 } 1097 } 1098 } 1099 } 1100 }; 1101 1102 L.tileLayer.provider = function (provider, options) { 1103 return new L.TileLayer.Provider(provider, options); 1104 }; 1105 1106 return L; 1107}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.