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