@deck.gl/carto 9.0.0-alpha.3 → 9.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cartoRasterTile-worker.js +1 -1
- package/dist/cartoSpatialTile-worker.js +1 -1
- package/dist/cartoVectorTile-worker.js +1 -1
- package/dist/dist.dev.js +33 -25
- package/dist/es5/api/fetch-map.js +16 -8
- package/dist/es5/api/fetch-map.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/es5/layers/utils.js +3 -3
- package/dist/es5/layers/utils.js.map +1 -1
- package/dist/es5/layers/vector-tile-layer.js +1 -1
- package/dist/es5/layers/vector-tile-layer.js.map +1 -1
- package/dist/es5/sources/boundary-query-source.js.map +1 -1
- package/dist/esm/api/fetch-map.js +13 -4
- package/dist/esm/api/fetch-map.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/esm/layers/utils.js +4 -3
- package/dist/esm/layers/utils.js.map +1 -1
- package/dist/esm/layers/vector-tile-layer.js +1 -1
- package/dist/esm/layers/vector-tile-layer.js.map +1 -1
- package/dist/esm/sources/boundary-query-source.js.map +1 -1
- package/dist.min.js +40 -40
- package/package.json +8 -7
- package/src/api/fetch-map.ts +9 -2
- package/src/layers/utils.ts +4 -2
- package/src/layers/vector-tile-layer.ts +1 -1
- package/src/sources/boundary-query-source.ts +1 -1
- package/typed/api/fetch-map.d.ts.map +1 -1
- package/typed/api/layer-map.d.ts +1 -1
- package/typed/layers/h3-tile-layer.d.ts +2 -2
- package/typed/layers/h3-tileset-2d.d.ts +1 -1
- package/typed/layers/point-label-layer.d.ts +2 -2
- package/typed/layers/quadbin-layer.d.ts +2 -2
- package/typed/layers/quadbin-tile-layer.d.ts +1 -1
- package/typed/layers/quadbin-tileset-2d.d.ts +1 -1
- package/typed/layers/raster-layer.d.ts +2 -2
- package/typed/layers/raster-tile-layer.d.ts +1 -1
- package/typed/layers/spatial-index-tile-layer.d.ts +3 -3
- package/typed/layers/utils.d.ts.map +1 -1
- package/typed/layers/vector-tile-layer.d.ts +3 -3
- package/typed/sources/boundary-query-source.d.ts +1 -1
- package/typed/sources/boundary-query-source.d.ts.map +1 -1
- package/typed/style/color-bins-style.d.ts +1 -1
- package/typed/style/color-categories-style.d.ts +1 -1
- package/typed/style/color-continuous-style.d.ts +1 -1
- package/typed/package.json +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/fetch-map.ts"],"names":["CartoAPIError","DEFAULT_API_BASE_URL","DEFAULT_CLIENT","buildMapsUrlFromBase","buildStatsUrlFromBase","h3QuerySource","h3TableSource","quadbinQuerySource","quadbinTableSource","vectorQuerySource","vectorTableSource","vectorTilesetSource","parseMap","requestWithParameters","assert","_fetchMapDataset","dataset","accessToken","apiBaseUrl","clientId","headers","aggregationExp","aggregationResLevel","connectionName","columns","format","geoColumn","source","type","queryParameters","cache","globalOptions","data","tableName","spatialDataType","spatialDataColumn","split","options","sqlQuery","cacheChanged","value","_fetchTilestats","attribute","connection","id","errorContext","requestType","Error","statsUrl","baseUrl","Authorization","stats","parameters","q","attributes","tilestats","layers","index","findIndex","d","fillInMapDatasets","datasets","token","promises","map","Promise","all","fillInTileStats","keplerMapConfig","config","visState","layer","channel","Object","keys","visualChannels","name","find","dataId","push","filteredAttributes","a","fetchMap","cartoMapId","mapsUrl","autoRefresh","onNewData","mapId","stopAutoRefresh","intervalId","setInterval","changed","Date","toUTCString","some","v","clearInterval","geojsonLayers","filter","geojsonDatasetIds","forEach","includes","geojson","out","textLayers","pointType","props","length","window","FontFace","document","fonts","check","font","load","then","f","add"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase */\n/**\n * Maps API Client for Carto 3\n */\nimport {CartoAPIError} from './carto-api-error';\nimport {DEFAULT_API_BASE_URL, DEFAULT_CLIENT} from './common';\nimport {buildMapsUrlFromBase, buildStatsUrlFromBase} from './endpoints';\nimport {\n GeojsonResult,\n JsonResult,\n TilejsonResult,\n h3QuerySource,\n h3TableSource,\n quadbinQuerySource,\n quadbinTableSource,\n vectorQuerySource,\n vectorTableSource,\n vectorTilesetSource\n} from '../sources';\nimport {parseMap} from './parse-map';\nimport {requestWithParameters} from './request-with-parameters';\nimport {assert} from '../utils';\nimport type {APIErrorContext, Format, MapType, QueryParameters} from './types';\n\ntype Dataset = {\n id: string;\n type: MapType;\n source: string;\n cache?: number;\n connectionName: string;\n geoColumn: string;\n data: TilejsonResult | GeojsonResult | JsonResult;\n columns: string[];\n format: Format;\n aggregationExp: string;\n aggregationResLevel: number;\n queryParameters: QueryParameters;\n};\n\n/* global clearInterval, setInterval, URL */\n/* eslint-disable complexity, max-statements */\nasync function _fetchMapDataset(\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string,\n clientId?: string,\n headers?: Record<string, string>\n) {\n const {\n aggregationExp,\n aggregationResLevel,\n connectionName,\n columns,\n format,\n geoColumn,\n source,\n type,\n queryParameters\n } = dataset;\n\n const cache: {value?: number} = {};\n const globalOptions: any = {\n accessToken,\n apiBaseUrl,\n cache,\n clientId,\n connectionName,\n format,\n headers\n };\n\n if (type === 'tileset') {\n // TODO do we want a generic tilesetSource?\n // @ts-ignore\n dataset.data = await vectorTilesetSource({...globalOptions, tableName: source});\n } else {\n const [spatialDataType, spatialDataColumn] = geoColumn ? geoColumn.split(':') : ['geom'];\n if (spatialDataType === 'geom') {\n const options = {...globalOptions, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await vectorTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await vectorQuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'h3') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await h3TableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await h3QuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'quadbin') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await quadbinTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await quadbinQuerySource({...options, sqlQuery: source, queryParameters});\n }\n }\n }\n let cacheChanged = true;\n if (cache.value) {\n cacheChanged = dataset.cache !== cache.value;\n dataset.cache = cache.value;\n }\n\n return cacheChanged;\n}\n\nasync function _fetchTilestats(\n attribute,\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string\n) {\n const {connectionName: connection, data, id, source, type} = dataset;\n const errorContext: APIErrorContext = {requestType: 'Tile stats', connection, type, source};\n if (!('tilestats' in data)) {\n throw new CartoAPIError(new Error(`Invalid dataset for tilestats: ${id}`), errorContext);\n }\n\n const statsUrl = buildStatsUrlFromBase(apiBaseUrl);\n let baseUrl = `${statsUrl}/${connection}/`;\n if (type === 'query') {\n baseUrl += attribute;\n } else {\n // MAP_TYPE.TABLE\n baseUrl += `${source}/${attribute}`;\n }\n\n const headers = {Authorization: `Bearer ${accessToken}`};\n const stats = await requestWithParameters({\n baseUrl,\n headers,\n parameters: type === 'query' ? {q: source} : {},\n errorContext\n });\n\n // Replace tilestats for attribute with value from API\n const {attributes} = data.tilestats.layers[0];\n const index = attributes.findIndex(d => d.attribute === attribute);\n attributes[index] = stats;\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token}: {datasets: Dataset[]; token: string},\n clientId: string,\n apiBaseUrl: string,\n headers?: Record<string, string>\n) {\n const promises = datasets.map(dataset =>\n _fetchMapDataset(dataset, token, apiBaseUrl, clientId, headers)\n );\n return await Promise.all(promises);\n}\n\nasync function fillInTileStats(\n {datasets, keplerMapConfig, token}: {datasets: Dataset[]; keplerMapConfig: any; token: string},\n apiBaseUrl: string\n) {\n const attributes: {attribute?: string; dataset?: any}[] = [];\n const {layers} = keplerMapConfig.config.visState;\n for (const layer of layers) {\n for (const channel of Object.keys(layer.visualChannels)) {\n const attribute = layer.visualChannels[channel]?.name;\n if (attribute) {\n const dataset = datasets.find(d => d.id === layer.config.dataId);\n if (dataset && dataset.type !== 'tileset' && (dataset.data as TilejsonResult).tilestats) {\n // Only fetch stats for QUERY & TABLE map types\n attributes.push({attribute, dataset});\n }\n }\n }\n }\n // Remove duplicates to avoid repeated requests\n const filteredAttributes: {attribute?: string; dataset?: any}[] = [];\n for (const a of attributes) {\n if (\n !filteredAttributes.find(\n ({attribute, dataset}) => attribute === a.attribute && dataset === a.dataset\n )\n ) {\n filteredAttributes.push(a);\n }\n }\n\n const promises = filteredAttributes.map(({attribute, dataset}) =>\n _fetchTilestats(attribute, dataset, token, apiBaseUrl)\n );\n return await Promise.all(promises);\n}\n\nexport type FetchMapOptions = {\n apiBaseUrl?: string;\n cartoMapId: string;\n clientId?: string;\n headers?: Record<string, string>;\n mapsUrl?: string;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n};\n\n/* eslint-disable max-statements */\nexport async function fetchMap({\n apiBaseUrl = DEFAULT_API_BASE_URL,\n cartoMapId,\n clientId = DEFAULT_CLIENT,\n headers = {},\n mapsUrl,\n autoRefresh,\n onNewData\n}: FetchMapOptions) {\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n assert(apiBaseUrl, 'Must define apiBaseUrl');\n\n if (autoRefresh || onNewData) {\n assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n assert(typeof onNewData === 'function', '`onNewData` must be a function');\n assert(\n typeof autoRefresh === 'number' && autoRefresh > 0,\n '`autoRefresh` must be a positive number'\n );\n }\n\n const baseUrl = `${mapsUrl || buildMapsUrlFromBase(apiBaseUrl)}/public/${cartoMapId}`;\n const errorContext: APIErrorContext = {requestType: 'Public map', mapId: cartoMapId};\n const map = await requestWithParameters({baseUrl, headers, errorContext});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh: (() => void) | undefined;\n if (autoRefresh) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, apiBaseUrl, {\n ...headers,\n 'If-Modified-Since': new Date().toUTCString()\n });\n if (onNewData && changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n const geojsonLayers = map.keplerMapConfig.config.visState.layers.filter(\n ({type}) => type === 'geojson' || type === 'point'\n );\n const geojsonDatasetIds = geojsonLayers.map(({config}) => config.dataId);\n map.datasets.forEach(dataset => {\n if (geojsonDatasetIds.includes(dataset.id)) {\n const {config} = geojsonLayers.find(({config}) => config.dataId === dataset.id);\n dataset.format = 'geojson';\n // Support for very old maps. geoColumn was not stored in the past\n if (!dataset.geoColumn && config.columns.geojson) {\n dataset.geoColumn = config.columns.geojson;\n }\n }\n });\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, apiBaseUrl, headers);\n\n // Mutates attributes in visualChannels to contain tile stats\n await fillInTileStats(map, apiBaseUrl);\n const out = {...parseMap(map), ...{stopAutoRefresh}};\n\n const textLayers = out.layers.filter(layer => {\n const pointType = layer.props.pointType || '';\n return pointType.includes('text');\n });\n\n /* global FontFace, window, document */\n if (textLayers.length && window.FontFace && !document.fonts.check('12px Inter')) {\n // Fetch font needed for labels\n const font = new FontFace(\n 'Inter',\n 'url(https://fonts.gstatic.com/s/inter/v12/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7W0Q5nw.woff2)'\n );\n await font.load().then(f => document.fonts.add(f));\n }\n\n return out;\n}\n"],"file":"fetch-map.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/fetch-map.ts"],"names":["CartoAPIError","DEFAULT_API_BASE_URL","DEFAULT_CLIENT","buildMapsUrlFromBase","buildStatsUrlFromBase","h3QuerySource","h3TableSource","quadbinQuerySource","quadbinTableSource","vectorQuerySource","vectorTableSource","vectorTilesetSource","parseMap","requestWithParameters","assert","_fetchMapDataset","dataset","accessToken","apiBaseUrl","clientId","headers","aggregationExp","aggregationResLevel","connectionName","columns","format","geoColumn","source","type","queryParameters","cache","globalOptions","data","tableName","spatialDataType","spatialDataColumn","split","options","sqlQuery","cacheChanged","value","_fetchTilestats","attribute","connection","id","errorContext","requestType","Error","statsUrl","baseUrl","Authorization","parameters","q","JSON","stringify","stats","attributes","tilestats","layers","index","findIndex","d","fillInMapDatasets","datasets","token","promises","map","Promise","all","fillInTileStats","keplerMapConfig","config","visState","layer","channel","Object","keys","visualChannels","name","find","dataId","push","filteredAttributes","a","fetchMap","cartoMapId","mapsUrl","autoRefresh","onNewData","mapId","stopAutoRefresh","intervalId","setInterval","changed","Date","toUTCString","some","v","clearInterval","geojsonLayers","filter","geojsonDatasetIds","forEach","includes","geojson","out","textLayers","pointType","props","length","window","FontFace","document","fonts","check","font","load","then","f","add"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase */\n/**\n * Maps API Client for Carto 3\n */\nimport {CartoAPIError} from './carto-api-error';\nimport {DEFAULT_API_BASE_URL, DEFAULT_CLIENT} from './common';\nimport {buildMapsUrlFromBase, buildStatsUrlFromBase} from './endpoints';\nimport {\n GeojsonResult,\n JsonResult,\n TilejsonResult,\n h3QuerySource,\n h3TableSource,\n quadbinQuerySource,\n quadbinTableSource,\n vectorQuerySource,\n vectorTableSource,\n vectorTilesetSource\n} from '../sources';\nimport {parseMap} from './parse-map';\nimport {requestWithParameters} from './request-with-parameters';\nimport {assert} from '../utils';\nimport type {APIErrorContext, Format, MapType, QueryParameters} from './types';\n\ntype Dataset = {\n id: string;\n type: MapType;\n source: string;\n cache?: number;\n connectionName: string;\n geoColumn: string;\n data: TilejsonResult | GeojsonResult | JsonResult;\n columns: string[];\n format: Format;\n aggregationExp: string;\n aggregationResLevel: number;\n queryParameters: QueryParameters;\n};\n\n/* global clearInterval, setInterval, URL */\n/* eslint-disable complexity, max-statements */\nasync function _fetchMapDataset(\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string,\n clientId?: string,\n headers?: Record<string, string>\n) {\n const {\n aggregationExp,\n aggregationResLevel,\n connectionName,\n columns,\n format,\n geoColumn,\n source,\n type,\n queryParameters\n } = dataset;\n\n const cache: {value?: number} = {};\n const globalOptions: any = {\n accessToken,\n apiBaseUrl,\n cache,\n clientId,\n connectionName,\n format,\n headers\n };\n\n if (type === 'tileset') {\n // TODO do we want a generic tilesetSource?\n // @ts-ignore\n dataset.data = await vectorTilesetSource({...globalOptions, tableName: source});\n } else {\n const [spatialDataType, spatialDataColumn] = geoColumn ? geoColumn.split(':') : ['geom'];\n if (spatialDataType === 'geom') {\n const options = {...globalOptions, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await vectorTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await vectorQuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'h3') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await h3TableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await h3QuerySource({...options, sqlQuery: source, queryParameters});\n }\n } else if (spatialDataType === 'quadbin') {\n const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn};\n if (type === 'table') {\n dataset.data = await quadbinTableSource({...options, columns, tableName: source});\n } else if (type === 'query') {\n dataset.data = await quadbinQuerySource({...options, sqlQuery: source, queryParameters});\n }\n }\n }\n let cacheChanged = true;\n if (cache.value) {\n cacheChanged = dataset.cache !== cache.value;\n dataset.cache = cache.value;\n }\n\n return cacheChanged;\n}\n\nasync function _fetchTilestats(\n attribute,\n dataset: Dataset,\n accessToken: string,\n apiBaseUrl: string\n) {\n const {connectionName: connection, data, id, source, type, queryParameters} = dataset;\n const errorContext: APIErrorContext = {requestType: 'Tile stats', connection, type, source};\n if (!('tilestats' in data)) {\n throw new CartoAPIError(new Error(`Invalid dataset for tilestats: ${id}`), errorContext);\n }\n\n const statsUrl = buildStatsUrlFromBase(apiBaseUrl);\n let baseUrl = `${statsUrl}/${connection}/`;\n if (type === 'query') {\n baseUrl += attribute;\n } else {\n // MAP_TYPE.TABLE\n baseUrl += `${source}/${attribute}`;\n }\n\n const headers = {Authorization: `Bearer ${accessToken}`};\n const parameters: Record<string, string> = {};\n if (type === 'query') {\n parameters.q = source;\n if (queryParameters) {\n parameters.queryParameters = JSON.stringify(queryParameters);\n }\n }\n const stats = await requestWithParameters({\n baseUrl,\n headers,\n parameters,\n errorContext\n });\n\n // Replace tilestats for attribute with value from API\n const {attributes} = data.tilestats.layers[0];\n const index = attributes.findIndex(d => d.attribute === attribute);\n attributes[index] = stats;\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token}: {datasets: Dataset[]; token: string},\n clientId: string,\n apiBaseUrl: string,\n headers?: Record<string, string>\n) {\n const promises = datasets.map(dataset =>\n _fetchMapDataset(dataset, token, apiBaseUrl, clientId, headers)\n );\n return await Promise.all(promises);\n}\n\nasync function fillInTileStats(\n {datasets, keplerMapConfig, token}: {datasets: Dataset[]; keplerMapConfig: any; token: string},\n apiBaseUrl: string\n) {\n const attributes: {attribute?: string; dataset?: any}[] = [];\n const {layers} = keplerMapConfig.config.visState;\n for (const layer of layers) {\n for (const channel of Object.keys(layer.visualChannels)) {\n const attribute = layer.visualChannels[channel]?.name;\n if (attribute) {\n const dataset = datasets.find(d => d.id === layer.config.dataId);\n if (dataset && dataset.type !== 'tileset' && (dataset.data as TilejsonResult).tilestats) {\n // Only fetch stats for QUERY & TABLE map types\n attributes.push({attribute, dataset});\n }\n }\n }\n }\n // Remove duplicates to avoid repeated requests\n const filteredAttributes: {attribute?: string; dataset?: any}[] = [];\n for (const a of attributes) {\n if (\n !filteredAttributes.find(\n ({attribute, dataset}) => attribute === a.attribute && dataset === a.dataset\n )\n ) {\n filteredAttributes.push(a);\n }\n }\n\n const promises = filteredAttributes.map(({attribute, dataset}) =>\n _fetchTilestats(attribute, dataset, token, apiBaseUrl)\n );\n return await Promise.all(promises);\n}\n\nexport type FetchMapOptions = {\n apiBaseUrl?: string;\n cartoMapId: string;\n clientId?: string;\n headers?: Record<string, string>;\n mapsUrl?: string;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n};\n\n/* eslint-disable max-statements */\nexport async function fetchMap({\n apiBaseUrl = DEFAULT_API_BASE_URL,\n cartoMapId,\n clientId = DEFAULT_CLIENT,\n headers = {},\n mapsUrl,\n autoRefresh,\n onNewData\n}: FetchMapOptions) {\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n assert(apiBaseUrl, 'Must define apiBaseUrl');\n\n if (autoRefresh || onNewData) {\n assert(onNewData, 'Must define `onNewData` when using autoRefresh');\n assert(typeof onNewData === 'function', '`onNewData` must be a function');\n assert(\n typeof autoRefresh === 'number' && autoRefresh > 0,\n '`autoRefresh` must be a positive number'\n );\n }\n\n const baseUrl = `${mapsUrl || buildMapsUrlFromBase(apiBaseUrl)}/public/${cartoMapId}`;\n const errorContext: APIErrorContext = {requestType: 'Public map', mapId: cartoMapId};\n const map = await requestWithParameters({baseUrl, headers, errorContext});\n\n // Periodically check if the data has changed. Note that this\n // will not update when a map is published.\n let stopAutoRefresh: (() => void) | undefined;\n if (autoRefresh) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const intervalId = setInterval(async () => {\n const changed = await fillInMapDatasets(map, clientId, apiBaseUrl, {\n ...headers,\n 'If-Modified-Since': new Date().toUTCString()\n });\n if (onNewData && changed.some(v => v === true)) {\n onNewData(parseMap(map));\n }\n }, autoRefresh * 1000);\n stopAutoRefresh = () => {\n clearInterval(intervalId);\n };\n }\n\n const geojsonLayers = map.keplerMapConfig.config.visState.layers.filter(\n ({type}) => type === 'geojson' || type === 'point'\n );\n const geojsonDatasetIds = geojsonLayers.map(({config}) => config.dataId);\n map.datasets.forEach(dataset => {\n if (geojsonDatasetIds.includes(dataset.id)) {\n const {config} = geojsonLayers.find(({config}) => config.dataId === dataset.id);\n dataset.format = 'geojson';\n // Support for very old maps. geoColumn was not stored in the past\n if (!dataset.geoColumn && config.columns.geojson) {\n dataset.geoColumn = config.columns.geojson;\n }\n }\n });\n\n // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, apiBaseUrl, headers);\n\n // Mutates attributes in visualChannels to contain tile stats\n await fillInTileStats(map, apiBaseUrl);\n const out = {...parseMap(map), ...{stopAutoRefresh}};\n\n const textLayers = out.layers.filter(layer => {\n const pointType = layer.props.pointType || '';\n return pointType.includes('text');\n });\n\n /* global FontFace, window, document */\n if (textLayers.length && window.FontFace && !document.fonts.check('12px Inter')) {\n // Fetch font needed for labels\n const font = new FontFace(\n 'Inter',\n 'url(https://fonts.gstatic.com/s/inter/v12/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7W0Q5nw.woff2)'\n );\n await font.load().then(f => document.fonts.add(f));\n }\n\n return out;\n}\n"],"file":"fetch-map.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TileReader } from './carto-raster-tile';
|
|
2
2
|
import { parsePbf } from './tile-loader-utils';
|
|
3
3
|
import { getWorkerUrl } from '../../utils';
|
|
4
|
-
const VERSION = typeof "9.0.0-alpha.
|
|
4
|
+
const VERSION = typeof "9.0.0-alpha.5" !== 'undefined' ? "9.0.0-alpha.5" : 'latest';
|
|
5
5
|
const id = 'cartoRasterTile';
|
|
6
6
|
const DEFAULT_OPTIONS = {
|
|
7
7
|
cartoRasterTile: {
|
|
@@ -2,7 +2,7 @@ import { TileReader } from './carto-spatial-tile';
|
|
|
2
2
|
import { parsePbf } from './tile-loader-utils';
|
|
3
3
|
import { getWorkerUrl } from '../../utils';
|
|
4
4
|
import { binaryToSpatialjson } from './spatialjson-utils';
|
|
5
|
-
const VERSION = typeof "9.0.0-alpha.
|
|
5
|
+
const VERSION = typeof "9.0.0-alpha.5" !== 'undefined' ? "9.0.0-alpha.5" : 'latest';
|
|
6
6
|
const id = 'cartoSpatialTile';
|
|
7
7
|
const DEFAULT_OPTIONS = {
|
|
8
8
|
cartoSpatialTile: {
|
|
@@ -2,7 +2,7 @@ import earcut from 'earcut';
|
|
|
2
2
|
import { TileReader } from './carto-tile';
|
|
3
3
|
import { parsePbf } from './tile-loader-utils';
|
|
4
4
|
import { getWorkerUrl } from '../../utils';
|
|
5
|
-
const VERSION = typeof "9.0.0-alpha.
|
|
5
|
+
const VERSION = typeof "9.0.0-alpha.5" !== 'undefined' ? "9.0.0-alpha.5" : 'latest';
|
|
6
6
|
const id = 'cartoVectorTile';
|
|
7
7
|
const DEFAULT_OPTIONS = {
|
|
8
8
|
cartoVectorTile: {
|
package/dist/esm/layers/utils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { log } from '@deck.gl/core';
|
|
1
2
|
import { _deepEqual as deepEqual } from '@deck.gl/core';
|
|
2
3
|
export function injectAccessToken(loadOptions, accessToken) {
|
|
3
4
|
var _loadOptions$fetch, _loadOptions$fetch$he;
|
|
@@ -20,10 +21,10 @@ export function mergeBoundaryData(geometry, properties) {
|
|
|
20
21
|
...rest
|
|
21
22
|
} of properties.properties) {
|
|
22
23
|
if (geoid in mapping) {
|
|
23
|
-
|
|
24
|
+
log.warn(`Duplicate geoid key in boundary mapping, using first occurance`)();
|
|
25
|
+
} else {
|
|
26
|
+
mapping[geoid] = rest;
|
|
24
27
|
}
|
|
25
|
-
|
|
26
|
-
mapping[geoid] = rest;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
for (const type of ['points', 'lines', 'polygons']) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["_deepEqual","deepEqual","injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization","mergeBoundaryData","geometry","properties","mapping","geoid","rest","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["log","_deepEqual","deepEqual","injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization","mergeBoundaryData","geometry","properties","mapping","geoid","rest","warn","type","geom","positions","value","length","map","globalFeatureIds","indices","pathIndices","polygonIndices","size","key","numericProps","sourceProp","TypedArray","constructor","destProp","i","featureId","startIndex","endIndex","fill","TilejsonPropType","validate","propType","optional","Array","isArray","tiles","every","url","equal","value1","value2","async"],"mappings":"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","sourcesContent":["import {log} from '@deck.gl/core';\nimport {Tile as PropertiesTile} from './schema/carto-properties-tile';\nimport {Tile as VectorTile} from './schema/carto-tile';\nimport {_deepEqual as deepEqual} from '@deck.gl/core';\nimport type {TilejsonResult} from '../sources/types';\n\n/**\n * Adds access token to Authorization header in loadOptions\n */\nexport function injectAccessToken(loadOptions: any, accessToken: string): void {\n if (!loadOptions?.fetch?.headers?.Authorization) {\n loadOptions.fetch = {\n ...loadOptions.fetch,\n headers: {...loadOptions.fetch?.headers, Authorization: `Bearer ${accessToken}`}\n };\n }\n}\n\nexport function mergeBoundaryData(geometry: VectorTile, properties: PropertiesTile): VectorTile {\n const mapping = {};\n for (const {geoid, ...rest} of properties.properties) {\n if (geoid in mapping) {\n log.warn(`Duplicate geoid key in boundary mapping, using first occurance`)();\n } else {\n mapping[geoid] = rest;\n }\n }\n\n for (const type of ['points', 'lines', 'polygons']) {\n const geom = geometry[type];\n if (geom.positions.value.length === 0) {\n continue;\n }\n\n geom.properties = geom.properties.map(({geoid}) => mapping[geoid]);\n\n // numericProps need to be filled to match length of positions buffer\n const {positions, globalFeatureIds} = geom;\n let indices: Uint16Array | Uint32Array | null = null;\n if (type === 'lines') indices = geom.pathIndices.value;\n if (type === 'polygons') indices = geom.polygonIndices.value;\n const length = positions.value.length / positions.size;\n for (const key in properties.numericProps) {\n const sourceProp = properties.numericProps[key].value;\n const TypedArray = sourceProp.constructor as\n | Float32ArrayConstructor\n | Float64ArrayConstructor;\n const destProp = new TypedArray(length);\n geom.numericProps[key] = {value: destProp, size: 1};\n\n if (!indices) {\n for (let i = 0; i < length; i++) {\n // points\n const featureId = globalFeatureIds.value[i];\n destProp[i] = sourceProp[featureId];\n }\n } else {\n // lines|polygons\n for (let i = 0; i < indices.length - 1; i++) {\n const startIndex = indices[i];\n const endIndex = indices[i + 1];\n const featureId = globalFeatureIds.value[startIndex];\n destProp.fill(sourceProp[featureId], startIndex, endIndex);\n }\n }\n }\n }\n\n return geometry;\n}\n\nexport const TilejsonPropType = {\n type: 'object' as const,\n value: null as null | TilejsonResult,\n validate: (value: TilejsonResult, propType) =>\n (propType.optional && value === null) ||\n (typeof value === 'object' &&\n Array.isArray(value.tiles) &&\n value.tiles.every(url => typeof url === 'string')),\n equal: (value1, value2) => {\n return deepEqual(value1, value2, 2);\n },\n async: true\n};\n"],"file":"utils.js"}
|
|
@@ -94,7 +94,7 @@ export default class VectorTileLayer extends MVTLayer {
|
|
|
94
94
|
});
|
|
95
95
|
const [geometry, attributes] = await Promise.all([geometryFetch, attributesFetch]);
|
|
96
96
|
if (!geometry) return null;
|
|
97
|
-
return mergeBoundaryData(geometry, attributes);
|
|
97
|
+
return attributes ? mergeBoundaryData(geometry, attributes) : geometry;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
renderSubLayers(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["registerLoaders","CartoPropertiesTileLoader","CartoVectorTileLoader","ClipExtension","MVTLayer","_getURLFromTemplate","GeoJsonLayer","binaryToGeojson","TilejsonPropType","injectAccessToken","mergeBoundaryData","defaultProps","data","dataComparator","equal","VectorTileLayer","state","initializeState","setState","binary","updateState","parameters","props","formatTiles","URL","tiles","searchParams","get","mvt","getLoadOptions","loadOptions","tileJSON","accessToken","gis","format","getTileData","tile","properties_tiles","url","Promise","reject","fetch","signal","geometryFetch","propName","layer","propertiesUrl","attributesFetch","geometry","attributes","all","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","clipBounds","subLayer","getPickingInfo","params","info","index","sourceLayer","object","globalFeatureId","layerName"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["registerLoaders","CartoPropertiesTileLoader","CartoVectorTileLoader","ClipExtension","MVTLayer","_getURLFromTemplate","GeoJsonLayer","binaryToGeojson","TilejsonPropType","injectAccessToken","mergeBoundaryData","defaultProps","data","dataComparator","equal","VectorTileLayer","state","initializeState","setState","binary","updateState","parameters","props","formatTiles","URL","tiles","searchParams","get","mvt","getLoadOptions","loadOptions","tileJSON","accessToken","gis","format","getTileData","tile","properties_tiles","url","Promise","reject","fetch","signal","geometryFetch","propName","layer","propertiesUrl","attributesFetch","geometry","attributes","all","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","clipBounds","subLayer","getPickingInfo","params","info","index","sourceLayer","object","globalFeatureId","layerName"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport CartoPropertiesTileLoader from './schema/carto-properties-tile-loader';\nimport CartoVectorTileLoader from './schema/carto-vector-tile-loader';\nregisterLoaders([CartoPropertiesTileLoader, CartoVectorTileLoader]);\n\nimport {DefaultProps} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\nimport {\n MVTLayer,\n MVTLayerProps,\n TileLayer,\n _getURLFromTemplate,\n _Tile2DHeader,\n _TileLoadProps as TileLoadProps\n} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {binaryToGeojson} from '@loaders.gl/gis';\nimport type {BinaryFeatureCollection} from '@loaders.gl/schema';\nimport type {Feature} from 'geojson';\n\nimport type {TilejsonResult} from '../sources/types';\nimport {TilejsonPropType, injectAccessToken, mergeBoundaryData} from './utils';\n\nconst defaultProps: DefaultProps<VectorTileLayerProps> = {\n ...MVTLayer.defaultProps,\n data: TilejsonPropType,\n dataComparator: TilejsonPropType.equal\n};\n\n/** All properties supported by VectorTileLayer. */\nexport type VectorTileLayerProps = _VectorTileLayerProps & Omit<MVTLayerProps, 'data'>;\n\n/** Properties added by VectorTileLayer. */\ntype _VectorTileLayerProps = {\n data: null | TilejsonResult | Promise<TilejsonResult>;\n};\n\n// TODO Perhaps we can't subclass MVTLayer and keep types. Better to subclass TileLayer instead?\n// @ts-ignore\nexport default class VectorTileLayer<ExtraProps extends {} = {}> extends MVTLayer<\n Required<_VectorTileLayerProps> & ExtraProps\n> {\n static layerName = 'VectorTileLayer';\n static defaultProps = defaultProps;\n\n state!: MVTLayer['state'] & {\n mvt: boolean;\n };\n\n initializeState(): void {\n super.initializeState();\n this.setState({binary: true});\n }\n\n updateState(parameters) {\n const {props} = parameters;\n if (props.data) {\n super.updateState(parameters);\n\n const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');\n const mvt = formatTiles === 'mvt';\n this.setState({mvt});\n }\n }\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as TilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.gis = {format: 'binary'}; // Use binary for MVT loading\n return loadOptions;\n }\n\n async getTileData(tile: TileLoadProps) {\n const tileJSON = this.props.data as TilejsonResult;\n const {tiles, properties_tiles} = tileJSON;\n const url = _getURLFromTemplate(tiles, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n\n const loadOptions = this.getLoadOptions();\n const {fetch} = this.props;\n const {signal} = tile;\n\n // Fetch geometry and attributes separately\n const geometryFetch = fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n\n if (!properties_tiles) {\n return await geometryFetch;\n }\n\n const propertiesUrl = _getURLFromTemplate(properties_tiles, tile);\n if (!propertiesUrl) {\n return Promise.reject('Invalid properties URL');\n }\n\n const attributesFetch = fetch(propertiesUrl, {\n propName: 'data',\n layer: this,\n loadOptions,\n signal\n });\n const [geometry, attributes] = await Promise.all([geometryFetch, attributesFetch]);\n if (!geometry) return null;\n\n return attributes ? mergeBoundaryData(geometry, attributes) : geometry;\n }\n\n renderSubLayers(\n props: TileLayer['props'] & {\n id: string;\n data: any;\n _offset: number;\n tile: _Tile2DHeader;\n }\n ): GeoJsonLayer | null {\n if (props.data === null) {\n return null;\n }\n\n if (this.state.mvt) {\n return super.renderSubLayers(props) as GeoJsonLayer;\n }\n\n const tileBbox = props.tile.bbox as any;\n const {west, south, east, north} = tileBbox;\n\n const subLayerProps = {\n ...props,\n autoHighlight: false,\n extensions: [new ClipExtension(), ...(props.extensions || [])],\n clipBounds: [west, south, east, north]\n };\n\n const subLayer = new GeoJsonLayer(subLayerProps);\n return subLayer;\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n\n if (this.state.binary && info.index !== -1) {\n const {data} = params.sourceLayer!.props;\n info.object = binaryToGeojson(data as BinaryFeatureCollection, {\n globalFeatureId: info.index\n }) as Feature;\n }\n\n return info;\n }\n}\n"],"file":"vector-tile-layer.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sources/boundary-query-source.ts"],"names":["baseSource","boundaryQuerySource","options","boundaryId","matchingColumn","sqlQuery","queryParameters","urlParameters","JSON","stringify"],"mappings":"AACA,SAAQA,UAAR,QAAyB,eAAzB;AAgBA,OAAO,MAAMC,mBAAmB,GAAG,gBACjCC,OADiC,EAER;AACzB,QAAM;AAACC,IAAAA,UAAD;AAAaC,IAAAA,cAAc,GAAG,IAA9B;AAAoCC,IAAAA,QAApC;AAA8CC,IAAAA;AAA9C,MAAiEJ,OAAvE;AACA,QAAMK,aAA4B,GAAG;AACnCJ,IAAAA,UADmC;AAEnCC,IAAAA,cAFmC;AAGnCC,IAAAA;AAHmC,GAArC;;AAKA,MAAIC,eAAJ,EAAqB;AACnBC,IAAAA,aAAa,CAACD,eAAd,GAAgCE,IAAI,CAACC,SAAL,CAAeH,eAAf,CAAhC;AACD;;AACD,SAAON,UAAU,CAAgB,UAAhB,EAA4BE,OAA5B,EAAqCK,aAArC,CAAjB;AACD,CAbM","sourcesContent":["import {QueryParameters} from '../api';\nimport {baseSource} from './base-source';\nimport type {SourceOptions, TilejsonResult} from './types';\n\nexport type BoundaryQuerySourceOptions = SourceOptions & {\n boundaryId: string;\n matchingColumn?: string;\n sqlQuery: string;\n queryParameters
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/boundary-query-source.ts"],"names":["baseSource","boundaryQuerySource","options","boundaryId","matchingColumn","sqlQuery","queryParameters","urlParameters","JSON","stringify"],"mappings":"AACA,SAAQA,UAAR,QAAyB,eAAzB;AAgBA,OAAO,MAAMC,mBAAmB,GAAG,gBACjCC,OADiC,EAER;AACzB,QAAM;AAACC,IAAAA,UAAD;AAAaC,IAAAA,cAAc,GAAG,IAA9B;AAAoCC,IAAAA,QAApC;AAA8CC,IAAAA;AAA9C,MAAiEJ,OAAvE;AACA,QAAMK,aAA4B,GAAG;AACnCJ,IAAAA,UADmC;AAEnCC,IAAAA,cAFmC;AAGnCC,IAAAA;AAHmC,GAArC;;AAKA,MAAIC,eAAJ,EAAqB;AACnBC,IAAAA,aAAa,CAACD,eAAd,GAAgCE,IAAI,CAACC,SAAL,CAAeH,eAAf,CAAhC;AACD;;AACD,SAAON,UAAU,CAAgB,UAAhB,EAA4BE,OAA5B,EAAqCK,aAArC,CAAjB;AACD,CAbM","sourcesContent":["import {QueryParameters} from '../api';\nimport {baseSource} from './base-source';\nimport type {SourceOptions, TilejsonResult} from './types';\n\nexport type BoundaryQuerySourceOptions = SourceOptions & {\n boundaryId: string;\n matchingColumn?: string;\n sqlQuery: string;\n queryParameters?: QueryParameters;\n};\ntype UrlParameters = {\n boundaryId: string;\n matchingColumn: string;\n sqlQuery: string;\n queryParameters?: string;\n};\n\nexport const boundaryQuerySource = async function (\n options: BoundaryQuerySourceOptions\n): Promise<TilejsonResult> {\n const {boundaryId, matchingColumn = 'id', sqlQuery, queryParameters} = options;\n const urlParameters: UrlParameters = {\n boundaryId,\n matchingColumn,\n sqlQuery\n };\n if (queryParameters) {\n urlParameters.queryParameters = JSON.stringify(queryParameters);\n }\n return baseSource<UrlParameters>('boundary', options, urlParameters) as Promise<TilejsonResult>;\n};\n"],"file":"boundary-query-source.js"}
|