PageSourceSearch

https://www.apli.com/themes/custom/apli/js/leaflet-providers.js?tmb479

js apli.com collected 2026-10-03 21:26:58 UTC 23,878 bytes, 816 lines download raw bytes

vendor: 19,556 bytes, lines 1-667
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					'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
85			},
86			variants: {
87				Mapnik: {},
88				DE: {
89					url: 'https://{s}.tile.openstreetmap.de/tiles/osmde/{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: '&copy; 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: &copy; <a href="http://www.openseamap.org">OpenSeaMap</a> contributors'
130			}
131		},
132		OpenPtMap: {
133			url: 'http://openptmap.org/tiles/{z}/{x}/{y}.png',
134			options: {
135				maxZoom: 17,
136				attribution: 'Map data: &copy; <a href="http://www.openptmap.org">OpenPtMap</a> contributors'
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: &copy; <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: &copy; <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: &copy; <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: &copy; <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		Thunderforest: {
168			url: 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}',
169			options: {
170				attribution:
171					'&copy; <a href="http://www.thunderforest.com/">Thunderforest</a>, {attribution.OpenStreetMap}',
172				variant: 'cycle',
173				apikey: '<insert your api key here>',
174				maxZoom: 22
175			},
176			variants: {
177				OpenCycleMap: 'cycle',
178				Transport: {
179					options: {
180						variant: 'transport'
181					}
182				},
183				TransportDark: {
184					options: {
185						variant: 'transport-dark'
186					}
187				},
188				SpinalMap: {
189					options: {
190						variant: 'spinal-map'
191					}
192				},
193				Landscape: 'landscape',
194				Outdoors: 'outdoors',
195				Pioneer: 'pioneer',
196				MobileAtlas: 'mobile-atlas',
197				Neighbourhood: 'neighbourhood'
198			}
199		},
200		OpenMapSurfer: {
201			url: 'https://maps.heigit.org/openmapsurfer/tiles/{variant}/webmercator/{z}/{x}/{y}.png',
202			options: {
203				maxZoom: 19,
204				variant: 'roads',
205				attribution: 'Imagery from <a href="http://giscience.uni-hd.de/">GIScience Research Group @ University of Heidelberg</a> | Map data '
206			},
207			variants: {
208				Roads: {
209					options: {
210						variant: 'roads',
211						attribution: '{attribution.OpenMapSurfer}{attribution.OpenStreetMap}'
212					}
213				},
214				Hybrid: {
215					options: {
216						variant: 'hybrid',
217						attribution: '{attribution.OpenMapSurfer}{attribution.OpenStreetMap}'
218					}
219				},
220				AdminBounds: {
221					options: {
222						variant: 'adminb',
223						maxZoom: 18,
224						attribution: '{attribution.OpenMapSurfer}{attribution.OpenStreetMap}'
225					}
226				},
227				ContourLines: {
228					options: {
229						variant: 'asterc',
230						maxZoom: 18,
231						minZoom: 13,
232						attribution: '{attribution.OpenMapSurfer} <a href="https://lpdaac.usgs.gov/products/aster_policies">ASTER GDEM</a>'
233					}
234				},
235				Hillshade: {
236					options: {
237						variant: 'asterh',
238						maxZoom: 18,
239						attribution: '{attribution.OpenMapSurfer} <a href="https://lpdaac.usgs.gov/products/aster_policies">ASTER GDEM</a>, <a href="http://srtm.csi.cgiar.org/">SRTM</a>'
240					}
241				},
242				ElementsAtRisk: {
243					options: {
244						variant: 'elements_at_risk',
245						attribution: '{attribution.OpenMapSurfer}{attribution.OpenStreetMap}'
246					}
247				}
248			}
249		},
250		Hydda: {
251			url: 'https://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png',
252			options: {
253				maxZoom: 18,
254				variant: 'full',
255				attribution: 'Tiles courtesy of <a href="http://openstreetmap.se/" target="_blank">OpenStreetMap Sweden</a> &mdash; Map data {attribution.OpenStreetMap}'
256			},
257			variants: {
258				Full: 'full',
259				Base: 'base',
260				RoadsAndLabels: 'roads_and_labels'
261			}
262		},
263		MapBox: {
264			url: 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}{r}.png?access_token={accessToken}',
265			options: {
266				attribution:
267					'<a href="https://www.mapbox.com/about/maps/" target="_blank">&copy; Mapbox</a> ' +
268					'{attribution.OpenStreetMap} ' +
269					'<a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a>',
270				subdomains: 'abcd',
271				id: 'mapbox.streets',
272				accessToken: '<insert your access token here>',
273			}
274		},
275		Stamen: {
276			url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}',
277			options: {
278				attribution:
279					'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ' +
280					'<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> &mdash; ' +
281					'Map data {attribution.OpenStreetMap}',
282				subdomains: 'abcd',
283				minZoom: 0,
284				maxZoom: 20,
285				variant: 'toner',
286				ext: 'png'
287			},
288			variants: {
289				Toner: 'toner',
290				TonerBackground: 'toner-background',
291				TonerHybrid: 'toner-hybrid',
292				TonerLines: 'toner-lines',
293				TonerLabels: 'toner-labels',
294				TonerLite: 'toner-lite',
295				Watercolor: {
296					url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}',
297					options: {
298						variant: 'watercolor',
299						ext: 'jpg',
300						minZoom: 1,
301						maxZoom: 16
302					}
303				},
304				Terrain: {
305					options: {
306						variant: 'terrain',
307						minZoom: 0,
308						maxZoom: 18
309					}
310				},
311				TerrainBackground: {
312					options: {
313						variant: 'terrain-background',
314						minZoom: 0,
315						maxZoom: 18
316					}
317				},
318				TopOSMRelief: {
319					url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}',
320					options: {
321						variant: 'toposm-color-relief',
322						ext: 'jpg',
323						bounds: [[22, -132], [51, -56]]
324					}
325				},
326				TopOSMFeatures: {
327					options: {
328						variant: 'toposm-features',
329						bounds: [[22, -132], [51, -56]],
330						opacity: 0.9
331					}
332				}
333			}
334		},
335		Esri: {
336			url: 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}',
337			options: {
338				variant: 'World_Street_Map',
339				attribution: 'Tiles &copy; Esri'
340			},
341			variants: {
342				WorldStreetMap: {
343					options: {
344						attribution:
345							'{attribution.Esri} &mdash; ' +
346							'Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012'
347					}
348				},
349				DeLorme: {
350					options: {
351						variant: 'Specialty/DeLorme_World_Base_Map',
352						minZoom: 1,
353						maxZoom: 11,
354						attribution: '{attribution.Esri} &mdash; Copyright: &copy;2012 DeLorme'
355					}
356				},
357				WorldTopoMap: {
358					options: {
359						variant: 'World_Topo_Map',
360						attribution:
361							'{attribution.Esri} &mdash; ' +
362							'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'
363					}
364				},
365				WorldImagery: {
366					options: {
367						variant: 'World_Imagery',
368						attribution:
369							'{attribution.Esri} &mdash; ' +
370							'Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community'
371					}
372				},
373				WorldTerrain: {
374					options: {
375						variant: 'World_Terrain_Base',
376						maxZoom: 13,
377						attribution:
378							'{attribution.Esri} &mdash; ' +
379							'Source: USGS, Esri, TANA, DeLorme, and NPS'
380					}
381				},
382				WorldShadedRelief: {
383					options: {
384						variant: 'World_Shaded_Relief',
385						maxZoom: 13,
386						attribution: '{attribution.Esri} &mdash; Source: Esri'
387					}
388				},
389				WorldPhysical: {
390					options: {
391						variant: 'World_Physical_Map',
392						maxZoom: 8,
393						attribution: '{attribution.Esri} &mdash; Source: US National Park Service'
394					}
395				},
396				OceanBasemap: {
397					options: {
398						variant: 'Ocean_Basemap',
399						maxZoom: 13,
400						attribution: '{attribution.Esri} &mdash; Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri'
401					}
402				},
403				NatGeoWorldMap: {
404					options: {
405						variant: 'NatGeo_World_Map',
406						maxZoom: 16,
407						attribution: '{attribution.Esri} &mdash; National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC'
408					}
409				},
410				WorldGrayCanvas: {
411					options: {
412						variant: 'Canvas/World_Light_Gray_Base',
413						maxZoom: 16,
414						attribution: '{attribution.Esri} &mdash; Esri, DeLorme, NAVTEQ'
415					}
416				}
417			}
418		},
419		OpenWeatherMap: {
420			url: 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}',
421			options: {
422				maxZoom: 19,
423				attribution: 'Map data &copy; <a href="http://openweathermap.org">OpenWeatherMap</a>',
424				apiKey:'<insert your api key here>',
425				opacity: 0.5
426			},
427			variants: {
428				Clouds: 'clouds',
429				CloudsClassic: 'clouds_cls',
430				Precipitation: 'precipitation',
431				PrecipitationClassic: 'precipitation_cls',
432				Rain: 'rain',
433				RainClassic: 'rain_cls',
434				Pressure: 'pressure',
435				PressureContour: 'pressure_cntr',
436				Wind: 'wind',
437				Temperature: 'temp',
438				Snow: 'snow'
439			}
440		},
441		HERE: {
442			/*
443			 * HERE maps, formerly Nokia maps.
444			 * These basemaps are free, but you need an API key. Please sign up at
445			 * https://developer.here.com/plans
446			 */
447			url:
448				'https://{s}.{base}.maps.api.here.com/maptile/2.1/' +
449				'{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?' +
450				'app_id={app_id}&app_code={app_code}&lg={language}',
451			options: {
452				attribution:
453					'Map &copy; 1987-' + new Date().getFullYear() + ' <a href="http://developer.here.com">HERE</a>',
454				subdomains: '1234',
455				mapID: 'newest',
456				'app_id': '<insert your app_id here>',
457				'app_code': '<insert your app_code here>',
458				base: 'base',
459				variant: 'normal.day',
460				maxZoom: 20,
461				type: 'maptile',
462				language: 'eng',
463				format: 'png8',
464				size: '256'
465			},
466			variants: {
467				normalDay: 'normal.day',
468				normalDayCustom: 'normal.day.custom',
469				normalDayGrey: 'normal.day.grey',
470				normalDayMobile: 'normal.day.mobile',
471				normalDayGreyMobile: 'normal.day.grey.mobile',
472				normalDayTransit: 'normal.day.transit',
473				normalDayTransitMobile: 'normal.day.transit.mobile',
474				normalNight: 'normal.night',
475				normalNightMobile: 'normal.night.mobile',
476				normalNightGrey: 'normal.night.grey',
477				normalNightGreyMobile: 'normal.night.grey.mobile',
478				normalNightTransit: 'normal.night.transit',
479				normalNightTransitMobile: 'normal.night.transit.mobile',
480				reducedDay: 'reduced.day',
481				reducedNight: 'reduced.night',
482				basicMap: {
483					options: {
484						type: 'basetile'
485					}
486				},
487				mapLabels: {
488					options: {
489						type: 'labeltile',
490						format: 'png'
491					}
492				},
493				trafficFlow: {
494					options: {
495						base: 'traffic',
496						type: 'flowtile'
497					}
498				},
499				carnavDayGrey: 'carnav.day.grey',
500				hybridDay: {
501					options: {
502						base: 'aerial',
503						variant: 'hybrid.day'
504					}
505				},
506				hybridDayMobile: {
507					options: {
508						base: 'aerial',
509						variant: 'hybrid.day.mobile'
510					}
511				},
512				hybridDayTransit: {
513					options: {
514						base: 'aerial',
515						variant: 'hybrid.day.transit'
516					}
517				},
518				hybridDayGrey: {
519					options: {
520						base: 'aerial',
521						variant: 'hybrid.grey.day'
522					}
523				},
524				pedestrianDay: 'pedestrian.day',
525				pedestrianNight: 'pedestrian.night',
526				satelliteDay: {
527					options: {
528						base: 'aerial',
529						variant: 'satellite.day'
530					}
531				},
532				terrainDay: {
533					options: {
534						base: 'aerial',
535						variant: 'terrain.day'
536					}
537				},
538				terrainDayMobile: {
539					options: {
540						base: 'aerial',
541						variant: 'terrain.day.mobile'
542					}
543				}
544			}
545		},
546		FreeMapSK: {
547			url: 'http://t{s}.freemap.sk/T/{z}/{x}/{y}.jpeg',
548			options: {
549				minZoom: 8,
550				maxZoom: 16,
551				subdomains: '1234',
552				bounds: [[47.204642, 15.996093], [49.830896, 22.576904]],
553				attribution:
554					'{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 <a href="http://freemap.sk">Freemap.sk</a>'
555			}
556		},
557		MtbMap: {
558			url: 'http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png',
559			options: {
560				attribution:
561					'{attribution.OpenStreetMap} &amp; USGS'
562			}
563		},
564		CartoDB: {
565			url: 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png',
566			options: {
567				attribution: '{attribution.OpenStreetMap} &copy; <a href="https://carto.com/attributions">CARTO</a>',
568				subdomains: 'abcd',
569				maxZoom: 19,
570				variant: 'light_all'
571			},
572			variants: {
573				Positron: 'light_all',
574				PositronNoLabels: 'light_nolabels',
575				PositronOnlyLabels: 'light_only_labels',
576				DarkMatter: 'dark_all',
577				DarkMatterNoLabels: 'dark_nolabels',
578				DarkMatterOnlyLabels: 'dark_only_labels',
579				Voyager: 'rastertiles/voyager',
580				VoyagerNoLabels: 'rastertiles/voyager_nolabels',
581				VoyagerOnlyLabels: 'rastertiles/voyager_only_labels',
582				VoyagerLabelsUnder: 'rastertiles/voyager_labels_under'
583			}
584		},
585		HikeBike: {
586			url: 'https://tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png',
587			options: {
588				maxZoom: 19,
589				attribution: '{attribution.OpenStreetMap}',
590				variant: 'hikebike'
591			},
592			variants: {
593				HikeBike: {},
594				HillShading: {
595					options: {
596						maxZoom: 15,
597						variant: 'hillshading'
598					}
599				}
600			}
601		},
602		BasemapAT: {
603			url: 'https://maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}',
604			options: {
605				maxZoom: 19,
606				attribution: 'Datenquelle: <a href="https://www.basemap.at">basemap.at</a>',
607				subdomains: ['', '1', '2', '3', '4'],
608				format: 'png',
609				bounds: [[46.358770, 8.782379], [49.037872, 17.189532]],
610				variant: 'geolandbasemap'
611			},
612			variants: {
613				basemap: {
614					options: {
615						maxZoom: 20, // currently only in Vienna
616						variant: 'geolandbasemap'
617					}
618				},
619				grau: 'bmapgrau',
620				overlay: 'bmapoverlay',
621				highdpi: {
622					options: {
623						variant: 'bmaphidpi',
624						format: 'jpeg'
625					}
626				},
627				orthofoto: {
628					options: {
629						maxZoom: 20, // currently only in Vienna
630						variant: 'bmaporthofoto30cm',
631						format: 'jpeg'
632					}
633				}
634			}
635		},
636		nlmaps: {
637			url: 'https://geodata.nationaalgeoregister.nl/tiles/service/wmts/{variant}/EPSG:3857/{z}/{x}/{y}.png',
638			options: {
639				minZoom: 6,
640				maxZoom: 19,
641				bounds: [[50.5, 3.25], [54, 7.6]],
642				attribution: 'Kaartgegevens &copy; <a href="kadaster.nl">Kadaster</a>'
643			},
644			variants: {
645				'standaard': 'brtachtergrondkaart',
646				'pastel': 'brtachtergrondkaartpastel',
647				'grijs': 'brtachtergrondkaartgrijs',
648				'luchtfoto': {
649					'url': 'https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/1.0.0/2016_ortho25/EPSG:3857/{z}/{x}/{y}.png',
650				}
651			}
652		},
653		NASAGIBS: {
654			url: 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}',
655			options: {
656				attribution:
657					'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System ' +
658					'(<a href="https://earthdata.nasa.gov">ESDIS</a>) with funding provided by NASA/HQ.',
659				bounds: [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]],
660				minZoom: 1,
661				maxZoom: 9,
662				format: 'jpg',
663				time: '',
664				tilematrixset: 'GoogleMapsCompatible_Level'
665			},
666			variants: {
667				ModisTerraTrueColorCR: 'MODIS_Terra_CorrectedReflectance_True
667Color',
668				ModisTerraBands367CR: 'MODIS_Terra_CorrectedReflectance_Bands367',
669				ViirsEarthAtNight2012: {
670					options: {
671						variant: 'VIIRS_CityLights_2012',
672						maxZoom: 8
673					}
674				},
675				ModisTerraLSTDay: {
676					options: {
677						variant: 'MODIS_Terra_Land_Surface_Temp_Day',
678						format: 'png',
679						maxZoom: 7,
680						opacity: 0.75
681					}
682				},
683				ModisTerraSnowCover: {
684					options: {
685						variant: 'MODIS_Terra_Snow_Cover',
686						format: 'png',
687						maxZoom: 8,
688						opacity: 0.75
689					}
690				},
691				ModisTerraAOD: {
692					options: {
693						variant: 'MODIS_Terra_Aerosol',
694						format: 'png',
695						maxZoom: 6,
696						opacity: 0.75
697					}
698				},
699				ModisTerraChlorophyll: {
700					options: {
701						variant: 'MODIS_Terra_Chlorophyll_A',
702						format: 'png',
703						maxZoom: 7,
704						opacity: 0.75
705					}
706				}
707			}
708		},
709		NLS: {
710			// NLS maps are copyright National library of Scotland.
711			// http://maps.nls.uk/projects/api/index.html
712			// Please contact NLS for anything other than non-commercial low volume usage
713			//
714			// Map sources: Ordnance Survey 1:1m to 1:63K, 1920s-1940s
715			//   z0-9  - 1:1m
716			//  z10-11 - quarter inch (1:253440)
717			//  z12-18 - one inch (1:63360)
718			url: 'https://nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg',
719			options: {
720				attribution: '<a href="http://geo.nls.uk/maps/">National Library of Scotland Historic Maps</a>',
721				bounds: [[49.6, -12], [61.7, 3]],
722				minZoom: 1,
723				maxZoom: 18,
724				subdomains: '0123',
725			}
726		},
727		JusticeMap: {
728			// Justice Map (http://www.justicemap.org/)
729			// Visualize race and income data for your community, county and country.
730			// Includes tools for data journalists, bloggers and community activists.
731			url: 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png',
732			options: {
733				attribution: '<a href="http://www.justicemap.org/terms.php">Justice Map</a>',
734				// one of 'county', 'tract', 'block'
735				size: 'county',
736				// Bounds for USA, including Alaska and Hawaii
737				bounds: [[14, -180], [72, -56]]
738			},
739			variants: {
740				income: 'income',
741				americanIndian: 'indian',
742				asian: 'asian',
743				black: 'black',
744				hispanic: 'hispanic',
745				multi: 'multi',
746				nonWhite: 'nonwhite',
747				white: 'white',
748				plurality: 'plural'
749			}
750		},
751		Wikimedia: {
752			url: 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}{r}.png',
753			options: {
754				attribution: '<a href="https://wikimediafoundation.org/wiki/Maps_Terms_of_Use">Wikimedia</a>',
755				minZoom: 1,
756				maxZoom: 19
757			}
758		},
759		GeoportailFrance: {
760			url: 'https://wxs.ign.fr/{apikey}
760/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE={style}&TILEMATRIXSET=PM&FORMAT={format}&LAYER={variant}&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
761			options: {
762				attribution: '<a target="_blank" href="https://www.geoportail.gouv.fr/">Geoportail France</a>',
763				bounds: [[-75, -180], [81, 180]],
764				minZoom: 2,
765				maxZoom: 18,
766				// Get your own geoportail apikey here : http://professionnels.ign.fr/ign/contrats/
767				// NB : 'choisirgeoportail' is a demonstration key that comes with no guarantee
768				apikey: 'choisirgeoportail',
769				format: 'image/jpeg',
770				style : 'normal',
771				variant: 'GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD'
772			},
773			variants: {
774				parcels: {
775					options : {
776						variant: 'CADASTRALPARCELS.PARCELS',
777						maxZoom: 20,
778						style : 'bdparcellaire',
779						format: 'image/png'
780					}
781				},
782				ignMaps: 'GEOGRAPHICALGRIDSYSTEMS.MAPS',
783				maps: 'GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD',
784				orthos: {
785					options: {
786						maxZoom: 19,
787						variant: 'ORTHOIMAGERY.ORTHOPHOTOS'
788					}
789				}
790			}
791		},
792		OneMapSG: {
793			url: 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png',
794			options: {
795				variant: 'Default',
796				minZoom: 11,
797				maxZoom: 18,
798				bounds: [[1.56073, 104.11475], [1.16, 103.502]],
799				attribution: '<img src="https://docs.onemap.sg/maps/images/oneMap64-01.png" style="height:20px;width:20px;"/> New OneMap | Map data &copy; contributors, <a href="http://SLA.gov.sg">Singapore Land Authority</a>'
800			},
801			variants: {
802				Default: 'Default',
803				Night: 'Night',
804				Original: 'Original',
805				Grey: 'Grey',
806				LandLot: 'LandLot'
807			}
808		}
809	};
810
811	L.tileLayer.provider = function (provider, options) {
812		return new L.TileLayer.Provider(provider, options);
813	};
814
815	return L;
816}));

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.