API Reference¶
papermap.papermap Module¶
- papermap.papermap.PAPER_SIZE_TO_DIMENSIONS_MAP: dict[str, tuple[int, int]] = {'a0': (841, 1189), 'a1': (594, 841), 'a2': (420, 594), 'a3': (297, 420), 'a4': (210, 297), 'a5': (148, 210), 'a6': (105, 148), 'a7': (74, 105), 'legal': (216, 356), 'letter': (216, 279)}¶
Map of paper size names to dimensions (width, height) in mm.
- papermap.papermap.PAPER_SIZES = ('a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'letter', 'legal')¶
Tuple of available paper size names.
- class papermap.papermap.PaperMap(lat, lon, *, tile_provider_key='openstreetmap', api_key=None, paper_size='a4', use_landscape=False, margin_top=10, margin_right=10, margin_bottom=10, margin_left=10, scale=25000, dpi=300, background_color='#fff', add_grid=False, grid_size=1000, strict_download=False)¶
Bases:
objectA paper map.
>>> from papermap import PaperMap >>> pm = PaperMap(13.75889, 100.49722) >>> pm.render() >>> pm.save("Bangkok.pdf")
- Parameters:
lat (float) – Latitude of the center of the map.
lon (float) – Longitude of the center of the map
tile_provider_key (dataclasses.InitVar[str]) – Tile provider key to serve as the base of the paper map. Defaults to openstreetmap.
api_key (str | None) – API key for the chosen tile provider (if applicable). Defaults to None.
size – Size of the paper map. Defaults to a4.
landscape – Use landscape orientation. Defaults to False.
margin_top (int) – Top margin (in mm). Defaults to 10.
margin_right (int) – Right margin (in mm). Defaults to 10.
margin_bottom (int) – Bottom margin (in mm). Defaults to 10.
margin_left (int) – Left margin (in mm). Defaults to 10.
scale (int) – Scale of the paper map. Defaults to 25000.
dpi (int) – Dots per inch. Defaults to 300.
background_color (str) – Background color of the paper map. Defaults to #fff.
add_grid (bool) – Add a coordinate grid overlay to the paper map. Defaults to False.
grid_size (int) – Size of the grid squares (if applicable, in meters). Defaults to 1000.
strict_download (bool) – Fail if any tiles cannot be downloaded. Defaults to False.
- Raises:
ValueError – If the tile provider is invalid.
ValueError – If no API key is specified (when applicable).
ValueError – If the paper size is invalid.
ValueError – If the scale is “out of bounds”.
- classmethod from_utm(utm, **kwargs)¶
Create a paper map from Universal Transverse Mercator (UTM) coordinates.
- Parameters:
utm (UTMCoordinate | str) – Either an UTMCoordinate object or a UTM string (e.g., “18N 583960E 4507523N”).
**kwargs (Any) – Additional keyword arguments to pass to PaperMap constructor.
- Returns:
A new PaperMap instance centered on the converted coordinates.
- Return type:
Examples
>>> from papermap import PaperMap >>> from papermap.geodesy import UTMCoordinate >>> utm = UTMCoordinate(583960, 4507523, 18, "N") >>> pm = PaperMap.from_utm(utm) >>> pm.render() >>> pm.save("map_from_utm.pdf")
- classmethod from_mgrs(mgrs, **kwargs)¶
Create a paper map from Military Grid Reference System (MGRS) coordinates.
- Parameters:
mgrs (MGRSCoordinate | str) – Either an MGRSCoordinate object or an MGRS string (e.g., “18TWK8395907523”).
**kwargs (Any) – Additional keyword arguments to pass to PaperMap constructor.
- Returns:
A new PaperMap instance centered on the converted coordinates.
- Raises:
ValueError – If the MGRS string is malformed.
- Return type:
Examples
>>> from papermap import PaperMap >>> pm = PaperMap.from_mgrs("18TWK8395907523") >>> pm.render() >>> pm.save("map_from_mgrs.pdf")
>>> from papermap.geodesy import MGRSCoordinate >>> mgrs = MGRSCoordinate(18, "T", "WK", 83959, 7523) >>> pm = PaperMap.from_mgrs(mgrs)
- classmethod from_ecef(ecef, **kwargs)¶
Create a paper map from Earth-Centered, Earth-Fixed (ECEF) Cartesian coordinates.
- Parameters:
ecef (ECEFCoordinate) – ECEFCoordinate with x, y, z in meters.
**kwargs (Any) – Additional keyword arguments to pass to PaperMap constructor.
- Returns:
A new PaperMap instance centered on the converted coordinates.
- Return type:
Examples
>>> from papermap import PaperMap >>> from papermap.geodesy import ECEFCoordinate >>> ecef = ECEFCoordinate(1334934, -4655474, 4137498) >>> pm = PaperMap.from_ecef(ecef) >>> pm.render() >>> pm.save("map_from_ecef.pdf")
- render()¶
Render the paper map, consisting of the map image, grid (if applicable), attribution and scale.
papermap.geodesy Module¶
Geodesy module for coordinate conversions.
This module provides functions for converting between different coordinate systems: - Geographic coordinates (latitude/longitude in WGS84) - UTM (Universal Transverse Mercator) coordinates - MGRS (Military Grid Reference System) coordinates - ECEF (Earth-Centered, Earth-Fixed) Cartesian coordinates
The implementations are based on well-established geodetic formulas, particularly: - Karney (2011) for high-accuracy Transverse Mercator projections - Bowring (1985) for efficient Cartesian to geographic conversions
References
- Karney, C. F. (2011). Transverse Mercator with an accuracy of a few nanometers.
Journal of Geodesy, 85(8), 475-485. https://arxiv.org/abs/1002.1417v3
- Bowring, B. R. (1985). The accuracy of geodetic latitude and height equations.
Survey Review, 28(218), 202-206.
Veness, C. Geodesy functions. https://github.com/chrisveness/geodesy
- class papermap.geodesy.Ellipsoid(semi_major_axis, flattening)¶
Bases:
objectA reference ellipsoid for geodetic calculations.
An ellipsoid is a mathematical model of the Earth’s shape, defined by its semi-major axis (equatorial radius) and flattening. Different ellipsoids are used for different regions and applications.
- semi_major_axis¶
Semi-major axis (equatorial radius) in meters. This is the distance from the Earth’s center to the equator.
- Type:
- flattening¶
Flattening factor (dimensionless). This describes how much the ellipsoid deviates from a perfect sphere, defined as f = (a - b) / a where a is the semi-major axis and b is the semi-minor axis. A value of 0 indicates a perfect sphere.
- Type:
- papermap.geodesy.WGS_84_ELLIPSOID = Ellipsoid(semi_major_axis=6378137.0, flattening=0.0033528106647474805)¶
The WGS84 ellipsoid used by GPS and most modern mapping applications.
This is the default ellipsoid for all coordinate conversion functions.
- papermap.geodesy.UTM_SCALE_FACTOR: float = 0.9996¶
UTM central meridian scale factor (dimensionless).
UTM uses a secant cylinder projection, meaning the cylinder intersects the Earth at two lines parallel to the central meridian. This scale factor (less than 1) reduces distortion across the zone by making the scale exact along those secant lines rather than at the central meridian.
- papermap.geodesy.UTM_FALSE_EASTING: float = 500000.0¶
UTM false easting in meters.
All UTM easting values are offset by this amount to ensure they are always positive. The central meridian of each zone has an easting of exactly 500,000 meters.
- papermap.geodesy.UTM_FALSE_NORTHING: float = 10000000.0¶
UTM false northing for the Southern Hemisphere in meters.
In the Southern Hemisphere, northing values are offset by this amount to avoid negative coordinates. The equator has a northing of 10,000,000 meters in the Southern Hemisphere and 0 meters in the Northern.
- papermap.geodesy.MGRS_LATITUDE_BANDS: str = 'CDEFGHJKLMNPQRSTUVWXX'¶
MGRS latitude band letters.
These letters designate 8-degree latitude bands from 80°S to 84°N. Letters I and O are omitted to avoid confusion with digits 1 and 0. The band ‘X’ is repeated because it spans 12 degrees (72°N to 84°N) instead of the usual 8 degrees.
Band C: 80°S to 72°S Band D: 72°S to 64°S … Band X: 72°N to 84°N
- papermap.geodesy.MGRS_COLUMN_LETTERS_SET1: str = 'ABCDEFGH'¶
100km column letters for UTM zones where (zone % 3) == 1.
- papermap.geodesy.MGRS_COLUMN_LETTERS_SET2: str = 'JKLMNPQR'¶
100km column letters for UTM zones where (zone % 3) == 2.
- papermap.geodesy.MGRS_COLUMN_LETTERS_SET3: str = 'STUVWXYZ'¶
100km column letters for UTM zones where (zone % 3) == 0.
- papermap.geodesy.MGRS_ROW_LETTERS_ODD: str = 'ABCDEFGHJKLMNPQRSTUV'¶
100km row letters for odd UTM zones (1, 3, 5, …).
- papermap.geodesy.MGRS_ROW_LETTERS_EVEN: str = 'FGHJKLMNPQRSTUVABCDE'¶
100km row letters for even UTM zones (2, 4, 6, …).
Note how this is offset by 5 letters from the odd zone pattern. This offset ensures that adjacent zones don’t have the same row letter at the same northing, reducing ambiguity.
- class papermap.geodesy.LatLonCoordinate(lat, lon, height=None)¶
Bases:
NamedTupleA geographic coordinate in latitude and longitude.
- lat¶
Latitude in degrees (-90 to 90). Positive values are north of the equator, negative values are south.
- Type:
- lon¶
Longitude in degrees (-180 to 180). Positive values are east of the Prime Meridian, negative values are west.
- Type:
- class papermap.geodesy.UTMCoordinate(easting, northing, zone, hemisphere)¶
Bases:
NamedTupleA Universal Transverse Mercator (UTM) coordinate.
UTM divides the Earth into 60 longitudinal zones, each 6 degrees wide, numbered 1-60 starting from 180°W. Each zone uses a Transverse Mercator projection with its own central meridian.
- easting¶
Distance east from the zone’s central meridian in meters. The central meridian has an easting of 500,000m (false easting).
- Type:
- northing¶
Distance north from the equator in meters. In the Southern Hemisphere, 10,000,000m is added (false northing) so all values are positive.
- Type:
- class papermap.geodesy.MGRSCoordinate(zone, band, square, easting, northing)¶
Bases:
NamedTupleA Military Grid Reference System (MGRS) coordinate.
MGRS extends UTM by adding a two-letter 100km square identifier and providing a way to specify location to varying precision levels.
- class papermap.geodesy.ECEFCoordinate(x, y, z)¶
Bases:
NamedTupleAn Earth-Centered, Earth-Fixed (ECEF) Cartesian coordinate.
ECEF is a 3D Cartesian coordinate system with: - Origin at the Earth’s center of mass - X-axis pointing towards the intersection of the Prime Meridian and Equator - Y-axis pointing towards 90°E longitude on the Equator - Z-axis pointing towards the North Pole
- papermap.geodesy.format_latlon(latlon, *, precision=5)¶
Format a geographic coordinate in latitude and longitude as a human-readable string.
- Parameters:
latlon (LatLonCoordinate) – The geographic coordinate in latitude and longitude to format.
precision (int) – Number of digits for latitude/longitude (0-8). 0=111km, 1 = 11.1km, 2 = 1.11km, 3 = 111m, 4 = 11.1m, 5 = 1.11m, 6 = 111mm, 7 = 11.1mm, 8 = 1.11mm. Defaults to 5.
- Returns:
A string in the format “40.7128, -74.0060”.
- Return type:
- papermap.geodesy.format_utm(utm)¶
Format a UTM coordinate as a human-readable string.
- Parameters:
utm (UTMCoordinate) – The UTM coordinate to format.
- Returns:
A string in the format “18N 583960E 4507523N”.
- Return type:
- papermap.geodesy.format_mgrs(mgrs, *, precision=5)¶
Format an MGRS coordinate as a string with specified precision.
- Parameters:
mgrs (MGRSCoordinate) – The MGRS coordinate to format.
precision (int) – Number of digits for easting/northing (1-5). 1 = 10km, 2 = 1km, 3 = 100m, 4 = 10m, 5 = 1m. Defaults to 5.
- Returns:
MGRS coordinate string at the specified precision.
- Raises:
ValueError – If precision is not between 1 and 5.
- Return type:
- papermap.geodesy.format_ecef(ecef)¶
Format an ECEF coordinate as a string.
- Parameters:
ecef (ECEFCoordinate) – The ECEF coordinate to format.
- Returns:
A string in the format “(x, y, z)”.
- Return type:
- papermap.geodesy.wrap_angle(angle, limit)¶
Wraps an angle to [-limit, limit] range.
- papermap.geodesy.wrap_lat(lat)¶
Wraps latitude to [-90, 90] degrees range.
- papermap.geodesy.wrap_lon(lon)¶
Wraps longitude to [-180, 180] degrees range.
- papermap.geodesy.latlon_to_utm(lat, lon, *, ellipsoid=Ellipsoid(semi_major_axis=6378137.0, flattening=0.0033528106647474805))¶
Convert geographic coordinates to UTM.
This function uses Karney’s (2011) series expansion of the Transverse Mercator projection, which achieves sub-millimeter accuracy anywhere on Earth. The algorithm uses a conformal mapping via a 6th-order Krüger series.
The conversion process: 1. Determine the UTM zone (with special cases for Norway/Svalbard) 2. Calculate the conformal latitude (τ’) using the ellipsoid eccentricity 3. Apply the forward Krüger series to get projected coordinates 4. Scale and offset to get final UTM easting/northing
- Parameters:
- Returns:
UTMCoordinate with easting, northing, zone, and hemisphere.
- Raises:
ValueError – If latitude is outside the UTM coverage area [-80, 84].
- Return type:
Examples
>>> utm = latlon_to_utm(40.7128, -74.0060) # New York City >>> print(utm) UTMCoordinate(easting=583959.3723240846, northing=4507350.998243322, zone=18, hemisphere='N')
>>> utm = latlon_to_utm(-33.8688, 151.2093) # Sydney >>> print(format_utm(utm)) 56S 334369E 6250948N
- papermap.geodesy.utm_to_latlon(utm, *, ellipsoid=Ellipsoid(semi_major_axis=6378137.0, flattening=0.0033528106647474805))¶
Convert UTM coordinates to geographic coordinates.
This function uses Karney’s (2011) inverse Transverse Mercator series to convert UTM coordinates (either as an UTMCoordinate object or a string) back to latitude/longitude with high accuracy.
The conversion process: 1. Remove false origins from easting/northing 2. Compute normalized conformal coordinates 3. Apply inverse Krüger series 4. Iteratively solve for geodetic latitude 5. Compute longitude from the conformal coordinates
- Parameters:
utm (UTMCoordinate | str) – Either an UTMCoordinate object or a UTM string (e.g., “18N 583960E 4507523N”).
ellipsoid (Ellipsoid) – Reference ellipsoid for calculations. Defaults to WGS84.
- Returns:
Tuple of (latitude, longitude) in degrees.
- Raises:
ValueError – If the UTM string is malformed.
- Return type:
Examples
>>> utm = UTMCoordinate(583960, 4507523, 18, "N") >>> latlon = utm_to_latlon(utm) >>> print(latlon) LatLonCoordinate(lat=40.714349212461954, lon=-74.00596952683831, height=None) >>> print(format_latlon(latlon)) 40.71435, -74.00597
- papermap.geodesy.latlon_to_mgrs(lat, lon, *, ellipsoid=Ellipsoid(semi_major_axis=6378137.0, flattening=0.0033528106647474805))¶
Convert geographic coordinates to MGRS.
MGRS (Military Grid Reference System) is an alphanumeric version of UTM that provides a standardized way to express grid coordinates. It combines: - A Grid Zone Designator (e.g., “18T”) = UTM zone + latitude band - A 100km Square Identifier (e.g., “WK”) = two letters - Numerical coordinates within the square (e.g., “12345 67890”)
- Parameters:
- Returns:
MGRSCoordinate object with zone, band, square, easting, and northing.
- Return type:
Examples
>>> mgrs = latlon_to_mgrs(40.7128, -74.0060) >>> print(mgrs) MGRSCoordinate(zone=18, band='T', square='WL', easting=83959.37232408463, northing=7350.998243321665)
>>> mgrs = latlon_to_mgrs(40.7128, -74.0060) >>> print(format_mgrs(mgrs)) 18TWL8395907350
>>> mgrs = latlon_to_mgrs(40.7128, -74.0060, precision=3) >>> print(format_mgrs(mgrs, precision=3)) 18TWL839073
- papermap.geodesy.mgrs_to_latlon(mgrs, *, ellipsoid=Ellipsoid(semi_major_axis=6378137.0, flattening=0.0033528106647474805))¶
Convert MGRS coordinates to geographic coordinates.
This function converts an MGRS coordinate (either as an MGRSCoordinate object or a string) back to latitude/longitude. The conversion involves: 1. Parsing the MGRS components 2. Reconstructing UTM coordinates 3. Converting UTM to lat/lon
- Parameters:
mgrs (MGRSCoordinate | str) – Either an MGRSCoordinate object or an MGRS string (e.g., “18TWK8395907523”).
ellipsoid (Ellipsoid) – Reference ellipsoid for calculations. Defaults to WGS84.
- Returns:
Tuple of (latitude, longitude) in degrees.
- Raises:
ValueError – If the MGRS string is malformed.
- Return type:
Examples
>>> latlon = mgrs_to_latlon("18TWK8395907523") >>> print(format_latlon(latlon)) 39.81354, -74.01908
>>> mgrs = MGRSCoordinate(18, "T", "WK", 83959, 7523) >>> lat, lon, _ = mgrs_to_latlon(mgrs) >>> print(lat, lon) 39.81354433765199 -74.01908091495618
- papermap.geodesy.latlon_to_ecef(lat, lon, *, height=0.0, ellipsoid=Ellipsoid(semi_major_axis=6378137.0, flattening=0.0033528106647474805))¶
Convert geographic coordinates to Earth-Centered, Earth-Fixed (ECEF).
ECEF coordinates are a 3D Cartesian system with: - Origin at Earth’s center of mass - X-axis pointing to the intersection of Prime Meridian and Equator - Y-axis pointing to 90°E on the Equator - Z-axis pointing to the North Pole
The conversion accounts for the ellipsoidal shape of the Earth using the specified ellipsoid parameters.
The formulas used are: - x = (N + h) × cos(φ) × cos(λ) - y = (N + h) × cos(φ) × sin(λ) - z = (N × (1 - e²) + h) × sin(φ)
where: - N = a / sqrt(1 - e² × sin²(φ)) is the radius of curvature in the prime vertical (the distance from the surface to the minor axis along the normal to the ellipsoid) - a = semi-major axis - e = first eccentricity - h = height above ellipsoid - φ = latitude, λ = longitude
- Parameters:
- Returns:
ECEFCoordinate with x, y, z in meters.
- Return type:
Examples
>>> ecef = latlon_to_ecef(0, 0) # On equator at prime meridian >>> print(f"x={ecef.x:.0f}") x=6378137
>>> ecef = latlon_to_ecef(90, 0) # North Pole >>> print(f"z={ecef.z:.0f}") z=6356752
- papermap.geodesy.ecef_to_latlon(ecef, *, ellipsoid=Ellipsoid(semi_major_axis=6378137.0, flattening=0.0033528106647474805))¶
Convert ECEF coordinates to geographic coordinates.
This function uses Bowring’s (1985) iterative method, which converges to full precision in just 2-3 iterations for typical coordinates.
The algorithm uses parametric latitude (β) as an intermediate step, which simplifies the iteration compared to direct methods.
The process: 1. Compute longitude directly from x and y: λ = atan2(y, x) 2. Iteratively refine parametric latitude β 3. Compute geodetic latitude from β 4. Compute height from the final values
- Parameters:
ecef (ECEFCoordinate) – ECEFCoordinate with x, y, z in meters.
ellipsoid (Ellipsoid) – Reference ellipsoid for calculations. Defaults to WGS84.
- Returns:
latitude is in degrees (-90 to 90)
longitude is in degrees (-180 to 180)
height is above the ellipsoid in meters
- Return type:
Tuple of (latitude, longitude, height) where
Examples
>>> ecef = ECEFCoordinate(6378137, 0, 0) >>> latlon = ecef_to_latlon(ecef) >>> print(latlon) LatLonCoordinate(lat=0.0, lon=0.0, height=0.0) >>> print(f"{latlon.lat:.1f}, {latlon.lon:.1f}, {latlon.height:.1f}") 0.0, 0.0, 0.0
papermap.tile Module¶
papermap.tile_provider Module¶
- class papermap.tile_provider.TileProvider(key, name, attribution, html_attribution, url_template, zoom_min, zoom_max, bounds=None, subdomains=None)¶
Bases:
objectA tile provider.
- Parameters:
key (str) – The key of the tile provider (fully lowercase with dashes instead of spaces).
name (str) – The name of the tile provider.
attribution (str) – The attribution of the tile provider.
html_attribution (str) – The HTML-version of the attribution (with hyperlinks).
url_template (str) – The URL template of the tile provider. Allowed placeholders are {x}, {y}, {z}, {s} and {a}, where {x} refers to the x coordinate of the tile, {y} refers to the y coordinate of the tile, {z} to the zoom level, {s} to the subdomain (optional) and {a} to the API key (optional). See https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Tile_providers for more information.
zoom_min (int) – The minimum zoom level of the tile provider.
zoom_max (int) – The maximum zoom level of the tile provider.
bounds (tuple[float, float, float, float] | None) – The geographic bounds of the tile provider (min_lon, min_lat, max_lon, max_lat). Defaults to None.
subdomains (list[str | int | None] | None) – The subdomains of the tile provider. Defaults to None.
papermap.tile_providers Subpackage¶
The tile_providers subpackage contains tile provider configurations organized by provider.
Tile provider configurations for various map providers.
This subpackage contains tile provider configurations organized by provider. All tile providers are aggregated and exported through this module.
Example
>>> from papermap.tile_providers import KEY_TO_TILE_PROVIDER, TILE_PROVIDERS
>>> osm = KEY_TO_TILE_PROVIDER["openstreetmap"]
>>> print(osm.name)
OpenStreetMap
- Available providers:
OpenStreetMap (and regional variants)
OpenTopoMap
OpenSeaMap
Thunderforest (requires API key)
Esri
Stadia (including Stamen styles)
CartoDB (Carto)
Google Maps
HERE (requires API key)
USGS
NASA GIBS
Wikimedia
CyclOSM
Jawg (requires API key)
MapTiler (requires API key)
TomTom (requires API key)
BasemapAT (Austrian)
NLMaps (Dutch)
SwissFederalGeoportal
And many more miscellaneous providers
- papermap.tile_providers.DEFAULT_TILE_PROVIDER_KEY: str = 'openstreetmap'¶
Default tile provider key.
- papermap.tile_providers.KEY_TO_TILE_PROVIDER: dict[str, TileProvider] = {'alltrails': TileProvider(key='alltrails', name='AllTrails', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://alltrails.com/tiles/alltrailsOutdoors/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'basemapat': TileProvider(key='basemapat', name='BasemapAT', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/geolandbasemap/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), 'basemapat-grau': TileProvider(key='basemapat-grau', name='BasemapAT Grau', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapgrau/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), 'basemapat-highdpi': TileProvider(key='basemapat-highdpi', name='BasemapAT Highdpi', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmaphidpi/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), 'basemapat-orthofoto': TileProvider(key='basemapat-orthofoto', name='BasemapAT Orthofoto', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmaporthofoto30cm/normal/google3857/{z}/{y}/{x}.jpeg', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), 'basemapat-overlay': TileProvider(key='basemapat-overlay', name='BasemapAT Overlay', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapoverlay/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), 'basemapat-surface': TileProvider(key='basemapat-surface', name='BasemapAT Surface', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapoberflaeche/normal/google3857/{z}/{y}/{x}.jpeg', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), 'basemapat-terrain': TileProvider(key='basemapat-terrain', name='BasemapAT Terrain', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapgelaende/normal/google3857/{z}/{y}/{x}.jpeg', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), 'cartodb-darkmatter': TileProvider(key='cartodb-darkmatter', name='CartoDB DarkMatter', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-darkmatter-nolabels': TileProvider(key='cartodb-darkmatter-nolabels', name='CartoDB DarkMatterNoLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-darkmatter-onlylabels': TileProvider(key='cartodb-darkmatter-onlylabels', name='CartoDB DarkMatterOnlyLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/dark_only_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-positron': TileProvider(key='cartodb-positron', name='CartoDB Positron', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-positronnolabels': TileProvider(key='cartodb-positronnolabels', name='CartoDB PositronNoLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-positrononlylabels': TileProvider(key='cartodb-positrononlylabels', name='CartoDB PositronOnlyLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/light_only_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-voyager': TileProvider(key='cartodb-voyager', name='CartoDB Voyager', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-voyager-labelsunder': TileProvider(key='cartodb-voyager-labelsunder', name='CartoDB VoyagerLabelsUnder', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager_labels_under/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-voyager-nolabels': TileProvider(key='cartodb-voyager-nolabels', name='CartoDB VoyagerNoLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager_nolabels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cartodb-voyager-onlylabels': TileProvider(key='cartodb-voyager-onlylabels', name='CartoDB VoyagerOnlyLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager_only_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'cyclosm': TileProvider(key='cyclosm', name='CyclOSM', attribution='Map data: © OpenStreetMap contributors. Map style: © CyclOSM (hosted by OpenStreetMap France)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.cyclosm.org/">CyclOSM</a> (hosted by <a href="https://openstreetmap.fr/">OpenStreetMap France</a>)', url_template='https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'esri-delorme': TileProvider(key='esri-delorme', name='Esri DeLorme', attribution='Tiles © Esri — DeLorme', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — DeLorme', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=11, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-natgeoworldmap': TileProvider(key='esri-natgeoworldmap', name='Esri NatGeoWorldMap', attribution='Tiles © Esri — Source: National Geographic, Esri, DeLorme, HERE, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, increment P Corp.', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: National Geographic, Esri, DeLorme, HERE, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, increment P Corp.', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-oceanbasemap': TileProvider(key='esri-oceanbasemap', name='Esri OceanBasemap', attribution='Tiles © Esri — Source: Esri, GEBCO, NOAA, National Geographic, DeLorme, HERE, Geonames.org, and other contributors', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: Esri, GEBCO, NOAA, National Geographic, DeLorme, HERE, Geonames.org, and other contributors', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=13, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-worldgraycanvas': TileProvider(key='esri-worldgraycanvas', name='Esri WorldGrayCanvas', attribution='Tiles © Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a>', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-worldimagery': TileProvider(key='esri-worldimagery', name='Esri WorldImagery', attribution='Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-worldphysical': TileProvider(key='esri-worldphysical', name='Esri WorldPhysical', attribution='Tiles © Esri — Source: US National Park Service', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: US National Park Service', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=8, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-worldshadedrelief': TileProvider(key='esri-worldshadedrelief', name='Esri WorldShadedRelief', attribution='Tiles © Esri — Source: Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: Esri', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=13, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-worldstreetmap': TileProvider(key='esri-worldstreetmap', name='Esri WorldStreetMap', attribution='Tiles © Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a>', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=17, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-worldterrain': TileProvider(key='esri-worldterrain', name='Esri WorldTerrain', attribution='Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: USGS, Esri, TANA, DeLorme, and NPS', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=13, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'esri-worldtopomap': TileProvider(key='esri-worldtopomap', name='Esri WorldTopoMap', attribution='Tiles © Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a>', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'geofabrik-topo': TileProvider(key='geofabrik-topo', name='Geofabrik Topo', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='http://{s}.tile.geofabrik.de/15173cf79060ee4a66573954f6017ab0/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'google-maps': TileProvider(key='google-maps', name='Google Maps', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), 'google-maps-roads': TileProvider(key='google-maps-roads', name='Google Maps Roads', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=h&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), 'google-maps-satellite': TileProvider(key='google-maps-satellite', name='Google Maps Satellite', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), 'google-maps-satellite-hybrid': TileProvider(key='google-maps-satellite-hybrid', name='Google Maps Satellite Hybrid', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=y&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), 'google-maps-terrain': TileProvider(key='google-maps-terrain', name='Google Maps Terrain', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=t&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), 'google-maps-terrain-hybrid': TileProvider(key='google-maps-terrain-hybrid', name='Google Maps Terrain Hybrid', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=p&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), 'here-basicmap': TileProvider(key='here-basicmap', name='HERE basicMap', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-carnavdaygrey': TileProvider(key='here-carnavdaygrey', name='HERE carnavDayGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/carnav.day.grey/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-hybridday': TileProvider(key='here-hybridday', name='HERE hybridDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-hybriddaygrey': TileProvider(key='here-hybriddaygrey', name='HERE hybridDayGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.grey.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-hybriddaymobile': TileProvider(key='here-hybriddaymobile', name='HERE hybridDayMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.day.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-hybriddaytransit': TileProvider(key='here-hybriddaytransit', name='HERE hybridDayTransit', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.day.transit/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-maplabels': TileProvider(key='here-maplabels', name='HERE mapLabels', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normalday': TileProvider(key='here-normalday', name='HERE normalDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normaldaycustom': TileProvider(key='here-normaldaycustom', name='HERE normalDayCustom', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.custom/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normaldaygrey': TileProvider(key='here-normaldaygrey', name='HERE normalDayGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.grey/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normaldaygreymobile': TileProvider(key='here-normaldaygreymobile', name='HERE normalDayGreyMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.grey.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normaldaymobile': TileProvider(key='here-normaldaymobile', name='HERE normalDayMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normaldaytransit': TileProvider(key='here-normaldaytransit', name='HERE normalDayTransit', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.transit/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normaldaytransitmobile': TileProvider(key='here-normaldaytransitmobile', name='HERE normalDayTransitMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.transit.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normalnight': TileProvider(key='here-normalnight', name='HERE normalNight', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normalnightgrey': TileProvider(key='here-normalnightgrey', name='HERE normalNightGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.grey/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normalnightgreymobile': TileProvider(key='here-normalnightgreymobile', name='HERE normalNightGreyMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.grey.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normalnightmobile': TileProvider(key='here-normalnightmobile', name='HERE normalNightMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normalnighttransit': TileProvider(key='here-normalnighttransit', name='HERE normalNightTransit', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.transit/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-normalnighttransitmobile': TileProvider(key='here-normalnighttransitmobile', name='HERE normalNightTransitMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.transit.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-pedestrianday': TileProvider(key='here-pedestrianday', name='HERE pedestrianDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/pedestrian.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-pedestriannight': TileProvider(key='here-pedestriannight', name='HERE pedestrianNight', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/pedestrian.night/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-reducedday': TileProvider(key='here-reducedday', name='HERE reducedDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/reduced.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-reducednight': TileProvider(key='here-reducednight', name='HERE reducedNight', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/reduced.night/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-satelliteday': TileProvider(key='here-satelliteday', name='HERE satelliteDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/satellite.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-terrainday': TileProvider(key='here-terrainday', name='HERE terrainDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/terrain.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-terraindaymobile': TileProvider(key='here-terraindaymobile', name='HERE terrainDayMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/terrain.day.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'here-trafficflow': TileProvider(key='here-trafficflow', name='HERE trafficFlow', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.traffic.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'hikebike': TileProvider(key='hikebike', name='HikeBike', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.wmflabs.org/hikebike/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'jawg-dark': TileProvider(key='jawg-dark', name='Jawg Dark', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-dark/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'jawg-light': TileProvider(key='jawg-light', name='Jawg Light', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-light/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'jawg-matrix': TileProvider(key='jawg-matrix', name='Jawg Matrix', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-matrix/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'jawg-streets': TileProvider(key='jawg-streets', name='Jawg Streets', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-streets/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'jawg-sunny': TileProvider(key='jawg-sunny', name='Jawg Sunny', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-sunny/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'jawg-terrain': TileProvider(key='jawg-terrain', name='Jawg Terrain', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-terrain/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'komoot': TileProvider(key='komoot', name='Komoot', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='http://{s}.tile.komoot.de/komoot-2/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'maptiler-basic': TileProvider(key='maptiler-basic', name='MapTiler Basic', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/basic-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-bright': TileProvider(key='maptiler-bright', name='MapTiler Bright', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/bright-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-hybrid': TileProvider(key='maptiler-hybrid', name='MapTiler Hybrid', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/hybrid/{z}/{x}/{y}.jpg?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-outdoor': TileProvider(key='maptiler-outdoor', name='MapTiler Outdoor', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/outdoor-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-pastel': TileProvider(key='maptiler-pastel', name='MapTiler Pastel', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/pastel/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-positron': TileProvider(key='maptiler-positron', name='MapTiler Positron', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/positron/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-satellite': TileProvider(key='maptiler-satellite', name='MapTiler Satellite', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/satellite-v2/{z}/{x}/{y}.jpg?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-streets': TileProvider(key='maptiler-streets', name='MapTiler Streets', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/streets-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-toner': TileProvider(key='maptiler-toner', name='MapTiler Toner', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/toner-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-topo': TileProvider(key='maptiler-topo', name='MapTiler Topo', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/topo-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'maptiler-winter': TileProvider(key='maptiler-winter', name='MapTiler Winter', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/winter-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'mapy-cz': TileProvider(key='mapy-cz', name='Mapy.cz', attribution='Map data: © OpenStreetMap contributors. Map style: © Seznam.cz', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.seznam.cz/">Seznam.cz</a>', url_template='https://m{s}.mapprovider.mapy.cz/turist-m/{z}-{x}-{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), 'mtbmap': TileProvider(key='mtbmap', name='MtbMap', attribution='Map data: © OpenStreetMap contributors, USGS. Map style: © mtbmap.cz', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a> & USGS. Map style: © <a href="https://mtbmap.cz/">mtbmap.cz</a>', url_template='http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nasagibs-modisterraaod': TileProvider(key='nasagibs-modisterraaod', name='NASAGIBS ModisTerraAOD', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_Aerosol/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=6, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nasagibs-modisterrabands367cr': TileProvider(key='nasagibs-modisterrabands367cr', name='NASAGIBS ModisTerraBands367CR', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_CorrectedReflectance_Bands367/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.jpg', zoom_min=0, zoom_max=9, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nasagibs-modisterrachlorophyll': TileProvider(key='nasagibs-modisterrachlorophyll', name='NASAGIBS ModisTerraChlorophyll', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_Chlorophyll_A/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=7, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nasagibs-modisterralstday': TileProvider(key='nasagibs-modisterralstday', name='NASAGIBS ModisTerraLSTDay', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_Land_Surface_Temp_Day/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=7, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nasagibs-modisterrasnowcover': TileProvider(key='nasagibs-modisterrasnowcover', name='NASAGIBS ModisTerraSnowCover', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_NDSI_Snow_Cover/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=8, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nasagibs-modisterratruecolorcr': TileProvider(key='nasagibs-modisterratruecolorcr', name='NASAGIBS ModisTerraTrueColorCR', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.jpg', zoom_min=0, zoom_max=9, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nasagibs-viirsearthatnight2012': TileProvider(key='nasagibs-viirsearthatnight2012', name='NASAGIBS ViirsEarthAtNight2012', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/VIIRS_CityLights_2012/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.jpg', zoom_min=0, zoom_max=8, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nlmaps-grijs': TileProvider(key='nlmaps-grijs', name='NLMaps Grijs', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/grijs/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nlmaps-luchtfoto': TileProvider(key='nlmaps-luchtfoto', name='NLMaps Luchtfoto', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/Actueel_orthoHR/EPSG:3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nlmaps-pastel': TileProvider(key='nlmaps-pastel', name='NLMaps Pastel', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/pastel/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nlmaps-standaard': TileProvider(key='nlmaps-standaard', name='NLMaps Standaard', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/standaard/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'nlmaps-water': TileProvider(key='nlmaps-water', name='NLMaps Water', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/water/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openaip': TileProvider(key='openaip', name='OpenAIP', attribution='© OpenAIP', html_attribution='© <a href="https://www.openaip.net/">OpenAIP</a>', url_template='https://api.tiles.openaip.net/api/data/openaip/{z}/{x}/{y}.png', zoom_min=4, zoom_max=14, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openfiremap': TileProvider(key='openfiremap', name='OpenFireMap', attribution='Map data: © OpenStreetMap contributors. Map style: © OpenFireMap (CC-BY-SA)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="http://www.openfiremap.org/">OpenFireMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)', url_template='http://openfiremap.org/hytiles/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openrailwaymap': TileProvider(key='openrailwaymap', name='OpenRailwayMap', attribution='Map data: © OpenStreetMap contributors. Map style: © OpenRailwayMap (CC-BY-SA)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.openrailwaymap.org/">OpenRailwayMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)', url_template='https://{s}.tiles.openrailwaymap.org/standard/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'openseamap': TileProvider(key='openseamap', name='OpenSeaMap', attribution='Map data: © OpenSeaMap contributors', html_attribution='Map data: © <a href="https://www.openseamap.org/">OpenSeaMap contributors</a>', url_template='https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'opensnowmap': TileProvider(key='opensnowmap', name='OpenSnowMap', attribution='Map data: © OpenStreetMap contributors. Overlay: © OpenSnowMap', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://www.opensnowmap.org/">OpenSnowMap</a>', url_template='https://tiles.opensnowmap.org/pistes/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openstreetmap': TileProvider(key='openstreetmap', name='OpenStreetMap', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.openstreetmap.org/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openstreetmap-bzh': TileProvider(key='openstreetmap-bzh', name='OpenStreetMap BZH', attribution='Map data: © OpenStreetMap contributors. Tiles: © Breton OpenStreetMap Team', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Tiles: © <a href="https://www.openstreetmap.bzh/">Breton OpenStreetMap Team</a>', url_template='https://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(-5.4, 46.2, -0.7, 48.9), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openstreetmap-ch': TileProvider(key='openstreetmap-ch', name='OpenStreetMap CH', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.osm.ch/switzerland/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openstreetmap-de': TileProvider(key='openstreetmap-de', name='OpenStreetMap DE', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.openstreetmap.de/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'openstreetmap-france': TileProvider(key='openstreetmap-france', name='OpenStreetMap France', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'openstreetmap-hot': TileProvider(key='openstreetmap-hot', name='OpenStreetMap HOT', attribution='Map data: © OpenStreetMap contributors. Tiles style: © Humanitarian OpenStreetMap Team', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Tiles style: © <a href="https://www.hotosm.org/">Humanitarian OpenStreetMap Team</a>', url_template='https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'opentopomap': TileProvider(key='opentopomap', name='OpenTopoMap', attribution='Map data: © OpenStreetMap contributors, SRTM. Map style: © OpenTopoMap (CC-BY-SA)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, <a href="https://www2.jpl.nasa.gov/srtm/">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>)', url_template='https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', zoom_min=0, zoom_max=17, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'opnvkarte': TileProvider(key='opnvkarte', name='OPNVKarte', attribution='Map data: © OpenStreetMap contributors. Map style: © ÖPNVKarte', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.opnvkarte.de/">ÖPNVKarte</a>', url_template='https://tileprovider.memomaps.de/tilegen/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'safecast': TileProvider(key='safecast', name='SafeCast', attribution='Map data: © OpenStreetMap contributors. Map style: © SafeCast', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://safecast.org/">SafeCast</a>', url_template='https://s3.amazonaws.com/te512.safecast.org/{z}/{x}/{y}.png', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-alidadesmooth': TileProvider(key='stadia-alidadesmooth', name='Stadia AlidadeSmooth', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-alidasesatellite': TileProvider(key='stadia-alidasesatellite', name='Stadia AlidadeSatellite', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/alidade_satellite/{z}/{x}/{y}.jpg', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-alidasesmoothdark': TileProvider(key='stadia-alidasesmoothdark', name='Stadia AlidadeSmoothDark', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-osmbright': TileProvider(key='stadia-osmbright', name='Stadia OSMBright', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/osm_bright/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-outdoors': TileProvider(key='stadia-outdoors', name='Stadia Outdoors', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/outdoors/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamenterrain': TileProvider(key='stadia-stamenterrain', name='Stadia StamenTerrain', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamenterrainbackground': TileProvider(key='stadia-stamenterrainbackground', name='Stadia StamenTerrainBackground', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain_background/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamenterrainlabels': TileProvider(key='stadia-stamenterrainlabels', name='Stadia StamenTerrainLabels', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamenterrainlines': TileProvider(key='stadia-stamenterrainlines', name='Stadia StamenTerrainLines', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain_lines/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamentoner': TileProvider(key='stadia-stamentoner', name='Stadia StamenToner', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamentonerbackground': TileProvider(key='stadia-stamentonerbackground', name='Stadia StamenTonerBackground', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_background/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamentonerlabels': TileProvider(key='stadia-stamentonerlabels', name='Stadia StamenTonerLabels', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamentonerlines': TileProvider(key='stadia-stamentonerlines', name='Stadia StamenTonerLines', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_lines/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamentonerlite': TileProvider(key='stadia-stamentonerlite', name='Stadia StamenTonerLite', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_lite/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'stadia-stamenwatercolor': TileProvider(key='stadia-stamenwatercolor', name='Stadia StamenWatercolor', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'swissfederalgeoportal-nationalmapcolor': TileProvider(key='swissfederalgeoportal-nationalmapcolor', name='SwissFederalGeoportal NationalMapColor', attribution='© swisstopo', html_attribution='© <a href="https://www.swisstopo.admin.ch/">swisstopo</a>', url_template='https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=18, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'swissfederalgeoportal-nationalmapgrey': TileProvider(key='swissfederalgeoportal-nationalmapgrey', name='SwissFederalGeoportal NationalMapGrey', attribution='© swisstopo', html_attribution='© <a href="https://www.swisstopo.admin.ch/">swisstopo</a>', url_template='https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-grau/default/current/3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=18, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'swissfederalgeoportal-swissimage': TileProvider(key='swissfederalgeoportal-swissimage', name='SwissFederalGeoportal SWISSIMAGE', attribution='© swisstopo', html_attribution='© <a href="https://www.swisstopo.admin.ch/">swisstopo</a>', url_template='https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.swissimage/default/current/3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=20, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), 'thunderforest-atlas': TileProvider(key='thunderforest-atlas', name='Thunderforest Atlas', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/atlas/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-landscape': TileProvider(key='thunderforest-landscape', name='Thunderforest Landscape', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-mobileatlas': TileProvider(key='thunderforest-mobileatlas', name='Thunderforest MobileAtlas', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-neighbourhood': TileProvider(key='thunderforest-neighbourhood', name='Thunderforest Neighbourhood', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-opencyclemap': TileProvider(key='thunderforest-opencyclemap', name='Thunderforest OpenCycleMap', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-outdoors': TileProvider(key='thunderforest-outdoors', name='Thunderforest Outdoors', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-pioneer': TileProvider(key='thunderforest-pioneer', name='Thunderforest Pioneer', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-spinalmap': TileProvider(key='thunderforest-spinalmap', name='Thunderforest SpinalMap', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-transport': TileProvider(key='thunderforest-transport', name='Thunderforest Transport', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'thunderforest-transport-dark': TileProvider(key='thunderforest-transport-dark', name='Thunderforest Transport Dark', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), 'tomtom-basic': TileProvider(key='tomtom-basic', name='TomTom Basic', attribution='© TomTom', html_attribution='© <a href="https://tomtom.com/">TomTom</a>', url_template='https://{s}.api.tomtom.com/map/1/tile/basic/main/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'tomtom-hybrid': TileProvider(key='tomtom-hybrid', name='TomTom Hybrid', attribution='© TomTom', html_attribution='© <a href="https://tomtom.com/">TomTom</a>', url_template='https://{s}.api.tomtom.com/map/1/tile/hybrid/main/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'tomtom-labels': TileProvider(key='tomtom-labels', name='TomTom Labels', attribution='© TomTom', html_attribution='© <a href="https://tomtom.com/">TomTom</a>', url_template='https://{s}.api.tomtom.com/map/1/tile/labels/main/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), 'usgs-usimagery': TileProvider(key='usgs-usimagery', name='USGS USImagery', attribution='Tiles courtesy of the U.S. Geological Survey', html_attribution='Tiles courtesy of the <a href="https://usgs.gov/">U.S. Geological Survey</a>', url_template='https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'usgs-usimagerytopo': TileProvider(key='usgs-usimagerytopo', name='USGS USImageryTopo', attribution='Tiles courtesy of the U.S. Geological Survey', html_attribution='Tiles courtesy of the <a href="https://usgs.gov/">U.S. Geological Survey</a>', url_template='https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'usgs-ustopo': TileProvider(key='usgs-ustopo', name='USGS USTopo', attribution='Tiles courtesy of the U.S. Geological Survey', html_attribution='Tiles courtesy of the <a href="https://usgs.gov/">U.S. Geological Survey</a>', url_template='https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'waymarkedtrails-cycling': TileProvider(key='waymarkedtrails-cycling', name='Waymarked Trails Cycling', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://cycling.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/cycling/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'waymarkedtrails-hiking': TileProvider(key='waymarkedtrails-hiking', name='Waymarked Trails Hiking', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://hiking.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/hiking/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'waymarkedtrails-mtb': TileProvider(key='waymarkedtrails-mtb', name='Waymarked Trails MTB', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://mtb.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/mtb/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'waymarkedtrails-riding': TileProvider(key='waymarkedtrails-riding', name='Waymarked Trails Riding', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://riding.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/riding/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'waymarkedtrails-skating': TileProvider(key='waymarkedtrails-skating', name='Waymarked Trails Skating', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://skating.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/skating/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'waymarkedtrails-slopes': TileProvider(key='waymarkedtrails-slopes', name='Waymarked Trails Slopes', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://slopes.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/slopes/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), 'wikimedia': TileProvider(key='wikimedia', name='Wikimedia', attribution='Map data: © OpenStreetMap contributors. Map style: © Wikimedia Foundation', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://foundation.wikimedia.org/">Wikimedia Foundation</a>', url_template='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>)}¶
Map of tile provider keys to TileProvider instances.
- papermap.tile_providers.TILE_PROVIDERS: list[TileProvider] = [TileProvider(key='openstreetmap', name='OpenStreetMap', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.openstreetmap.org/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='openstreetmap-de', name='OpenStreetMap DE', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.openstreetmap.de/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='openstreetmap-ch', name='OpenStreetMap CH', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.osm.ch/switzerland/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='openstreetmap-france', name='OpenStreetMap France', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='openstreetmap-hot', name='OpenStreetMap HOT', attribution='Map data: © OpenStreetMap contributors. Tiles style: © Humanitarian OpenStreetMap Team', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Tiles style: © <a href="https://www.hotosm.org/">Humanitarian OpenStreetMap Team</a>', url_template='https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='openstreetmap-bzh', name='OpenStreetMap BZH', attribution='Map data: © OpenStreetMap contributors. Tiles: © Breton OpenStreetMap Team', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Tiles: © <a href="https://www.openstreetmap.bzh/">Breton OpenStreetMap Team</a>', url_template='https://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(-5.4, 46.2, -0.7, 48.9), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='opentopomap', name='OpenTopoMap', attribution='Map data: © OpenStreetMap contributors, SRTM. Map style: © OpenTopoMap (CC-BY-SA)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, <a href="https://www2.jpl.nasa.gov/srtm/">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>)', url_template='https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', zoom_min=0, zoom_max=17, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='openseamap', name='OpenSeaMap', attribution='Map data: © OpenSeaMap contributors', html_attribution='Map data: © <a href="https://www.openseamap.org/">OpenSeaMap contributors</a>', url_template='https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-opencyclemap', name='Thunderforest OpenCycleMap', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-transport', name='Thunderforest Transport', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-transport-dark', name='Thunderforest Transport Dark', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-spinalmap', name='Thunderforest SpinalMap', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-landscape', name='Thunderforest Landscape', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-outdoors', name='Thunderforest Outdoors', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-pioneer', name='Thunderforest Pioneer', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-mobileatlas', name='Thunderforest MobileAtlas', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-neighbourhood', name='Thunderforest Neighbourhood', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='thunderforest-atlas', name='Thunderforest Atlas', attribution='Maps © Thunderforest, Data © OpenStreetMap contributors', html_attribution='Maps © <a href="https://www.thunderforest.com/">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://{s}.tile.thunderforest.com/atlas/{z}/{x}/{y}.png?apikey={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-worldstreetmap', name='Esri WorldStreetMap', attribution='Tiles © Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a>', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=17, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-delorme', name='Esri DeLorme', attribution='Tiles © Esri — DeLorme', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — DeLorme', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=11, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-worldtopomap', name='Esri WorldTopoMap', attribution='Tiles © Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a>', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-worldimagery', name='Esri WorldImagery', attribution='Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-worldterrain', name='Esri WorldTerrain', attribution='Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: USGS, Esri, TANA, DeLorme, and NPS', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=13, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-worldshadedrelief', name='Esri WorldShadedRelief', attribution='Tiles © Esri — Source: Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: Esri', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=13, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-worldphysical', name='Esri WorldPhysical', attribution='Tiles © Esri — Source: US National Park Service', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: US National Park Service', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=8, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-oceanbasemap', name='Esri OceanBasemap', attribution='Tiles © Esri — Source: Esri, GEBCO, NOAA, National Geographic, DeLorme, HERE, Geonames.org, and other contributors', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: Esri, GEBCO, NOAA, National Geographic, DeLorme, HERE, Geonames.org, and other contributors', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=13, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-natgeoworldmap', name='Esri NatGeoWorldMap', attribution='Tiles © Esri — Source: National Geographic, Esri, DeLorme, HERE, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, increment P Corp.', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a> — Source: National Geographic, Esri, DeLorme, HERE, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, increment P Corp.', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='esri-worldgraycanvas', name='Esri WorldGrayCanvas', attribution='Tiles © Esri', html_attribution='Tiles © <a href="https://www.esri.com/">Esri</a>', url_template='https://provider.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-alidadesmooth', name='Stadia AlidadeSmooth', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-alidasesmoothdark', name='Stadia AlidadeSmoothDark', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-alidasesatellite', name='Stadia AlidadeSatellite', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/alidade_satellite/{z}/{x}/{y}.jpg', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-osmbright', name='Stadia OSMBright', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/osm_bright/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-outdoors', name='Stadia Outdoors', attribution='© Stadia Maps, © OpenMapTiles, © OpenStreetMap contributors', html_attribution='© <a href="https://stadiamaps.com/">Stadia Maps</a>, © <a href="https://openmaptiles.org/">OpenMapTiles</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.stadiamaps.com/tiles/outdoors/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamentoner', name='Stadia StamenToner', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamentonerbackground', name='Stadia StamenTonerBackground', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_background/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamentonerlines', name='Stadia StamenTonerLines', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_lines/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamentonerlabels', name='Stadia StamenTonerLabels', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamentonerlite', name='Stadia StamenTonerLite', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_toner_lite/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamenwatercolor', name='Stadia StamenWatercolor', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamenterrain', name='Stadia StamenTerrain', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamenterrainbackground', name='Stadia StamenTerrainBackground', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain_background/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamenterrainlabels', name='Stadia StamenTerrainLabels', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='stadia-stamenterrainlines', name='Stadia StamenTerrainLines', attribution='Map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL', html_attribution='Map tiles by <a href="https://stamen.com/">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Data by <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, under <a href="https://opendatacommons.org/licenses/odbl/">ODbL</a>', url_template='https://tiles.stadiamaps.com/tiles/stamen_terrain_lines/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-positron', name='CartoDB Positron', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-positronnolabels', name='CartoDB PositronNoLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-positrononlylabels', name='CartoDB PositronOnlyLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/light_only_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-darkmatter', name='CartoDB DarkMatter', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-darkmatter-nolabels', name='CartoDB DarkMatterNoLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-darkmatter-onlylabels', name='CartoDB DarkMatterOnlyLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/dark_only_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-voyager', name='CartoDB Voyager', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-voyager-nolabels', name='CartoDB VoyagerNoLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager_nolabels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-voyager-onlylabels', name='CartoDB VoyagerOnlyLabels', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager_only_labels/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='cartodb-voyager-labelsunder', name='CartoDB VoyagerLabelsUnder', attribution='© OpenStreetMap contributors, © CARTO', html_attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, © <a href="https://carto.com/attributions">CARTO</a>', url_template='https://{s}.basemaps.cartocdn.com/rastertiles/voyager_labels_under/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='google-maps', name='Google Maps', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), TileProvider(key='google-maps-satellite', name='Google Maps Satellite', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), TileProvider(key='google-maps-satellite-hybrid', name='Google Maps Satellite Hybrid', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=y&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), TileProvider(key='google-maps-terrain', name='Google Maps Terrain', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=t&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), TileProvider(key='google-maps-terrain-hybrid', name='Google Maps Terrain Hybrid', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=p&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), TileProvider(key='google-maps-roads', name='Google Maps Roads', attribution='Map data: © Google', html_attribution='Map data: © <a href="https://www.google.com/maps">Google</a>', url_template='https://mt{s}.google.com/vt/lyrs=h&x={x}&y={y}&z={z}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[0, 1, 2, 3], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normalday', name='HERE normalDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normaldaycustom', name='HERE normalDayCustom', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.custom/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normaldaygrey', name='HERE normalDayGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.grey/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normaldaymobile', name='HERE normalDayMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normaldaygreymobile', name='HERE normalDayGreyMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.grey.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normaldaytransit', name='HERE normalDayTransit', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.transit/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normaldaytransitmobile', name='HERE normalDayTransitMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day.transit.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normalnight', name='HERE normalNight', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normalnightmobile', name='HERE normalNightMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normalnightgrey', name='HERE normalNightGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.grey/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normalnightgreymobile', name='HERE normalNightGreyMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.grey.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normalnighttransit', name='HERE normalNightTransit', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.transit/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-normalnighttransitmobile', name='HERE normalNightTransitMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.night.transit.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-reducedday', name='HERE reducedDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/reduced.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-reducednight', name='HERE reducedNight', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/reduced.night/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-basicmap', name='HERE basicMap', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-maplabels', name='HERE mapLabels', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-trafficflow', name='HERE trafficFlow', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.traffic.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-carnavdaygrey', name='HERE carnavDayGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/carnav.day.grey/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-hybridday', name='HERE hybridDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-hybriddaymobile', name='HERE hybridDayMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.day.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-hybriddaytransit', name='HERE hybridDayTransit', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.day.transit/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-hybriddaygrey', name='HERE hybridDayGrey', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/hybrid.grey.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-pedestrianday', name='HERE pedestrianDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/pedestrian.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-pedestriannight', name='HERE pedestrianNight', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/pedestrian.night/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-satelliteday', name='HERE satelliteDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/satellite.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-terrainday', name='HERE terrainDay', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/terrain.day/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='here-terraindaymobile', name='HERE terrainDayMobile', attribution='Map data: © HERE', html_attribution='Map data: © <a href="https://www.here.com/">HERE</a>', url_template='https://{s}.aerial.maps.ls.hereapi.com/maptile/2.1/maptile/newest/terrain.day.mobile/{z}/{x}/{y}/256/png8?apiKey={a}', zoom_min=0, zoom_max=20, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='usgs-ustopo', name='USGS USTopo', attribution='Tiles courtesy of the U.S. Geological Survey', html_attribution='Tiles courtesy of the <a href="https://usgs.gov/">U.S. Geological Survey</a>', url_template='https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='usgs-usimagery', name='USGS USImagery', attribution='Tiles courtesy of the U.S. Geological Survey', html_attribution='Tiles courtesy of the <a href="https://usgs.gov/">U.S. Geological Survey</a>', url_template='https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='usgs-usimagerytopo', name='USGS USImageryTopo', attribution='Tiles courtesy of the U.S. Geological Survey', html_attribution='Tiles courtesy of the <a href="https://usgs.gov/">U.S. Geological Survey</a>', url_template='https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapProvider/tile/{z}/{y}/{x}', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nasagibs-modisterratruecolorcr', name='NASAGIBS ModisTerraTrueColorCR', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.jpg', zoom_min=0, zoom_max=9, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nasagibs-modisterrabands367cr', name='NASAGIBS ModisTerraBands367CR', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_CorrectedReflectance_Bands367/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.jpg', zoom_min=0, zoom_max=9, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nasagibs-viirsearthatnight2012', name='NASAGIBS ViirsEarthAtNight2012', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/VIIRS_CityLights_2012/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.jpg', zoom_min=0, zoom_max=8, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nasagibs-modisterralstday', name='NASAGIBS ModisTerraLSTDay', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_Land_Surface_Temp_Day/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=7, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nasagibs-modisterrasnowcover', name='NASAGIBS ModisTerraSnowCover', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_NDSI_Snow_Cover/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=8, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nasagibs-modisterraaod', name='NASAGIBS ModisTerraAOD', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_Aerosol/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=6, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nasagibs-modisterrachlorophyll', name='NASAGIBS ModisTerraChlorophyll', attribution='Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ', html_attribution='Imagery provided by services from the <a href="https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs">GIBS</a>, operated by the NASA/GSFC/Earth Science Data and Information System (<a href="https://earthdata.nasa.gov/">ESDIS</a>) with funding provided by NASA/HQ', url_template='https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_Chlorophyll_A/default/GoogleMapsCompatible_Level/{z}/{y}/{x}.png', zoom_min=0, zoom_max=7, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='wikimedia', name='Wikimedia', attribution='Map data: © OpenStreetMap contributors. Map style: © Wikimedia Foundation', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://foundation.wikimedia.org/">Wikimedia Foundation</a>', url_template='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='cyclosm', name='CyclOSM', attribution='Map data: © OpenStreetMap contributors. Map style: © CyclOSM (hosted by OpenStreetMap France)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.cyclosm.org/">CyclOSM</a> (hosted by <a href="https://openstreetmap.fr/">OpenStreetMap France</a>)', url_template='https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='jawg-streets', name='Jawg Streets', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-streets/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='jawg-terrain', name='Jawg Terrain', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-terrain/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='jawg-sunny', name='Jawg Sunny', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-sunny/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='jawg-dark', name='Jawg Dark', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-dark/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='jawg-light', name='Jawg Light', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-light/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='jawg-matrix', name='Jawg Matrix', attribution='© Jawg Maps, © OpenStreetMap contributors', html_attribution='© <a href="https://www.jawg.io/">Jawg</a> Maps, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tile.jawg.io/jawg-matrix/{z}/{x}/{y}.png?access-token={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-streets', name='MapTiler Streets', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/streets-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-basic', name='MapTiler Basic', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/basic-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-bright', name='MapTiler Bright', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/bright-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-pastel', name='MapTiler Pastel', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/pastel/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-positron', name='MapTiler Positron', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/positron/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-hybrid', name='MapTiler Hybrid', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/hybrid/{z}/{x}/{y}.jpg?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-satellite', name='MapTiler Satellite', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/satellite-v2/{z}/{x}/{y}.jpg?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-toner', name='MapTiler Toner', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/toner-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-topo', name='MapTiler Topo', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/topo-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-winter', name='MapTiler Winter', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/winter-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='maptiler-outdoor', name='MapTiler Outdoor', attribution='© MapTiler, © OpenStreetMap contributors', html_attribution='© <a href="https://www.maptiler.com/copyright/">MapTiler</a>, © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://api.maptiler.com/maps/outdoor-v2/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=21, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='tomtom-basic', name='TomTom Basic', attribution='© TomTom', html_attribution='© <a href="https://tomtom.com/">TomTom</a>', url_template='https://{s}.api.tomtom.com/map/1/tile/basic/main/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='tomtom-hybrid', name='TomTom Hybrid', attribution='© TomTom', html_attribution='© <a href="https://tomtom.com/">TomTom</a>', url_template='https://{s}.api.tomtom.com/map/1/tile/hybrid/main/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='tomtom-labels', name='TomTom Labels', attribution='© TomTom', html_attribution='© <a href="https://tomtom.com/">TomTom</a>', url_template='https://{s}.api.tomtom.com/map/1/tile/labels/main/{z}/{x}/{y}.png?key={a}', zoom_min=0, zoom_max=22, bounds=None, subdomains=['a', 'b', 'c', 'd'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='basemapat', name='BasemapAT', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/geolandbasemap/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='basemapat-grau', name='BasemapAT Grau', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapgrau/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='basemapat-overlay', name='BasemapAT Overlay', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapoverlay/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='basemapat-terrain', name='BasemapAT Terrain', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapgelaende/normal/google3857/{z}/{y}/{x}.jpeg', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='basemapat-surface', name='BasemapAT Surface', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmapoberflaeche/normal/google3857/{z}/{y}/{x}.jpeg', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='basemapat-highdpi', name='BasemapAT Highdpi', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmaphidpi/normal/google3857/{z}/{y}/{x}.png', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='basemapat-orthofoto', name='BasemapAT Orthofoto', attribution='Basemap.at', html_attribution='<a href="https://basemap.at/">Basemap.at</a>', url_template='https://maps{s}.wien.gv.at/basemap/bmaporthofoto30cm/normal/google3857/{z}/{y}/{x}.jpeg', zoom_min=0, zoom_max=19, bounds=(8.782379, 46.35877, 17.189532, 49.037872), subdomains=['', '1', '2', '3', '4'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='nlmaps-standaard', name='NLMaps Standaard', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/standaard/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nlmaps-pastel', name='NLMaps Pastel', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/pastel/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nlmaps-grijs', name='NLMaps Grijs', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/grijs/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nlmaps-water', name='NLMaps Water', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0/water/EPSG:3857/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='nlmaps-luchtfoto', name='NLMaps Luchtfoto', attribution='Kaartgegevens © Kadaster', html_attribution='Kaartgegevens © <a href="https://www.kadaster.nl/">Kadaster</a>', url_template='https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/Actueel_orthoHR/EPSG:3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=19, bounds=(3.37, 50.75, 7.21, 53.47), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='swissfederalgeoportal-nationalmapcolor', name='SwissFederalGeoportal NationalMapColor', attribution='© swisstopo', html_attribution='© <a href="https://www.swisstopo.admin.ch/">swisstopo</a>', url_template='https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=18, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='swissfederalgeoportal-nationalmapgrey', name='SwissFederalGeoportal NationalMapGrey', attribution='© swisstopo', html_attribution='© <a href="https://www.swisstopo.admin.ch/">swisstopo</a>', url_template='https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-grau/default/current/3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=18, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='swissfederalgeoportal-swissimage', name='SwissFederalGeoportal SWISSIMAGE', attribution='© swisstopo', html_attribution='© <a href="https://www.swisstopo.admin.ch/">swisstopo</a>', url_template='https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.swissimage/default/current/3857/{z}/{x}/{y}.jpeg', zoom_min=0, zoom_max=20, bounds=(5.140242, 45.398181, 11.47757, 48.230651), subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='opnvkarte', name='OPNVKarte', attribution='Map data: © OpenStreetMap contributors. Map style: © ÖPNVKarte', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.opnvkarte.de/">ÖPNVKarte</a>', url_template='https://tileprovider.memomaps.de/tilegen/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='mtbmap', name='MtbMap', attribution='Map data: © OpenStreetMap contributors, USGS. Map style: © mtbmap.cz', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a> & USGS. Map style: © <a href="https://mtbmap.cz/">mtbmap.cz</a>', url_template='http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='hikebike', name='HikeBike', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://tiles.wmflabs.org/hikebike/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='safecast', name='SafeCast', attribution='Map data: © OpenStreetMap contributors. Map style: © SafeCast', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://safecast.org/">SafeCast</a>', url_template='https://s3.amazonaws.com/te512.safecast.org/{z}/{x}/{y}.png', zoom_min=0, zoom_max=16, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='geofabrik-topo', name='Geofabrik Topo', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='http://{s}.tile.geofabrik.de/15173cf79060ee4a66573954f6017ab0/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='mapy-cz', name='Mapy.cz', attribution='Map data: © OpenStreetMap contributors. Map style: © Seznam.cz', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.seznam.cz/">Seznam.cz</a>', url_template='https://m{s}.mapprovider.mapy.cz/turist-m/{z}-{x}-{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=[1, 2, 3, 4], subdomains_cycle=<itertools.cycle object>), TileProvider(key='komoot', name='Komoot', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='http://{s}.tile.komoot.de/komoot-2/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='alltrails', name='AllTrails', attribution='Map data: © OpenStreetMap contributors', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>', url_template='https://alltrails.com/tiles/alltrailsOutdoors/{z}/{x}/{y}.png', zoom_min=0, zoom_max=20, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='waymarkedtrails-hiking', name='Waymarked Trails Hiking', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://hiking.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/hiking/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='waymarkedtrails-cycling', name='Waymarked Trails Cycling', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://cycling.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/cycling/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='waymarkedtrails-mtb', name='Waymarked Trails MTB', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://mtb.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/mtb/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='waymarkedtrails-slopes', name='Waymarked Trails Slopes', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://slopes.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/slopes/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='waymarkedtrails-riding', name='Waymarked Trails Riding', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://riding.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/riding/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='waymarkedtrails-skating', name='Waymarked Trails Skating', attribution='Map data: © OpenStreetMap contributors. Overlay: © Waymarked Trails', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://skating.waymarkedtrails.org/">Waymarked Trails</a>', url_template='https://tile.waymarkedtrails.org/skating/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='openaip', name='OpenAIP', attribution='© OpenAIP', html_attribution='© <a href="https://www.openaip.net/">OpenAIP</a>', url_template='https://api.tiles.openaip.net/api/data/openaip/{z}/{x}/{y}.png', zoom_min=4, zoom_max=14, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='opensnowmap', name='OpenSnowMap', attribution='Map data: © OpenStreetMap contributors. Overlay: © OpenSnowMap', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Overlay: © <a href="https://www.opensnowmap.org/">OpenSnowMap</a>', url_template='https://tiles.opensnowmap.org/pistes/{z}/{x}/{y}.png', zoom_min=0, zoom_max=18, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>), TileProvider(key='openrailwaymap', name='OpenRailwayMap', attribution='Map data: © OpenStreetMap contributors. Map style: © OpenRailwayMap (CC-BY-SA)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="https://www.openrailwaymap.org/">OpenRailwayMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)', url_template='https://{s}.tiles.openrailwaymap.org/standard/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=['a', 'b', 'c'], subdomains_cycle=<itertools.cycle object>), TileProvider(key='openfiremap', name='OpenFireMap', attribution='Map data: © OpenStreetMap contributors. Map style: © OpenFireMap (CC-BY-SA)', html_attribution='Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. Map style: © <a href="http://www.openfiremap.org/">OpenFireMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)', url_template='http://openfiremap.org/hytiles/{z}/{x}/{y}.png', zoom_min=0, zoom_max=19, bounds=None, subdomains=None, subdomains_cycle=<itertools.cycle object>)]¶
List of all available TileProvider instances.
- papermap.tile_providers.TILE_PROVIDER_KEYS = ['alltrails', 'basemapat', 'basemapat-grau', 'basemapat-highdpi', 'basemapat-orthofoto', 'basemapat-overlay', 'basemapat-surface', 'basemapat-terrain', 'cartodb-darkmatter', 'cartodb-darkmatter-nolabels', 'cartodb-darkmatter-onlylabels', 'cartodb-positron', 'cartodb-positronnolabels', 'cartodb-positrononlylabels', 'cartodb-voyager', 'cartodb-voyager-labelsunder', 'cartodb-voyager-nolabels', 'cartodb-voyager-onlylabels', 'cyclosm', 'esri-delorme', 'esri-natgeoworldmap', 'esri-oceanbasemap', 'esri-worldgraycanvas', 'esri-worldimagery', 'esri-worldphysical', 'esri-worldshadedrelief', 'esri-worldstreetmap', 'esri-worldterrain', 'esri-worldtopomap', 'geofabrik-topo', 'google-maps', 'google-maps-roads', 'google-maps-satellite', 'google-maps-satellite-hybrid', 'google-maps-terrain', 'google-maps-terrain-hybrid', 'here-basicmap', 'here-carnavdaygrey', 'here-hybridday', 'here-hybriddaygrey', 'here-hybriddaymobile', 'here-hybriddaytransit', 'here-maplabels', 'here-normalday', 'here-normaldaycustom', 'here-normaldaygrey', 'here-normaldaygreymobile', 'here-normaldaymobile', 'here-normaldaytransit', 'here-normaldaytransitmobile', 'here-normalnight', 'here-normalnightgrey', 'here-normalnightgreymobile', 'here-normalnightmobile', 'here-normalnighttransit', 'here-normalnighttransitmobile', 'here-pedestrianday', 'here-pedestriannight', 'here-reducedday', 'here-reducednight', 'here-satelliteday', 'here-terrainday', 'here-terraindaymobile', 'here-trafficflow', 'hikebike', 'jawg-dark', 'jawg-light', 'jawg-matrix', 'jawg-streets', 'jawg-sunny', 'jawg-terrain', 'komoot', 'maptiler-basic', 'maptiler-bright', 'maptiler-hybrid', 'maptiler-outdoor', 'maptiler-pastel', 'maptiler-positron', 'maptiler-satellite', 'maptiler-streets', 'maptiler-toner', 'maptiler-topo', 'maptiler-winter', 'mapy-cz', 'mtbmap', 'nasagibs-modisterraaod', 'nasagibs-modisterrabands367cr', 'nasagibs-modisterrachlorophyll', 'nasagibs-modisterralstday', 'nasagibs-modisterrasnowcover', 'nasagibs-modisterratruecolorcr', 'nasagibs-viirsearthatnight2012', 'nlmaps-grijs', 'nlmaps-luchtfoto', 'nlmaps-pastel', 'nlmaps-standaard', 'nlmaps-water', 'openaip', 'openfiremap', 'openrailwaymap', 'openseamap', 'opensnowmap', 'openstreetmap', 'openstreetmap-bzh', 'openstreetmap-ch', 'openstreetmap-de', 'openstreetmap-france', 'openstreetmap-hot', 'opentopomap', 'opnvkarte', 'safecast', 'stadia-alidadesmooth', 'stadia-alidasesatellite', 'stadia-alidasesmoothdark', 'stadia-osmbright', 'stadia-outdoors', 'stadia-stamenterrain', 'stadia-stamenterrainbackground', 'stadia-stamenterrainlabels', 'stadia-stamenterrainlines', 'stadia-stamentoner', 'stadia-stamentonerbackground', 'stadia-stamentonerlabels', 'stadia-stamentonerlines', 'stadia-stamentonerlite', 'stadia-stamenwatercolor', 'swissfederalgeoportal-nationalmapcolor', 'swissfederalgeoportal-nationalmapgrey', 'swissfederalgeoportal-swissimage', 'thunderforest-atlas', 'thunderforest-landscape', 'thunderforest-mobileatlas', 'thunderforest-neighbourhood', 'thunderforest-opencyclemap', 'thunderforest-outdoors', 'thunderforest-pioneer', 'thunderforest-spinalmap', 'thunderforest-transport', 'thunderforest-transport-dark', 'tomtom-basic', 'tomtom-hybrid', 'tomtom-labels', 'usgs-usimagery', 'usgs-usimagerytopo', 'usgs-ustopo', 'waymarkedtrails-cycling', 'waymarkedtrails-hiking', 'waymarkedtrails-mtb', 'waymarkedtrails-riding', 'waymarkedtrails-skating', 'waymarkedtrails-slopes', 'wikimedia']¶
List of tile provider keys.
papermap.utils Module¶
- papermap.utils.clip(val, lower, upper)¶
Clips a value to [lower, upper] range.
- papermap.utils.lon_to_x(lon, zoom)¶
Converts longitude to x (tile coordinate), given a zoom level.
- papermap.utils.x_to_lon(x, zoom)¶
Converts x (tile coordinate) to longitude, given a zoom level.
- papermap.utils.lat_to_y(lat, zoom)¶
Converts latitude to y (tile coordinate), given a zoom level.
- papermap.utils.y_to_lat(y, zoom)¶
Converts y (tile coordinate) to latitude, given a zoom level.
- papermap.utils.x_to_px(x, x_center, width, tile_size=256)¶
Convert x (tile coordinate) to pixels.
- papermap.utils.y_to_px(y, y_center, height, tile_size=256)¶
Convert y (tile coordinate) to pixel.
- papermap.utils.mm_to_px(mm, dpi=300)¶
Convert millimeters to pixels, given the dpi.
- papermap.utils.px_to_mm(px, dpi=300)¶
Convert pixels to millimeters, given the dpi.
- papermap.utils.mm_to_pt(mm)¶
Convert millimeters to points.
- papermap.utils.pt_to_mm(pt)¶
Convert points to millimeters.
- papermap.utils.dd_to_dms(dd)¶
Convert Decimal Degrees (DD) to Degrees, Minutes, and Seconds (DMS).
- papermap.utils.dms_to_dd(dms)¶
Convert Degrees, Minutes, and Seconds (DMS) to Decimal Degrees (DD).
- papermap.utils.scale_to_zoom(scale, lat, dpi=300)¶
Compute the zoom level, given the latitude, scale and dpi.
- papermap.utils.zoom_to_scale(zoom, lat, dpi=300)¶
Compute the scale, given the latitude, zoom level and dpi.
- papermap.utils.get_string_formatting_arguments(s)¶
Extracts field names from a format string.
- papermap.utils.is_out_of_bounds(test, bounds)¶
Checks if a bounding box exceeds the specified bounds.
- papermap.utils.drange(start, stop, step)¶
Yields Decimal values from start to stop with the given step size.