diff --git a/dist/maptiler-client.cjs.map b/dist/maptiler-client.cjs.map index c961b49..2bd6170 100644 --- a/dist/maptiler-client.cjs.map +++ b/dist/maptiler-client.cjs.map @@ -1 +1 @@ -{"version":3,"file":"maptiler-client.cjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\nfunction addForwardGeocodingOptions(\n searchParams: URLSearchParams,\n options: GeocodingOptions\n) {\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a batch geocoding query to MapTiler API.\n * Provide multiple queries in the array. Each query can be forward, reverse or by feature ID.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#batch-geocoding\n * @param queries\n * @param options\n * @returns\n */\nasync function batch(\n queries: string[],\n options: GeocodingOptions = {}\n): Promise {\n if (!queries.length) {\n return [];\n }\n\n const joinedQuery = queries\n .map((query) => encodeURIComponent(query))\n .join(\";\");\n\n const endpoint = new URL(\n `geocoding/${joinedQuery}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj = await res.json();\n\n return queries.length === 1 ? [obj] : obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n batch,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in blue night mode.\n */\n NIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n BACKDROP: ReferenceMapStyle & {\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Dark greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DARK: MapStyleVariant;\n\n /**\n * Light greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n LIGHT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-night\",\n name: \"Night\",\n variantType: \"NIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"outdoor-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"winter-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BACKDROP\",\n name: \"Backdrop\",\n description: \"\",\n variants: [\n {\n id: \"backdrop\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"maptiler-client.cjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Geometry, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n | \"poi\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\ntype FeatureProperties = {\n /**\n * External reference of the feature used for debugging purposes\n */\n ref: string;\n\n /**\n * ISO 3166-1 alpha-2 country code of the feature\n */\n country_code: string;\n\n /**\n * (experimental) Kind of the feature\n */\n kind?:\n | \"road\"\n | \"road_relation\"\n | \"admin_area\"\n | \"place\"\n | \"street\"\n | \"virtual_street\";\n\n /**\n * (experimental) Value of place=* tag from OpenStreetMap feature if kind=place\n */\n \"osm:place_type\"?: string;\n\n /**\n * (experimental) Feature tags from OpenStreetMap. Only available for `poi` type.\n */\n \"osm:tags\"?: Record;\n\n /**\n * Array of POI categories. Only available for `poi` type.\n */\n categories?: string[];\n};\n\ntype FeatureBase = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Query's primary ISO 639-1 language code\n */\n language?: string;\n\n /**\n * A string analogous to the `text` field that matches the query in the requested language.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [text: `text_${string}`]: string;\n\n /**\n * A ISO 639-1 query's fallback language code.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [language: `language_${string}`]: string;\n};\n\nexport type FeatureHierarchy = FeatureProperties & FeatureBase;\n\nexport type GeocodingFeature = Feature &\n FeatureBase & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * A string analogous to the `place_name` field that matches the query in the requested language.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [key: `place_name_${string}`]: string;\n\n /**\n * An array of feature types describing the feature.\n * Currently each feature has only single type but this may change in the future.\n */\n place_type: string[];\n\n /**\n * Localized type of the place name, matches `place_type` property\n */\n place_type_name: string[];\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n\n /**\n * Indicates how well the returned feature matches the user's query on a scale from 0 to 1.\n * 0 means the result does not match the query text at all, while 1 means the result fully matches the query text.\n * You can use the relevance property to remove results that don't fully match the query.\n */\n relevance: number;\n };\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\nfunction addForwardGeocodingOptions(\n searchParams: URLSearchParams,\n options: GeocodingOptions\n) {\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a batch geocoding query to MapTiler API.\n * Provide multiple queries in the array. Each query can be forward, reverse or by feature ID.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#batch-geocoding\n * @param queries\n * @param options\n * @returns\n */\nasync function batch(\n queries: string[],\n options: GeocodingOptions = {}\n): Promise {\n if (!queries.length) {\n return [];\n }\n\n const joinedQuery = queries\n .map((query) => encodeURIComponent(query))\n .join(\";\");\n\n const endpoint = new URL(\n `geocoding/${joinedQuery}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj = await res.json();\n\n return queries.length === 1 ? [obj] : obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n batch,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in blue night mode.\n */\n NIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n BACKDROP: ReferenceMapStyle & {\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Dark greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DARK: MapStyleVariant;\n\n /**\n * Light greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n LIGHT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-night\",\n name: \"Night\",\n variantType: \"NIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"outdoor-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"winter-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BACKDROP\",\n name: \"Backdrop\",\n description: \"\",\n variants: [\n {\n id: \"backdrop\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file diff --git a/dist/maptiler-client.d.ts b/dist/maptiler-client.d.ts index 32608b0..048bf96 100644 --- a/dist/maptiler-client.d.ts +++ b/dist/maptiler-client.d.ts @@ -1,4 +1,4 @@ -import { BBox, Position, Feature, FeatureCollection } from 'geojson'; +import { BBox, Position, Feature, Geometry, FeatureCollection } from 'geojson'; export { BBox, Position } from 'geojson'; type FetchFunction = (url: string, options: object) => Promise; @@ -121,7 +121,7 @@ type CommonForwardAndReverseGeocodingOptions = LanguageGeocodingOptions & { /** * Filter of feature types to return. If not specified, all available feature types are returned. */ - types?: ("country" | "region" | "subregion" | "county" | "joint_municipality" | "joint_submunicipality" | "municipality" | "municipal_district" | "locality" | "neighbourhood" | "place" | "postal_code" | "address")[]; + types?: ("country" | "region" | "subregion" | "county" | "joint_municipality" | "joint_submunicipality" | "municipality" | "municipal_district" | "locality" | "neighbourhood" | "place" | "postal_code" | "address" | "poi")[]; }; type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & { /** @@ -149,7 +149,33 @@ type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & { type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions; type ByIdGeocodingOptions = LanguageGeocodingOptions; type Coordinates = Position; -type FeatureHierarchy = { +type FeatureProperties = { + /** + * External reference of the feature used for debugging purposes + */ + ref: string; + /** + * ISO 3166-1 alpha-2 country code of the feature + */ + country_code: string; + /** + * (experimental) Kind of the feature + */ + kind?: "road" | "road_relation" | "admin_area" | "place" | "street" | "virtual_street"; + /** + * (experimental) Value of place=* tag from OpenStreetMap feature if kind=place + */ + "osm:place_type"?: string; + /** + * (experimental) Feature tags from OpenStreetMap. Only available for `poi` type. + */ + "osm:tags"?: Record; + /** + * Array of POI categories. Only available for `poi` type. + */ + categories?: string[]; +}; +type FeatureBase = { /** * Unique feature ID */ @@ -158,8 +184,23 @@ type FeatureHierarchy = { * Localized feature name */ text: string; + /** + * Query's primary ISO 639-1 language code + */ + language?: string; + /** + * A string analogous to the `text` field that matches the query in the requested language. + * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language. + */ + [text: `text_${string}`]: string; + /** + * A ISO 639-1 query's fallback language code. + * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language. + */ + [language: `language_${string}`]: string; }; -type GeocodingFeature = Feature & { +type FeatureHierarchy = FeatureProperties & FeatureBase; +type GeocodingFeature = Feature & FeatureBase & { /** * Bounding box of the original feature as [w, s, e, n] array */ @@ -173,9 +214,19 @@ type GeocodingFeature = Feature & { */ place_name: string; /** - * Localized feature name + * A string analogous to the `place_name` field that matches the query in the requested language. + * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language. */ - text: string; + [key: `place_name_${string}`]: string; + /** + * An array of feature types describing the feature. + * Currently each feature has only single type but this may change in the future. + */ + place_type: string[]; + /** + * Localized type of the place name, matches `place_type` property + */ + place_type_name: string[]; /** * Feature hierarchy */ @@ -184,6 +235,12 @@ type GeocodingFeature = Feature & { * Address number, if applicable */ address?: string; + /** + * Indicates how well the returned feature matches the user's query on a scale from 0 to 1. + * 0 means the result does not match the query text at all, while 1 means the result fully matches the query text. + * You can use the relevance property to remove results that don't fully match the query. + */ + relevance: number; }; type GeocodingSearchResult = { type: "FeatureCollection"; @@ -288,9 +345,7 @@ declare const geocoding: { LUXEMBOURGISH: string; MACEDONIAN: string; MALTESE: string; - NORWEGIAN: string; /** - * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding. - */ + NORWEGIAN: string; POLISH: string; PORTUGUESE: string; ROMANIAN: string; diff --git a/dist/maptiler-client.mjs.map b/dist/maptiler-client.mjs.map index da843ad..cef1ee2 100644 --- a/dist/maptiler-client.mjs.map +++ b/dist/maptiler-client.mjs.map @@ -1 +1 @@ -{"version":3,"file":"maptiler-client.mjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\nfunction addForwardGeocodingOptions(\n searchParams: URLSearchParams,\n options: GeocodingOptions\n) {\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a batch geocoding query to MapTiler API.\n * Provide multiple queries in the array. Each query can be forward, reverse or by feature ID.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#batch-geocoding\n * @param queries\n * @param options\n * @returns\n */\nasync function batch(\n queries: string[],\n options: GeocodingOptions = {}\n): Promise {\n if (!queries.length) {\n return [];\n }\n\n const joinedQuery = queries\n .map((query) => encodeURIComponent(query))\n .join(\";\");\n\n const endpoint = new URL(\n `geocoding/${joinedQuery}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj = await res.json();\n\n return queries.length === 1 ? [obj] : obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n batch,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in blue night mode.\n */\n NIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n BACKDROP: ReferenceMapStyle & {\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Dark greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DARK: MapStyleVariant;\n\n /**\n * Light greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n LIGHT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-night\",\n name: \"Night\",\n variantType: \"NIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"outdoor-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"winter-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BACKDROP\",\n name: \"Backdrop\",\n description: \"\",\n variants: [\n {\n id: \"backdrop\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"maptiler-client.mjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Geometry, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n | \"poi\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\ntype FeatureProperties = {\n /**\n * External reference of the feature used for debugging purposes\n */\n ref: string;\n\n /**\n * ISO 3166-1 alpha-2 country code of the feature\n */\n country_code: string;\n\n /**\n * (experimental) Kind of the feature\n */\n kind?:\n | \"road\"\n | \"road_relation\"\n | \"admin_area\"\n | \"place\"\n | \"street\"\n | \"virtual_street\";\n\n /**\n * (experimental) Value of place=* tag from OpenStreetMap feature if kind=place\n */\n \"osm:place_type\"?: string;\n\n /**\n * (experimental) Feature tags from OpenStreetMap. Only available for `poi` type.\n */\n \"osm:tags\"?: Record;\n\n /**\n * Array of POI categories. Only available for `poi` type.\n */\n categories?: string[];\n};\n\ntype FeatureBase = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Query's primary ISO 639-1 language code\n */\n language?: string;\n\n /**\n * A string analogous to the `text` field that matches the query in the requested language.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [text: `text_${string}`]: string;\n\n /**\n * A ISO 639-1 query's fallback language code.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [language: `language_${string}`]: string;\n};\n\nexport type FeatureHierarchy = FeatureProperties & FeatureBase;\n\nexport type GeocodingFeature = Feature &\n FeatureBase & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * A string analogous to the `place_name` field that matches the query in the requested language.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [key: `place_name_${string}`]: string;\n\n /**\n * An array of feature types describing the feature.\n * Currently each feature has only single type but this may change in the future.\n */\n place_type: string[];\n\n /**\n * Localized type of the place name, matches `place_type` property\n */\n place_type_name: string[];\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n\n /**\n * Indicates how well the returned feature matches the user's query on a scale from 0 to 1.\n * 0 means the result does not match the query text at all, while 1 means the result fully matches the query text.\n * You can use the relevance property to remove results that don't fully match the query.\n */\n relevance: number;\n };\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\nfunction addForwardGeocodingOptions(\n searchParams: URLSearchParams,\n options: GeocodingOptions\n) {\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a batch geocoding query to MapTiler API.\n * Provide multiple queries in the array. Each query can be forward, reverse or by feature ID.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#batch-geocoding\n * @param queries\n * @param options\n * @returns\n */\nasync function batch(\n queries: string[],\n options: GeocodingOptions = {}\n): Promise {\n if (!queries.length) {\n return [];\n }\n\n const joinedQuery = queries\n .map((query) => encodeURIComponent(query))\n .join(\";\");\n\n const endpoint = new URL(\n `geocoding/${joinedQuery}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj = await res.json();\n\n return queries.length === 1 ? [obj] : obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n batch,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in blue night mode.\n */\n NIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n BACKDROP: ReferenceMapStyle & {\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Dark greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DARK: MapStyleVariant;\n\n /**\n * Light greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n LIGHT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-night\",\n name: \"Night\",\n variantType: \"NIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"outdoor-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"winter-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BACKDROP\",\n name: \"Backdrop\",\n description: \"\",\n variants: [\n {\n id: \"backdrop\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file diff --git a/dist/maptiler-client.umd.js.map b/dist/maptiler-client.umd.js.map index 8724ad1..ce00f31 100644 --- a/dist/maptiler-client.umd.js.map +++ b/dist/maptiler-client.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"maptiler-client.umd.js","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\nfunction addForwardGeocodingOptions(\n searchParams: URLSearchParams,\n options: GeocodingOptions\n) {\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a batch geocoding query to MapTiler API.\n * Provide multiple queries in the array. Each query can be forward, reverse or by feature ID.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#batch-geocoding\n * @param queries\n * @param options\n * @returns\n */\nasync function batch(\n queries: string[],\n options: GeocodingOptions = {}\n): Promise {\n if (!queries.length) {\n return [];\n }\n\n const joinedQuery = queries\n .map((query) => encodeURIComponent(query))\n .join(\";\");\n\n const endpoint = new URL(\n `geocoding/${joinedQuery}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj = await res.json();\n\n return queries.length === 1 ? [obj] : obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n batch,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in blue night mode.\n */\n NIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n BACKDROP: ReferenceMapStyle & {\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Dark greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DARK: MapStyleVariant;\n\n /**\n * Light greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n LIGHT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-night\",\n name: \"Night\",\n variantType: \"NIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"outdoor-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"winter-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BACKDROP\",\n name: \"Backdrop\",\n description: \"\",\n variants: [\n {\n id: \"backdrop\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"maptiler-client.umd.js","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Geometry, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n | \"poi\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\ntype FeatureProperties = {\n /**\n * External reference of the feature used for debugging purposes\n */\n ref: string;\n\n /**\n * ISO 3166-1 alpha-2 country code of the feature\n */\n country_code: string;\n\n /**\n * (experimental) Kind of the feature\n */\n kind?:\n | \"road\"\n | \"road_relation\"\n | \"admin_area\"\n | \"place\"\n | \"street\"\n | \"virtual_street\";\n\n /**\n * (experimental) Value of place=* tag from OpenStreetMap feature if kind=place\n */\n \"osm:place_type\"?: string;\n\n /**\n * (experimental) Feature tags from OpenStreetMap. Only available for `poi` type.\n */\n \"osm:tags\"?: Record;\n\n /**\n * Array of POI categories. Only available for `poi` type.\n */\n categories?: string[];\n};\n\ntype FeatureBase = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Query's primary ISO 639-1 language code\n */\n language?: string;\n\n /**\n * A string analogous to the `text` field that matches the query in the requested language.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [text: `text_${string}`]: string;\n\n /**\n * A ISO 639-1 query's fallback language code.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [language: `language_${string}`]: string;\n};\n\nexport type FeatureHierarchy = FeatureProperties & FeatureBase;\n\nexport type GeocodingFeature = Feature &\n FeatureBase & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * A string analogous to the `place_name` field that matches the query in the requested language.\n * This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language.\n */\n [key: `place_name_${string}`]: string;\n\n /**\n * An array of feature types describing the feature.\n * Currently each feature has only single type but this may change in the future.\n */\n place_type: string[];\n\n /**\n * Localized type of the place name, matches `place_type` property\n */\n place_type_name: string[];\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n\n /**\n * Indicates how well the returned feature matches the user's query on a scale from 0 to 1.\n * 0 means the result does not match the query text at all, while 1 means the result fully matches the query text.\n * You can use the relevance property to remove results that don't fully match the query.\n */\n relevance: number;\n };\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\nfunction addForwardGeocodingOptions(\n searchParams: URLSearchParams,\n options: GeocodingOptions\n) {\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a batch geocoding query to MapTiler API.\n * Provide multiple queries in the array. Each query can be forward, reverse or by feature ID.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#batch-geocoding\n * @param queries\n * @param options\n * @returns\n */\nasync function batch(\n queries: string[],\n options: GeocodingOptions = {}\n): Promise {\n if (!queries.length) {\n return [];\n }\n\n const joinedQuery = queries\n .map((query) => encodeURIComponent(query))\n .join(\";\");\n\n const endpoint = new URL(\n `geocoding/${joinedQuery}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addForwardGeocodingOptions(searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj = await res.json();\n\n return queries.length === 1 ? [obj] : obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n batch,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in blue night mode.\n */\n NIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading, in dark mode.\n */\n DARK: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n BACKDROP: ReferenceMapStyle & {\n /**\n * Neutral greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Dark greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n DARK: MapStyleVariant;\n\n /**\n * Light greyscale style with hillshading suitable for colorful terrain-aware visualization\n */\n LIGHT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-night\",\n name: \"Night\",\n variantType: \"NIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"outdoor-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"winter-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BACKDROP\",\n name: \"Backdrop\",\n description: \"\",\n variants: [\n {\n id: \"backdrop\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"backdrop-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 7724eb0..81e8b08 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"kinds\":{\"2\":\"Module\",\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"512\":\"Constructor\",\"1024\":\"Property\",\"65536\":\"Type literal\",\"262144\":\"Accessor\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":2,\"name\":\"services/ServiceError\",\"url\":\"modules/services_ServiceError.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":128,\"name\":\"ServiceError\",\"url\":\"classes/services_ServiceError.ServiceError.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"services/ServiceError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/services_ServiceError.ServiceError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":1024,\"name\":\"res\",\"url\":\"classes/services_ServiceError.ServiceError.html#res\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":2,\"name\":\"services/coordinates\",\"url\":\"modules/services_coordinates.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"CoordinatesSearchOptions\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesSearchOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":4194304,\"name\":\"CoordinateId\",\"url\":\"types/services_coordinates.CoordinateId.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateId.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateId\"},{\"kind\":1024,\"name\":\"authority\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.authority\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":1024,\"name\":\"code\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":4194304,\"name\":\"CoordinateExport\",\"url\":\"types/services_coordinates.CoordinateExport.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateExport\"},{\"kind\":1024,\"name\":\"proj4\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.proj4\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":1024,\"name\":\"wkt\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.wkt\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":4194304,\"name\":\"CoordinateGrid\",\"url\":\"types/services_coordinates.CoordinateGrid.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateGrid\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateGrid.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformation\",\"url\":\"types/services_coordinates.CoordinateTransformation.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformation\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"reversible\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.reversible\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"usable\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.usable\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"grids\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.grids\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"target_crs\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.target_crs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearch\",\"url\":\"types/services_coordinates.CoordinateSearch.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearch\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"kind\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.kind\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"default_transformation\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.default_transformation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearchResult\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearchResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":1024,\"name\":\"total\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.total\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":4194304,\"name\":\"XYZ\",\"url\":\"types/services_coordinates.XYZ.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.XYZ.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.XYZ\"},{\"kind\":1024,\"name\":\"x\",\"url\":\"types/services_coordinates.XYZ.html#__type.x\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"y\",\"url\":\"types/services_coordinates.XYZ.html#__type.y\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"z\",\"url\":\"types/services_coordinates.XYZ.html#__type.z\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformResult\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":1024,\"name\":\"transformer_selection_strategy\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.transformer_selection_strategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":4194304,\"name\":\"CoordinatesTransformOptions\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesTransformOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"sourceCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.sourceCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"targetCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.targetCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"operations\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.operations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":32,\"name\":\"coordinates\",\"url\":\"variables/services_coordinates.coordinates.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/coordinates.coordinates\"},{\"kind\":1024,\"name\":\"search\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.search\"},{\"kind\":1024,\"name\":\"transform\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.transform\"},{\"kind\":2,\"name\":\"services/data\",\"url\":\"modules/services_data.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GetDataOptions\",\"url\":\"types/services_data.GetDataOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_data.GetDataOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/data.GetDataOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_data.GetDataOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.GetDataOptions.__type\"},{\"kind\":32,\"name\":\"data\",\"url\":\"variables/services_data.data.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/data.data\"},{\"kind\":1024,\"name\":\"get\",\"url\":\"variables/services_data.data.html#__type.get\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.data.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type.get.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/data.data.__type.get\"},{\"kind\":2,\"name\":\"services/geocoding\",\"url\":\"modules/services_geocoding.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"LanguageGeocodingOptions\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.LanguageGeocodingOptions\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.LanguageGeocodingOptions.__type\"},{\"kind\":4194304,\"name\":\"CommonForwardAndReverseGeocodingOptions\",\"url\":\"types/services_geocoding.CommonForwardAndReverseGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingOptions\",\"url\":\"types/services_geocoding.GeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"ReverseGeocodingOptions\",\"url\":\"types/services_geocoding.ReverseGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"ByIdGeocodingOptions\",\"url\":\"types/services_geocoding.ByIdGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"Coordinates\",\"url\":\"types/services_geocoding.Coordinates.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"FeatureHierarchy\",\"url\":\"types/services_geocoding.FeatureHierarchy.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.FeatureHierarchy\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.FeatureHierarchy.__type\"},{\"kind\":1024,\"name\":\"text\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type.text\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.FeatureHierarchy.__type\"},{\"kind\":4194304,\"name\":\"GeocodingFeature\",\"url\":\"types/services_geocoding.GeocodingFeature.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingSearchResult\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.GeocodingSearchResult\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.type\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"features\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.features\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"query\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.query\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":32,\"name\":\"geocoding\",\"url\":\"variables/services_geocoding.geocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geocoding.geocoding\"},{\"kind\":1024,\"name\":\"forward\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.forward\"},{\"kind\":1024,\"name\":\"reverse\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse.__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.reverse\"},{\"kind\":1024,\"name\":\"byId\",\"url\":\"variables/services_geocoding.geocoding.html#__type.byId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.byId.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.byId\"},{\"kind\":1024,\"name\":\"batch\",\"url\":\"variables/services_geocoding.geocoding.html#__type.batch\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.batch.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.batch\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.language\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":2,\"name\":\"services/geolocation\",\"url\":\"modules/services_geolocation.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GeolocationInfoOptions\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationInfoOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationInfoOptions.__type\"},{\"kind\":4194304,\"name\":\"GeolocationResult\",\"url\":\"types/services_geolocation.GeolocationResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationResult\"},{\"kind\":1024,\"name\":\"country\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_bounds\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_bounds\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_languages\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_languages\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"eu\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.eu\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"city\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.city\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"latitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.latitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"longitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.longitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"postal\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.postal\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"timezone\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.timezone\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":32,\"name\":\"geolocation\",\"url\":\"variables/services_geolocation.geolocation.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geolocation.geolocation\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.geolocation.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geolocation.geolocation.__type.info\"},{\"kind\":2,\"name\":\"services/simplify\",\"url\":\"modules/services_simplify.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":64,\"name\":\"default\",\"url\":\"functions/services_simplify.default.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"services/simplify\"},{\"kind\":2,\"name\":\"services/staticMaps\",\"url\":\"modules/services_staticMaps.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"StaticMapBaseOptions\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/staticMaps.StaticMapBaseOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"style\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.style\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"hiDPI\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.hiDPI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"format\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.format\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"width\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.width\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"height\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.height\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markers\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerIcon\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerIcon\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerAnchor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerAnchor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathStrokeColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathStrokeColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathFillColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathFillColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathWidth\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathWidth\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":4194304,\"name\":\"CenteredStaticMapOptions\",\"url\":\"types/services_staticMaps.CenteredStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"BoundedStaticMapOptions\",\"url\":\"types/services_staticMaps.BoundedStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"AutomaticStaticMapOptions\",\"url\":\"types/services_staticMaps.AutomaticStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"StaticMapMarker\",\"url\":\"types/services_staticMaps.StaticMapMarker.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":32,\"name\":\"staticMaps\",\"url\":\"variables/services_staticMaps.staticMaps.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/staticMaps.staticMaps\"},{\"kind\":1024,\"name\":\"centered\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.centered\"},{\"kind\":1024,\"name\":\"bounded\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.bounded\"},{\"kind\":1024,\"name\":\"automatic\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.automatic\"},{\"kind\":2,\"name\":\"language\",\"url\":\"modules/language.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":32,\"name\":\"LanguageGeocoding\",\"url\":\"variables/language.LanguageGeocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/language.LanguageGeocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"language.LanguageGeocoding\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":4194304,\"name\":\"LanguageGeocodingString\",\"url\":\"types/language.LanguageGeocodingString.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":64,\"name\":\"getAutoLanguageGeocoding\",\"url\":\"functions/language.getAutoLanguageGeocoding.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":2,\"name\":\"config\",\"url\":\"modules/config.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"FetchFunction\",\"url\":\"types/config.FetchFunction.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/config.FetchFunction.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"config.FetchFunction\"},{\"kind\":128,\"name\":\"ClientConfig\",\"url\":\"classes/config.ClientConfig.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/config.ClientConfig.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"apiKey\",\"url\":\"classes/config.ClientConfig.html#apiKey\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"fetch\",\"url\":\"classes/config.ClientConfig.html#fetch\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":32,\"name\":\"config\",\"url\":\"variables/config.config.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"config\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,52.713]],[\"comment/0\",[]],[\"name/1\",[1,52.713]],[\"comment/1\",[]],[\"name/2\",[2,47.605]],[\"comment/2\",[]],[\"name/3\",[3,52.713]],[\"comment/3\",[]],[\"name/4\",[4,52.713]],[\"comment/4\",[]],[\"name/5\",[5,52.713]],[\"comment/5\",[]],[\"name/6\",[6,20.794]],[\"comment/6\",[]],[\"name/7\",[7,38.05]],[\"comment/7\",[]],[\"name/8\",[8,52.713]],[\"comment/8\",[]],[\"name/9\",[9,47.605]],[\"comment/9\",[]],[\"name/10\",[10,47.605]],[\"comment/10\",[]],[\"name/11\",[11,52.713]],[\"comment/11\",[]],[\"name/12\",[6,20.794]],[\"comment/12\",[]],[\"name/13\",[12,52.713]],[\"comment/13\",[]],[\"name/14\",[13,52.713]],[\"comment/14\",[]],[\"name/15\",[14,52.713]],[\"comment/15\",[]],[\"name/16\",[6,20.794]],[\"comment/16\",[]],[\"name/17\",[15,52.713]],[\"comment/17\",[]],[\"name/18\",[16,52.713]],[\"comment/18\",[]],[\"name/19\",[17,52.713]],[\"comment/19\",[]],[\"name/20\",[6,20.794]],[\"comment/20\",[]],[\"name/21\",[18,47.605]],[\"comment/21\",[]],[\"name/22\",[19,52.713]],[\"comment/22\",[]],[\"name/23\",[6,20.794]],[\"comment/23\",[]],[\"name/24\",[20,44.24]],[\"comment/24\",[]],[\"name/25\",[21,47.605]],[\"comment/25\",[]],[\"name/26\",[22,52.713]],[\"comment/26\",[]],[\"name/27\",[23,52.713]],[\"comment/27\",[]],[\"name/28\",[24,47.605]],[\"comment/28\",[]],[\"name/29\",[25,52.713]],[\"comment/29\",[]],[\"name/30\",[26,47.605]],[\"comment/30\",[]],[\"name/31\",[27,47.605]],[\"comment/31\",[]],[\"name/32\",[28,47.605]],[\"comment/32\",[]],[\"name/33\",[29,52.713]],[\"comment/33\",[]],[\"name/34\",[30,47.605]],[\"comment/34\",[]],[\"name/35\",[31,52.713]],[\"comment/35\",[]],[\"name/36\",[6,20.794]],[\"comment/36\",[]],[\"name/37\",[20,44.24]],[\"comment/37\",[]],[\"name/38\",[21,47.605]],[\"comment/38\",[]],[\"name/39\",[32,52.713]],[\"comment/39\",[]],[\"name/40\",[24,47.605]],[\"comment/40\",[]],[\"name/41\",[9,47.605]],[\"comment/41\",[]],[\"name/42\",[26,47.605]],[\"comment/42\",[]],[\"name/43\",[30,47.605]],[\"comment/43\",[]],[\"name/44\",[27,47.605]],[\"comment/44\",[]],[\"name/45\",[28,47.605]],[\"comment/45\",[]],[\"name/46\",[33,52.713]],[\"comment/46\",[]],[\"name/47\",[10,47.605]],[\"comment/47\",[]],[\"name/48\",[34,52.713]],[\"comment/48\",[]],[\"name/49\",[6,20.794]],[\"comment/49\",[]],[\"name/50\",[35,47.605]],[\"comment/50\",[]],[\"name/51\",[36,52.713]],[\"comment/51\",[]],[\"name/52\",[37,52.713]],[\"comment/52\",[]],[\"name/53\",[6,20.794]],[\"comment/53\",[]],[\"name/54\",[38,52.713]],[\"comment/54\",[]],[\"name/55\",[39,52.713]],[\"comment/55\",[]],[\"name/56\",[40,52.713]],[\"comment/56\",[]],[\"name/57\",[41,52.713]],[\"comment/57\",[]],[\"name/58\",[6,20.794]],[\"comment/58\",[]],[\"name/59\",[35,47.605]],[\"comment/59\",[]],[\"name/60\",[42,52.713]],[\"comment/60\",[]],[\"name/61\",[43,52.713]],[\"comment/61\",[]],[\"name/62\",[6,20.794]],[\"comment/62\",[]],[\"name/63\",[7,38.05]],[\"comment/63\",[]],[\"name/64\",[44,52.713]],[\"comment/64\",[]],[\"name/65\",[45,52.713]],[\"comment/65\",[]],[\"name/66\",[46,52.713]],[\"comment/66\",[]],[\"name/67\",[47,47.605]],[\"comment/67\",[]],[\"name/68\",[6,20.794]],[\"comment/68\",[]],[\"name/69\",[48,52.713]],[\"comment/69\",[]],[\"name/70\",[6,20.794]],[\"comment/70\",[]],[\"name/71\",[49,52.713]],[\"comment/71\",[]],[\"name/72\",[6,20.794]],[\"comment/72\",[]],[\"name/73\",[50,52.713]],[\"comment/73\",[]],[\"name/74\",[51,52.713]],[\"comment/74\",[]],[\"name/75\",[6,20.794]],[\"comment/75\",[]],[\"name/76\",[7,38.05]],[\"comment/76\",[]],[\"name/77\",[52,52.713]],[\"comment/77\",[]],[\"name/78\",[6,20.794]],[\"comment/78\",[]],[\"name/79\",[53,52.713]],[\"comment/79\",[]],[\"name/80\",[6,20.794]],[\"comment/80\",[]],[\"name/81\",[54,52.713]],[\"comment/81\",[]],[\"name/82\",[55,52.713]],[\"comment/82\",[]],[\"name/83\",[6,20.794]],[\"comment/83\",[]],[\"name/84\",[56,44.24]],[\"comment/84\",[]],[\"name/85\",[57,52.713]],[\"comment/85\",[]],[\"name/86\",[58,52.713]],[\"comment/86\",[]],[\"name/87\",[59,52.713]],[\"comment/87\",[]],[\"name/88\",[60,52.713]],[\"comment/88\",[]],[\"name/89\",[47,47.605]],[\"comment/89\",[]],[\"name/90\",[61,52.713]],[\"comment/90\",[]],[\"name/91\",[6,20.794]],[\"comment/91\",[]],[\"name/92\",[20,44.24]],[\"comment/92\",[]],[\"name/93\",[62,52.713]],[\"comment/93\",[]],[\"name/94\",[63,52.713]],[\"comment/94\",[]],[\"name/95\",[64,52.713]],[\"comment/95\",[]],[\"name/96\",[6,20.794]],[\"comment/96\",[]],[\"name/97\",[65,52.713]],[\"comment/97\",[]],[\"name/98\",[66,52.713]],[\"comment/98\",[]],[\"name/99\",[67,52.713]],[\"comment/99\",[]],[\"name/100\",[68,47.605]],[\"comment/100\",[]],[\"name/101\",[69,52.713]],[\"comment/101\",[]],[\"name/102\",[6,20.794]],[\"comment/102\",[]],[\"name/103\",[70,52.713]],[\"comment/103\",[]],[\"name/104\",[6,20.794]],[\"comment/104\",[]],[\"name/105\",[71,52.713]],[\"comment/105\",[]],[\"name/106\",[6,20.794]],[\"comment/106\",[]],[\"name/107\",[72,52.713]],[\"comment/107\",[]],[\"name/108\",[6,20.794]],[\"comment/108\",[]],[\"name/109\",[73,52.713]],[\"comment/109\",[]],[\"name/110\",[6,20.794]],[\"comment/110\",[]],[\"name/111\",[56,44.24]],[\"comment/111\",[]],[\"name/112\",[6,20.794]],[\"comment/112\",[]],[\"name/113\",[74,47.605]],[\"comment/113\",[]],[\"name/114\",[75,47.605]],[\"comment/114\",[]],[\"name/115\",[76,47.605]],[\"comment/115\",[]],[\"name/116\",[77,47.605]],[\"comment/116\",[]],[\"name/117\",[78,47.605]],[\"comment/117\",[]],[\"name/118\",[79,47.605]],[\"comment/118\",[]],[\"name/119\",[80,47.605]],[\"comment/119\",[]],[\"name/120\",[81,47.605]],[\"comment/120\",[]],[\"name/121\",[82,47.605]],[\"comment/121\",[]],[\"name/122\",[83,47.605]],[\"comment/122\",[]],[\"name/123\",[84,47.605]],[\"comment/123\",[]],[\"name/124\",[85,47.605]],[\"comment/124\",[]],[\"name/125\",[86,47.605]],[\"comment/125\",[]],[\"name/126\",[87,47.605]],[\"comment/126\",[]],[\"name/127\",[88,47.605]],[\"comment/127\",[]],[\"name/128\",[89,47.605]],[\"comment/128\",[]],[\"name/129\",[90,47.605]],[\"comment/129\",[]],[\"name/130\",[91,47.605]],[\"comment/130\",[]],[\"name/131\",[92,47.605]],[\"comment/131\",[]],[\"name/132\",[93,47.605]],[\"comment/132\",[]],[\"name/133\",[94,47.605]],[\"comment/133\",[]],[\"name/134\",[95,47.605]],[\"comment/134\",[]],[\"name/135\",[96,47.605]],[\"comment/135\",[]],[\"name/136\",[97,47.605]],[\"comment/136\",[]],[\"name/137\",[98,47.605]],[\"comment/137\",[]],[\"name/138\",[99,47.605]],[\"comment/138\",[]],[\"name/139\",[100,47.605]],[\"comment/139\",[]],[\"name/140\",[101,47.605]],[\"comment/140\",[]],[\"name/141\",[102,47.605]],[\"comment/141\",[]],[\"name/142\",[103,47.605]],[\"comment/142\",[]],[\"name/143\",[104,47.605]],[\"comment/143\",[]],[\"name/144\",[105,47.605]],[\"comment/144\",[]],[\"name/145\",[106,47.605]],[\"comment/145\",[]],[\"name/146\",[107,47.605]],[\"comment/146\",[]],[\"name/147\",[108,47.605]],[\"comment/147\",[]],[\"name/148\",[109,47.605]],[\"comment/148\",[]],[\"name/149\",[110,47.605]],[\"comment/149\",[]],[\"name/150\",[111,47.605]],[\"comment/150\",[]],[\"name/151\",[112,47.605]],[\"comment/151\",[]],[\"name/152\",[113,47.605]],[\"comment/152\",[]],[\"name/153\",[114,47.605]],[\"comment/153\",[]],[\"name/154\",[115,47.605]],[\"comment/154\",[]],[\"name/155\",[116,47.605]],[\"comment/155\",[]],[\"name/156\",[117,47.605]],[\"comment/156\",[]],[\"name/157\",[118,47.605]],[\"comment/157\",[]],[\"name/158\",[119,47.605]],[\"comment/158\",[]],[\"name/159\",[120,47.605]],[\"comment/159\",[]],[\"name/160\",[121,47.605]],[\"comment/160\",[]],[\"name/161\",[122,47.605]],[\"comment/161\",[]],[\"name/162\",[123,47.605]],[\"comment/162\",[]],[\"name/163\",[124,47.605]],[\"comment/163\",[]],[\"name/164\",[125,47.605]],[\"comment/164\",[]],[\"name/165\",[126,47.605]],[\"comment/165\",[]],[\"name/166\",[127,47.605]],[\"comment/166\",[]],[\"name/167\",[128,47.605]],[\"comment/167\",[]],[\"name/168\",[129,52.713]],[\"comment/168\",[]],[\"name/169\",[130,52.713]],[\"comment/169\",[]],[\"name/170\",[6,20.794]],[\"comment/170\",[]],[\"name/171\",[7,38.05]],[\"comment/171\",[]],[\"name/172\",[131,52.713]],[\"comment/172\",[]],[\"name/173\",[6,20.794]],[\"comment/173\",[]],[\"name/174\",[132,52.713]],[\"comment/174\",[]],[\"name/175\",[133,52.713]],[\"comment/175\",[]],[\"name/176\",[134,52.713]],[\"comment/176\",[]],[\"name/177\",[135,52.713]],[\"comment/177\",[]],[\"name/178\",[136,52.713]],[\"comment/178\",[]],[\"name/179\",[137,52.713]],[\"comment/179\",[]],[\"name/180\",[138,52.713]],[\"comment/180\",[]],[\"name/181\",[139,52.713]],[\"comment/181\",[]],[\"name/182\",[140,52.713]],[\"comment/182\",[]],[\"name/183\",[141,52.713]],[\"comment/183\",[]],[\"name/184\",[142,52.713]],[\"comment/184\",[]],[\"name/185\",[143,52.713]],[\"comment/185\",[]],[\"name/186\",[144,52.713]],[\"comment/186\",[]],[\"name/187\",[145,52.713]],[\"comment/187\",[]],[\"name/188\",[146,52.713]],[\"comment/188\",[]],[\"name/189\",[6,20.794]],[\"comment/189\",[]],[\"name/190\",[147,52.713]],[\"comment/190\",[]],[\"name/191\",[6,20.794]],[\"comment/191\",[]],[\"name/192\",[148,52.713]],[\"comment/192\",[]],[\"name/193\",[149,52.713]],[\"comment/193\",[]],[\"name/194\",[150,52.713]],[\"comment/194\",[]],[\"name/195\",[151,52.713]],[\"comment/195\",[]],[\"name/196\",[6,20.794]],[\"comment/196\",[]],[\"name/197\",[7,38.05]],[\"comment/197\",[]],[\"name/198\",[152,52.713]],[\"comment/198\",[]],[\"name/199\",[153,52.713]],[\"comment/199\",[]],[\"name/200\",[154,52.713]],[\"comment/200\",[]],[\"name/201\",[155,52.713]],[\"comment/201\",[]],[\"name/202\",[156,52.713]],[\"comment/202\",[]],[\"name/203\",[68,47.605]],[\"comment/203\",[]],[\"name/204\",[157,52.713]],[\"comment/204\",[]],[\"name/205\",[158,52.713]],[\"comment/205\",[]],[\"name/206\",[159,52.713]],[\"comment/206\",[]],[\"name/207\",[18,47.605]],[\"comment/207\",[]],[\"name/208\",[160,52.713]],[\"comment/208\",[]],[\"name/209\",[161,52.713]],[\"comment/209\",[]],[\"name/210\",[162,52.713]],[\"comment/210\",[]],[\"name/211\",[163,52.713]],[\"comment/211\",[]],[\"name/212\",[164,52.713]],[\"comment/212\",[]],[\"name/213\",[165,52.713]],[\"comment/213\",[]],[\"name/214\",[166,52.713]],[\"comment/214\",[]],[\"name/215\",[167,52.713]],[\"comment/215\",[]],[\"name/216\",[6,20.794]],[\"comment/216\",[]],[\"name/217\",[168,52.713]],[\"comment/217\",[]],[\"name/218\",[6,20.794]],[\"comment/218\",[]],[\"name/219\",[169,52.713]],[\"comment/219\",[]],[\"name/220\",[6,20.794]],[\"comment/220\",[]],[\"name/221\",[170,52.713]],[\"comment/221\",[]],[\"name/222\",[6,20.794]],[\"comment/222\",[]],[\"name/223\",[56,44.24]],[\"comment/223\",[]],[\"name/224\",[171,52.713]],[\"comment/224\",[]],[\"name/225\",[6,20.794]],[\"comment/225\",[]],[\"name/226\",[74,47.605]],[\"comment/226\",[]],[\"name/227\",[75,47.605]],[\"comment/227\",[]],[\"name/228\",[76,47.605]],[\"comment/228\",[]],[\"name/229\",[77,47.605]],[\"comment/229\",[]],[\"name/230\",[78,47.605]],[\"comment/230\",[]],[\"name/231\",[79,47.605]],[\"comment/231\",[]],[\"name/232\",[80,47.605]],[\"comment/232\",[]],[\"name/233\",[81,47.605]],[\"comment/233\",[]],[\"name/234\",[82,47.605]],[\"comment/234\",[]],[\"name/235\",[83,47.605]],[\"comment/235\",[]],[\"name/236\",[84,47.605]],[\"comment/236\",[]],[\"name/237\",[85,47.605]],[\"comment/237\",[]],[\"name/238\",[86,47.605]],[\"comment/238\",[]],[\"name/239\",[87,47.605]],[\"comment/239\",[]],[\"name/240\",[88,47.605]],[\"comment/240\",[]],[\"name/241\",[89,47.605]],[\"comment/241\",[]],[\"name/242\",[90,47.605]],[\"comment/242\",[]],[\"name/243\",[91,47.605]],[\"comment/243\",[]],[\"name/244\",[92,47.605]],[\"comment/244\",[]],[\"name/245\",[93,47.605]],[\"comment/245\",[]],[\"name/246\",[94,47.605]],[\"comment/246\",[]],[\"name/247\",[95,47.605]],[\"comment/247\",[]],[\"name/248\",[96,47.605]],[\"comment/248\",[]],[\"name/249\",[97,47.605]],[\"comment/249\",[]],[\"name/250\",[98,47.605]],[\"comment/250\",[]],[\"name/251\",[99,47.605]],[\"comment/251\",[]],[\"name/252\",[100,47.605]],[\"comment/252\",[]],[\"name/253\",[101,47.605]],[\"comment/253\",[]],[\"name/254\",[102,47.605]],[\"comment/254\",[]],[\"name/255\",[103,47.605]],[\"comment/255\",[]],[\"name/256\",[104,47.605]],[\"comment/256\",[]],[\"name/257\",[105,47.605]],[\"comment/257\",[]],[\"name/258\",[106,47.605]],[\"comment/258\",[]],[\"name/259\",[107,47.605]],[\"comment/259\",[]],[\"name/260\",[108,47.605]],[\"comment/260\",[]],[\"name/261\",[109,47.605]],[\"comment/261\",[]],[\"name/262\",[110,47.605]],[\"comment/262\",[]],[\"name/263\",[111,47.605]],[\"comment/263\",[]],[\"name/264\",[112,47.605]],[\"comment/264\",[]],[\"name/265\",[113,47.605]],[\"comment/265\",[]],[\"name/266\",[114,47.605]],[\"comment/266\",[]],[\"name/267\",[115,47.605]],[\"comment/267\",[]],[\"name/268\",[116,47.605]],[\"comment/268\",[]],[\"name/269\",[117,47.605]],[\"comment/269\",[]],[\"name/270\",[118,47.605]],[\"comment/270\",[]],[\"name/271\",[119,47.605]],[\"comment/271\",[]],[\"name/272\",[120,47.605]],[\"comment/272\",[]],[\"name/273\",[121,47.605]],[\"comment/273\",[]],[\"name/274\",[122,47.605]],[\"comment/274\",[]],[\"name/275\",[123,47.605]],[\"comment/275\",[]],[\"name/276\",[124,47.605]],[\"comment/276\",[]],[\"name/277\",[125,47.605]],[\"comment/277\",[]],[\"name/278\",[126,47.605]],[\"comment/278\",[]],[\"name/279\",[127,47.605]],[\"comment/279\",[]],[\"name/280\",[128,47.605]],[\"comment/280\",[]],[\"name/281\",[172,52.713]],[\"comment/281\",[]],[\"name/282\",[173,52.713]],[\"comment/282\",[]],[\"name/283\",[174,47.605]],[\"comment/283\",[]],[\"name/284\",[175,52.713]],[\"comment/284\",[]],[\"name/285\",[6,20.794]],[\"comment/285\",[]],[\"name/286\",[176,52.713]],[\"comment/286\",[]],[\"name/287\",[2,47.605]],[\"comment/287\",[]],[\"name/288\",[7,38.05]],[\"comment/288\",[]],[\"name/289\",[177,52.713]],[\"comment/289\",[]],[\"name/290\",[174,47.605]],[\"comment/290\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":6,\"name\":{\"6\":{},\"12\":{},\"16\":{},\"20\":{},\"23\":{},\"36\":{},\"49\":{},\"53\":{},\"58\":{},\"62\":{},\"68\":{},\"70\":{},\"72\":{},\"75\":{},\"78\":{},\"80\":{},\"83\":{},\"91\":{},\"96\":{},\"102\":{},\"104\":{},\"106\":{},\"108\":{},\"110\":{},\"112\":{},\"170\":{},\"173\":{},\"189\":{},\"191\":{},\"196\":{},\"216\":{},\"218\":{},\"220\":{},\"222\":{},\"225\":{},\"285\":{}},\"comment\":{}}],[\"accuracy\",{\"_index\":26,\"name\":{\"30\":{},\"42\":{}},\"comment\":{}}],[\"albanian\",{\"_index\":75,\"name\":{\"114\":{},\"227\":{}},\"comment\":{}}],[\"apikey\",{\"_index\":7,\"name\":{\"7\":{},\"63\":{},\"76\":{},\"171\":{},\"197\":{},\"288\":{}},\"comment\":{}}],[\"arabic\",{\"_index\":76,\"name\":{\"115\":{},\"228\":{}},\"comment\":{}}],[\"area\",{\"_index\":27,\"name\":{\"31\":{},\"44\":{}},\"comment\":{}}],[\"armenian\",{\"_index\":77,\"name\":{\"116\":{},\"229\":{}},\"comment\":{}}],[\"attribution\",{\"_index\":68,\"name\":{\"100\":{},\"203\":{}},\"comment\":{}}],[\"authority\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"auto\",{\"_index\":74,\"name\":{\"113\":{},\"226\":{}},\"comment\":{}}],[\"automatic\",{\"_index\":170,\"name\":{\"221\":{}},\"comment\":{}}],[\"automaticstaticmapoptions\",{\"_index\":165,\"name\":{\"213\":{}},\"comment\":{}}],[\"azerbaijani\",{\"_index\":78,\"name\":{\"117\":{},\"230\":{}},\"comment\":{}}],[\"batch\",{\"_index\":73,\"name\":{\"109\":{}},\"comment\":{}}],[\"bbox\",{\"_index\":28,\"name\":{\"32\":{},\"45\":{}},\"comment\":{}}],[\"belorussian\",{\"_index\":79,\"name\":{\"118\":{},\"231\":{}},\"comment\":{}}],[\"bosnian\",{\"_index\":80,\"name\":{\"119\":{},\"232\":{}},\"comment\":{}}],[\"bounded\",{\"_index\":169,\"name\":{\"219\":{}},\"comment\":{}}],[\"boundedstaticmapoptions\",{\"_index\":164,\"name\":{\"212\":{}},\"comment\":{}}],[\"breton\",{\"_index\":81,\"name\":{\"120\":{},\"233\":{}},\"comment\":{}}],[\"bulgarian\",{\"_index\":82,\"name\":{\"121\":{},\"234\":{}},\"comment\":{}}],[\"byid\",{\"_index\":72,\"name\":{\"107\":{}},\"comment\":{}}],[\"byidgeocodingoptions\",{\"_index\":60,\"name\":{\"88\":{}},\"comment\":{}}],[\"catalan\",{\"_index\":83,\"name\":{\"122\":{},\"235\":{}},\"comment\":{}}],[\"centered\",{\"_index\":168,\"name\":{\"217\":{}},\"comment\":{}}],[\"centeredstaticmapoptions\",{\"_index\":163,\"name\":{\"211\":{}},\"comment\":{}}],[\"chinese\",{\"_index\":84,\"name\":{\"123\":{},\"236\":{}},\"comment\":{}}],[\"city\",{\"_index\":139,\"name\":{\"181\":{}},\"comment\":{}}],[\"clientconfig\",{\"_index\":176,\"name\":{\"286\":{}},\"comment\":{}}],[\"code\",{\"_index\":13,\"name\":{\"14\":{}},\"comment\":{}}],[\"commonforwardandreversegeocodingoptions\",{\"_index\":57,\"name\":{\"85\":{}},\"comment\":{}}],[\"config\",{\"_index\":174,\"name\":{\"283\":{},\"290\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":2,\"name\":{\"2\":{},\"287\":{}},\"comment\":{}}],[\"continent\",{\"_index\":136,\"name\":{\"178\":{}},\"comment\":{}}],[\"continent_code\",{\"_index\":137,\"name\":{\"179\":{}},\"comment\":{}}],[\"coordinateexport\",{\"_index\":14,\"name\":{\"15\":{}},\"comment\":{}}],[\"coordinategrid\",{\"_index\":17,\"name\":{\"19\":{}},\"comment\":{}}],[\"coordinateid\",{\"_index\":11,\"name\":{\"11\":{}},\"comment\":{}}],[\"coordinates\",{\"_index\":47,\"name\":{\"67\":{},\"89\":{}},\"comment\":{}}],[\"coordinatesearch\",{\"_index\":31,\"name\":{\"35\":{}},\"comment\":{}}],[\"coordinatesearchresult\",{\"_index\":34,\"name\":{\"48\":{}},\"comment\":{}}],[\"coordinatessearchoptions\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"coordinatestransformoptions\",{\"_index\":43,\"name\":{\"61\":{}},\"comment\":{}}],[\"coordinatetransformation\",{\"_index\":19,\"name\":{\"22\":{}},\"comment\":{}}],[\"coordinatetransformresult\",{\"_index\":41,\"name\":{\"57\":{}},\"comment\":{}}],[\"country\",{\"_index\":132,\"name\":{\"174\":{}},\"comment\":{}}],[\"country_bounds\",{\"_index\":134,\"name\":{\"176\":{}},\"comment\":{}}],[\"country_code\",{\"_index\":133,\"name\":{\"175\":{}},\"comment\":{}}],[\"country_languages\",{\"_index\":135,\"name\":{\"177\":{}},\"comment\":{}}],[\"croatian\",{\"_index\":85,\"name\":{\"124\":{},\"237\":{}},\"comment\":{}}],[\"czech\",{\"_index\":86,\"name\":{\"125\":{},\"238\":{}},\"comment\":{}}],[\"danish\",{\"_index\":87,\"name\":{\"126\":{},\"239\":{}},\"comment\":{}}],[\"data\",{\"_index\":52,\"name\":{\"77\":{}},\"comment\":{}}],[\"default\",{\"_index\":149,\"name\":{\"193\":{}},\"comment\":{}}],[\"default_transformation\",{\"_index\":33,\"name\":{\"46\":{}},\"comment\":{}}],[\"deprecated\",{\"_index\":24,\"name\":{\"28\":{},\"40\":{}},\"comment\":{}}],[\"dutch\",{\"_index\":88,\"name\":{\"127\":{},\"240\":{}},\"comment\":{}}],[\"english\",{\"_index\":89,\"name\":{\"128\":{},\"241\":{}},\"comment\":{}}],[\"esperanto\",{\"_index\":90,\"name\":{\"129\":{},\"242\":{}},\"comment\":{}}],[\"estonian\",{\"_index\":91,\"name\":{\"130\":{},\"243\":{}},\"comment\":{}}],[\"eu\",{\"_index\":138,\"name\":{\"180\":{}},\"comment\":{}}],[\"exports\",{\"_index\":10,\"name\":{\"10\":{},\"47\":{}},\"comment\":{}}],[\"featurehierarchy\",{\"_index\":61,\"name\":{\"90\":{}},\"comment\":{}}],[\"features\",{\"_index\":66,\"name\":{\"98\":{}},\"comment\":{}}],[\"fetch\",{\"_index\":177,\"name\":{\"289\":{}},\"comment\":{}}],[\"fetchfunction\",{\"_index\":175,\"name\":{\"284\":{}},\"comment\":{}}],[\"finnish\",{\"_index\":92,\"name\":{\"131\":{},\"244\":{}},\"comment\":{}}],[\"format\",{\"_index\":154,\"name\":{\"200\":{}},\"comment\":{}}],[\"forward\",{\"_index\":70,\"name\":{\"103\":{}},\"comment\":{}}],[\"french\",{\"_index\":93,\"name\":{\"132\":{},\"245\":{}},\"comment\":{}}],[\"frisian\",{\"_index\":94,\"name\":{\"133\":{},\"246\":{}},\"comment\":{}}],[\"geocoding\",{\"_index\":69,\"name\":{\"101\":{}},\"comment\":{}}],[\"geocodingfeature\",{\"_index\":63,\"name\":{\"94\":{}},\"comment\":{}}],[\"geocodingoptions\",{\"_index\":58,\"name\":{\"86\":{}},\"comment\":{}}],[\"geocodingsearchresult\",{\"_index\":64,\"name\":{\"95\":{}},\"comment\":{}}],[\"geolocation\",{\"_index\":146,\"name\":{\"188\":{}},\"comment\":{}}],[\"geolocationinfooptions\",{\"_index\":130,\"name\":{\"169\":{}},\"comment\":{}}],[\"geolocationresult\",{\"_index\":131,\"name\":{\"172\":{}},\"comment\":{}}],[\"georgian\",{\"_index\":95,\"name\":{\"134\":{},\"247\":{}},\"comment\":{}}],[\"german\",{\"_index\":96,\"name\":{\"135\":{},\"248\":{}},\"comment\":{}}],[\"get\",{\"_index\":53,\"name\":{\"79\":{}},\"comment\":{}}],[\"getautolanguagegeocoding\",{\"_index\":173,\"name\":{\"282\":{}},\"comment\":{}}],[\"getdataoptions\",{\"_index\":51,\"name\":{\"74\":{}},\"comment\":{}}],[\"greek\",{\"_index\":97,\"name\":{\"136\":{},\"249\":{}},\"comment\":{}}],[\"grids\",{\"_index\":25,\"name\":{\"29\":{}},\"comment\":{}}],[\"hebrew\",{\"_index\":98,\"name\":{\"137\":{},\"250\":{}},\"comment\":{}}],[\"height\",{\"_index\":156,\"name\":{\"202\":{}},\"comment\":{}}],[\"hidpi\",{\"_index\":153,\"name\":{\"199\":{}},\"comment\":{}}],[\"hungarian\",{\"_index\":99,\"name\":{\"138\":{},\"251\":{}},\"comment\":{}}],[\"icelandic\",{\"_index\":100,\"name\":{\"139\":{},\"252\":{}},\"comment\":{}}],[\"id\",{\"_index\":20,\"name\":{\"24\":{},\"37\":{},\"92\":{}},\"comment\":{}}],[\"info\",{\"_index\":147,\"name\":{\"190\":{}},\"comment\":{}}],[\"irish\",{\"_index\":101,\"name\":{\"140\":{},\"253\":{}},\"comment\":{}}],[\"italian\",{\"_index\":102,\"name\":{\"141\":{},\"254\":{}},\"comment\":{}}],[\"japanese\",{\"_index\":103,\"name\":{\"142\":{},\"255\":{}},\"comment\":{}}],[\"kannada\",{\"_index\":104,\"name\":{\"143\":{},\"256\":{}},\"comment\":{}}],[\"kazakh\",{\"_index\":105,\"name\":{\"144\":{},\"257\":{}},\"comment\":{}}],[\"kind\",{\"_index\":32,\"name\":{\"39\":{}},\"comment\":{}}],[\"korean\",{\"_index\":106,\"name\":{\"145\":{},\"258\":{}},\"comment\":{}}],[\"language\",{\"_index\":56,\"name\":{\"84\":{},\"111\":{},\"223\":{}},\"comment\":{}}],[\"languagegeocoding\",{\"_index\":171,\"name\":{\"224\":{}},\"comment\":{}}],[\"languagegeocodingoptions\",{\"_index\":55,\"name\":{\"82\":{}},\"comment\":{}}],[\"languagegeocodingstring\",{\"_index\":172,\"name\":{\"281\":{}},\"comment\":{}}],[\"latitude\",{\"_index\":140,\"name\":{\"182\":{}},\"comment\":{}}],[\"latvian\",{\"_index\":108,\"name\":{\"147\":{},\"260\":{}},\"comment\":{}}],[\"limit\",{\"_index\":8,\"name\":{\"8\":{}},\"comment\":{}}],[\"lithuanian\",{\"_index\":109,\"name\":{\"148\":{},\"261\":{}},\"comment\":{}}],[\"longitude\",{\"_index\":141,\"name\":{\"183\":{}},\"comment\":{}}],[\"luxembourgish\",{\"_index\":110,\"name\":{\"149\":{},\"262\":{}},\"comment\":{}}],[\"macedonian\",{\"_index\":111,\"name\":{\"150\":{},\"263\":{}},\"comment\":{}}],[\"maltese\",{\"_index\":112,\"name\":{\"151\":{},\"264\":{}},\"comment\":{}}],[\"markeranchor\",{\"_index\":159,\"name\":{\"206\":{}},\"comment\":{}}],[\"markericon\",{\"_index\":158,\"name\":{\"205\":{}},\"comment\":{}}],[\"markers\",{\"_index\":157,\"name\":{\"204\":{}},\"comment\":{}}],[\"name\",{\"_index\":21,\"name\":{\"25\":{},\"38\":{}},\"comment\":{}}],[\"norwegian\",{\"_index\":113,\"name\":{\"152\":{},\"265\":{}},\"comment\":{}}],[\"operations\",{\"_index\":46,\"name\":{\"66\":{}},\"comment\":{}}],[\"path\",{\"_index\":18,\"name\":{\"21\":{},\"207\":{}},\"comment\":{}}],[\"pathfillcolor\",{\"_index\":161,\"name\":{\"209\":{}},\"comment\":{}}],[\"pathstrokecolor\",{\"_index\":160,\"name\":{\"208\":{}},\"comment\":{}}],[\"pathwidth\",{\"_index\":162,\"name\":{\"210\":{}},\"comment\":{}}],[\"polish\",{\"_index\":114,\"name\":{\"153\":{},\"266\":{}},\"comment\":{}}],[\"portuguese\",{\"_index\":115,\"name\":{\"154\":{},\"267\":{}},\"comment\":{}}],[\"postal\",{\"_index\":142,\"name\":{\"184\":{}},\"comment\":{}}],[\"proj4\",{\"_index\":15,\"name\":{\"17\":{}},\"comment\":{}}],[\"query\",{\"_index\":67,\"name\":{\"99\":{}},\"comment\":{}}],[\"region\",{\"_index\":143,\"name\":{\"185\":{}},\"comment\":{}}],[\"region_code\",{\"_index\":144,\"name\":{\"186\":{}},\"comment\":{}}],[\"res\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"results\",{\"_index\":35,\"name\":{\"50\":{},\"59\":{}},\"comment\":{}}],[\"reverse\",{\"_index\":71,\"name\":{\"105\":{}},\"comment\":{}}],[\"reversegeocodingoptions\",{\"_index\":59,\"name\":{\"87\":{}},\"comment\":{}}],[\"reversible\",{\"_index\":22,\"name\":{\"26\":{}},\"comment\":{}}],[\"roman_latin\",{\"_index\":107,\"name\":{\"146\":{},\"259\":{}},\"comment\":{}}],[\"romanian\",{\"_index\":116,\"name\":{\"155\":{},\"268\":{}},\"comment\":{}}],[\"romansh\",{\"_index\":117,\"name\":{\"156\":{},\"269\":{}},\"comment\":{}}],[\"russian\",{\"_index\":118,\"name\":{\"157\":{},\"270\":{}},\"comment\":{}}],[\"scottish_gaelic\",{\"_index\":119,\"name\":{\"158\":{},\"271\":{}},\"comment\":{}}],[\"search\",{\"_index\":48,\"name\":{\"69\":{}},\"comment\":{}}],[\"serbian_cyrillic\",{\"_index\":120,\"name\":{\"159\":{},\"272\":{}},\"comment\":{}}],[\"serviceerror\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"services/coordinates\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"services/data\",{\"_index\":50,\"name\":{\"73\":{}},\"comment\":{}}],[\"services/geocoding\",{\"_index\":54,\"name\":{\"81\":{}},\"comment\":{}}],[\"services/geolocation\",{\"_index\":129,\"name\":{\"168\":{}},\"comment\":{}}],[\"services/serviceerror\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"services/simplify\",{\"_index\":148,\"name\":{\"192\":{}},\"comment\":{}}],[\"services/staticmaps\",{\"_index\":150,\"name\":{\"194\":{}},\"comment\":{}}],[\"slovak\",{\"_index\":121,\"name\":{\"160\":{},\"273\":{}},\"comment\":{}}],[\"slovene\",{\"_index\":122,\"name\":{\"161\":{},\"274\":{}},\"comment\":{}}],[\"sourcecrs\",{\"_index\":44,\"name\":{\"64\":{}},\"comment\":{}}],[\"spanish\",{\"_index\":123,\"name\":{\"162\":{},\"275\":{}},\"comment\":{}}],[\"staticmapbaseoptions\",{\"_index\":151,\"name\":{\"195\":{}},\"comment\":{}}],[\"staticmapmarker\",{\"_index\":166,\"name\":{\"214\":{}},\"comment\":{}}],[\"staticmaps\",{\"_index\":167,\"name\":{\"215\":{}},\"comment\":{}}],[\"style\",{\"_index\":152,\"name\":{\"198\":{}},\"comment\":{}}],[\"swedish\",{\"_index\":124,\"name\":{\"163\":{},\"276\":{}},\"comment\":{}}],[\"target_crs\",{\"_index\":29,\"name\":{\"33\":{}},\"comment\":{}}],[\"targetcrs\",{\"_index\":45,\"name\":{\"65\":{}},\"comment\":{}}],[\"text\",{\"_index\":62,\"name\":{\"93\":{}},\"comment\":{}}],[\"thai\",{\"_index\":125,\"name\":{\"164\":{},\"277\":{}},\"comment\":{}}],[\"timezone\",{\"_index\":145,\"name\":{\"187\":{}},\"comment\":{}}],[\"total\",{\"_index\":36,\"name\":{\"51\":{}},\"comment\":{}}],[\"transform\",{\"_index\":49,\"name\":{\"71\":{}},\"comment\":{}}],[\"transformations\",{\"_index\":9,\"name\":{\"9\":{},\"41\":{}},\"comment\":{}}],[\"transformer_selection_strategy\",{\"_index\":42,\"name\":{\"60\":{}},\"comment\":{}}],[\"turkish\",{\"_index\":126,\"name\":{\"165\":{},\"278\":{}},\"comment\":{}}],[\"type\",{\"_index\":65,\"name\":{\"97\":{}},\"comment\":{}}],[\"ukrainian\",{\"_index\":127,\"name\":{\"166\":{},\"279\":{}},\"comment\":{}}],[\"unit\",{\"_index\":30,\"name\":{\"34\":{},\"43\":{}},\"comment\":{}}],[\"usable\",{\"_index\":23,\"name\":{\"27\":{}},\"comment\":{}}],[\"welsh\",{\"_index\":128,\"name\":{\"167\":{},\"280\":{}},\"comment\":{}}],[\"width\",{\"_index\":155,\"name\":{\"201\":{}},\"comment\":{}}],[\"wkt\",{\"_index\":16,\"name\":{\"18\":{}},\"comment\":{}}],[\"x\",{\"_index\":38,\"name\":{\"54\":{}},\"comment\":{}}],[\"xyz\",{\"_index\":37,\"name\":{\"52\":{}},\"comment\":{}}],[\"y\",{\"_index\":39,\"name\":{\"55\":{}},\"comment\":{}}],[\"z\",{\"_index\":40,\"name\":{\"56\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse("{\"kinds\":{\"2\":\"Module\",\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"512\":\"Constructor\",\"1024\":\"Property\",\"65536\":\"Type literal\",\"262144\":\"Accessor\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":2,\"name\":\"services/ServiceError\",\"url\":\"modules/services_ServiceError.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":128,\"name\":\"ServiceError\",\"url\":\"classes/services_ServiceError.ServiceError.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"services/ServiceError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/services_ServiceError.ServiceError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":1024,\"name\":\"res\",\"url\":\"classes/services_ServiceError.ServiceError.html#res\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":2,\"name\":\"services/coordinates\",\"url\":\"modules/services_coordinates.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"CoordinatesSearchOptions\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesSearchOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":4194304,\"name\":\"CoordinateId\",\"url\":\"types/services_coordinates.CoordinateId.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateId.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateId\"},{\"kind\":1024,\"name\":\"authority\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.authority\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":1024,\"name\":\"code\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":4194304,\"name\":\"CoordinateExport\",\"url\":\"types/services_coordinates.CoordinateExport.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateExport\"},{\"kind\":1024,\"name\":\"proj4\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.proj4\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":1024,\"name\":\"wkt\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.wkt\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":4194304,\"name\":\"CoordinateGrid\",\"url\":\"types/services_coordinates.CoordinateGrid.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateGrid\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateGrid.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformation\",\"url\":\"types/services_coordinates.CoordinateTransformation.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformation\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"reversible\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.reversible\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"usable\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.usable\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"grids\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.grids\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"target_crs\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.target_crs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearch\",\"url\":\"types/services_coordinates.CoordinateSearch.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearch\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"kind\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.kind\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"default_transformation\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.default_transformation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearchResult\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearchResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":1024,\"name\":\"total\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.total\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":4194304,\"name\":\"XYZ\",\"url\":\"types/services_coordinates.XYZ.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.XYZ.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.XYZ\"},{\"kind\":1024,\"name\":\"x\",\"url\":\"types/services_coordinates.XYZ.html#__type.x\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"y\",\"url\":\"types/services_coordinates.XYZ.html#__type.y\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"z\",\"url\":\"types/services_coordinates.XYZ.html#__type.z\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformResult\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":1024,\"name\":\"transformer_selection_strategy\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.transformer_selection_strategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":4194304,\"name\":\"CoordinatesTransformOptions\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesTransformOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"sourceCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.sourceCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"targetCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.targetCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"operations\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.operations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":32,\"name\":\"coordinates\",\"url\":\"variables/services_coordinates.coordinates.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/coordinates.coordinates\"},{\"kind\":1024,\"name\":\"search\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.search\"},{\"kind\":1024,\"name\":\"transform\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.transform\"},{\"kind\":2,\"name\":\"services/data\",\"url\":\"modules/services_data.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GetDataOptions\",\"url\":\"types/services_data.GetDataOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_data.GetDataOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/data.GetDataOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_data.GetDataOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.GetDataOptions.__type\"},{\"kind\":32,\"name\":\"data\",\"url\":\"variables/services_data.data.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/data.data\"},{\"kind\":1024,\"name\":\"get\",\"url\":\"variables/services_data.data.html#__type.get\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.data.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type.get.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/data.data.__type.get\"},{\"kind\":2,\"name\":\"services/geocoding\",\"url\":\"modules/services_geocoding.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"LanguageGeocodingOptions\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.LanguageGeocodingOptions\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.LanguageGeocodingOptions.__type\"},{\"kind\":4194304,\"name\":\"CommonForwardAndReverseGeocodingOptions\",\"url\":\"types/services_geocoding.CommonForwardAndReverseGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingOptions\",\"url\":\"types/services_geocoding.GeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"ReverseGeocodingOptions\",\"url\":\"types/services_geocoding.ReverseGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"ByIdGeocodingOptions\",\"url\":\"types/services_geocoding.ByIdGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"Coordinates\",\"url\":\"types/services_geocoding.Coordinates.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"FeatureHierarchy\",\"url\":\"types/services_geocoding.FeatureHierarchy.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingFeature\",\"url\":\"types/services_geocoding.GeocodingFeature.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingSearchResult\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.GeocodingSearchResult\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.type\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"features\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.features\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"query\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.query\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":32,\"name\":\"geocoding\",\"url\":\"variables/services_geocoding.geocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geocoding.geocoding\"},{\"kind\":1024,\"name\":\"forward\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.forward\"},{\"kind\":1024,\"name\":\"reverse\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse.__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.reverse\"},{\"kind\":1024,\"name\":\"byId\",\"url\":\"variables/services_geocoding.geocoding.html#__type.byId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.byId.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.byId\"},{\"kind\":1024,\"name\":\"batch\",\"url\":\"variables/services_geocoding.geocoding.html#__type.batch\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.batch.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.batch\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.language\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-7.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":2,\"name\":\"services/geolocation\",\"url\":\"modules/services_geolocation.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GeolocationInfoOptions\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationInfoOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationInfoOptions.__type\"},{\"kind\":4194304,\"name\":\"GeolocationResult\",\"url\":\"types/services_geolocation.GeolocationResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationResult\"},{\"kind\":1024,\"name\":\"country\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_bounds\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_bounds\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_languages\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_languages\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"eu\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.eu\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"city\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.city\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"latitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.latitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"longitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.longitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"postal\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.postal\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"timezone\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.timezone\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":32,\"name\":\"geolocation\",\"url\":\"variables/services_geolocation.geolocation.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geolocation.geolocation\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.geolocation.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geolocation.geolocation.__type.info\"},{\"kind\":2,\"name\":\"services/simplify\",\"url\":\"modules/services_simplify.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":64,\"name\":\"default\",\"url\":\"functions/services_simplify.default.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"services/simplify\"},{\"kind\":2,\"name\":\"services/staticMaps\",\"url\":\"modules/services_staticMaps.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"StaticMapBaseOptions\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/staticMaps.StaticMapBaseOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"style\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.style\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"hiDPI\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.hiDPI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"format\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.format\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"width\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.width\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"height\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.height\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markers\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerIcon\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerIcon\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerAnchor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerAnchor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathStrokeColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathStrokeColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathFillColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathFillColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathWidth\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathWidth\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":4194304,\"name\":\"CenteredStaticMapOptions\",\"url\":\"types/services_staticMaps.CenteredStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"BoundedStaticMapOptions\",\"url\":\"types/services_staticMaps.BoundedStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"AutomaticStaticMapOptions\",\"url\":\"types/services_staticMaps.AutomaticStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"StaticMapMarker\",\"url\":\"types/services_staticMaps.StaticMapMarker.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":32,\"name\":\"staticMaps\",\"url\":\"variables/services_staticMaps.staticMaps.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/staticMaps.staticMaps\"},{\"kind\":1024,\"name\":\"centered\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.centered\"},{\"kind\":1024,\"name\":\"bounded\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.bounded\"},{\"kind\":1024,\"name\":\"automatic\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.automatic\"},{\"kind\":2,\"name\":\"language\",\"url\":\"modules/language.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":32,\"name\":\"LanguageGeocoding\",\"url\":\"variables/language.LanguageGeocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/language.LanguageGeocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"language.LanguageGeocoding\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":4194304,\"name\":\"LanguageGeocodingString\",\"url\":\"types/language.LanguageGeocodingString.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":64,\"name\":\"getAutoLanguageGeocoding\",\"url\":\"functions/language.getAutoLanguageGeocoding.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":2,\"name\":\"config\",\"url\":\"modules/config.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"FetchFunction\",\"url\":\"types/config.FetchFunction.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/config.FetchFunction.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"config.FetchFunction\"},{\"kind\":128,\"name\":\"ClientConfig\",\"url\":\"classes/config.ClientConfig.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/config.ClientConfig.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"apiKey\",\"url\":\"classes/config.ClientConfig.html#apiKey\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"fetch\",\"url\":\"classes/config.ClientConfig.html#fetch\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":32,\"name\":\"config\",\"url\":\"variables/config.config.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"config\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,52.61]],[\"comment/0\",[]],[\"name/1\",[1,52.61]],[\"comment/1\",[]],[\"name/2\",[2,47.501]],[\"comment/2\",[]],[\"name/3\",[3,52.61]],[\"comment/3\",[]],[\"name/4\",[4,52.61]],[\"comment/4\",[]],[\"name/5\",[5,52.61]],[\"comment/5\",[]],[\"name/6\",[6,20.969]],[\"comment/6\",[]],[\"name/7\",[7,37.946]],[\"comment/7\",[]],[\"name/8\",[8,52.61]],[\"comment/8\",[]],[\"name/9\",[9,47.501]],[\"comment/9\",[]],[\"name/10\",[10,47.501]],[\"comment/10\",[]],[\"name/11\",[11,52.61]],[\"comment/11\",[]],[\"name/12\",[6,20.969]],[\"comment/12\",[]],[\"name/13\",[12,52.61]],[\"comment/13\",[]],[\"name/14\",[13,52.61]],[\"comment/14\",[]],[\"name/15\",[14,52.61]],[\"comment/15\",[]],[\"name/16\",[6,20.969]],[\"comment/16\",[]],[\"name/17\",[15,52.61]],[\"comment/17\",[]],[\"name/18\",[16,52.61]],[\"comment/18\",[]],[\"name/19\",[17,52.61]],[\"comment/19\",[]],[\"name/20\",[6,20.969]],[\"comment/20\",[]],[\"name/21\",[18,47.501]],[\"comment/21\",[]],[\"name/22\",[19,52.61]],[\"comment/22\",[]],[\"name/23\",[6,20.969]],[\"comment/23\",[]],[\"name/24\",[20,47.501]],[\"comment/24\",[]],[\"name/25\",[21,47.501]],[\"comment/25\",[]],[\"name/26\",[22,52.61]],[\"comment/26\",[]],[\"name/27\",[23,52.61]],[\"comment/27\",[]],[\"name/28\",[24,47.501]],[\"comment/28\",[]],[\"name/29\",[25,52.61]],[\"comment/29\",[]],[\"name/30\",[26,47.501]],[\"comment/30\",[]],[\"name/31\",[27,47.501]],[\"comment/31\",[]],[\"name/32\",[28,47.501]],[\"comment/32\",[]],[\"name/33\",[29,52.61]],[\"comment/33\",[]],[\"name/34\",[30,47.501]],[\"comment/34\",[]],[\"name/35\",[31,52.61]],[\"comment/35\",[]],[\"name/36\",[6,20.969]],[\"comment/36\",[]],[\"name/37\",[20,47.501]],[\"comment/37\",[]],[\"name/38\",[21,47.501]],[\"comment/38\",[]],[\"name/39\",[32,52.61]],[\"comment/39\",[]],[\"name/40\",[24,47.501]],[\"comment/40\",[]],[\"name/41\",[9,47.501]],[\"comment/41\",[]],[\"name/42\",[26,47.501]],[\"comment/42\",[]],[\"name/43\",[30,47.501]],[\"comment/43\",[]],[\"name/44\",[27,47.501]],[\"comment/44\",[]],[\"name/45\",[28,47.501]],[\"comment/45\",[]],[\"name/46\",[33,52.61]],[\"comment/46\",[]],[\"name/47\",[10,47.501]],[\"comment/47\",[]],[\"name/48\",[34,52.61]],[\"comment/48\",[]],[\"name/49\",[6,20.969]],[\"comment/49\",[]],[\"name/50\",[35,47.501]],[\"comment/50\",[]],[\"name/51\",[36,52.61]],[\"comment/51\",[]],[\"name/52\",[37,52.61]],[\"comment/52\",[]],[\"name/53\",[6,20.969]],[\"comment/53\",[]],[\"name/54\",[38,52.61]],[\"comment/54\",[]],[\"name/55\",[39,52.61]],[\"comment/55\",[]],[\"name/56\",[40,52.61]],[\"comment/56\",[]],[\"name/57\",[41,52.61]],[\"comment/57\",[]],[\"name/58\",[6,20.969]],[\"comment/58\",[]],[\"name/59\",[35,47.501]],[\"comment/59\",[]],[\"name/60\",[42,52.61]],[\"comment/60\",[]],[\"name/61\",[43,52.61]],[\"comment/61\",[]],[\"name/62\",[6,20.969]],[\"comment/62\",[]],[\"name/63\",[7,37.946]],[\"comment/63\",[]],[\"name/64\",[44,52.61]],[\"comment/64\",[]],[\"name/65\",[45,52.61]],[\"comment/65\",[]],[\"name/66\",[46,52.61]],[\"comment/66\",[]],[\"name/67\",[47,47.501]],[\"comment/67\",[]],[\"name/68\",[6,20.969]],[\"comment/68\",[]],[\"name/69\",[48,52.61]],[\"comment/69\",[]],[\"name/70\",[6,20.969]],[\"comment/70\",[]],[\"name/71\",[49,52.61]],[\"comment/71\",[]],[\"name/72\",[6,20.969]],[\"comment/72\",[]],[\"name/73\",[50,52.61]],[\"comment/73\",[]],[\"name/74\",[51,52.61]],[\"comment/74\",[]],[\"name/75\",[6,20.969]],[\"comment/75\",[]],[\"name/76\",[7,37.946]],[\"comment/76\",[]],[\"name/77\",[52,52.61]],[\"comment/77\",[]],[\"name/78\",[6,20.969]],[\"comment/78\",[]],[\"name/79\",[53,52.61]],[\"comment/79\",[]],[\"name/80\",[6,20.969]],[\"comment/80\",[]],[\"name/81\",[54,52.61]],[\"comment/81\",[]],[\"name/82\",[55,52.61]],[\"comment/82\",[]],[\"name/83\",[6,20.969]],[\"comment/83\",[]],[\"name/84\",[56,44.137]],[\"comment/84\",[]],[\"name/85\",[57,52.61]],[\"comment/85\",[]],[\"name/86\",[58,52.61]],[\"comment/86\",[]],[\"name/87\",[59,52.61]],[\"comment/87\",[]],[\"name/88\",[60,52.61]],[\"comment/88\",[]],[\"name/89\",[47,47.501]],[\"comment/89\",[]],[\"name/90\",[61,52.61]],[\"comment/90\",[]],[\"name/91\",[62,52.61]],[\"comment/91\",[]],[\"name/92\",[63,52.61]],[\"comment/92\",[]],[\"name/93\",[6,20.969]],[\"comment/93\",[]],[\"name/94\",[64,52.61]],[\"comment/94\",[]],[\"name/95\",[65,52.61]],[\"comment/95\",[]],[\"name/96\",[66,52.61]],[\"comment/96\",[]],[\"name/97\",[67,47.501]],[\"comment/97\",[]],[\"name/98\",[68,52.61]],[\"comment/98\",[]],[\"name/99\",[6,20.969]],[\"comment/99\",[]],[\"name/100\",[69,52.61]],[\"comment/100\",[]],[\"name/101\",[6,20.969]],[\"comment/101\",[]],[\"name/102\",[70,52.61]],[\"comment/102\",[]],[\"name/103\",[6,20.969]],[\"comment/103\",[]],[\"name/104\",[71,52.61]],[\"comment/104\",[]],[\"name/105\",[6,20.969]],[\"comment/105\",[]],[\"name/106\",[72,52.61]],[\"comment/106\",[]],[\"name/107\",[6,20.969]],[\"comment/107\",[]],[\"name/108\",[56,44.137]],[\"comment/108\",[]],[\"name/109\",[6,20.969]],[\"comment/109\",[]],[\"name/110\",[73,47.501]],[\"comment/110\",[]],[\"name/111\",[74,47.501]],[\"comment/111\",[]],[\"name/112\",[75,47.501]],[\"comment/112\",[]],[\"name/113\",[76,47.501]],[\"comment/113\",[]],[\"name/114\",[77,47.501]],[\"comment/114\",[]],[\"name/115\",[78,47.501]],[\"comment/115\",[]],[\"name/116\",[79,47.501]],[\"comment/116\",[]],[\"name/117\",[80,47.501]],[\"comment/117\",[]],[\"name/118\",[81,47.501]],[\"comment/118\",[]],[\"name/119\",[82,47.501]],[\"comment/119\",[]],[\"name/120\",[83,47.501]],[\"comment/120\",[]],[\"name/121\",[84,47.501]],[\"comment/121\",[]],[\"name/122\",[85,47.501]],[\"comment/122\",[]],[\"name/123\",[86,47.501]],[\"comment/123\",[]],[\"name/124\",[87,47.501]],[\"comment/124\",[]],[\"name/125\",[88,47.501]],[\"comment/125\",[]],[\"name/126\",[89,47.501]],[\"comment/126\",[]],[\"name/127\",[90,47.501]],[\"comment/127\",[]],[\"name/128\",[91,47.501]],[\"comment/128\",[]],[\"name/129\",[92,47.501]],[\"comment/129\",[]],[\"name/130\",[93,47.501]],[\"comment/130\",[]],[\"name/131\",[94,47.501]],[\"comment/131\",[]],[\"name/132\",[95,47.501]],[\"comment/132\",[]],[\"name/133\",[96,47.501]],[\"comment/133\",[]],[\"name/134\",[97,47.501]],[\"comment/134\",[]],[\"name/135\",[98,47.501]],[\"comment/135\",[]],[\"name/136\",[99,47.501]],[\"comment/136\",[]],[\"name/137\",[100,47.501]],[\"comment/137\",[]],[\"name/138\",[101,47.501]],[\"comment/138\",[]],[\"name/139\",[102,47.501]],[\"comment/139\",[]],[\"name/140\",[103,47.501]],[\"comment/140\",[]],[\"name/141\",[104,47.501]],[\"comment/141\",[]],[\"name/142\",[105,47.501]],[\"comment/142\",[]],[\"name/143\",[106,47.501]],[\"comment/143\",[]],[\"name/144\",[107,47.501]],[\"comment/144\",[]],[\"name/145\",[108,47.501]],[\"comment/145\",[]],[\"name/146\",[109,47.501]],[\"comment/146\",[]],[\"name/147\",[110,47.501]],[\"comment/147\",[]],[\"name/148\",[111,47.501]],[\"comment/148\",[]],[\"name/149\",[112,47.501]],[\"comment/149\",[]],[\"name/150\",[113,47.501]],[\"comment/150\",[]],[\"name/151\",[114,47.501]],[\"comment/151\",[]],[\"name/152\",[115,47.501]],[\"comment/152\",[]],[\"name/153\",[116,47.501]],[\"comment/153\",[]],[\"name/154\",[117,47.501]],[\"comment/154\",[]],[\"name/155\",[118,47.501]],[\"comment/155\",[]],[\"name/156\",[119,47.501]],[\"comment/156\",[]],[\"name/157\",[120,47.501]],[\"comment/157\",[]],[\"name/158\",[121,47.501]],[\"comment/158\",[]],[\"name/159\",[122,47.501]],[\"comment/159\",[]],[\"name/160\",[123,47.501]],[\"comment/160\",[]],[\"name/161\",[124,47.501]],[\"comment/161\",[]],[\"name/162\",[125,47.501]],[\"comment/162\",[]],[\"name/163\",[126,47.501]],[\"comment/163\",[]],[\"name/164\",[127,47.501]],[\"comment/164\",[]],[\"name/165\",[128,52.61]],[\"comment/165\",[]],[\"name/166\",[129,52.61]],[\"comment/166\",[]],[\"name/167\",[6,20.969]],[\"comment/167\",[]],[\"name/168\",[7,37.946]],[\"comment/168\",[]],[\"name/169\",[130,52.61]],[\"comment/169\",[]],[\"name/170\",[6,20.969]],[\"comment/170\",[]],[\"name/171\",[131,52.61]],[\"comment/171\",[]],[\"name/172\",[132,52.61]],[\"comment/172\",[]],[\"name/173\",[133,52.61]],[\"comment/173\",[]],[\"name/174\",[134,52.61]],[\"comment/174\",[]],[\"name/175\",[135,52.61]],[\"comment/175\",[]],[\"name/176\",[136,52.61]],[\"comment/176\",[]],[\"name/177\",[137,52.61]],[\"comment/177\",[]],[\"name/178\",[138,52.61]],[\"comment/178\",[]],[\"name/179\",[139,52.61]],[\"comment/179\",[]],[\"name/180\",[140,52.61]],[\"comment/180\",[]],[\"name/181\",[141,52.61]],[\"comment/181\",[]],[\"name/182\",[142,52.61]],[\"comment/182\",[]],[\"name/183\",[143,52.61]],[\"comment/183\",[]],[\"name/184\",[144,52.61]],[\"comment/184\",[]],[\"name/185\",[145,52.61]],[\"comment/185\",[]],[\"name/186\",[6,20.969]],[\"comment/186\",[]],[\"name/187\",[146,52.61]],[\"comment/187\",[]],[\"name/188\",[6,20.969]],[\"comment/188\",[]],[\"name/189\",[147,52.61]],[\"comment/189\",[]],[\"name/190\",[148,52.61]],[\"comment/190\",[]],[\"name/191\",[149,52.61]],[\"comment/191\",[]],[\"name/192\",[150,52.61]],[\"comment/192\",[]],[\"name/193\",[6,20.969]],[\"comment/193\",[]],[\"name/194\",[7,37.946]],[\"comment/194\",[]],[\"name/195\",[151,52.61]],[\"comment/195\",[]],[\"name/196\",[152,52.61]],[\"comment/196\",[]],[\"name/197\",[153,52.61]],[\"comment/197\",[]],[\"name/198\",[154,52.61]],[\"comment/198\",[]],[\"name/199\",[155,52.61]],[\"comment/199\",[]],[\"name/200\",[67,47.501]],[\"comment/200\",[]],[\"name/201\",[156,52.61]],[\"comment/201\",[]],[\"name/202\",[157,52.61]],[\"comment/202\",[]],[\"name/203\",[158,52.61]],[\"comment/203\",[]],[\"name/204\",[18,47.501]],[\"comment/204\",[]],[\"name/205\",[159,52.61]],[\"comment/205\",[]],[\"name/206\",[160,52.61]],[\"comment/206\",[]],[\"name/207\",[161,52.61]],[\"comment/207\",[]],[\"name/208\",[162,52.61]],[\"comment/208\",[]],[\"name/209\",[163,52.61]],[\"comment/209\",[]],[\"name/210\",[164,52.61]],[\"comment/210\",[]],[\"name/211\",[165,52.61]],[\"comment/211\",[]],[\"name/212\",[166,52.61]],[\"comment/212\",[]],[\"name/213\",[6,20.969]],[\"comment/213\",[]],[\"name/214\",[167,52.61]],[\"comment/214\",[]],[\"name/215\",[6,20.969]],[\"comment/215\",[]],[\"name/216\",[168,52.61]],[\"comment/216\",[]],[\"name/217\",[6,20.969]],[\"comment/217\",[]],[\"name/218\",[169,52.61]],[\"comment/218\",[]],[\"name/219\",[6,20.969]],[\"comment/219\",[]],[\"name/220\",[56,44.137]],[\"comment/220\",[]],[\"name/221\",[170,52.61]],[\"comment/221\",[]],[\"name/222\",[6,20.969]],[\"comment/222\",[]],[\"name/223\",[73,47.501]],[\"comment/223\",[]],[\"name/224\",[74,47.501]],[\"comment/224\",[]],[\"name/225\",[75,47.501]],[\"comment/225\",[]],[\"name/226\",[76,47.501]],[\"comment/226\",[]],[\"name/227\",[77,47.501]],[\"comment/227\",[]],[\"name/228\",[78,47.501]],[\"comment/228\",[]],[\"name/229\",[79,47.501]],[\"comment/229\",[]],[\"name/230\",[80,47.501]],[\"comment/230\",[]],[\"name/231\",[81,47.501]],[\"comment/231\",[]],[\"name/232\",[82,47.501]],[\"comment/232\",[]],[\"name/233\",[83,47.501]],[\"comment/233\",[]],[\"name/234\",[84,47.501]],[\"comment/234\",[]],[\"name/235\",[85,47.501]],[\"comment/235\",[]],[\"name/236\",[86,47.501]],[\"comment/236\",[]],[\"name/237\",[87,47.501]],[\"comment/237\",[]],[\"name/238\",[88,47.501]],[\"comment/238\",[]],[\"name/239\",[89,47.501]],[\"comment/239\",[]],[\"name/240\",[90,47.501]],[\"comment/240\",[]],[\"name/241\",[91,47.501]],[\"comment/241\",[]],[\"name/242\",[92,47.501]],[\"comment/242\",[]],[\"name/243\",[93,47.501]],[\"comment/243\",[]],[\"name/244\",[94,47.501]],[\"comment/244\",[]],[\"name/245\",[95,47.501]],[\"comment/245\",[]],[\"name/246\",[96,47.501]],[\"comment/246\",[]],[\"name/247\",[97,47.501]],[\"comment/247\",[]],[\"name/248\",[98,47.501]],[\"comment/248\",[]],[\"name/249\",[99,47.501]],[\"comment/249\",[]],[\"name/250\",[100,47.501]],[\"comment/250\",[]],[\"name/251\",[101,47.501]],[\"comment/251\",[]],[\"name/252\",[102,47.501]],[\"comment/252\",[]],[\"name/253\",[103,47.501]],[\"comment/253\",[]],[\"name/254\",[104,47.501]],[\"comment/254\",[]],[\"name/255\",[105,47.501]],[\"comment/255\",[]],[\"name/256\",[106,47.501]],[\"comment/256\",[]],[\"name/257\",[107,47.501]],[\"comment/257\",[]],[\"name/258\",[108,47.501]],[\"comment/258\",[]],[\"name/259\",[109,47.501]],[\"comment/259\",[]],[\"name/260\",[110,47.501]],[\"comment/260\",[]],[\"name/261\",[111,47.501]],[\"comment/261\",[]],[\"name/262\",[112,47.501]],[\"comment/262\",[]],[\"name/263\",[113,47.501]],[\"comment/263\",[]],[\"name/264\",[114,47.501]],[\"comment/264\",[]],[\"name/265\",[115,47.501]],[\"comment/265\",[]],[\"name/266\",[116,47.501]],[\"comment/266\",[]],[\"name/267\",[117,47.501]],[\"comment/267\",[]],[\"name/268\",[118,47.501]],[\"comment/268\",[]],[\"name/269\",[119,47.501]],[\"comment/269\",[]],[\"name/270\",[120,47.501]],[\"comment/270\",[]],[\"name/271\",[121,47.501]],[\"comment/271\",[]],[\"name/272\",[122,47.501]],[\"comment/272\",[]],[\"name/273\",[123,47.501]],[\"comment/273\",[]],[\"name/274\",[124,47.501]],[\"comment/274\",[]],[\"name/275\",[125,47.501]],[\"comment/275\",[]],[\"name/276\",[126,47.501]],[\"comment/276\",[]],[\"name/277\",[127,47.501]],[\"comment/277\",[]],[\"name/278\",[171,52.61]],[\"comment/278\",[]],[\"name/279\",[172,52.61]],[\"comment/279\",[]],[\"name/280\",[173,47.501]],[\"comment/280\",[]],[\"name/281\",[174,52.61]],[\"comment/281\",[]],[\"name/282\",[6,20.969]],[\"comment/282\",[]],[\"name/283\",[175,52.61]],[\"comment/283\",[]],[\"name/284\",[2,47.501]],[\"comment/284\",[]],[\"name/285\",[7,37.946]],[\"comment/285\",[]],[\"name/286\",[176,52.61]],[\"comment/286\",[]],[\"name/287\",[173,47.501]],[\"comment/287\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":6,\"name\":{\"6\":{},\"12\":{},\"16\":{},\"20\":{},\"23\":{},\"36\":{},\"49\":{},\"53\":{},\"58\":{},\"62\":{},\"68\":{},\"70\":{},\"72\":{},\"75\":{},\"78\":{},\"80\":{},\"83\":{},\"93\":{},\"99\":{},\"101\":{},\"103\":{},\"105\":{},\"107\":{},\"109\":{},\"167\":{},\"170\":{},\"186\":{},\"188\":{},\"193\":{},\"213\":{},\"215\":{},\"217\":{},\"219\":{},\"222\":{},\"282\":{}},\"comment\":{}}],[\"accuracy\",{\"_index\":26,\"name\":{\"30\":{},\"42\":{}},\"comment\":{}}],[\"albanian\",{\"_index\":74,\"name\":{\"111\":{},\"224\":{}},\"comment\":{}}],[\"apikey\",{\"_index\":7,\"name\":{\"7\":{},\"63\":{},\"76\":{},\"168\":{},\"194\":{},\"285\":{}},\"comment\":{}}],[\"arabic\",{\"_index\":75,\"name\":{\"112\":{},\"225\":{}},\"comment\":{}}],[\"area\",{\"_index\":27,\"name\":{\"31\":{},\"44\":{}},\"comment\":{}}],[\"armenian\",{\"_index\":76,\"name\":{\"113\":{},\"226\":{}},\"comment\":{}}],[\"attribution\",{\"_index\":67,\"name\":{\"97\":{},\"200\":{}},\"comment\":{}}],[\"authority\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"auto\",{\"_index\":73,\"name\":{\"110\":{},\"223\":{}},\"comment\":{}}],[\"automatic\",{\"_index\":169,\"name\":{\"218\":{}},\"comment\":{}}],[\"automaticstaticmapoptions\",{\"_index\":164,\"name\":{\"210\":{}},\"comment\":{}}],[\"azerbaijani\",{\"_index\":77,\"name\":{\"114\":{},\"227\":{}},\"comment\":{}}],[\"batch\",{\"_index\":72,\"name\":{\"106\":{}},\"comment\":{}}],[\"bbox\",{\"_index\":28,\"name\":{\"32\":{},\"45\":{}},\"comment\":{}}],[\"belorussian\",{\"_index\":78,\"name\":{\"115\":{},\"228\":{}},\"comment\":{}}],[\"bosnian\",{\"_index\":79,\"name\":{\"116\":{},\"229\":{}},\"comment\":{}}],[\"bounded\",{\"_index\":168,\"name\":{\"216\":{}},\"comment\":{}}],[\"boundedstaticmapoptions\",{\"_index\":163,\"name\":{\"209\":{}},\"comment\":{}}],[\"breton\",{\"_index\":80,\"name\":{\"117\":{},\"230\":{}},\"comment\":{}}],[\"bulgarian\",{\"_index\":81,\"name\":{\"118\":{},\"231\":{}},\"comment\":{}}],[\"byid\",{\"_index\":71,\"name\":{\"104\":{}},\"comment\":{}}],[\"byidgeocodingoptions\",{\"_index\":60,\"name\":{\"88\":{}},\"comment\":{}}],[\"catalan\",{\"_index\":82,\"name\":{\"119\":{},\"232\":{}},\"comment\":{}}],[\"centered\",{\"_index\":167,\"name\":{\"214\":{}},\"comment\":{}}],[\"centeredstaticmapoptions\",{\"_index\":162,\"name\":{\"208\":{}},\"comment\":{}}],[\"chinese\",{\"_index\":83,\"name\":{\"120\":{},\"233\":{}},\"comment\":{}}],[\"city\",{\"_index\":138,\"name\":{\"178\":{}},\"comment\":{}}],[\"clientconfig\",{\"_index\":175,\"name\":{\"283\":{}},\"comment\":{}}],[\"code\",{\"_index\":13,\"name\":{\"14\":{}},\"comment\":{}}],[\"commonforwardandreversegeocodingoptions\",{\"_index\":57,\"name\":{\"85\":{}},\"comment\":{}}],[\"config\",{\"_index\":173,\"name\":{\"280\":{},\"287\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":2,\"name\":{\"2\":{},\"284\":{}},\"comment\":{}}],[\"continent\",{\"_index\":135,\"name\":{\"175\":{}},\"comment\":{}}],[\"continent_code\",{\"_index\":136,\"name\":{\"176\":{}},\"comment\":{}}],[\"coordinateexport\",{\"_index\":14,\"name\":{\"15\":{}},\"comment\":{}}],[\"coordinategrid\",{\"_index\":17,\"name\":{\"19\":{}},\"comment\":{}}],[\"coordinateid\",{\"_index\":11,\"name\":{\"11\":{}},\"comment\":{}}],[\"coordinates\",{\"_index\":47,\"name\":{\"67\":{},\"89\":{}},\"comment\":{}}],[\"coordinatesearch\",{\"_index\":31,\"name\":{\"35\":{}},\"comment\":{}}],[\"coordinatesearchresult\",{\"_index\":34,\"name\":{\"48\":{}},\"comment\":{}}],[\"coordinatessearchoptions\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"coordinatestransformoptions\",{\"_index\":43,\"name\":{\"61\":{}},\"comment\":{}}],[\"coordinatetransformation\",{\"_index\":19,\"name\":{\"22\":{}},\"comment\":{}}],[\"coordinatetransformresult\",{\"_index\":41,\"name\":{\"57\":{}},\"comment\":{}}],[\"country\",{\"_index\":131,\"name\":{\"171\":{}},\"comment\":{}}],[\"country_bounds\",{\"_index\":133,\"name\":{\"173\":{}},\"comment\":{}}],[\"country_code\",{\"_index\":132,\"name\":{\"172\":{}},\"comment\":{}}],[\"country_languages\",{\"_index\":134,\"name\":{\"174\":{}},\"comment\":{}}],[\"croatian\",{\"_index\":84,\"name\":{\"121\":{},\"234\":{}},\"comment\":{}}],[\"czech\",{\"_index\":85,\"name\":{\"122\":{},\"235\":{}},\"comment\":{}}],[\"danish\",{\"_index\":86,\"name\":{\"123\":{},\"236\":{}},\"comment\":{}}],[\"data\",{\"_index\":52,\"name\":{\"77\":{}},\"comment\":{}}],[\"default\",{\"_index\":148,\"name\":{\"190\":{}},\"comment\":{}}],[\"default_transformation\",{\"_index\":33,\"name\":{\"46\":{}},\"comment\":{}}],[\"deprecated\",{\"_index\":24,\"name\":{\"28\":{},\"40\":{}},\"comment\":{}}],[\"dutch\",{\"_index\":87,\"name\":{\"124\":{},\"237\":{}},\"comment\":{}}],[\"english\",{\"_index\":88,\"name\":{\"125\":{},\"238\":{}},\"comment\":{}}],[\"esperanto\",{\"_index\":89,\"name\":{\"126\":{},\"239\":{}},\"comment\":{}}],[\"estonian\",{\"_index\":90,\"name\":{\"127\":{},\"240\":{}},\"comment\":{}}],[\"eu\",{\"_index\":137,\"name\":{\"177\":{}},\"comment\":{}}],[\"exports\",{\"_index\":10,\"name\":{\"10\":{},\"47\":{}},\"comment\":{}}],[\"featurehierarchy\",{\"_index\":61,\"name\":{\"90\":{}},\"comment\":{}}],[\"features\",{\"_index\":65,\"name\":{\"95\":{}},\"comment\":{}}],[\"fetch\",{\"_index\":176,\"name\":{\"286\":{}},\"comment\":{}}],[\"fetchfunction\",{\"_index\":174,\"name\":{\"281\":{}},\"comment\":{}}],[\"finnish\",{\"_index\":91,\"name\":{\"128\":{},\"241\":{}},\"comment\":{}}],[\"format\",{\"_index\":153,\"name\":{\"197\":{}},\"comment\":{}}],[\"forward\",{\"_index\":69,\"name\":{\"100\":{}},\"comment\":{}}],[\"french\",{\"_index\":92,\"name\":{\"129\":{},\"242\":{}},\"comment\":{}}],[\"frisian\",{\"_index\":93,\"name\":{\"130\":{},\"243\":{}},\"comment\":{}}],[\"geocoding\",{\"_index\":68,\"name\":{\"98\":{}},\"comment\":{}}],[\"geocodingfeature\",{\"_index\":62,\"name\":{\"91\":{}},\"comment\":{}}],[\"geocodingoptions\",{\"_index\":58,\"name\":{\"86\":{}},\"comment\":{}}],[\"geocodingsearchresult\",{\"_index\":63,\"name\":{\"92\":{}},\"comment\":{}}],[\"geolocation\",{\"_index\":145,\"name\":{\"185\":{}},\"comment\":{}}],[\"geolocationinfooptions\",{\"_index\":129,\"name\":{\"166\":{}},\"comment\":{}}],[\"geolocationresult\",{\"_index\":130,\"name\":{\"169\":{}},\"comment\":{}}],[\"georgian\",{\"_index\":94,\"name\":{\"131\":{},\"244\":{}},\"comment\":{}}],[\"german\",{\"_index\":95,\"name\":{\"132\":{},\"245\":{}},\"comment\":{}}],[\"get\",{\"_index\":53,\"name\":{\"79\":{}},\"comment\":{}}],[\"getautolanguagegeocoding\",{\"_index\":172,\"name\":{\"279\":{}},\"comment\":{}}],[\"getdataoptions\",{\"_index\":51,\"name\":{\"74\":{}},\"comment\":{}}],[\"greek\",{\"_index\":96,\"name\":{\"133\":{},\"246\":{}},\"comment\":{}}],[\"grids\",{\"_index\":25,\"name\":{\"29\":{}},\"comment\":{}}],[\"hebrew\",{\"_index\":97,\"name\":{\"134\":{},\"247\":{}},\"comment\":{}}],[\"height\",{\"_index\":155,\"name\":{\"199\":{}},\"comment\":{}}],[\"hidpi\",{\"_index\":152,\"name\":{\"196\":{}},\"comment\":{}}],[\"hungarian\",{\"_index\":98,\"name\":{\"135\":{},\"248\":{}},\"comment\":{}}],[\"icelandic\",{\"_index\":99,\"name\":{\"136\":{},\"249\":{}},\"comment\":{}}],[\"id\",{\"_index\":20,\"name\":{\"24\":{},\"37\":{}},\"comment\":{}}],[\"info\",{\"_index\":146,\"name\":{\"187\":{}},\"comment\":{}}],[\"irish\",{\"_index\":100,\"name\":{\"137\":{},\"250\":{}},\"comment\":{}}],[\"italian\",{\"_index\":101,\"name\":{\"138\":{},\"251\":{}},\"comment\":{}}],[\"japanese\",{\"_index\":102,\"name\":{\"139\":{},\"252\":{}},\"comment\":{}}],[\"kannada\",{\"_index\":103,\"name\":{\"140\":{},\"253\":{}},\"comment\":{}}],[\"kazakh\",{\"_index\":104,\"name\":{\"141\":{},\"254\":{}},\"comment\":{}}],[\"kind\",{\"_index\":32,\"name\":{\"39\":{}},\"comment\":{}}],[\"korean\",{\"_index\":105,\"name\":{\"142\":{},\"255\":{}},\"comment\":{}}],[\"language\",{\"_index\":56,\"name\":{\"84\":{},\"108\":{},\"220\":{}},\"comment\":{}}],[\"languagegeocoding\",{\"_index\":170,\"name\":{\"221\":{}},\"comment\":{}}],[\"languagegeocodingoptions\",{\"_index\":55,\"name\":{\"82\":{}},\"comment\":{}}],[\"languagegeocodingstring\",{\"_index\":171,\"name\":{\"278\":{}},\"comment\":{}}],[\"latitude\",{\"_index\":139,\"name\":{\"179\":{}},\"comment\":{}}],[\"latvian\",{\"_index\":107,\"name\":{\"144\":{},\"257\":{}},\"comment\":{}}],[\"limit\",{\"_index\":8,\"name\":{\"8\":{}},\"comment\":{}}],[\"lithuanian\",{\"_index\":108,\"name\":{\"145\":{},\"258\":{}},\"comment\":{}}],[\"longitude\",{\"_index\":140,\"name\":{\"180\":{}},\"comment\":{}}],[\"luxembourgish\",{\"_index\":109,\"name\":{\"146\":{},\"259\":{}},\"comment\":{}}],[\"macedonian\",{\"_index\":110,\"name\":{\"147\":{},\"260\":{}},\"comment\":{}}],[\"maltese\",{\"_index\":111,\"name\":{\"148\":{},\"261\":{}},\"comment\":{}}],[\"markeranchor\",{\"_index\":158,\"name\":{\"203\":{}},\"comment\":{}}],[\"markericon\",{\"_index\":157,\"name\":{\"202\":{}},\"comment\":{}}],[\"markers\",{\"_index\":156,\"name\":{\"201\":{}},\"comment\":{}}],[\"name\",{\"_index\":21,\"name\":{\"25\":{},\"38\":{}},\"comment\":{}}],[\"norwegian\",{\"_index\":112,\"name\":{\"149\":{},\"262\":{}},\"comment\":{}}],[\"operations\",{\"_index\":46,\"name\":{\"66\":{}},\"comment\":{}}],[\"path\",{\"_index\":18,\"name\":{\"21\":{},\"204\":{}},\"comment\":{}}],[\"pathfillcolor\",{\"_index\":160,\"name\":{\"206\":{}},\"comment\":{}}],[\"pathstrokecolor\",{\"_index\":159,\"name\":{\"205\":{}},\"comment\":{}}],[\"pathwidth\",{\"_index\":161,\"name\":{\"207\":{}},\"comment\":{}}],[\"polish\",{\"_index\":113,\"name\":{\"150\":{},\"263\":{}},\"comment\":{}}],[\"portuguese\",{\"_index\":114,\"name\":{\"151\":{},\"264\":{}},\"comment\":{}}],[\"postal\",{\"_index\":141,\"name\":{\"181\":{}},\"comment\":{}}],[\"proj4\",{\"_index\":15,\"name\":{\"17\":{}},\"comment\":{}}],[\"query\",{\"_index\":66,\"name\":{\"96\":{}},\"comment\":{}}],[\"region\",{\"_index\":142,\"name\":{\"182\":{}},\"comment\":{}}],[\"region_code\",{\"_index\":143,\"name\":{\"183\":{}},\"comment\":{}}],[\"res\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"results\",{\"_index\":35,\"name\":{\"50\":{},\"59\":{}},\"comment\":{}}],[\"reverse\",{\"_index\":70,\"name\":{\"102\":{}},\"comment\":{}}],[\"reversegeocodingoptions\",{\"_index\":59,\"name\":{\"87\":{}},\"comment\":{}}],[\"reversible\",{\"_index\":22,\"name\":{\"26\":{}},\"comment\":{}}],[\"roman_latin\",{\"_index\":106,\"name\":{\"143\":{},\"256\":{}},\"comment\":{}}],[\"romanian\",{\"_index\":115,\"name\":{\"152\":{},\"265\":{}},\"comment\":{}}],[\"romansh\",{\"_index\":116,\"name\":{\"153\":{},\"266\":{}},\"comment\":{}}],[\"russian\",{\"_index\":117,\"name\":{\"154\":{},\"267\":{}},\"comment\":{}}],[\"scottish_gaelic\",{\"_index\":118,\"name\":{\"155\":{},\"268\":{}},\"comment\":{}}],[\"search\",{\"_index\":48,\"name\":{\"69\":{}},\"comment\":{}}],[\"serbian_cyrillic\",{\"_index\":119,\"name\":{\"156\":{},\"269\":{}},\"comment\":{}}],[\"serviceerror\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"services/coordinates\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"services/data\",{\"_index\":50,\"name\":{\"73\":{}},\"comment\":{}}],[\"services/geocoding\",{\"_index\":54,\"name\":{\"81\":{}},\"comment\":{}}],[\"services/geolocation\",{\"_index\":128,\"name\":{\"165\":{}},\"comment\":{}}],[\"services/serviceerror\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"services/simplify\",{\"_index\":147,\"name\":{\"189\":{}},\"comment\":{}}],[\"services/staticmaps\",{\"_index\":149,\"name\":{\"191\":{}},\"comment\":{}}],[\"slovak\",{\"_index\":120,\"name\":{\"157\":{},\"270\":{}},\"comment\":{}}],[\"slovene\",{\"_index\":121,\"name\":{\"158\":{},\"271\":{}},\"comment\":{}}],[\"sourcecrs\",{\"_index\":44,\"name\":{\"64\":{}},\"comment\":{}}],[\"spanish\",{\"_index\":122,\"name\":{\"159\":{},\"272\":{}},\"comment\":{}}],[\"staticmapbaseoptions\",{\"_index\":150,\"name\":{\"192\":{}},\"comment\":{}}],[\"staticmapmarker\",{\"_index\":165,\"name\":{\"211\":{}},\"comment\":{}}],[\"staticmaps\",{\"_index\":166,\"name\":{\"212\":{}},\"comment\":{}}],[\"style\",{\"_index\":151,\"name\":{\"195\":{}},\"comment\":{}}],[\"swedish\",{\"_index\":123,\"name\":{\"160\":{},\"273\":{}},\"comment\":{}}],[\"target_crs\",{\"_index\":29,\"name\":{\"33\":{}},\"comment\":{}}],[\"targetcrs\",{\"_index\":45,\"name\":{\"65\":{}},\"comment\":{}}],[\"thai\",{\"_index\":124,\"name\":{\"161\":{},\"274\":{}},\"comment\":{}}],[\"timezone\",{\"_index\":144,\"name\":{\"184\":{}},\"comment\":{}}],[\"total\",{\"_index\":36,\"name\":{\"51\":{}},\"comment\":{}}],[\"transform\",{\"_index\":49,\"name\":{\"71\":{}},\"comment\":{}}],[\"transformations\",{\"_index\":9,\"name\":{\"9\":{},\"41\":{}},\"comment\":{}}],[\"transformer_selection_strategy\",{\"_index\":42,\"name\":{\"60\":{}},\"comment\":{}}],[\"turkish\",{\"_index\":125,\"name\":{\"162\":{},\"275\":{}},\"comment\":{}}],[\"type\",{\"_index\":64,\"name\":{\"94\":{}},\"comment\":{}}],[\"ukrainian\",{\"_index\":126,\"name\":{\"163\":{},\"276\":{}},\"comment\":{}}],[\"unit\",{\"_index\":30,\"name\":{\"34\":{},\"43\":{}},\"comment\":{}}],[\"usable\",{\"_index\":23,\"name\":{\"27\":{}},\"comment\":{}}],[\"welsh\",{\"_index\":127,\"name\":{\"164\":{},\"277\":{}},\"comment\":{}}],[\"width\",{\"_index\":154,\"name\":{\"198\":{}},\"comment\":{}}],[\"wkt\",{\"_index\":16,\"name\":{\"18\":{}},\"comment\":{}}],[\"x\",{\"_index\":38,\"name\":{\"54\":{}},\"comment\":{}}],[\"xyz\",{\"_index\":37,\"name\":{\"52\":{}},\"comment\":{}}],[\"y\",{\"_index\":39,\"name\":{\"55\":{}},\"comment\":{}}],[\"z\",{\"_index\":40,\"name\":{\"56\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/classes/config.ClientConfig.html b/docs/classes/config.ClientConfig.html index 58aa277..eb1b33a 100644 --- a/docs/classes/config.ClientConfig.html +++ b/docs/classes/config.ClientConfig.html @@ -24,7 +24,7 @@

Hierarchy

  • ClientConfig
+
  • Defined in config.ts:19
  • @@ -58,7 +58,7 @@

    Returns void

    +
  • Defined in config.ts:34
  • set fetch(f: FetchFunction): void
  • Set a the custom fetch function to replace the default one

    @@ -92,7 +92,7 @@

    Parameters

    f: FetchFunction
  • Returns void

    +
  • Defined in config.ts:48
  • +
  • Defined in language.ts:71
  • +
  • Defined in services/simplify.ts:76
  • +
  • Defined in language.ts:4
  • diff --git a/docs/modules/services_ServiceError.html b/docs/modules/services_ServiceError.html index 6220665..27a5f61 100644 --- a/docs/modules/services_ServiceError.html +++ b/docs/modules/services_ServiceError.html @@ -16,7 +16,7 @@
  • services/ServiceError
  • Module services/ServiceError

    +
  • Defined in services/ServiceError.ts:4
  • diff --git a/docs/modules/services_coordinates.html b/docs/modules/services_coordinates.html index 413abb5..4d4615f 100644 --- a/docs/modules/services_coordinates.html +++ b/docs/modules/services_coordinates.html @@ -16,7 +16,7 @@
  • services/coordinates
  • Module services/coordinates

    +
  • Defined in services/coordinates.ts:1
  • diff --git a/docs/modules/services_data.html b/docs/modules/services_data.html index 7a7a67d..5cde56c 100644 --- a/docs/modules/services_data.html +++ b/docs/modules/services_data.html @@ -16,7 +16,7 @@
  • services/data
  • Module services/data

    +
  • Defined in services/data.ts:1
  • diff --git a/docs/modules/services_geocoding.html b/docs/modules/services_geocoding.html index bff0304..8061191 100644 --- a/docs/modules/services_geocoding.html +++ b/docs/modules/services_geocoding.html @@ -16,7 +16,7 @@
  • services/geocoding
  • Module services/geocoding

    +
  • Defined in services/geocoding.ts:1
  • diff --git a/docs/modules/services_geolocation.html b/docs/modules/services_geolocation.html index 9f9d30f..a0257de 100644 --- a/docs/modules/services_geolocation.html +++ b/docs/modules/services_geolocation.html @@ -16,7 +16,7 @@
  • services/geolocation
  • Module services/geolocation

    +
  • Defined in services/geolocation.ts:1
  • diff --git a/docs/modules/services_simplify.html b/docs/modules/services_simplify.html index 6a4045b..e97df99 100644 --- a/docs/modules/services_simplify.html +++ b/docs/modules/services_simplify.html @@ -16,7 +16,7 @@
  • services/simplify
  • Module services/simplify

    +
  • Defined in services/simplify.ts:5
  • diff --git a/docs/modules/services_staticMaps.html b/docs/modules/services_staticMaps.html index e6ca9a2..e172f29 100644 --- a/docs/modules/services_staticMaps.html +++ b/docs/modules/services_staticMaps.html @@ -16,7 +16,7 @@
  • services/staticMaps
  • Module services/staticMaps

    +
  • Defined in services/staticMaps.ts:1
  • diff --git a/docs/types/config.FetchFunction.html b/docs/types/config.FetchFunction.html index a249193..2d1d6f9 100644 --- a/docs/types/config.FetchFunction.html +++ b/docs/types/config.FetchFunction.html @@ -33,7 +33,7 @@
    url: string
    options: object

    Returns Promise<any>

    +
  • Defined in config.ts:1
  • +
  • Defined in language.ts:69
  • +
  • Defined in services/coordinates.ts:38
  • +
  • Defined in services/coordinates.ts:43
  • +
  • Defined in services/coordinates.ts:33
  • +
  • Defined in services/coordinates.ts:61
  • +
  • Defined in services/coordinates.ts:91
  • +
  • Defined in services/coordinates.ts:159
  • +
  • Defined in services/coordinates.ts:47
  • +
  • Defined in services/coordinates.ts:11
  • +
  • Defined in services/coordinates.ts:174
  • +
  • Defined in services/coordinates.ts:153
  • +
  • Defined in services/data.ts:14
  • +
  • Defined in services/geocoding.ts:88
  • +
  • Defined in services/geocoding.ts:25
  • +
  • Defined in services/geocoding.ts:90
  • +
  • Defined in services/geocoding.ts:159
  • +
  • Defined in services/geocoding.ts:161
  • +
  • Defined in services/geocoding.ts:58
  • +
  • Defined in services/geocoding.ts:213
  • +
  • Defined in services/geocoding.ts:18
  • +
  • Defined in services/geocoding.ts:86
  • +
  • Defined in services/geolocation.ts:14
  • +
  • Defined in services/staticMaps.ts:141
  • +
  • Defined in services/staticMaps.ts:130
  • +
  • Defined in services/staticMaps.ts:125
  • +
  • Defined in services/staticMaps.ts:146
  • +
  • Defined in config.ts:63
  • +
  • Defined in language.ts:4
  • +
  • Defined in services/coordinates.ts:253
  • +
  • Defined in services/data.ts:59
  • +
  • Defined in services/geocoding.ts:450
  • +
  • Defined in services/geolocation.ts:135
  • +
  • Defined in services/staticMaps.ts:457