@deck.gl/carto 9.0.0-alpha.3 → 9.0.0-alpha.4
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 +2 -2
- 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/layers/utils.d.ts.map +1 -1
- package/typed/sources/boundary-query-source.d.ts +1 -1
- package/typed/sources/boundary-query-source.d.ts.map +1 -1
- package/LICENSE +0 -19
- package/src/.DS_Store +0 -0
|
@@ -1053,7 +1053,7 @@
|
|
|
1053
1053
|
}
|
|
1054
1054
|
|
|
1055
1055
|
// src/layers/schema/carto-raster-tile-loader.ts
|
|
1056
|
-
var VERSION = true ? "9.0.0-alpha.
|
|
1056
|
+
var VERSION = true ? "9.0.0-alpha.4" : "latest";
|
|
1057
1057
|
var id = "cartoRasterTile";
|
|
1058
1058
|
var DEFAULT_OPTIONS = {
|
|
1059
1059
|
cartoRasterTile: {
|
|
@@ -1440,7 +1440,7 @@
|
|
|
1440
1440
|
}
|
|
1441
1441
|
|
|
1442
1442
|
// src/layers/schema/carto-spatial-tile-loader.ts
|
|
1443
|
-
var VERSION = true ? "9.0.0-alpha.
|
|
1443
|
+
var VERSION = true ? "9.0.0-alpha.4" : "latest";
|
|
1444
1444
|
var id = "cartoSpatialTile";
|
|
1445
1445
|
var DEFAULT_OPTIONS = {
|
|
1446
1446
|
cartoSpatialTile: {
|
|
@@ -1668,7 +1668,7 @@
|
|
|
1668
1668
|
}
|
|
1669
1669
|
|
|
1670
1670
|
// src/layers/schema/carto-vector-tile-loader.ts
|
|
1671
|
-
var VERSION = true ? "9.0.0-alpha.
|
|
1671
|
+
var VERSION = true ? "9.0.0-alpha.4" : "latest";
|
|
1672
1672
|
var id = "cartoVectorTile";
|
|
1673
1673
|
var DEFAULT_OPTIONS = {
|
|
1674
1674
|
cartoVectorTile: {
|
package/dist/dist.dev.js
CHANGED
|
@@ -9143,7 +9143,7 @@ var __exports__ = (() => {
|
|
|
9143
9143
|
});
|
|
9144
9144
|
|
|
9145
9145
|
// src/layers/h3-tile-layer.ts
|
|
9146
|
-
var
|
|
9146
|
+
var import_core5 = __toESM(require_core());
|
|
9147
9147
|
var import_geo_layers3 = __toESM(require_geo_layers());
|
|
9148
9148
|
|
|
9149
9149
|
// src/layers/h3-tileset-2d.ts
|
|
@@ -9368,7 +9368,7 @@ var __exports__ = (() => {
|
|
|
9368
9368
|
}
|
|
9369
9369
|
|
|
9370
9370
|
// src/layers/schema/carto-raster-tile-loader.ts
|
|
9371
|
-
var VERSION = true ? "9.0.0-alpha.
|
|
9371
|
+
var VERSION = true ? "9.0.0-alpha.4" : "latest";
|
|
9372
9372
|
var id = "cartoRasterTile";
|
|
9373
9373
|
var DEFAULT_OPTIONS = {
|
|
9374
9374
|
cartoRasterTile: {
|
|
@@ -9767,7 +9767,7 @@ var __exports__ = (() => {
|
|
|
9767
9767
|
}
|
|
9768
9768
|
|
|
9769
9769
|
// src/layers/schema/carto-spatial-tile-loader.ts
|
|
9770
|
-
var VERSION2 = true ? "9.0.0-alpha.
|
|
9770
|
+
var VERSION2 = true ? "9.0.0-alpha.4" : "latest";
|
|
9771
9771
|
var id2 = "cartoSpatialTile";
|
|
9772
9772
|
var DEFAULT_OPTIONS2 = {
|
|
9773
9773
|
cartoSpatialTile: {
|
|
@@ -9871,6 +9871,7 @@ var __exports__ = (() => {
|
|
|
9871
9871
|
|
|
9872
9872
|
// src/layers/utils.ts
|
|
9873
9873
|
var import_core3 = __toESM(require_core());
|
|
9874
|
+
var import_core4 = __toESM(require_core());
|
|
9874
9875
|
function injectAccessToken(loadOptions, accessToken) {
|
|
9875
9876
|
if (!loadOptions?.fetch?.headers?.Authorization) {
|
|
9876
9877
|
loadOptions.fetch = {
|
|
@@ -9889,9 +9890,10 @@ var __exports__ = (() => {
|
|
|
9889
9890
|
...rest
|
|
9890
9891
|
} of properties.properties) {
|
|
9891
9892
|
if (geoid in mapping) {
|
|
9892
|
-
|
|
9893
|
+
import_core3.log.warn(`Duplicate geoid key in boundary mapping, using first occurance`)();
|
|
9894
|
+
} else {
|
|
9895
|
+
mapping[geoid] = rest;
|
|
9893
9896
|
}
|
|
9894
|
-
mapping[geoid] = rest;
|
|
9895
9897
|
}
|
|
9896
9898
|
for (const type of ["points", "lines", "polygons"]) {
|
|
9897
9899
|
const geom = geometry[type];
|
|
@@ -9941,7 +9943,7 @@ var __exports__ = (() => {
|
|
|
9941
9943
|
value: null,
|
|
9942
9944
|
validate: (value, propType) => propType.optional && value === null || typeof value === "object" && Array.isArray(value.tiles) && value.tiles.every((url) => typeof url === "string"),
|
|
9943
9945
|
equal: (value1, value2) => {
|
|
9944
|
-
return (0,
|
|
9946
|
+
return (0, import_core4._deepEqual)(value1, value2, 2);
|
|
9945
9947
|
},
|
|
9946
9948
|
async: true
|
|
9947
9949
|
};
|
|
@@ -9965,7 +9967,7 @@ var __exports__ = (() => {
|
|
|
9965
9967
|
var defaultProps2 = {
|
|
9966
9968
|
data: TilejsonPropType
|
|
9967
9969
|
};
|
|
9968
|
-
var H3TileLayer = class extends
|
|
9970
|
+
var H3TileLayer = class extends import_core5.CompositeLayer {
|
|
9969
9971
|
initializeState() {
|
|
9970
9972
|
import_geo_layers3.H3HexagonLayer._checkH3Lib();
|
|
9971
9973
|
}
|
|
@@ -10017,7 +10019,7 @@ var __exports__ = (() => {
|
|
|
10017
10019
|
__publicField(H3TileLayer, "defaultProps", defaultProps2);
|
|
10018
10020
|
|
|
10019
10021
|
// src/layers/point-label-layer.ts
|
|
10020
|
-
var
|
|
10022
|
+
var import_core6 = __toESM(require_core());
|
|
10021
10023
|
var import_layers = __toESM(require_layers());
|
|
10022
10024
|
var [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];
|
|
10023
10025
|
var EnhancedTextBackgroundLayer = class extends import_layers._TextBackgroundLayer {
|
|
@@ -10058,7 +10060,7 @@ var __exports__ = (() => {
|
|
|
10058
10060
|
value: 1
|
|
10059
10061
|
}
|
|
10060
10062
|
};
|
|
10061
|
-
var PointLabelLayer = class extends
|
|
10063
|
+
var PointLabelLayer = class extends import_core6.CompositeLayer {
|
|
10062
10064
|
calculatePixelOffset(secondary) {
|
|
10063
10065
|
const {
|
|
10064
10066
|
getTextAnchor: anchor,
|
|
@@ -10198,7 +10200,7 @@ var __exports__ = (() => {
|
|
|
10198
10200
|
__publicField(PointLabelLayer, "defaultProps", defaultProps3);
|
|
10199
10201
|
|
|
10200
10202
|
// src/layers/quadbin-tile-layer.ts
|
|
10201
|
-
var
|
|
10203
|
+
var import_core7 = __toESM(require_core());
|
|
10202
10204
|
|
|
10203
10205
|
// src/layers/quadbin-layer.ts
|
|
10204
10206
|
var import_geo_layers4 = __toESM(require_geo_layers());
|
|
@@ -10319,7 +10321,7 @@ var __exports__ = (() => {
|
|
|
10319
10321
|
var defaultProps5 = {
|
|
10320
10322
|
data: TilejsonPropType
|
|
10321
10323
|
};
|
|
10322
|
-
var QuadbinTileLayer = class extends
|
|
10324
|
+
var QuadbinTileLayer = class extends import_core7.CompositeLayer {
|
|
10323
10325
|
getLoadOptions() {
|
|
10324
10326
|
const loadOptions = super.getLoadOptions() || {};
|
|
10325
10327
|
const tileJSON = this.props.data;
|
|
@@ -10352,10 +10354,10 @@ var __exports__ = (() => {
|
|
|
10352
10354
|
__publicField(QuadbinTileLayer, "defaultProps", defaultProps5);
|
|
10353
10355
|
|
|
10354
10356
|
// src/layers/raster-tile-layer.ts
|
|
10355
|
-
var
|
|
10357
|
+
var import_core9 = __toESM(require_core());
|
|
10356
10358
|
|
|
10357
10359
|
// src/layers/raster-layer.ts
|
|
10358
|
-
var
|
|
10360
|
+
var import_core8 = __toESM(require_core());
|
|
10359
10361
|
var import_layers2 = __toESM(require_layers());
|
|
10360
10362
|
|
|
10361
10363
|
// src/layers/raster-layer-vertex.glsl.ts
|
|
@@ -10500,7 +10502,7 @@ void main(void) {
|
|
|
10500
10502
|
}
|
|
10501
10503
|
};
|
|
10502
10504
|
__publicField(RasterColumnLayer, "layerName", "RasterColumnLayer");
|
|
10503
|
-
var RasterLayer = class extends
|
|
10505
|
+
var RasterLayer = class extends import_core8.CompositeLayer {
|
|
10504
10506
|
renderLayers() {
|
|
10505
10507
|
const {
|
|
10506
10508
|
data,
|
|
@@ -10568,7 +10570,7 @@ void main(void) {
|
|
|
10568
10570
|
var defaultProps7 = {
|
|
10569
10571
|
data: TilejsonPropType
|
|
10570
10572
|
};
|
|
10571
|
-
var RasterTileLayer = class extends
|
|
10573
|
+
var RasterTileLayer = class extends import_core9.CompositeLayer {
|
|
10572
10574
|
getLoadOptions() {
|
|
10573
10575
|
const loadOptions = super.getLoadOptions() || {};
|
|
10574
10576
|
const tileJSON = this.props.data;
|
|
@@ -10599,7 +10601,7 @@ void main(void) {
|
|
|
10599
10601
|
__publicField(RasterTileLayer, "defaultProps", defaultProps7);
|
|
10600
10602
|
|
|
10601
10603
|
// src/layers/vector-tile-layer.ts
|
|
10602
|
-
var
|
|
10604
|
+
var import_core10 = __toESM(require_core2());
|
|
10603
10605
|
|
|
10604
10606
|
// src/layers/schema/carto-properties-tile.ts
|
|
10605
10607
|
var TileReader4 = class {
|
|
@@ -10642,7 +10644,7 @@ void main(void) {
|
|
|
10642
10644
|
|
|
10643
10645
|
// src/layers/schema/carto-vector-tile-loader.ts
|
|
10644
10646
|
var import_earcut = __toESM(require_earcut());
|
|
10645
|
-
var VERSION3 = true ? "9.0.0-alpha.
|
|
10647
|
+
var VERSION3 = true ? "9.0.0-alpha.4" : "latest";
|
|
10646
10648
|
var id3 = "cartoVectorTile";
|
|
10647
10649
|
var DEFAULT_OPTIONS3 = {
|
|
10648
10650
|
cartoVectorTile: {
|
|
@@ -10917,7 +10919,7 @@ void main(void) {
|
|
|
10917
10919
|
}
|
|
10918
10920
|
|
|
10919
10921
|
// src/layers/vector-tile-layer.ts
|
|
10920
|
-
(0,
|
|
10922
|
+
(0, import_core10.registerLoaders)([carto_properties_tile_loader_default, carto_vector_tile_loader_default]);
|
|
10921
10923
|
var defaultProps8 = {
|
|
10922
10924
|
...import_geo_layers6.MVTLayer.defaultProps,
|
|
10923
10925
|
data: TilejsonPropType,
|
|
@@ -10991,7 +10993,7 @@ void main(void) {
|
|
|
10991
10993
|
const [geometry, attributes] = await Promise.all([geometryFetch, attributesFetch]);
|
|
10992
10994
|
if (!geometry)
|
|
10993
10995
|
return null;
|
|
10994
|
-
return mergeBoundaryData(geometry, attributes);
|
|
10996
|
+
return attributes ? mergeBoundaryData(geometry, attributes) : geometry;
|
|
10995
10997
|
}
|
|
10996
10998
|
renderSubLayers(props) {
|
|
10997
10999
|
if (props.data === null) {
|
|
@@ -13477,7 +13479,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
13477
13479
|
};
|
|
13478
13480
|
|
|
13479
13481
|
// src/api/parse-map.ts
|
|
13480
|
-
var
|
|
13482
|
+
var import_core11 = __toESM(require_core());
|
|
13481
13483
|
|
|
13482
13484
|
// src/api/layer-map.ts
|
|
13483
13485
|
var import_moment_timezone = __toESM(require_moment_timezone2());
|
|
@@ -13996,7 +13998,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
13996
13998
|
...createLoadOptions(token)
|
|
13997
13999
|
});
|
|
13998
14000
|
} catch (e) {
|
|
13999
|
-
|
|
14001
|
+
import_core11.log.error(e.message)();
|
|
14000
14002
|
return void 0;
|
|
14001
14003
|
}
|
|
14002
14004
|
})
|
|
@@ -14347,7 +14349,8 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14347
14349
|
data,
|
|
14348
14350
|
id: id4,
|
|
14349
14351
|
source,
|
|
14350
|
-
type
|
|
14352
|
+
type,
|
|
14353
|
+
queryParameters
|
|
14351
14354
|
} = dataset;
|
|
14352
14355
|
const errorContext = {
|
|
14353
14356
|
requestType: "Tile stats",
|
|
@@ -14368,12 +14371,17 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
14368
14371
|
const headers = {
|
|
14369
14372
|
Authorization: `Bearer ${accessToken}`
|
|
14370
14373
|
};
|
|
14374
|
+
const parameters = {};
|
|
14375
|
+
if (type === "query") {
|
|
14376
|
+
parameters.q = source;
|
|
14377
|
+
if (queryParameters) {
|
|
14378
|
+
parameters.queryParameters = JSON.stringify(queryParameters);
|
|
14379
|
+
}
|
|
14380
|
+
}
|
|
14371
14381
|
const stats = await requestWithParameters({
|
|
14372
14382
|
baseUrl: baseUrl2,
|
|
14373
14383
|
headers,
|
|
14374
|
-
parameters
|
|
14375
|
-
q: source
|
|
14376
|
-
} : {},
|
|
14384
|
+
parameters,
|
|
14377
14385
|
errorContext
|
|
14378
14386
|
});
|
|
14379
14387
|
const {
|
|
@@ -241,12 +241,12 @@ function _fetchTilestats(_x6, _x7, _x8, _x9) {
|
|
|
241
241
|
|
|
242
242
|
function _fetchTilestats2() {
|
|
243
243
|
_fetchTilestats2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(attribute, dataset, accessToken, apiBaseUrl) {
|
|
244
|
-
var connection, data, id, source, type, errorContext, statsUrl, baseUrl, headers, stats, attributes, index;
|
|
244
|
+
var connection, data, id, source, type, queryParameters, errorContext, statsUrl, baseUrl, headers, parameters, stats, attributes, index;
|
|
245
245
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
246
246
|
while (1) {
|
|
247
247
|
switch (_context2.prev = _context2.next) {
|
|
248
248
|
case 0:
|
|
249
|
-
connection = dataset.connectionName, data = dataset.data, id = dataset.id, source = dataset.source, type = dataset.type;
|
|
249
|
+
connection = dataset.connectionName, data = dataset.data, id = dataset.id, source = dataset.source, type = dataset.type, queryParameters = dataset.queryParameters;
|
|
250
250
|
errorContext = {
|
|
251
251
|
requestType: 'Tile stats',
|
|
252
252
|
connection: connection,
|
|
@@ -274,17 +274,25 @@ function _fetchTilestats2() {
|
|
|
274
274
|
headers = {
|
|
275
275
|
Authorization: "Bearer ".concat(accessToken)
|
|
276
276
|
};
|
|
277
|
-
|
|
277
|
+
parameters = {};
|
|
278
|
+
|
|
279
|
+
if (type === 'query') {
|
|
280
|
+
parameters.q = source;
|
|
281
|
+
|
|
282
|
+
if (queryParameters) {
|
|
283
|
+
parameters.queryParameters = JSON.stringify(queryParameters);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
_context2.next = 12;
|
|
278
288
|
return (0, _requestWithParameters.requestWithParameters)({
|
|
279
289
|
baseUrl: baseUrl,
|
|
280
290
|
headers: headers,
|
|
281
|
-
parameters:
|
|
282
|
-
q: source
|
|
283
|
-
} : {},
|
|
291
|
+
parameters: parameters,
|
|
284
292
|
errorContext: errorContext
|
|
285
293
|
});
|
|
286
294
|
|
|
287
|
-
case
|
|
295
|
+
case 12:
|
|
288
296
|
stats = _context2.sent;
|
|
289
297
|
attributes = data.tilestats.layers[0].attributes;
|
|
290
298
|
index = attributes.findIndex(function (d) {
|
|
@@ -293,7 +301,7 @@ function _fetchTilestats2() {
|
|
|
293
301
|
attributes[index] = stats;
|
|
294
302
|
return _context2.abrupt("return", true);
|
|
295
303
|
|
|
296
|
-
case
|
|
304
|
+
case 17:
|
|
297
305
|
case "end":
|
|
298
306
|
return _context2.stop();
|
|
299
307
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/fetch-map.ts"],"names":["_fetchMapDataset","dataset","accessToken","apiBaseUrl","clientId","headers","aggregationExp","aggregationResLevel","connectionName","columns","format","geoColumn","source","type","queryParameters","cache","globalOptions","tableName","data","split","spatialDataType","spatialDataColumn","options","sqlQuery","cacheChanged","value","_fetchTilestats","attribute","connection","id","errorContext","requestType","CartoAPIError","Error","statsUrl","baseUrl","Authorization","parameters","q","stats","attributes","tilestats","layers","index","findIndex","d","fillInMapDatasets","datasets","token","promises","map","Promise","all","fillInTileStats","keplerMapConfig","config","visState","layer","Object","keys","visualChannels","channel","name","find","dataId","push","filteredAttributes","a","fetchMap","DEFAULT_API_BASE_URL","cartoMapId","DEFAULT_CLIENT","mapsUrl","autoRefresh","onNewData","mapId","intervalId","setInterval","Date","toUTCString","changed","some","v","stopAutoRefresh","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":["_fetchMapDataset","dataset","accessToken","apiBaseUrl","clientId","headers","aggregationExp","aggregationResLevel","connectionName","columns","format","geoColumn","source","type","queryParameters","cache","globalOptions","tableName","data","split","spatialDataType","spatialDataColumn","options","sqlQuery","cacheChanged","value","_fetchTilestats","attribute","connection","id","errorContext","requestType","CartoAPIError","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","Object","keys","visualChannels","channel","name","find","dataId","push","filteredAttributes","a","fetchMap","DEFAULT_API_BASE_URL","cartoMapId","DEFAULT_CLIENT","mapsUrl","autoRefresh","onNewData","mapId","intervalId","setInterval","Date","toUTCString","changed","some","v","stopAutoRefresh","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"}
|
|
@@ -17,7 +17,7 @@ var _tileLoaderUtils = require("./tile-loader-utils");
|
|
|
17
17
|
|
|
18
18
|
var _utils = require("../../utils");
|
|
19
19
|
|
|
20
|
-
var VERSION = typeof "9.0.0-alpha.
|
|
20
|
+
var VERSION = typeof "9.0.0-alpha.4" !== 'undefined' ? "9.0.0-alpha.4" : 'latest';
|
|
21
21
|
var id = 'cartoRasterTile';
|
|
22
22
|
var DEFAULT_OPTIONS = {
|
|
23
23
|
cartoRasterTile: {
|
|
@@ -19,7 +19,7 @@ var _utils = require("../../utils");
|
|
|
19
19
|
|
|
20
20
|
var _spatialjsonUtils = require("./spatialjson-utils");
|
|
21
21
|
|
|
22
|
-
var VERSION = typeof "9.0.0-alpha.
|
|
22
|
+
var VERSION = typeof "9.0.0-alpha.4" !== 'undefined' ? "9.0.0-alpha.4" : 'latest';
|
|
23
23
|
var id = 'cartoSpatialTile';
|
|
24
24
|
var DEFAULT_OPTIONS = {
|
|
25
25
|
cartoSpatialTile: {
|
|
@@ -19,7 +19,7 @@ var _tileLoaderUtils = require("./tile-loader-utils");
|
|
|
19
19
|
|
|
20
20
|
var _utils = require("../../utils");
|
|
21
21
|
|
|
22
|
-
var VERSION = typeof "9.0.0-alpha.
|
|
22
|
+
var VERSION = typeof "9.0.0-alpha.4" !== 'undefined' ? "9.0.0-alpha.4" : 'latest';
|
|
23
23
|
var id = 'cartoVectorTile';
|
|
24
24
|
var DEFAULT_OPTIONS = {
|
|
25
25
|
cartoVectorTile: {
|
package/dist/es5/layers/utils.js
CHANGED
|
@@ -56,10 +56,10 @@ function mergeBoundaryData(geometry, properties) {
|
|
|
56
56
|
rest = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
|
|
57
57
|
|
|
58
58
|
if (geoid in mapping) {
|
|
59
|
-
|
|
59
|
+
_core.log.warn("Duplicate geoid key in boundary mapping, using first occurance")();
|
|
60
|
+
} else {
|
|
61
|
+
mapping[geoid] = rest;
|
|
60
62
|
}
|
|
61
|
-
|
|
62
|
-
mapping[geoid] = rest;
|
|
63
63
|
}
|
|
64
64
|
} catch (err) {
|
|
65
65
|
_iterator.e(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization","mergeBoundaryData","geometry","properties","mapping","geoid","rest","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization","mergeBoundaryData","geometry","properties","mapping","geoid","rest","log","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"}
|
|
@@ -184,7 +184,7 @@ var VectorTileLayer = function (_MVTLayer) {
|
|
|
184
184
|
return _context.abrupt("return", null);
|
|
185
185
|
|
|
186
186
|
case 25:
|
|
187
|
-
return _context.abrupt("return", (0, _utils.mergeBoundaryData)(geometry, attributes));
|
|
187
|
+
return _context.abrupt("return", attributes ? (0, _utils.mergeBoundaryData)(geometry, attributes) : geometry);
|
|
188
188
|
|
|
189
189
|
case 26:
|
|
190
190
|
case "end":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["CartoPropertiesTileLoader","CartoVectorTileLoader","defaultProps","MVTLayer","data","TilejsonPropType","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","all","geometry","attributes","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","ClipExtension","clipBounds","subLayer","GeoJsonLayer","getPickingInfo","params","info","index","sourceLayer","object","globalFeatureId","layerName"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["CartoPropertiesTileLoader","CartoVectorTileLoader","defaultProps","MVTLayer","data","TilejsonPropType","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","all","geometry","attributes","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","ClipExtension","clipBounds","subLayer","GeoJsonLayer","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":["boundaryQuerySource","options","boundaryId","matchingColumn","sqlQuery","queryParameters","urlParameters","JSON","stringify"],"mappings":";;;;;;;;;;;;;AACA;;AAgBO,IAAMA,mBAAmB;AAAA,uEAAG,iBACjCC,OADiC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAG1BC,YAAAA,UAH0B,GAGsCD,OAHtC,CAG1BC,UAH0B,0BAGsCD,OAHtC,CAGdE,cAHc,EAGdA,cAHc,sCAGG,IAHH,0BAGSC,QAHT,GAGsCH,OAHtC,CAGSG,QAHT,EAGmBC,eAHnB,GAGsCJ,OAHtC,CAGmBI,eAHnB;AAI3BC,YAAAA,aAJ2B,GAII;AACnCJ,cAAAA,UAAU,EAAVA,UADmC;AAEnCC,cAAAA,cAAc,EAAdA,cAFmC;AAGnCC,cAAAA,QAAQ,EAARA;AAHmC,aAJJ;;AASjC,gBAAIC,eAAJ,EAAqB;AACnBC,cAAAA,aAAa,CAACD,eAAd,GAAgCE,IAAI,CAACC,SAAL,CAAeH,eAAf,CAAhC;AACD;;AAXgC,6CAY1B,4BAA0B,UAA1B,EAAsCJ,OAAtC,EAA+CK,aAA/C,CAZ0B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAnBN,mBAAmB;AAAA;AAAA;AAAA,GAAzB","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":["boundaryQuerySource","options","boundaryId","matchingColumn","sqlQuery","queryParameters","urlParameters","JSON","stringify"],"mappings":";;;;;;;;;;;;;AACA;;AAgBO,IAAMA,mBAAmB;AAAA,uEAAG,iBACjCC,OADiC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAG1BC,YAAAA,UAH0B,GAGsCD,OAHtC,CAG1BC,UAH0B,0BAGsCD,OAHtC,CAGdE,cAHc,EAGdA,cAHc,sCAGG,IAHH,0BAGSC,QAHT,GAGsCH,OAHtC,CAGSG,QAHT,EAGmBC,eAHnB,GAGsCJ,OAHtC,CAGmBI,eAHnB;AAI3BC,YAAAA,aAJ2B,GAII;AACnCJ,cAAAA,UAAU,EAAVA,UADmC;AAEnCC,cAAAA,cAAc,EAAdA,cAFmC;AAGnCC,cAAAA,QAAQ,EAARA;AAHmC,aAJJ;;AASjC,gBAAIC,eAAJ,EAAqB;AACnBC,cAAAA,aAAa,CAACD,eAAd,GAAgCE,IAAI,CAACC,SAAL,CAAeH,eAAf,CAAhC;AACD;;AAXgC,6CAY1B,4BAA0B,UAA1B,EAAsCJ,OAAtC,EAA+CK,aAA/C,CAZ0B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAnBN,mBAAmB;AAAA;AAAA;AAAA,GAAzB","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"}
|
|
@@ -107,7 +107,8 @@ async function _fetchTilestats(attribute, dataset, accessToken, apiBaseUrl) {
|
|
|
107
107
|
data,
|
|
108
108
|
id,
|
|
109
109
|
source,
|
|
110
|
-
type
|
|
110
|
+
type,
|
|
111
|
+
queryParameters
|
|
111
112
|
} = dataset;
|
|
112
113
|
const errorContext = {
|
|
113
114
|
requestType: 'Tile stats',
|
|
@@ -132,12 +133,20 @@ async function _fetchTilestats(attribute, dataset, accessToken, apiBaseUrl) {
|
|
|
132
133
|
const headers = {
|
|
133
134
|
Authorization: `Bearer ${accessToken}`
|
|
134
135
|
};
|
|
136
|
+
const parameters = {};
|
|
137
|
+
|
|
138
|
+
if (type === 'query') {
|
|
139
|
+
parameters.q = source;
|
|
140
|
+
|
|
141
|
+
if (queryParameters) {
|
|
142
|
+
parameters.queryParameters = JSON.stringify(queryParameters);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
135
146
|
const stats = await requestWithParameters({
|
|
136
147
|
baseUrl,
|
|
137
148
|
headers,
|
|
138
|
-
parameters
|
|
139
|
-
q: source
|
|
140
|
-
} : {},
|
|
149
|
+
parameters,
|
|
141
150
|
errorContext
|
|
142
151
|
});
|
|
143
152
|
const {
|