@deck.gl/carto 8.7.0 → 8.7.1
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/dist.dev.js +20 -13
- package/dist/es5/api/maps-v3-client.js +12 -5
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +3 -2
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/carto-tile-layer.js +8 -7
- package/dist/es5/layers/carto-tile-layer.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +9 -1
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +3 -2
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/carto-tile-layer.js +8 -8
- package/dist/esm/layers/carto-tile-layer.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/api/maps-v3-client.ts +15 -1
- package/src/layers/carto-layer.js +6 -4
- package/src/layers/carto-tile-layer.js +11 -8
package/dist/dist.dev.js
CHANGED
|
@@ -53708,6 +53708,7 @@ async function fetchLayerData({
|
|
|
53708
53708
|
geoColumn,
|
|
53709
53709
|
columns,
|
|
53710
53710
|
format,
|
|
53711
|
+
formatTiles,
|
|
53711
53712
|
schema,
|
|
53712
53713
|
clientId
|
|
53713
53714
|
}) {
|
|
@@ -53726,6 +53727,7 @@ async function fetchLayerData({
|
|
|
53726
53727
|
geoColumn,
|
|
53727
53728
|
columns,
|
|
53728
53729
|
format,
|
|
53730
|
+
formatTiles,
|
|
53729
53731
|
schema,
|
|
53730
53732
|
clientId
|
|
53731
53733
|
});
|
|
@@ -53754,6 +53756,7 @@ async function _fetchDataUrl({
|
|
|
53754
53756
|
geoColumn,
|
|
53755
53757
|
columns,
|
|
53756
53758
|
format,
|
|
53759
|
+
formatTiles,
|
|
53757
53760
|
schema,
|
|
53758
53761
|
clientId
|
|
53759
53762
|
}) {
|
|
@@ -53807,6 +53810,11 @@ async function _fetchDataUrl({
|
|
|
53807
53810
|
Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assert"])(url && mapFormat, 'Unsupported data formats received from backend.');
|
|
53808
53811
|
}
|
|
53809
53812
|
|
|
53813
|
+
if (format === _maps_api_common__WEBPACK_IMPORTED_MODULE_1__["FORMATS"].TILEJSON && formatTiles) {
|
|
53814
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_3__["log"].assert(Object.values(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["TILE_FORMATS"]).includes(formatTiles), `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`);
|
|
53815
|
+
url += `&${Object(_maps_api_common__WEBPACK_IMPORTED_MODULE_1__["encodeParameter"])('formatTiles', formatTiles)}`;
|
|
53816
|
+
}
|
|
53817
|
+
|
|
53810
53818
|
const {
|
|
53811
53819
|
accessToken
|
|
53812
53820
|
} = localCreds;
|
|
@@ -54452,7 +54460,7 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
54452
54460
|
}) {
|
|
54453
54461
|
this._checkProps(props);
|
|
54454
54462
|
|
|
54455
|
-
const shouldUpdateData = changeFlags.dataChanged || props.connection !== oldProps.connection || props.geoColumn !== oldProps.geoColumn ||
|
|
54463
|
+
const shouldUpdateData = changeFlags.dataChanged || props.connection !== oldProps.connection || props.geoColumn !== oldProps.geoColumn || props.format !== oldProps.format || props.formatTiles !== oldProps.formatTiles || props.type !== oldProps.type || JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) || JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);
|
|
54456
54464
|
|
|
54457
54465
|
if (shouldUpdateData) {
|
|
54458
54466
|
this.setState({
|
|
@@ -54533,7 +54541,8 @@ class CartoLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["CompositeLa
|
|
|
54533
54541
|
|
|
54534
54542
|
if (format === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["FORMATS"].TILEJSON) {
|
|
54535
54543
|
/* global URL */
|
|
54536
|
-
|
|
54544
|
+
const tileUrl = new URL(data.tiles[0]);
|
|
54545
|
+
props.formatTiles = props.formatTiles || tileUrl.searchParams.get('formatTiles') || _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT;
|
|
54537
54546
|
return props.formatTiles === _api_maps_api_common__WEBPACK_IMPORTED_MODULE_3__["TILE_FORMATS"].MVT ? [_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["MVTLayer"], props] : [_carto_tile_layer__WEBPACK_IMPORTED_MODULE_1__["default"], props];
|
|
54538
54547
|
} // It's a geojson layer
|
|
54539
54548
|
|
|
@@ -54645,6 +54654,7 @@ function parseCartoTile(arrayBuffer, options) {
|
|
|
54645
54654
|
return data;
|
|
54646
54655
|
}
|
|
54647
54656
|
|
|
54657
|
+
const defaultTileFormat = _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].BINARY;
|
|
54648
54658
|
const CartoTileLoader = {
|
|
54649
54659
|
name: 'CARTO Tile',
|
|
54650
54660
|
id: 'cartoTile',
|
|
@@ -54657,14 +54667,17 @@ const CartoTileLoader = {
|
|
|
54657
54667
|
parseSync: parseCartoTile,
|
|
54658
54668
|
options: {
|
|
54659
54669
|
cartoTile: {
|
|
54660
|
-
|
|
54661
|
-
formatTiles: _api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"].BINARY
|
|
54670
|
+
formatTiles: defaultTileFormat
|
|
54662
54671
|
}
|
|
54663
54672
|
}
|
|
54664
54673
|
};
|
|
54674
|
+
const defaultProps = { ..._deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"].defaultProps,
|
|
54675
|
+
formatTiles: defaultTileFormat,
|
|
54676
|
+
loaders: [CartoTileLoader]
|
|
54677
|
+
};
|
|
54665
54678
|
class CartoTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLayer"] {
|
|
54666
54679
|
getTileData(tile) {
|
|
54667
|
-
|
|
54680
|
+
const url = Object(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["_getURLFromTemplate"])(this.state.data, tile);
|
|
54668
54681
|
|
|
54669
54682
|
if (!url) {
|
|
54670
54683
|
return Promise.reject('Invalid URL');
|
|
@@ -54683,11 +54696,7 @@ class CartoTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLaye
|
|
|
54683
54696
|
};
|
|
54684
54697
|
|
|
54685
54698
|
if (formatTiles) {
|
|
54686
|
-
_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["log"].assert(Object.values(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"]).includes(formatTiles), `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`);
|
|
54687
|
-
|
|
54688
|
-
const newUrl = new URL(url);
|
|
54689
|
-
newUrl.searchParams.set('formatTiles', formatTiles);
|
|
54690
|
-
url = newUrl.toString();
|
|
54699
|
+
_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["log"].assert(Object.values(_api_maps_api_common__WEBPACK_IMPORTED_MODULE_5__["TILE_FORMATS"]).includes(formatTiles), `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`);
|
|
54691
54700
|
loadOptions.cartoTile = {
|
|
54692
54701
|
formatTiles
|
|
54693
54702
|
};
|
|
@@ -54724,9 +54733,7 @@ class CartoTileLayer extends _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__["MVTLaye
|
|
|
54724
54733
|
|
|
54725
54734
|
}
|
|
54726
54735
|
CartoTileLayer.layerName = 'CartoTileLayer';
|
|
54727
|
-
CartoTileLayer.defaultProps =
|
|
54728
|
-
loaders: [CartoTileLoader]
|
|
54729
|
-
};
|
|
54736
|
+
CartoTileLayer.defaultProps = defaultProps;
|
|
54730
54737
|
|
|
54731
54738
|
/***/ }),
|
|
54732
54739
|
|
|
@@ -316,13 +316,13 @@ function fetchLayerData(_x5) {
|
|
|
316
316
|
|
|
317
317
|
function _fetchLayerData() {
|
|
318
318
|
_fetchLayerData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(_ref8) {
|
|
319
|
-
var type, source, connection, credentials, geoColumn, columns, format, schema, clientId, _yield$_fetchDataUrl, url, accessToken, mapFormat, metadata, data, result;
|
|
319
|
+
var type, source, connection, credentials, geoColumn, columns, format, formatTiles, schema, clientId, _yield$_fetchDataUrl, url, accessToken, mapFormat, metadata, data, result;
|
|
320
320
|
|
|
321
321
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
322
322
|
while (1) {
|
|
323
323
|
switch (_context5.prev = _context5.next) {
|
|
324
324
|
case 0:
|
|
325
|
-
type = _ref8.type, source = _ref8.source, connection = _ref8.connection, credentials = _ref8.credentials, geoColumn = _ref8.geoColumn, columns = _ref8.columns, format = _ref8.format, schema = _ref8.schema, clientId = _ref8.clientId;
|
|
325
|
+
type = _ref8.type, source = _ref8.source, connection = _ref8.connection, credentials = _ref8.credentials, geoColumn = _ref8.geoColumn, columns = _ref8.columns, format = _ref8.format, formatTiles = _ref8.formatTiles, schema = _ref8.schema, clientId = _ref8.clientId;
|
|
326
326
|
_context5.next = 3;
|
|
327
327
|
return _fetchDataUrl({
|
|
328
328
|
type: type,
|
|
@@ -332,6 +332,7 @@ function _fetchLayerData() {
|
|
|
332
332
|
geoColumn: geoColumn,
|
|
333
333
|
columns: columns,
|
|
334
334
|
format: format,
|
|
335
|
+
formatTiles: formatTiles,
|
|
335
336
|
schema: schema,
|
|
336
337
|
clientId: clientId
|
|
337
338
|
});
|
|
@@ -378,13 +379,13 @@ function _fetchDataUrl(_x6) {
|
|
|
378
379
|
|
|
379
380
|
function _fetchDataUrl2() {
|
|
380
381
|
_fetchDataUrl2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(_ref9) {
|
|
381
|
-
var type, source, connection, credentials, geoColumn, columns, format, schema, clientId, defaultCredentials, localCreds, metadata, url, mapFormat, prioritizedFormats, _i, _prioritizedFormats, f, accessToken;
|
|
382
|
+
var type, source, connection, credentials, geoColumn, columns, format, formatTiles, schema, clientId, defaultCredentials, localCreds, metadata, url, mapFormat, prioritizedFormats, _i, _prioritizedFormats, f, accessToken;
|
|
382
383
|
|
|
383
384
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
384
385
|
while (1) {
|
|
385
386
|
switch (_context6.prev = _context6.next) {
|
|
386
387
|
case 0:
|
|
387
|
-
type = _ref9.type, source = _ref9.source, connection = _ref9.connection, credentials = _ref9.credentials, geoColumn = _ref9.geoColumn, columns = _ref9.columns, format = _ref9.format, schema = _ref9.schema, clientId = _ref9.clientId;
|
|
388
|
+
type = _ref9.type, source = _ref9.source, connection = _ref9.connection, credentials = _ref9.credentials, geoColumn = _ref9.geoColumn, columns = _ref9.columns, format = _ref9.format, formatTiles = _ref9.formatTiles, schema = _ref9.schema, clientId = _ref9.clientId;
|
|
388
389
|
defaultCredentials = (0, _config.getDefaultCredentials)();
|
|
389
390
|
localCreds = _objectSpread(_objectSpread({}, defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials), credentials);
|
|
390
391
|
checkFetchLayerDataParameters({
|
|
@@ -455,6 +456,12 @@ function _fetchDataUrl2() {
|
|
|
455
456
|
(0, _utils.assert)(url && mapFormat, 'Unsupported data formats received from backend.');
|
|
456
457
|
|
|
457
458
|
case 27:
|
|
459
|
+
if (format === _mapsApiCommon.FORMATS.TILEJSON && formatTiles) {
|
|
460
|
+
_core.log.assert(Object.values(_mapsApiCommon.TILE_FORMATS).includes(formatTiles), "Invalid value for formatTiles: ".concat(formatTiles, ". Use value from TILE_FORMATS"));
|
|
461
|
+
|
|
462
|
+
url += "&".concat((0, _mapsApiCommon.encodeParameter)('formatTiles', formatTiles));
|
|
463
|
+
}
|
|
464
|
+
|
|
458
465
|
accessToken = localCreds.accessToken;
|
|
459
466
|
return _context6.abrupt("return", {
|
|
460
467
|
url: url,
|
|
@@ -463,7 +470,7 @@ function _fetchDataUrl2() {
|
|
|
463
470
|
metadata: metadata
|
|
464
471
|
});
|
|
465
472
|
|
|
466
|
-
case
|
|
473
|
+
case 30:
|
|
467
474
|
case "end":
|
|
468
475
|
return _context6.stop();
|
|
469
476
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/maps-v3-client.ts"],"names":["MAX_GET_LENGTH","DEFAULT_CLIENT","request","method","url","accessToken","body","headers","Accept","Authorization","fetch","Error","requestJson","response","json","ok","dealWithError","error","requestData","format","FORMATS","NDJSON","data","rows","status","getParameters","type","source","geoColumn","columns","schema","clientId","parameters","push","sourceName","MAP_TYPES","QUERY","TABLE","join","mapInstantiation","connection","credentials","baseUrl","mapsUrl","length","JSON","stringify","q","client","getUrlFromMetadata","metadata","m","checkFetchLayerDataParameters","apiVersion","API_VERSIONS","V3","apiBaseUrl","fetchLayerData","_fetchDataUrl","mapFormat","result","defaultCredentials","localCreds","prioritizedFormats","GEOJSON","TILEJSON","f","getData","log","deprecated","layerData","_fetchMapDataset","dataset","connectionName","cache","parseInt","URL","searchParams","get","fillInMapDatasets","datasets","token","promises","map","Promise","all","fetchMap","cartoMapId","autoRefresh","onNewData","intervalId","setInterval","changed","some","v","stopAutoRefresh","clearInterval"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {getDefaultCredentials, buildMapsUrlFromBase, CloudNativeCredentials} from '../config';\nimport {\n API_VERSIONS,\n encodeParameter,\n Format,\n FORMATS,\n MapInstantiation,\n MapType,\n MAP_TYPES,\n SchemaField\n} from './maps-api-common';\nimport {parseMap} from './parseMap';\nimport {log} from '@deck.gl/core';\nimport {assert} from '../utils';\n\nconst MAX_GET_LENGTH = 2048;\nconst DEFAULT_CLIENT = 'deck-gl-carto';\n\ninterface RequestParams {\n method?: string;\n url: string;\n accessToken?: string;\n body?: any;\n}\n\n/**\n * Request against Maps API\n */\nasync function request({method, url, accessToken, body}: RequestParams): Promise<Response> {\n const headers: Record<string, string> = {\n Accept: 'application/json'\n };\n\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n\n if (method === 'POST') {\n headers['Content-Type'] = 'application/json';\n }\n\n try {\n /* global fetch */\n return await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n}\n\nasync function requestJson<T = unknown>({\n method,\n url,\n accessToken,\n body\n}: RequestParams): Promise<T> {\n const response = await request({method, url, accessToken, body});\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, error: json.error});\n }\n return json as T;\n}\n\nasync function requestData({\n method,\n url,\n accessToken,\n format,\n body\n}: RequestParams & {\n format: Format;\n}): Promise<Response | unknown> {\n if (format === FORMATS.NDJSON) {\n return request({method, url, accessToken, body});\n }\n\n const data = await requestJson<any>({method, url, accessToken, body});\n return data.rows ? data.rows : data;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, error}: {response: Response; error?: string}): never {\n switch (response.status) {\n case 400:\n throw new Error(`Bad request. ${error}`);\n case 401:\n case 403:\n throw new Error(`Unauthorized access. ${error}`);\n default:\n throw new Error(error);\n }\n}\n\ntype FetchLayerDataParams = {\n type: MapType;\n source: string;\n connection: string;\n credentials: CloudNativeCredentials;\n geoColumn?: string;\n columns?: string[];\n schema?: boolean;\n clientId?: string;\n format?: Format;\n};\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({\n type,\n source,\n geoColumn,\n columns,\n schema,\n clientId\n}: Omit<FetchLayerDataParams, 'connection' | 'credentials'>) {\n const parameters = [encodeParameter('client', clientId || DEFAULT_CLIENT)];\n if (schema) {\n parameters.push(encodeParameter('schema', true));\n }\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters.push(encodeParameter(sourceName, source));\n\n if (type === MAP_TYPES.TABLE) {\n if (geoColumn) {\n parameters.push(encodeParameter('geo_column', geoColumn));\n }\n if (columns) {\n parameters.push(encodeParameter('columns', columns.join(',')));\n }\n }\n\n return parameters.join('&');\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n schema,\n clientId\n}: FetchLayerDataParams): Promise<MapInstantiation> {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema, clientId})}`;\n const {accessToken} = credentials;\n\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n // need to be a POST request\n const body = JSON.stringify({\n q: source,\n client: clientId || DEFAULT_CLIENT\n });\n return await requestJson({method: 'POST', url: baseUrl, accessToken, body});\n }\n\n return await requestJson({url, accessToken});\n}\n\nfunction getUrlFromMetadata(metadata: MapInstantiation, format: Format): string | null {\n const m = metadata[format];\n\n if (m && !m.error && m.url) {\n return m.url[0];\n }\n\n return null;\n}\n\nfunction checkFetchLayerDataParameters({\n type,\n source,\n connection,\n credentials\n}: FetchLayerDataParams) {\n assert(connection, 'Must define connection');\n assert(type, 'Must define a type');\n assert(source, 'Must define a source');\n\n assert(credentials.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(credentials.apiBaseUrl, 'Must define apiBaseUrl');\n assert(credentials.accessToken, 'Must define an accessToken');\n}\n\nexport interface FetchLayerDataResult {\n data: any;\n format: Format;\n schema?: SchemaField[];\n}\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema,\n clientId\n}: FetchLayerDataParams): Promise<FetchLayerDataResult> {\n // Internally we split data fetching into two parts to allow us to\n // conditionally fetch the actual data, depending on the metadata state\n const {url, accessToken, mapFormat, metadata} = await _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema,\n clientId\n });\n\n const data = await requestData({url, format: mapFormat, accessToken});\n const result: FetchLayerDataResult = {data, format: mapFormat};\n if (schema) {\n result.schema = metadata.schema;\n }\n\n return result;\n}\n\nasync function _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema,\n clientId\n}: FetchLayerDataParams) {\n const defaultCredentials = getDefaultCredentials();\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n checkFetchLayerDataParameters({type, source, connection, credentials: localCreds});\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n const metadata = await mapInstantiation({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n schema,\n clientId\n });\n let url: string | null = null;\n let mapFormat: Format | undefined;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n assert(url, `Format ${format} not available`);\n } else {\n // guess map format\n const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.NDJSON, FORMATS.TILEJSON];\n for (const f of prioritizedFormats) {\n url = getUrlFromMetadata(metadata, f);\n if (url) {\n mapFormat = f;\n break;\n }\n }\n assert(url && mapFormat, 'Unsupported data formats received from backend.');\n }\n\n const {accessToken} = localCreds;\n return {url, accessToken, mapFormat, metadata};\n}\n\nexport async function getData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n clientId\n}: FetchLayerDataParams) {\n log.deprecated('getData', 'fetchLayerData')();\n const layerData = await fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema: false,\n clientId\n });\n return layerData.data;\n}\n\n/* global clearInterval, setInterval, URL */\nasync function _fetchMapDataset(\n dataset,\n accessToken: string,\n credentials: CloudNativeCredentials,\n clientId?: string\n) {\n const {connectionName: connection, columns, geoColumn, source, type} = dataset;\n // First fetch metadata\n const {url, mapFormat} = await _fetchDataUrl({\n credentials: {...credentials, accessToken},\n connection,\n columns,\n geoColumn,\n source,\n type,\n clientId\n });\n\n // Extract the last time the data changed\n const cache = parseInt(new URL(url).searchParams.get('cache') || '', 10);\n if (cache && dataset.cache === cache) {\n return false;\n }\n dataset.cache = cache;\n\n // Only fetch if the data has changed\n dataset.data = await requestData({url, format: mapFormat, accessToken});\n\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token},\n clientId: string,\n credentials: CloudNativeCredentials\n) {\n const promises = datasets.map(dataset => _fetchMapDataset(dataset, token, credentials, clientId));\n return await Promise.all(promises);\n}\n\nexport async function fetchMap({\n cartoMapId,\n clientId,\n credentials,\n autoRefresh,\n onNewData\n}: {\n cartoMapId: string;\n clientId: string;\n credentials?: CloudNativeCredentials;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n}) {\n const defaultCredentials = getDefaultCredentials();\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n } as CloudNativeCredentials;\n const {accessToken} = localCreds;\n\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n\n assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\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 url = `${localCreds.mapsUrl}/public/${cartoMapId}`;\n const map = await requestJson<any>({url, accessToken});\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, localCreds);\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 // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, localCreds);\n return {\n ...parseMap(map),\n ...{stopAutoRefresh}\n };\n}\n"],"file":"maps-v3-client.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/maps-v3-client.ts"],"names":["MAX_GET_LENGTH","DEFAULT_CLIENT","request","method","url","accessToken","body","headers","Accept","Authorization","fetch","Error","requestJson","response","json","ok","dealWithError","error","requestData","format","FORMATS","NDJSON","data","rows","status","getParameters","type","source","geoColumn","columns","schema","clientId","parameters","push","sourceName","MAP_TYPES","QUERY","TABLE","join","mapInstantiation","connection","credentials","baseUrl","mapsUrl","length","JSON","stringify","q","client","getUrlFromMetadata","metadata","m","checkFetchLayerDataParameters","apiVersion","API_VERSIONS","V3","apiBaseUrl","fetchLayerData","formatTiles","_fetchDataUrl","mapFormat","result","defaultCredentials","localCreds","prioritizedFormats","GEOJSON","TILEJSON","f","log","assert","Object","values","TILE_FORMATS","includes","getData","deprecated","layerData","_fetchMapDataset","dataset","connectionName","cache","parseInt","URL","searchParams","get","fillInMapDatasets","datasets","token","promises","map","Promise","all","fetchMap","cartoMapId","autoRefresh","onNewData","intervalId","setInterval","changed","some","v","stopAutoRefresh","clearInterval"],"mappings":"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","sourcesContent":["/**\n * Maps API Client for Carto 3\n */\nimport {getDefaultCredentials, buildMapsUrlFromBase, CloudNativeCredentials} from '../config';\nimport {\n API_VERSIONS,\n encodeParameter,\n Format,\n FORMATS,\n MapInstantiation,\n MapType,\n MAP_TYPES,\n SchemaField,\n TileFormat,\n TILE_FORMATS\n} from './maps-api-common';\nimport {parseMap} from './parseMap';\nimport {log} from '@deck.gl/core';\nimport {assert} from '../utils';\n\nconst MAX_GET_LENGTH = 2048;\nconst DEFAULT_CLIENT = 'deck-gl-carto';\n\ninterface RequestParams {\n method?: string;\n url: string;\n accessToken?: string;\n body?: any;\n}\n\n/**\n * Request against Maps API\n */\nasync function request({method, url, accessToken, body}: RequestParams): Promise<Response> {\n const headers: Record<string, string> = {\n Accept: 'application/json'\n };\n\n if (accessToken) {\n headers.Authorization = `Bearer ${accessToken}`;\n }\n\n if (method === 'POST') {\n headers['Content-Type'] = 'application/json';\n }\n\n try {\n /* global fetch */\n return await fetch(url, {\n method,\n headers,\n body\n });\n } catch (error) {\n throw new Error(`Failed to connect to Maps API: ${error}`);\n }\n}\n\nasync function requestJson<T = unknown>({\n method,\n url,\n accessToken,\n body\n}: RequestParams): Promise<T> {\n const response = await request({method, url, accessToken, body});\n const json = await response.json();\n\n if (!response.ok) {\n dealWithError({response, error: json.error});\n }\n return json as T;\n}\n\nasync function requestData({\n method,\n url,\n accessToken,\n format,\n body\n}: RequestParams & {\n format: Format;\n}): Promise<Response | unknown> {\n if (format === FORMATS.NDJSON) {\n return request({method, url, accessToken, body});\n }\n\n const data = await requestJson<any>({method, url, accessToken, body});\n return data.rows ? data.rows : data;\n}\n\n/**\n * Display proper message from Maps API error\n */\nfunction dealWithError({response, error}: {response: Response; error?: string}): never {\n switch (response.status) {\n case 400:\n throw new Error(`Bad request. ${error}`);\n case 401:\n case 403:\n throw new Error(`Unauthorized access. ${error}`);\n default:\n throw new Error(error);\n }\n}\n\ntype FetchLayerDataParams = {\n type: MapType;\n source: string;\n connection: string;\n credentials: CloudNativeCredentials;\n geoColumn?: string;\n columns?: string[];\n schema?: boolean;\n clientId?: string;\n format?: Format;\n formatTiles?: TileFormat;\n};\n\n/**\n * Build a URL with all required parameters\n */\nfunction getParameters({\n type,\n source,\n geoColumn,\n columns,\n schema,\n clientId\n}: Omit<FetchLayerDataParams, 'connection' | 'credentials'>) {\n const parameters = [encodeParameter('client', clientId || DEFAULT_CLIENT)];\n if (schema) {\n parameters.push(encodeParameter('schema', true));\n }\n\n const sourceName = type === MAP_TYPES.QUERY ? 'q' : 'name';\n parameters.push(encodeParameter(sourceName, source));\n\n if (type === MAP_TYPES.TABLE) {\n if (geoColumn) {\n parameters.push(encodeParameter('geo_column', geoColumn));\n }\n if (columns) {\n parameters.push(encodeParameter('columns', columns.join(',')));\n }\n }\n\n return parameters.join('&');\n}\n\nexport async function mapInstantiation({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n schema,\n clientId\n}: FetchLayerDataParams): Promise<MapInstantiation> {\n const baseUrl = `${credentials.mapsUrl}/${connection}/${type}`;\n const url = `${baseUrl}?${getParameters({type, source, geoColumn, columns, schema, clientId})}`;\n const {accessToken} = credentials;\n\n if (url.length > MAX_GET_LENGTH && type === MAP_TYPES.QUERY) {\n // need to be a POST request\n const body = JSON.stringify({\n q: source,\n client: clientId || DEFAULT_CLIENT\n });\n return await requestJson({method: 'POST', url: baseUrl, accessToken, body});\n }\n\n return await requestJson({url, accessToken});\n}\n\nfunction getUrlFromMetadata(metadata: MapInstantiation, format: Format): string | null {\n const m = metadata[format];\n\n if (m && !m.error && m.url) {\n return m.url[0];\n }\n\n return null;\n}\n\nfunction checkFetchLayerDataParameters({\n type,\n source,\n connection,\n credentials\n}: FetchLayerDataParams) {\n assert(connection, 'Must define connection');\n assert(type, 'Must define a type');\n assert(source, 'Must define a source');\n\n assert(credentials.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(credentials.apiBaseUrl, 'Must define apiBaseUrl');\n assert(credentials.accessToken, 'Must define an accessToken');\n}\n\nexport interface FetchLayerDataResult {\n data: any;\n format: Format;\n schema?: SchemaField[];\n}\nexport async function fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n schema,\n clientId\n}: FetchLayerDataParams): Promise<FetchLayerDataResult> {\n // Internally we split data fetching into two parts to allow us to\n // conditionally fetch the actual data, depending on the metadata state\n const {url, accessToken, mapFormat, metadata} = await _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n schema,\n clientId\n });\n\n const data = await requestData({url, format: mapFormat, accessToken});\n const result: FetchLayerDataResult = {data, format: mapFormat};\n if (schema) {\n result.schema = metadata.schema;\n }\n\n return result;\n}\n\nasync function _fetchDataUrl({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n formatTiles,\n schema,\n clientId\n}: FetchLayerDataParams) {\n const defaultCredentials = getDefaultCredentials();\n // Only pick up default credentials if they have been defined for\n // correct API version\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n };\n checkFetchLayerDataParameters({type, source, connection, credentials: localCreds});\n\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\n\n const metadata = await mapInstantiation({\n type,\n source,\n connection,\n credentials: localCreds,\n geoColumn,\n columns,\n schema,\n clientId\n });\n let url: string | null = null;\n let mapFormat: Format | undefined;\n\n if (format) {\n mapFormat = format;\n url = getUrlFromMetadata(metadata, format);\n assert(url, `Format ${format} not available`);\n } else {\n // guess map format\n const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.NDJSON, FORMATS.TILEJSON];\n for (const f of prioritizedFormats) {\n url = getUrlFromMetadata(metadata, f);\n if (url) {\n mapFormat = f;\n break;\n }\n }\n assert(url && mapFormat, 'Unsupported data formats received from backend.');\n }\n\n if (format === FORMATS.TILEJSON && formatTiles) {\n log.assert(\n Object.values(TILE_FORMATS).includes(formatTiles),\n `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`\n );\n url += `&${encodeParameter('formatTiles', formatTiles)}`;\n }\n\n const {accessToken} = localCreds;\n return {url, accessToken, mapFormat, metadata};\n}\n\nexport async function getData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n clientId\n}: FetchLayerDataParams) {\n log.deprecated('getData', 'fetchLayerData')();\n const layerData = await fetchLayerData({\n type,\n source,\n connection,\n credentials,\n geoColumn,\n columns,\n format,\n schema: false,\n clientId\n });\n return layerData.data;\n}\n\n/* global clearInterval, setInterval, URL */\nasync function _fetchMapDataset(\n dataset,\n accessToken: string,\n credentials: CloudNativeCredentials,\n clientId?: string\n) {\n const {connectionName: connection, columns, geoColumn, source, type} = dataset;\n // First fetch metadata\n const {url, mapFormat} = await _fetchDataUrl({\n credentials: {...credentials, accessToken},\n connection,\n columns,\n geoColumn,\n source,\n type,\n clientId\n });\n\n // Extract the last time the data changed\n const cache = parseInt(new URL(url).searchParams.get('cache') || '', 10);\n if (cache && dataset.cache === cache) {\n return false;\n }\n dataset.cache = cache;\n\n // Only fetch if the data has changed\n dataset.data = await requestData({url, format: mapFormat, accessToken});\n\n return true;\n}\n\nasync function fillInMapDatasets(\n {datasets, token},\n clientId: string,\n credentials: CloudNativeCredentials\n) {\n const promises = datasets.map(dataset => _fetchMapDataset(dataset, token, credentials, clientId));\n return await Promise.all(promises);\n}\n\nexport async function fetchMap({\n cartoMapId,\n clientId,\n credentials,\n autoRefresh,\n onNewData\n}: {\n cartoMapId: string;\n clientId: string;\n credentials?: CloudNativeCredentials;\n autoRefresh?: number;\n onNewData?: (map: any) => void;\n}) {\n const defaultCredentials = getDefaultCredentials();\n const localCreds = {\n ...(defaultCredentials.apiVersion === API_VERSIONS.V3 && defaultCredentials),\n ...credentials\n } as CloudNativeCredentials;\n const {accessToken} = localCreds;\n\n assert(cartoMapId, 'Must define CARTO map id: fetchMap({cartoMapId: \"XXXX-XXXX-XXXX\"})');\n\n assert(localCreds.apiVersion === API_VERSIONS.V3, 'Method only available for v3');\n assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');\n if (!localCreds.mapsUrl) {\n localCreds.mapsUrl = buildMapsUrlFromBase(localCreds.apiBaseUrl);\n }\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 url = `${localCreds.mapsUrl}/public/${cartoMapId}`;\n const map = await requestJson<any>({url, accessToken});\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, localCreds);\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 // Mutates map.datasets so that dataset.data contains data\n await fillInMapDatasets(map, clientId, localCreds);\n return {\n ...parseMap(map),\n ...{stopAutoRefresh}\n };\n}\n"],"file":"maps-v3-client.js"}
|
|
@@ -151,7 +151,7 @@ var CartoLayer = function (_CompositeLayer) {
|
|
|
151
151
|
|
|
152
152
|
this._checkProps(props);
|
|
153
153
|
|
|
154
|
-
var shouldUpdateData = changeFlags.dataChanged || props.connection !== oldProps.connection || props.geoColumn !== oldProps.geoColumn ||
|
|
154
|
+
var shouldUpdateData = changeFlags.dataChanged || props.connection !== oldProps.connection || props.geoColumn !== oldProps.geoColumn || props.format !== oldProps.format || props.formatTiles !== oldProps.formatTiles || props.type !== oldProps.type || JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) || JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);
|
|
155
155
|
|
|
156
156
|
if (shouldUpdateData) {
|
|
157
157
|
this.setState({
|
|
@@ -267,7 +267,8 @@ var CartoLayer = function (_CompositeLayer) {
|
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
if (format === _mapsApiCommon.FORMATS.TILEJSON) {
|
|
270
|
-
|
|
270
|
+
var tileUrl = new URL(data.tiles[0]);
|
|
271
|
+
props.formatTiles = props.formatTiles || tileUrl.searchParams.get('formatTiles') || _mapsApiCommon.TILE_FORMATS.MVT;
|
|
271
272
|
return props.formatTiles === _mapsApiCommon.TILE_FORMATS.MVT ? [_geoLayers.MVTLayer, props] : [_cartoTileLayer.default, props];
|
|
272
273
|
}
|
|
273
274
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/carto-layer.js"],"names":["defaultProps","data","type","onDataLoad","value","compare","onDataError","optional","uniqueIdProperty","credentials","connection","format","formatTiles","clientId","geoColumn","columns","CartoLayer","state","apiVersion","getSubLayers","length","props","localCreds","log","assert","Object","values","API_VERSIONS","includes","V1","V2","MAP_TYPES","QUERY","TILESET","V3","TABLE","Array","isArray","oldProps","changeFlags","_checkProps","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","rest","localConfig","result","MVTLayer","FORMATS","TILEJSON","URL","tiles","searchParams","get","TILE_FORMATS","MVT","CartoTileLayer","GeoJsonLayer","updateTriggers","_getSubLayerAndProps","layer","getSubLayerProps","id","layerName","CompositeLayer"],"mappings":"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","sourcesContent":["import {CompositeLayer, log} from '@deck.gl/core';\nimport CartoTileLayer from './carto-tile-layer';\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {fetchLayerData, getDataV2, API_VERSIONS} from '../api';\nimport {FORMATS, MAP_TYPES, TILE_FORMATS} from '../api/maps-api-common';\nimport {getDefaultCredentials} from '../config';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}, compare: false},\n onDataError: {type: 'function', value: null, compare: false, optional: true},\n uniqueIdProperty: 'cartodb_id',\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): format of data\n format: null,\n\n // (String, optional): force format of data for tiles\n formatTiles: null,\n\n // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.\n clientId: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null}\n};\n\nexport default class CartoLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded() {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props) {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (type !== MAP_TYPES.TABLE) {\n log.assert(!geoColumn, `geoColumn prop is only supported for type ${MAP_TYPES.TABLE}`);\n log.assert(!columns, `columns prop is only supported for type ${MAP_TYPES.TABLE}`);\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n props.type !== oldProps.type ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n this._updateData();\n }\n }\n\n async _updateData() {\n try {\n const {type, data: source, clientId, credentials, ...rest} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let result;\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n result = {data: await getDataV2({type, source, credentials})};\n } else {\n result = await fetchLayerData({type, source, clientId, credentials, ...rest});\n }\n\n this.setState({...result, apiVersion});\n this.props.onDataLoad(result.data);\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err);\n } else {\n throw err;\n }\n }\n }\n\n _getSubLayerAndProps() {\n const {data, format, apiVersion} = this.state;\n\n const {uniqueIdProperty} = defaultProps;\n const props = {uniqueIdProperty, ...this.props};\n delete props.data;\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n return [MVTLayer, props];\n }\n\n if (format === FORMATS.TILEJSON) {\n /* global URL */\n props.formatTiles =\n props.formatTiles ||\n new URL(data.tiles[0]).searchParams.get('formatTiles') ||\n TILE_FORMATS.MVT;\n\n return props.formatTiles === TILE_FORMATS.MVT ? [MVTLayer, props] : [CartoTileLayer, props];\n }\n\n // It's a geojson layer\n return [GeoJsonLayer, props];\n }\n\n renderLayers() {\n const {data} = this.state;\n\n if (!data) return null;\n\n const {updateTriggers} = this.props;\n\n const [layer, props] = this._getSubLayerAndProps();\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n updateTriggers\n })\n );\n }\n}\n\nCartoLayer.layerName = 'CartoLayer';\nCartoLayer.defaultProps = defaultProps;\n"],"file":"carto-layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/carto-layer.js"],"names":["defaultProps","data","type","onDataLoad","value","compare","onDataError","optional","uniqueIdProperty","credentials","connection","format","formatTiles","clientId","geoColumn","columns","CartoLayer","state","apiVersion","getSubLayers","length","props","localCreds","log","assert","Object","values","API_VERSIONS","includes","V1","V2","MAP_TYPES","QUERY","TILESET","V3","TABLE","Array","isArray","oldProps","changeFlags","_checkProps","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","rest","localConfig","result","MVTLayer","FORMATS","TILEJSON","tileUrl","URL","tiles","searchParams","get","TILE_FORMATS","MVT","CartoTileLayer","GeoJsonLayer","updateTriggers","_getSubLayerAndProps","layer","getSubLayerProps","id","layerName","CompositeLayer"],"mappings":"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","sourcesContent":["import {CompositeLayer, log} from '@deck.gl/core';\nimport CartoTileLayer from './carto-tile-layer';\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {fetchLayerData, getDataV2, API_VERSIONS} from '../api';\nimport {FORMATS, MAP_TYPES, TILE_FORMATS} from '../api/maps-api-common';\nimport {getDefaultCredentials} from '../config';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}, compare: false},\n onDataError: {type: 'function', value: null, compare: false, optional: true},\n uniqueIdProperty: 'cartodb_id',\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): format of data\n format: null,\n\n // (String, optional): force format of data for tiles\n formatTiles: null,\n\n // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.\n clientId: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null}\n};\n\nexport default class CartoLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded() {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props) {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (type !== MAP_TYPES.TABLE) {\n log.assert(!geoColumn, `geoColumn prop is only supported for type ${MAP_TYPES.TABLE}`);\n log.assert(!columns, `columns prop is only supported for type ${MAP_TYPES.TABLE}`);\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n props.format !== oldProps.format ||\n props.formatTiles !== oldProps.formatTiles ||\n props.type !== oldProps.type ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n this._updateData();\n }\n }\n\n async _updateData() {\n try {\n const {type, data: source, clientId, credentials, ...rest} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let result;\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n result = {data: await getDataV2({type, source, credentials})};\n } else {\n result = await fetchLayerData({type, source, clientId, credentials, ...rest});\n }\n\n this.setState({...result, apiVersion});\n this.props.onDataLoad(result.data);\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err);\n } else {\n throw err;\n }\n }\n }\n\n _getSubLayerAndProps() {\n const {data, format, apiVersion} = this.state;\n\n const {uniqueIdProperty} = defaultProps;\n const props = {uniqueIdProperty, ...this.props};\n delete props.data;\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n return [MVTLayer, props];\n }\n\n if (format === FORMATS.TILEJSON) {\n /* global URL */\n const tileUrl = new URL(data.tiles[0]);\n\n props.formatTiles =\n props.formatTiles || tileUrl.searchParams.get('formatTiles') || TILE_FORMATS.MVT;\n\n return props.formatTiles === TILE_FORMATS.MVT ? [MVTLayer, props] : [CartoTileLayer, props];\n }\n\n // It's a geojson layer\n return [GeoJsonLayer, props];\n }\n\n renderLayers() {\n const {data} = this.state;\n\n if (!data) return null;\n\n const {updateTriggers} = this.props;\n\n const [layer, props] = this._getSubLayerAndProps();\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n updateTriggers\n })\n );\n }\n}\n\nCartoLayer.layerName = 'CartoLayer';\nCartoLayer.defaultProps = defaultProps;\n"],"file":"carto-layer.js"}
|
|
@@ -99,6 +99,7 @@ function parseCartoTile(arrayBuffer, options) {
|
|
|
99
99
|
return data;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
var defaultTileFormat = _mapsApiCommon.TILE_FORMATS.BINARY;
|
|
102
103
|
var CartoTileLoader = {
|
|
103
104
|
name: 'CARTO Tile',
|
|
104
105
|
id: 'cartoTile',
|
|
@@ -132,11 +133,16 @@ var CartoTileLoader = {
|
|
|
132
133
|
parseSync: parseCartoTile,
|
|
133
134
|
options: {
|
|
134
135
|
cartoTile: {
|
|
135
|
-
formatTiles:
|
|
136
|
+
formatTiles: defaultTileFormat
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
};
|
|
139
140
|
|
|
141
|
+
var defaultProps = _objectSpread(_objectSpread({}, _geoLayers.MVTLayer.defaultProps), {}, {
|
|
142
|
+
formatTiles: defaultTileFormat,
|
|
143
|
+
loaders: [CartoTileLoader]
|
|
144
|
+
});
|
|
145
|
+
|
|
140
146
|
var CartoTileLayer = function (_MVTLayer) {
|
|
141
147
|
(0, _inherits2.default)(CartoTileLayer, _MVTLayer);
|
|
142
148
|
|
|
@@ -168,9 +174,6 @@ var CartoTileLayer = function (_MVTLayer) {
|
|
|
168
174
|
if (formatTiles) {
|
|
169
175
|
_core.log.assert(Object.values(_mapsApiCommon.TILE_FORMATS).includes(formatTiles), "Invalid value for formatTiles: ".concat(formatTiles, ". Use value from TILE_FORMATS"));
|
|
170
176
|
|
|
171
|
-
var newUrl = new URL(url);
|
|
172
|
-
newUrl.searchParams.set('formatTiles', formatTiles);
|
|
173
|
-
url = newUrl.toString();
|
|
174
177
|
loadOptions.cartoTile = {
|
|
175
178
|
formatTiles: formatTiles
|
|
176
179
|
};
|
|
@@ -207,7 +210,5 @@ var CartoTileLayer = function (_MVTLayer) {
|
|
|
207
210
|
|
|
208
211
|
exports.default = CartoTileLayer;
|
|
209
212
|
CartoTileLayer.layerName = 'CartoTileLayer';
|
|
210
|
-
CartoTileLayer.defaultProps =
|
|
211
|
-
loaders: [CartoTileLoader]
|
|
212
|
-
});
|
|
213
|
+
CartoTileLayer.defaultProps = defaultProps;
|
|
213
214
|
//# sourceMappingURL=carto-tile-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/carto-tile-layer.js"],"names":["parseJSON","arrayBuffer","JSON","parse","TextDecoder","decode","parsePbf","buffer","pbf","Protobuf","tile","Tile","read","unpackProperties","properties","length","map","item","currentRecord","data","forEach","key","value","parseCartoTile","options","formatTiles","cartoTile","TILE_FORMATS","GEOJSON","features","points","lines","polygons","CartoTileLoader","name","id","module","extensions","mimeTypes","category","worker","parseSync","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/carto-tile-layer.js"],"names":["parseJSON","arrayBuffer","JSON","parse","TextDecoder","decode","parsePbf","buffer","pbf","Protobuf","tile","Tile","read","unpackProperties","properties","length","map","item","currentRecord","data","forEach","key","value","parseCartoTile","options","formatTiles","cartoTile","TILE_FORMATS","GEOJSON","features","points","lines","polygons","defaultTileFormat","BINARY","CartoTileLoader","name","id","module","extensions","mimeTypes","category","worker","parseSync","defaultProps","MVTLayer","loaders","CartoTileLayer","url","state","Promise","reject","loadOptions","getLoadOptions","props","fetch","signal","mimeType","log","assert","Object","values","includes","propName","layer","autoHighlight","bbox","west","south","east","north","ClipExtension","clipBounds","subLayer","GeoJsonLayer","layerName"],"mappings":"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","sourcesContent":["/* global TextDecoder */\nimport Protobuf from 'pbf';\nimport {log} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\nimport {MVTLayer, _getURLFromTemplate} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {Tile} from './schema/carto-tile';\nimport {TILE_FORMATS} from '../api/maps-api-common';\n\nfunction parseJSON(arrayBuffer) {\n return JSON.parse(new TextDecoder().decode(arrayBuffer));\n}\n\nfunction parsePbf(buffer) {\n const pbf = new Protobuf(buffer);\n const tile = Tile.read(pbf);\n return tile;\n}\n\nfunction unpackProperties(properties) {\n if (!properties || !properties.length) {\n return [];\n }\n return properties.map(item => {\n const currentRecord = {};\n item.data.forEach(({key, value}) => {\n currentRecord[key] = value;\n });\n return currentRecord;\n });\n}\n\nfunction parseCartoTile(arrayBuffer, options) {\n if (!arrayBuffer) return null;\n const formatTiles = options && options.cartoTile && options.cartoTile.formatTiles;\n if (formatTiles === TILE_FORMATS.GEOJSON) return geojsonToBinary(parseJSON(arrayBuffer).features);\n\n const tile = parsePbf(arrayBuffer);\n\n const {points, lines, polygons} = tile;\n const data = {\n points: {...points, properties: unpackProperties(points.properties)},\n lines: {...lines, properties: unpackProperties(lines.properties)},\n polygons: {...polygons, properties: unpackProperties(polygons.properties)}\n };\n\n return data;\n}\n\nconst defaultTileFormat = TILE_FORMATS.BINARY;\n\nconst CartoTileLoader = {\n name: 'CARTO Tile',\n id: 'cartoTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/x-protobuf'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoTile(arrayBuffer, options),\n parseSync: parseCartoTile,\n options: {\n cartoTile: {\n formatTiles: defaultTileFormat\n }\n }\n};\n\nconst defaultProps = {\n ...MVTLayer.defaultProps,\n formatTiles: defaultTileFormat,\n loaders: [CartoTileLoader]\n};\n\nexport default class CartoTileLayer extends MVTLayer {\n getTileData(tile) {\n const url = _getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n\n let loadOptions = this.getLoadOptions();\n const {fetch, formatTiles} = this.props;\n const {signal} = tile;\n\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/x-protobuf'\n };\n\n if (formatTiles) {\n log.assert(\n Object.values(TILE_FORMATS).includes(formatTiles),\n `Invalid value for formatTiles: ${formatTiles}. Use value from TILE_FORMATS`\n );\n loadOptions.cartoTile = {formatTiles};\n }\n\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(props) {\n if (props.data === null) {\n return null;\n }\n\n props.autoHighlight = false;\n\n const {\n bbox: {west, south, east, north}\n } = props.tile;\n props.extensions = [new ClipExtension(), ...(props.extensions || [])];\n props.clipBounds = [west, south, east, north];\n\n const subLayer = new GeoJsonLayer({\n ...props\n });\n return subLayer;\n }\n}\n\nCartoTileLayer.layerName = 'CartoTileLayer';\nCartoTileLayer.defaultProps = defaultProps;\n"],"file":"carto-tile-layer.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getDefaultCredentials, buildMapsUrlFromBase } from '../config';
|
|
2
|
-
import { API_VERSIONS, encodeParameter, FORMATS, MAP_TYPES } from './maps-api-common';
|
|
2
|
+
import { API_VERSIONS, encodeParameter, FORMATS, MAP_TYPES, TILE_FORMATS } from './maps-api-common';
|
|
3
3
|
import { parseMap } from './parseMap';
|
|
4
4
|
import { log } from '@deck.gl/core';
|
|
5
5
|
import { assert } from '../utils';
|
|
@@ -205,6 +205,7 @@ export async function fetchLayerData({
|
|
|
205
205
|
geoColumn,
|
|
206
206
|
columns,
|
|
207
207
|
format,
|
|
208
|
+
formatTiles,
|
|
208
209
|
schema,
|
|
209
210
|
clientId
|
|
210
211
|
}) {
|
|
@@ -221,6 +222,7 @@ export async function fetchLayerData({
|
|
|
221
222
|
geoColumn,
|
|
222
223
|
columns,
|
|
223
224
|
format,
|
|
225
|
+
formatTiles,
|
|
224
226
|
schema,
|
|
225
227
|
clientId
|
|
226
228
|
});
|
|
@@ -249,6 +251,7 @@ async function _fetchDataUrl({
|
|
|
249
251
|
geoColumn,
|
|
250
252
|
columns,
|
|
251
253
|
format,
|
|
254
|
+
formatTiles,
|
|
252
255
|
schema,
|
|
253
256
|
clientId
|
|
254
257
|
}) {
|
|
@@ -299,6 +302,11 @@ async function _fetchDataUrl({
|
|
|
299
302
|
assert(url && mapFormat, 'Unsupported data formats received from backend.');
|
|
300
303
|
}
|
|
301
304
|
|
|
305
|
+
if (format === FORMATS.TILEJSON && formatTiles) {
|
|
306
|
+
log.assert(Object.values(TILE_FORMATS).includes(formatTiles), "Invalid value for formatTiles: ".concat(formatTiles, ". Use value from TILE_FORMATS"));
|
|
307
|
+
url += "&".concat(encodeParameter('formatTiles', formatTiles));
|
|
308
|
+
}
|
|
309
|
+
|
|
302
310
|
const {
|
|
303
311
|
accessToken
|
|
304
312
|
} = localCreds;
|