@deck.gl/carto 8.10.0-alpha.2 → 8.10.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/cartoRasterTile-worker.js +1084 -0
- package/dist/cartoSpatialTile-worker.js +1469 -0
- package/dist/cartoVectorTile-worker.js +1727 -0
- package/dist/dist.dev.js +2137 -1936
- package/dist/es5/api/carto-api-error.js +3 -7
- package/dist/es5/api/carto-api-error.js.map +1 -1
- package/dist/es5/api/layer-map.js +3 -7
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-api-common.js +0 -1
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +5 -20
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/index.js +74 -6
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +196 -200
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +57 -79
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/h3-tileset-2d.js +62 -68
- package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
- package/dist/es5/layers/point-label-layer.js +160 -165
- package/dist/es5/layers/point-label-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-layer.js +23 -27
- package/dist/es5/layers/quadbin-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +39 -63
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tileset-2d.js +32 -38
- package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/es5/layers/raster-layer.js +94 -98
- package/dist/es5/layers/raster-layer.js.map +1 -1
- package/dist/es5/layers/raster-tile-layer.js +37 -58
- package/dist/es5/layers/raster-tile-layer.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
- package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile.js +31 -39
- package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile.js +36 -47
- package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-tile.js +161 -196
- package/dist/es5/layers/schema/carto-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
- package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/es5/layers/spatial-index-tile-layer.js +67 -73
- package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/es5/layers/utils.js +29 -0
- package/dist/es5/layers/utils.js.map +1 -0
- package/dist/es5/layers/vector-tile-layer.js +163 -0
- package/dist/es5/layers/vector-tile-layer.js.map +1 -0
- package/dist/es5/sources/base-source.js +100 -0
- package/dist/es5/sources/base-source.js.map +1 -0
- package/dist/es5/sources/common.js +48 -0
- package/dist/es5/sources/common.js.map +1 -0
- package/dist/es5/sources/h3-query-source.js +58 -0
- package/dist/es5/sources/h3-query-source.js.map +1 -0
- package/dist/es5/sources/h3-table-source.js +58 -0
- package/dist/es5/sources/h3-table-source.js.map +1 -0
- package/dist/es5/sources/h3-tileset-source.js +43 -0
- package/dist/es5/sources/h3-tileset-source.js.map +1 -0
- package/dist/es5/sources/index.js +94 -0
- package/dist/es5/sources/index.js.map +1 -0
- package/dist/es5/sources/quadbin-query-source.js +58 -0
- package/dist/es5/sources/quadbin-query-source.js.map +1 -0
- package/dist/es5/sources/quadbin-table-source.js +58 -0
- package/dist/es5/sources/quadbin-table-source.js.map +1 -0
- package/dist/es5/sources/quadbin-tileset-source.js +43 -0
- package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
- package/dist/es5/sources/raster-source.js +43 -0
- package/dist/es5/sources/raster-source.js.map +1 -0
- package/dist/es5/sources/utils.js +136 -0
- package/dist/es5/sources/utils.js.map +1 -0
- package/dist/es5/sources/vector-query-source.js +52 -0
- package/dist/es5/sources/vector-query-source.js.map +1 -0
- package/dist/es5/sources/vector-table-source.js +52 -0
- package/dist/es5/sources/vector-table-source.js.map +1 -0
- package/dist/es5/sources/vector-tileset-source.js +43 -0
- package/dist/es5/sources/vector-tileset-source.js.map +1 -0
- package/dist/es5/utils.js +5 -0
- package/dist/es5/utils.js.map +1 -1
- package/dist/es5/workers/cartoRasterTile.js +10 -0
- package/dist/es5/workers/cartoRasterTile.js.map +1 -0
- package/dist/es5/workers/cartoSpatialTile.js +10 -0
- package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
- package/dist/es5/workers/cartoVectorTile.js +10 -0
- package/dist/es5/workers/cartoVectorTile.js.map +1 -0
- package/dist/esm/api/carto-api-error.js +8 -13
- package/dist/esm/api/carto-api-error.js.map +1 -1
- package/dist/esm/api/layer-map.js +7 -11
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +3 -4
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-client.js +7 -7
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +14 -24
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +4 -4
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/config.js +3 -3
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +12 -15
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +24 -43
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/point-label-layer.js +6 -10
- package/dist/esm/layers/point-label-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-layer.js +2 -5
- package/dist/esm/layers/quadbin-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +21 -44
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js +98 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/layers/raster-layer.js +4 -8
- package/dist/esm/layers/raster-layer.js.map +1 -1
- package/dist/esm/layers/raster-tile-layer.js +21 -39
- package/dist/esm/layers/raster-tile-layer.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
- package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-tile.js +1 -1
- package/dist/esm/layers/schema/carto-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
- package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/esm/layers/spatial-index-tile-layer.js +2 -5
- package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/esm/layers/utils.js +14 -0
- package/dist/esm/layers/utils.js.map +1 -0
- package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -18
- package/dist/esm/layers/vector-tile-layer.js.map +1 -0
- package/dist/esm/sources/base-source.js +49 -0
- package/dist/esm/sources/base-source.js.map +1 -0
- package/dist/esm/sources/common.js +26 -0
- package/dist/esm/sources/common.js.map +1 -0
- package/dist/esm/sources/h3-query-source.js +32 -0
- package/dist/esm/sources/h3-query-source.js.map +1 -0
- package/dist/esm/sources/h3-table-source.js +32 -0
- package/dist/esm/sources/h3-table-source.js.map +1 -0
- package/dist/esm/sources/h3-tileset-source.js +14 -0
- package/dist/esm/sources/h3-tileset-source.js.map +1 -0
- package/dist/esm/sources/index.js +12 -0
- package/dist/esm/sources/index.js.map +1 -0
- package/dist/esm/sources/quadbin-query-source.js +32 -0
- package/dist/esm/sources/quadbin-query-source.js.map +1 -0
- package/dist/esm/sources/quadbin-table-source.js +32 -0
- package/dist/esm/sources/quadbin-table-source.js.map +1 -0
- package/dist/esm/sources/quadbin-tileset-source.js +14 -0
- package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
- package/dist/esm/sources/raster-source.js +14 -0
- package/dist/esm/sources/raster-source.js.map +1 -0
- package/dist/esm/sources/utils.js +69 -0
- package/dist/esm/sources/utils.js.map +1 -0
- package/dist/esm/sources/vector-query-source.js +25 -0
- package/dist/esm/sources/vector-query-source.js.map +1 -0
- package/dist/esm/sources/vector-table-source.js +25 -0
- package/dist/esm/sources/vector-table-source.js.map +1 -0
- package/dist/esm/sources/vector-tileset-source.js +14 -0
- package/dist/esm/sources/vector-tileset-source.js.map +1 -0
- package/dist/esm/style/palette.js +2 -2
- package/dist/esm/style/palette.js.map +1 -1
- package/dist/esm/style/utils.js +1 -1
- package/dist/esm/style/utils.js.map +1 -1
- package/dist/esm/utils.js +3 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/workers/cartoRasterTile.js +4 -0
- package/dist/esm/workers/cartoRasterTile.js.map +1 -0
- package/dist/esm/workers/cartoSpatialTile.js +4 -0
- package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
- package/dist/esm/workers/cartoVectorTile.js +4 -0
- package/dist/esm/workers/cartoVectorTile.js.map +1 -0
- package/dist.min.js +45 -24
- package/package.json +11 -9
- package/src/api/layer-map.ts +4 -8
- package/src/api/maps-api-common.ts +0 -1
- package/src/api/maps-v3-client.ts +6 -5
- package/src/index.ts +34 -5
- package/src/layers/h3-tile-layer.ts +22 -35
- package/src/layers/quadbin-tile-layer.ts +19 -33
- package/src/layers/raster-tile-layer.ts +22 -26
- package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
- package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
- package/src/layers/schema/carto-tile.ts +1 -1
- package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
- package/src/layers/utils.ts +11 -0
- package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
- package/src/sources/base-source.ts +55 -0
- package/src/sources/common.ts +132 -0
- package/src/sources/h3-query-source.ts +45 -0
- package/src/sources/h3-table-source.ts +46 -0
- package/src/sources/h3-tileset-source.ts +16 -0
- package/src/sources/index.ts +32 -0
- package/src/sources/quadbin-query-source.ts +46 -0
- package/src/sources/quadbin-table-source.ts +46 -0
- package/src/sources/quadbin-tileset-source.ts +16 -0
- package/src/sources/raster-source.ts +16 -0
- package/src/sources/utils.ts +63 -0
- package/src/sources/vector-query-source.ts +23 -0
- package/src/sources/vector-table-source.ts +23 -0
- package/src/sources/vector-tileset-source.ts +16 -0
- package/src/utils.ts +6 -0
- package/src/workers/cartoRasterTile.ts +4 -0
- package/src/workers/cartoSpatialTile.ts +4 -0
- package/src/workers/cartoVectorTile.ts +4 -0
- package/typed/api/layer-map.d.ts +2 -3
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/maps-api-common.d.ts +0 -1
- package/typed/api/maps-api-common.d.ts.map +1 -1
- package/typed/api/maps-v3-client.d.ts +0 -3
- package/typed/api/maps-v3-client.d.ts.map +1 -1
- package/typed/index.d.ts +6 -4
- package/typed/index.d.ts.map +1 -1
- package/typed/layers/h3-tile-layer.d.ts +5 -8
- package/typed/layers/h3-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-tile-layer.d.ts +5 -9
- package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/typed/layers/raster-tile-layer.d.ts +6 -10
- package/typed/layers/raster-tile-layer.d.ts.map +1 -1
- package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
- package/typed/layers/utils.d.ts +5 -0
- package/typed/layers/utils.d.ts.map +1 -0
- package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
- package/typed/layers/vector-tile-layer.d.ts.map +1 -0
- package/typed/sources/base-source.d.ts +4 -0
- package/typed/sources/base-source.d.ts.map +1 -0
- package/typed/sources/common.d.ts +116 -0
- package/typed/sources/common.d.ts.map +1 -0
- package/typed/sources/h3-query-source.d.ts +5 -0
- package/typed/sources/h3-query-source.d.ts.map +1 -0
- package/typed/sources/h3-table-source.d.ts +5 -0
- package/typed/sources/h3-table-source.d.ts.map +1 -0
- package/typed/sources/h3-tileset-source.d.ts +5 -0
- package/typed/sources/h3-tileset-source.d.ts.map +1 -0
- package/typed/sources/index.d.ts +23 -0
- package/typed/sources/index.d.ts.map +1 -0
- package/typed/sources/quadbin-query-source.d.ts +5 -0
- package/typed/sources/quadbin-query-source.d.ts.map +1 -0
- package/typed/sources/quadbin-table-source.d.ts +5 -0
- package/typed/sources/quadbin-table-source.d.ts.map +1 -0
- package/typed/sources/quadbin-tileset-source.d.ts +5 -0
- package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
- package/typed/sources/raster-source.d.ts +5 -0
- package/typed/sources/raster-source.d.ts.map +1 -0
- package/typed/sources/utils.d.ts +15 -0
- package/typed/sources/utils.d.ts.map +1 -0
- package/typed/sources/vector-query-source.d.ts +5 -0
- package/typed/sources/vector-query-source.d.ts.map +1 -0
- package/typed/sources/vector-table-source.d.ts +5 -0
- package/typed/sources/vector-table-source.d.ts.map +1 -0
- package/typed/sources/vector-tileset-source.d.ts +5 -0
- package/typed/sources/vector-tileset-source.d.ts.map +1 -0
- package/typed/utils.d.ts +1 -0
- package/typed/utils.d.ts.map +1 -1
- package/typed/workers/cartoRasterTile.d.ts +2 -0
- package/typed/workers/cartoRasterTile.d.ts.map +1 -0
- package/typed/workers/cartoSpatialTile.d.ts +2 -0
- package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
- package/typed/workers/cartoVectorTile.d.ts +2 -0
- package/typed/workers/cartoVectorTile.d.ts.map +1 -0
- package/dist/es5/layers/carto-tile-layer.js +0 -145
- package/dist/es5/layers/carto-tile-layer.js.map +0 -1
- package/dist/esm/layers/carto-tile-layer.js.map +0 -1
- package/typed/api/index.js +0 -3
- package/typed/api/layer-map.js +0 -264
- package/typed/api/maps-api-common.js +0 -50
- package/typed/api/maps-client.js +0 -125
- package/typed/api/maps-v3-client.js +0 -304
- package/typed/api/parseMap.js +0 -178
- package/typed/basemap.js +0 -9
- package/typed/config.js +0 -35
- package/typed/index.js +0 -10
- package/typed/layers/carto-layer.js +0 -173
- package/typed/layers/carto-tile-layer.d.ts.map +0 -1
- package/typed/layers/carto-tile-layer.js +0 -105
- package/typed/layers/h3-tile-layer.js +0 -47
- package/typed/layers/h3-tileset-2d.js +0 -85
- package/typed/layers/quadkey-tile-layer.d.ts +0 -21
- package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
- package/typed/layers/quadkey-tile-layer.js +0 -42
- package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
- package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
- package/typed/layers/quadkey-tileset-2d.js +0 -36
- package/typed/layers/schema/carto-tile.js +0 -161
- package/typed/layers/spatial-index-tile-layer.js +0 -40
- package/typed/style/color-bins-style.js +0 -12
- package/typed/style/color-categories-style.js +0 -16
- package/typed/style/color-continuous-style.js +0 -12
- package/typed/style/palette.js +0 -62
- package/typed/style/utils.js +0 -15
- package/typed/utils.js +0 -4
|
@@ -1,22 +1,81 @@
|
|
|
1
|
+
import earcut from 'earcut';
|
|
1
2
|
import { TileReader } from './carto-tile';
|
|
2
3
|
import { parsePbf } from './tile-loader-utils';
|
|
4
|
+
import { getWorkerUrl } from '../../utils';
|
|
5
|
+
const VERSION = typeof "8.10.0-alpha.5" !== 'undefined' ? "8.10.0-alpha.5" : 'latest';
|
|
6
|
+
const id = 'cartoVectorTile';
|
|
7
|
+
const DEFAULT_OPTIONS = {
|
|
8
|
+
cartoVectorTile: {
|
|
9
|
+
workerUrl: getWorkerUrl(id, VERSION)
|
|
10
|
+
}
|
|
11
|
+
};
|
|
3
12
|
const CartoVectorTileLoader = {
|
|
4
13
|
name: 'CARTO Vector Tile',
|
|
5
|
-
version:
|
|
6
|
-
id
|
|
14
|
+
version: VERSION,
|
|
15
|
+
id,
|
|
7
16
|
module: 'carto',
|
|
8
17
|
extensions: ['pbf'],
|
|
9
18
|
mimeTypes: ['application/vnd.carto-vector-tile'],
|
|
10
19
|
category: 'geometry',
|
|
11
|
-
worker: false,
|
|
12
20
|
parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
|
|
13
21
|
parseSync: parseCartoVectorTile,
|
|
14
|
-
|
|
22
|
+
worker: true,
|
|
23
|
+
options: DEFAULT_OPTIONS
|
|
15
24
|
};
|
|
16
25
|
|
|
26
|
+
function triangulatePolygon(polygons, target, {
|
|
27
|
+
startPosition,
|
|
28
|
+
endPosition,
|
|
29
|
+
indices
|
|
30
|
+
}) {
|
|
31
|
+
const coordLength = polygons.positions.size;
|
|
32
|
+
const start = startPosition * coordLength;
|
|
33
|
+
const end = endPosition * coordLength;
|
|
34
|
+
const polygonPositions = polygons.positions.value.subarray(start, end);
|
|
35
|
+
const holes = indices.slice(1).map(n => n - startPosition);
|
|
36
|
+
const triangles = earcut(polygonPositions, holes, coordLength);
|
|
37
|
+
|
|
38
|
+
for (let t = 0, tl = triangles.length; t < tl; ++t) {
|
|
39
|
+
target.push(startPosition + triangles[t]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function triangulate(polygons) {
|
|
44
|
+
const {
|
|
45
|
+
polygonIndices,
|
|
46
|
+
positions,
|
|
47
|
+
primitivePolygonIndices
|
|
48
|
+
} = polygons;
|
|
49
|
+
const triangles = [];
|
|
50
|
+
let rangeStart = 0;
|
|
51
|
+
|
|
52
|
+
for (let i = 0; i < polygonIndices.value.length - 1; i++) {
|
|
53
|
+
const startPosition = polygonIndices.value[i];
|
|
54
|
+
const endPosition = polygonIndices.value[i + 1];
|
|
55
|
+
const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
|
|
56
|
+
const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
|
|
57
|
+
rangeStart = rangeEnd;
|
|
58
|
+
triangulatePolygon(polygons, triangles, {
|
|
59
|
+
startPosition,
|
|
60
|
+
endPosition,
|
|
61
|
+
indices
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
polygons.triangles = {
|
|
66
|
+
value: new Uint32Array(triangles),
|
|
67
|
+
size: 1
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
17
71
|
function parseCartoVectorTile(arrayBuffer, options) {
|
|
18
72
|
if (!arrayBuffer) return null;
|
|
19
73
|
const tile = parsePbf(arrayBuffer, TileReader);
|
|
74
|
+
|
|
75
|
+
if (tile.polygons && !tile.polygons.triangles) {
|
|
76
|
+
triangulate(tile.polygons);
|
|
77
|
+
}
|
|
78
|
+
|
|
20
79
|
return tile;
|
|
21
80
|
}
|
|
22
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["TileReader","parsePbf","CartoVectorTileLoader","name","version","
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["earcut","TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoVectorTile","workerUrl","CartoVectorTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","worker","triangulatePolygon","polygons","target","startPosition","endPosition","indices","coordLength","positions","size","start","end","polygonPositions","value","subarray","holes","slice","map","n","triangles","t","tl","length","push","triangulate","polygonIndices","primitivePolygonIndices","rangeStart","i","rangeEnd","indexOf","Uint32Array","tile"],"mappings":"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","sourcesContent":["import earcut from 'earcut';\nimport {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures, BinaryPolygonFeatures, TypedArray} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoVectorTile';\n\ntype CartoVectorTileLoaderOptions = LoaderOptions & {\n cartoVectorTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoVectorTileLoaderOptions = {\n cartoVectorTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoVectorTileLoaderOptions) =>\n parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction triangulatePolygon(\n polygons: BinaryPolygonFeatures,\n target: number[],\n {\n startPosition,\n endPosition,\n indices\n }: {startPosition: number; endPosition: number; indices: TypedArray}\n): void {\n const coordLength = polygons.positions.size;\n const start = startPosition * coordLength;\n const end = endPosition * coordLength;\n\n // Extract positions and holes for just this polygon\n const polygonPositions = polygons.positions.value.subarray(start, end);\n\n // Holes are referenced relative to outer polygon\n const holes = indices.slice(1).map((n: number) => n - startPosition);\n\n // Compute triangulation\n const triangles = earcut(polygonPositions, holes, coordLength);\n\n // Indices returned by triangulation are relative to start\n // of polygon, so we need to offset\n for (let t = 0, tl = triangles.length; t < tl; ++t) {\n target.push(startPosition + triangles[t]);\n }\n}\n\nfunction triangulate(polygons: BinaryPolygonFeatures) {\n const {polygonIndices, positions, primitivePolygonIndices} = polygons;\n const triangles = [];\n\n let rangeStart = 0;\n for (let i = 0; i < polygonIndices.value.length - 1; i++) {\n const startPosition = polygonIndices.value[i];\n const endPosition = polygonIndices.value[i + 1];\n\n // Extract hole indices between start & end position\n const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);\n const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);\n rangeStart = rangeEnd;\n\n triangulatePolygon(polygons, triangles, {startPosition, endPosition, indices});\n }\n\n polygons.triangles = {value: new Uint32Array(triangles), size: 1};\n}\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoVectorTileLoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n if (tile.polygons && !tile.polygons.triangles) {\n triangulate(tile.polygons);\n }\n\n return tile;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { registerLoaders } from '@loaders.gl/core';
|
|
3
2
|
import CartoRasterTileLoader from './schema/carto-raster-tile-loader';
|
|
4
3
|
import CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';
|
|
@@ -97,8 +96,6 @@ export default class SpatialIndexTileLayer extends TileLayer {
|
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
_defineProperty(SpatialIndexTileLayer, "defaultProps", defaultProps);
|
|
99
|
+
SpatialIndexTileLayer.layerName = 'SpatialIndexTileLayer';
|
|
100
|
+
SpatialIndexTileLayer.defaultProps = defaultProps;
|
|
104
101
|
//# sourceMappingURL=spatial-index-tile-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","updateState","params","props","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","updateState","params","props","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom","layerName"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,kBAA9B;AAEA,OAAOC,qBAAP,MAAkC,mCAAlC;AACA,OAAOC,sBAAP,MAAmC,oCAAnC;AACAF,eAAe,CAAC,CAACC,qBAAD,EAAwBC,sBAAxB,CAAD,CAAf;AAGA,SAAQC,SAAR,QAAuD,qBAAvD;;AAEA,SAASC,kBAAT,CAA4BC,KAA5B,EAAqD;AACnD,SAAOA,KAAK,KAAKC,SAAV,IAAuBD,KAAK,KAAK,IAAjC,IAAyCA,KAAK,KAAK,EAA1D;AACD;;AAED,MAAME,YAAsD,GAAG;AAC7DC,EAAAA,mBAAmB,EAAE;AADwC,CAA/D;AAaA,eAAe,MAAMC,qBAAN,SAGLN,SAHK,CAGgE;AAI7EO,EAAAA,WAAW,CAACC,MAAD,EAAiC;AAC1C,UAAM;AAACC,MAAAA,KAAD;AAAQC,MAAAA;AAAR,QAAoBF,MAA1B;;AACA,QAAIC,KAAK,CAACJ,mBAAN,KAA8BK,QAAQ,CAACL,mBAA3C,EAAgE;AAE9D,WAAKM,QAAL,CAAc;AAACC,QAAAA,OAAO,EAAE;AAAV,OAAd;AACD;;AAED,UAAML,WAAN,CAAkBC,MAAlB;AACD;;AAESK,EAAAA,oBAAoB,CAACC,IAAD,EAA0B;AACtD,UAAM;AAACC,MAAAA;AAAD,QAAqB,KAAKC,KAAhC;AACA,UAAMC,cAAc,GAAGH,IAAI,CAACI,MAA5B;AACA,QAAIC,mBAAJ;;AAEA,QAAIF,cAAJ,EAAoB;AAClBE,MAAAA,mBAAmB,GAAGF,cAAc,CAACG,EAArC;AACD;;AAED,QAAIL,gBAAgB,KAAKI,mBAAzB,EAA8C;AAC5C,UAAI;AAACE,QAAAA;AAAD,UAAmB,KAAKZ,KAA5B;;AACA,UAAI,OAAOY,cAAP,KAA0B,UAA9B,EAA0C;AACxCA,QAAAA,cAAc,GAAGA,cAAc,CAACP,IAAD,CAA/B;AACD;;AAED,WAAKH,QAAL,CAAc;AACZU,QAAAA,cADY;AAEZN,QAAAA,gBAAgB,EAAEI;AAFN,OAAd;AAID;AACF;;AAEDG,EAAAA,sBAAsB,CAACC,IAAD,EAAqB;AACzC,WAAO;AACLC,MAAAA,sBAAsB,EAAE,KAAKC,yBAAL,CAA+BF,IAA/B,CADnB;AAELF,MAAAA,cAAc,EAAE,KAAKL,KAAL,CAAWK;AAFtB,KAAP;AAID;;AAEDI,EAAAA,yBAAyB,CAACF,IAAD,EAAqB;AAC5C,UAAM;AAACR,MAAAA;AAAD,QAAqB,KAAKC,KAAhC;AACA,UAAMU,IAAI,GAAGH,IAAI,CAACI,OAAlB;AAEA,UAAMC,kBAAkB,GAAG3B,kBAAkB,CAACc,gBAAD,CAA7C;;AACA,QACE,CAACa,kBAAD,IACA,CAACC,KAAK,CAACC,OAAN,CAAcJ,IAAd,CADD,IAGA,CAAC,KAAKK,cAAL,CAAoBR,IAApB,EAA0BR,gBAA1B,CAJH,EAKE;AACA,aAAO,CAAC,CAAR;AACD;;AAED,WAAOW,IAAI,CAACM,SAAL,CAAeC,OAAO,IAAIA,OAAO,CAACb,EAAR,KAAeL,gBAAzC,CAAP;AACD;;AAEDgB,EAAAA,cAAc,CAACR,IAAD,EAAqBW,SAArB,EAAiD;AAC7D,UAAM;AAACC,MAAAA,WAAD;AAAcC,MAAAA;AAAd,QAAgC,KAAKpB,KAAL,CAAWJ,OAAjD;AACA,UAAMyB,QAAQ,GAAGF,WAAW,CAACZ,IAAI,CAACe,KAAN,CAA5B;AAEA,UAAMC,GAAG,GAAGhB,IAAI,CAACe,KAAL,CAAWE,CAAX,GAAe,GAAf,GAAqB,GAAjC;AACA,QAAIC,YAAY,GAAG;AAAC,OAACF,GAAD,GAAOL;AAAR,KAAnB;AACA,QAAIQ,WAAW,GAAGP,WAAW,CAACM,YAAD,CAA7B;;AACA,WAAO,EAAEC,WAAW,IAAIL,QAAjB,CAAP,EAAmC;AACjCI,MAAAA,YAAY,GAAGL,cAAc,CAACK,YAAD,CAA7B;AACAC,MAAAA,WAAW,GAAGP,WAAW,CAACM,YAAD,CAAzB;AACD;;AAED,WAAOA,YAAY,CAACF,GAAD,CAAZ,KAAsBhB,IAAI,CAACe,KAAL,CAAWC,GAAX,CAA7B;AACD;;AAzE4E;AAH1DjC,qB,CAIZqC,S,GAAY,uB;AAJArC,qB,CAKZF,Y,GAAeA,Y","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps &\n TileLayer<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n const {getTileZoom, getParentIndex} = this.state.tileset;\n const tileZoom = getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n let featureIndex = {[KEY]: featureId};\n let featureZoom = getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = getParentIndex(featureIndex);\n featureZoom = getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function injectAccessToken(loadOptions, accessToken) {
|
|
2
|
+
var _loadOptions$fetch, _loadOptions$fetch$he;
|
|
3
|
+
|
|
4
|
+
if (!(loadOptions !== null && loadOptions !== void 0 && (_loadOptions$fetch = loadOptions.fetch) !== null && _loadOptions$fetch !== void 0 && (_loadOptions$fetch$he = _loadOptions$fetch.headers) !== null && _loadOptions$fetch$he !== void 0 && _loadOptions$fetch$he.Authorization)) {
|
|
5
|
+
var _loadOptions$fetch2;
|
|
6
|
+
|
|
7
|
+
loadOptions.fetch = { ...loadOptions.fetch,
|
|
8
|
+
headers: { ...((_loadOptions$fetch2 = loadOptions.fetch) === null || _loadOptions$fetch2 === void 0 ? void 0 : _loadOptions$fetch2.headers),
|
|
9
|
+
Authorization: `Bearer ${accessToken}`
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization"],"mappings":"AAGA,OAAO,SAASA,iBAAT,CAA2BC,WAA3B,EAA6CC,WAA7C,EAAwE;AAAA;;AAC7E,MAAI,EAACD,WAAD,aAACA,WAAD,qCAACA,WAAW,CAAEE,KAAd,wEAAC,mBAAoBC,OAArB,kDAAC,sBAA6BC,aAA9B,CAAJ,EAAiD;AAAA;;AAC/CJ,IAAAA,WAAW,CAACE,KAAZ,GAAoB,EAClB,GAAGF,WAAW,CAACE,KADG;AAElBC,MAAAA,OAAO,EAAE,EAAC,2BAAGH,WAAW,CAACE,KAAf,wDAAG,oBAAmBC,OAAtB,CAAD;AAAgCC,QAAAA,aAAa,EAAG,UAASH,WAAY;AAArE;AAFS,KAApB;AAID;AACF","sourcesContent":["/**\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"],"file":"utils.js"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import { registerLoaders } from '@loaders.gl/core';
|
|
3
2
|
import CartoVectorTileLoader from './schema/carto-vector-tile-loader';
|
|
4
3
|
registerLoaders([CartoVectorTileLoader]);
|
|
@@ -7,19 +6,47 @@ import { MVTLayer, _getURLFromTemplate } from '@deck.gl/geo-layers';
|
|
|
7
6
|
import { GeoJsonLayer } from '@deck.gl/layers';
|
|
8
7
|
import { binaryToGeojson } from '@loaders.gl/gis';
|
|
9
8
|
import { TILE_FORMATS } from '../api/maps-api-common';
|
|
9
|
+
import { TilejsonPropType } from '../sources/common';
|
|
10
|
+
import { injectAccessToken } from './utils';
|
|
10
11
|
const defaultTileFormat = TILE_FORMATS.BINARY;
|
|
11
12
|
const defaultProps = { ...MVTLayer.defaultProps,
|
|
13
|
+
data: TilejsonPropType,
|
|
12
14
|
formatTiles: defaultTileFormat
|
|
13
15
|
};
|
|
14
|
-
export default class
|
|
16
|
+
export default class VectorTileLayer extends MVTLayer {
|
|
15
17
|
initializeState() {
|
|
16
18
|
super.initializeState();
|
|
17
|
-
const binary = this.props.formatTiles === TILE_FORMATS.BINARY;
|
|
19
|
+
const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;
|
|
18
20
|
this.setState({
|
|
19
21
|
binary
|
|
20
22
|
});
|
|
21
23
|
}
|
|
22
24
|
|
|
25
|
+
updateState(parameters) {
|
|
26
|
+
const {
|
|
27
|
+
props
|
|
28
|
+
} = parameters;
|
|
29
|
+
|
|
30
|
+
if (props.data) {
|
|
31
|
+
super.updateState(parameters);
|
|
32
|
+
const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');
|
|
33
|
+
const mvt = formatTiles === TILE_FORMATS.MVT;
|
|
34
|
+
this.setState({
|
|
35
|
+
mvt
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
getLoadOptions() {
|
|
41
|
+
const loadOptions = super.getLoadOptions() || {};
|
|
42
|
+
const tileJSON = this.props.data;
|
|
43
|
+
injectAccessToken(loadOptions, tileJSON.accessToken);
|
|
44
|
+
loadOptions.gis = {
|
|
45
|
+
format: 'binary'
|
|
46
|
+
};
|
|
47
|
+
return loadOptions;
|
|
48
|
+
}
|
|
49
|
+
|
|
23
50
|
getTileData(tile) {
|
|
24
51
|
const url = _getURLFromTemplate(this.state.data, tile);
|
|
25
52
|
|
|
@@ -27,21 +54,13 @@ export default class CartoTileLayer extends MVTLayer {
|
|
|
27
54
|
return Promise.reject('Invalid URL');
|
|
28
55
|
}
|
|
29
56
|
|
|
30
|
-
|
|
57
|
+
const loadOptions = this.getLoadOptions();
|
|
31
58
|
const {
|
|
32
|
-
fetch
|
|
33
|
-
formatTiles
|
|
59
|
+
fetch
|
|
34
60
|
} = this.props;
|
|
35
61
|
const {
|
|
36
62
|
signal
|
|
37
63
|
} = tile;
|
|
38
|
-
|
|
39
|
-
if (formatTiles === TILE_FORMATS.BINARY) {
|
|
40
|
-
loadOptions = { ...loadOptions,
|
|
41
|
-
mimeType: 'application/vnd.carto-vector-tile'
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
64
|
return fetch(url, {
|
|
46
65
|
propName: 'data',
|
|
47
66
|
layer: this,
|
|
@@ -55,6 +74,10 @@ export default class CartoTileLayer extends MVTLayer {
|
|
|
55
74
|
return null;
|
|
56
75
|
}
|
|
57
76
|
|
|
77
|
+
if (this.state.mvt) {
|
|
78
|
+
return super.renderSubLayers(props);
|
|
79
|
+
}
|
|
80
|
+
|
|
58
81
|
const tileBbox = props.tile.bbox;
|
|
59
82
|
const {
|
|
60
83
|
west,
|
|
@@ -87,8 +110,6 @@ export default class CartoTileLayer extends MVTLayer {
|
|
|
87
110
|
}
|
|
88
111
|
|
|
89
112
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
_defineProperty(CartoTileLayer, "defaultProps", defaultProps);
|
|
94
|
-
//# sourceMappingURL=carto-tile-layer.js.map
|
|
113
|
+
VectorTileLayer.layerName = 'VectorTileLayer';
|
|
114
|
+
VectorTileLayer.defaultProps = defaultProps;
|
|
115
|
+
//# sourceMappingURL=vector-tile-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["registerLoaders","CartoVectorTileLoader","ClipExtension","MVTLayer","_getURLFromTemplate","GeoJsonLayer","binaryToGeojson","TILE_FORMATS","TilejsonPropType","injectAccessToken","defaultTileFormat","BINARY","defaultProps","data","formatTiles","VectorTileLayer","initializeState","binary","props","MVT","setState","updateState","parameters","URL","tiles","searchParams","get","mvt","getLoadOptions","loadOptions","tileJSON","accessToken","gis","format","getTileData","tile","url","state","Promise","reject","fetch","signal","propName","layer","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","clipBounds","subLayer","getPickingInfo","params","info","index","sourceLayer","object","globalFeatureId","layerName"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,kBAA9B;AACA,OAAOC,qBAAP,MAAkC,mCAAlC;AACAD,eAAe,CAAC,CAACC,qBAAD,CAAD,CAAf;AAGA,SAAQC,aAAR,QAA4B,qBAA5B;AACA,SACEC,QADF,EAIEC,mBAJF,QAOO,qBAPP;AAQA,SAAQC,YAAR,QAA2B,iBAA3B;AACA,SAAQC,eAAR,QAA8B,iBAA9B;AAEA,SAAoBC,YAApB,QAAuC,wBAAvC;AAEA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,MAAMC,iBAAiB,GAAGH,YAAY,CAACI,MAAvC;AAEA,MAAMC,YAAgD,GAAG,EACvD,GAAGT,QAAQ,CAACS,YAD2C;AAEvDC,EAAAA,IAAI,EAAEL,gBAFiD;AAGvDM,EAAAA,WAAW,EAAEJ;AAH0C,CAAzD;AAuBA,eAAe,MAAMK,eAAN,SAA0DZ,QAA1D,CAEb;AAIAa,EAAAA,eAAe,GAAS;AACtB,UAAMA,eAAN;AACA,UAAMC,MAAM,GAAG,KAAKC,KAAL,CAAWJ,WAAX,KAA2BP,YAAY,CAACI,MAAxC,IAAkDJ,YAAY,CAACY,GAA9E;AACA,SAAKC,QAAL,CAAc;AAACH,MAAAA;AAAD,KAAd;AACD;;AAEDI,EAAAA,WAAW,CAACC,UAAD,EAAa;AACtB,UAAM;AAACJ,MAAAA;AAAD,QAAUI,UAAhB;;AACA,QAAIJ,KAAK,CAACL,IAAV,EAAgB;AACd,YAAMQ,WAAN,CAAkBC,UAAlB;AAEA,YAAMR,WAAW,GAAG,IAAIS,GAAJ,CAAQL,KAAK,CAACL,IAAN,CAAWW,KAAX,CAAiB,CAAjB,CAAR,EAA6BC,YAA7B,CAA0CC,GAA1C,CAA8C,aAA9C,CAApB;AACA,YAAMC,GAAG,GAAGb,WAAW,KAAKP,YAAY,CAACY,GAAzC;AACA,WAAKC,QAAL,CAAc;AAACO,QAAAA;AAAD,OAAd;AACD;AACF;;AAEDC,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKZ,KAAL,CAAWL,IAA5B;AACAJ,IAAAA,iBAAiB,CAACoB,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,GAAZ,GAAkB;AAACC,MAAAA,MAAM,EAAE;AAAT,KAAlB;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,WAAW,CAACC,IAAD,EAAsB;AAC/B,UAAMC,GAAG,GAAGhC,mBAAmB,CAAC,KAAKiC,KAAL,CAAWxB,IAAZ,EAAkBsB,IAAlB,CAA/B;;AACA,QAAI,CAACC,GAAL,EAAU;AACR,aAAOE,OAAO,CAACC,MAAR,CAAe,aAAf,CAAP;AACD;;AAED,UAAMV,WAAW,GAAG,KAAKD,cAAL,EAApB;AACA,UAAM;AAACY,MAAAA;AAAD,QAAU,KAAKtB,KAArB;AACA,UAAM;AAACuB,MAAAA;AAAD,QAAWN,IAAjB;AACA,WAAOK,KAAK,CAACJ,GAAD,EAAM;AAACM,MAAAA,QAAQ,EAAE,MAAX;AAAmBC,MAAAA,KAAK,EAAE,IAA1B;AAAgCd,MAAAA,WAAhC;AAA6CY,MAAAA;AAA7C,KAAN,CAAZ;AACD;;AAEDG,EAAAA,eAAe,CACb1B,KADa,EAOQ;AACrB,QAAIA,KAAK,CAACL,IAAN,KAAe,IAAnB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED,QAAI,KAAKwB,KAAL,CAAWV,GAAf,EAAoB;AAClB,aAAO,MAAMiB,eAAN,CAAsB1B,KAAtB,CAAP;AACD;;AAED,UAAM2B,QAAQ,GAAG3B,KAAK,CAACiB,IAAN,CAAWW,IAA5B;AACA,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,KAAP;AAAcC,MAAAA,IAAd;AAAoBC,MAAAA;AAApB,QAA6BL,QAAnC;AAEA,UAAMM,aAAa,GAAG,EACpB,GAAGjC,KADiB;AAEpBkC,MAAAA,aAAa,EAAE,KAFK;AAGpBC,MAAAA,UAAU,EAAE,CAAC,IAAInD,aAAJ,EAAD,EAAsB,IAAIgB,KAAK,CAACmC,UAAN,IAAoB,EAAxB,CAAtB,CAHQ;AAIpBC,MAAAA,UAAU,EAAE,CAACP,IAAD,EAAOC,KAAP,EAAcC,IAAd,EAAoBC,KAApB;AAJQ,KAAtB;AAOA,UAAMK,QAAQ,GAAG,IAAIlD,YAAJ,CAAiB8C,aAAjB,CAAjB;AACA,WAAOI,QAAP;AACD;;AAEDC,EAAAA,cAAc,CAACC,MAAD,EAAS;AACrB,UAAMC,IAAI,GAAG,MAAMF,cAAN,CAAqBC,MAArB,CAAb;;AAEA,QAAI,KAAKpB,KAAL,CAAWpB,MAAX,IAAqByC,IAAI,CAACC,KAAL,KAAe,CAAC,CAAzC,EAA4C;AAC1C,YAAM;AAAC9C,QAAAA;AAAD,UAAS4C,MAAM,CAACG,WAAP,CAAoB1C,KAAnC;AACAwC,MAAAA,IAAI,CAACG,MAAL,GAAcvD,eAAe,CAACO,IAAD,EAAyB;AACpDiD,QAAAA,eAAe,EAAEJ,IAAI,CAACC;AAD8B,OAAzB,CAA7B;AAGD;;AAED,WAAOD,IAAP;AACD;;AAlFD;AAFmB3C,e,CAGZgD,S,GAAY,iB;AAHAhD,e,CAIZH,Y,GAAeA,Y","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport CartoVectorTileLoader from './schema/carto-vector-tile-loader';\nregisterLoaders([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 {BinaryFeatures} from '@loaders.gl/schema';\nimport {TileFormat, TILE_FORMATS} from '../api/maps-api-common';\nimport type {Feature} from 'geojson';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nconst defaultTileFormat = TILE_FORMATS.BINARY;\n\nconst defaultProps: DefaultProps<VectorTileLayerProps> = {\n ...MVTLayer.defaultProps,\n data: TilejsonPropType,\n formatTiles: defaultTileFormat\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 | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n /** Use to override the default tile data format.\n *\n * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.\n *\n * Only supported when `apiVersion` is `API_VERSIONS.V3` and `format` is `FORMATS.TILEJSON`.\n */\n formatTiles?: TileFormat;\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 initializeState(): void {\n super.initializeState();\n const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;\n this.setState({binary});\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 === TILE_FORMATS.MVT;\n this.setState({mvt});\n }\n }\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.gis = {format: 'binary'}; // Use binary for MVT loading\n return loadOptions;\n }\n\n getTileData(tile: TileLoadProps) {\n const url = _getURLFromTemplate(this.state.data, 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 return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\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 BinaryFeatures, {\n globalFeatureId: info.index\n }) as Feature;\n }\n\n return info;\n }\n}\n"],"file":"vector-tile-layer.js"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SOURCE_DEFAULTS } from './common';
|
|
2
|
+
import { buildApiEndpoint, requestWithParameters } from './utils';
|
|
3
|
+
export async function cartoBaseSource(endpoint, options, urlParameters) {
|
|
4
|
+
const mergedOptions = { ...SOURCE_DEFAULTS,
|
|
5
|
+
...options,
|
|
6
|
+
endpoint
|
|
7
|
+
};
|
|
8
|
+
const baseUrl = buildApiEndpoint(mergedOptions);
|
|
9
|
+
const {
|
|
10
|
+
accessToken,
|
|
11
|
+
format
|
|
12
|
+
} = mergedOptions;
|
|
13
|
+
const headers = {
|
|
14
|
+
Authorization: `Bearer ${options.accessToken}`,
|
|
15
|
+
...options.headers
|
|
16
|
+
};
|
|
17
|
+
const errorContext = {
|
|
18
|
+
requestType: 'Map instantiation',
|
|
19
|
+
connection: options.connectionName,
|
|
20
|
+
type: endpoint,
|
|
21
|
+
source: JSON.stringify(urlParameters, undefined, 2)
|
|
22
|
+
};
|
|
23
|
+
const mapInstantiation = await requestWithParameters({
|
|
24
|
+
baseUrl,
|
|
25
|
+
parameters: urlParameters,
|
|
26
|
+
headers,
|
|
27
|
+
errorContext
|
|
28
|
+
});
|
|
29
|
+
const dataUrl = mapInstantiation[format].url[0];
|
|
30
|
+
errorContext.requestType = 'Map data';
|
|
31
|
+
|
|
32
|
+
if (format === 'tilejson') {
|
|
33
|
+
const tilejson = await requestWithParameters({
|
|
34
|
+
baseUrl: dataUrl,
|
|
35
|
+
headers,
|
|
36
|
+
errorContext
|
|
37
|
+
});
|
|
38
|
+
return { ...tilejson,
|
|
39
|
+
accessToken
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return await requestWithParameters({
|
|
44
|
+
baseUrl: dataUrl,
|
|
45
|
+
headers,
|
|
46
|
+
errorContext
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=base-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/base-source.ts"],"names":["SOURCE_DEFAULTS","buildApiEndpoint","requestWithParameters","cartoBaseSource","endpoint","options","urlParameters","mergedOptions","baseUrl","accessToken","format","headers","Authorization","errorContext","requestType","connection","connectionName","type","source","JSON","stringify","undefined","mapInstantiation","parameters","dataUrl","url","tilejson"],"mappings":"AAEA,SAMEA,eANF,QASO,UATP;AAUA,SAAQC,gBAAR,EAA0BC,qBAA1B,QAAsD,SAAtD;AAEA,OAAO,eAAeC,eAAf,CACLC,QADK,EAELC,OAFK,EAGLC,aAHK,EAIsD;AAC3D,QAAMC,aAAa,GAAG,EAAC,GAAGP,eAAJ;AAAqB,OAAGK,OAAxB;AAAiCD,IAAAA;AAAjC,GAAtB;AACA,QAAMI,OAAO,GAAGP,gBAAgB,CAACM,aAAD,CAAhC;AACA,QAAM;AAACE,IAAAA,WAAD;AAAcC,IAAAA;AAAd,MAAwBH,aAA9B;AACA,QAAMI,OAAO,GAAG;AAACC,IAAAA,aAAa,EAAG,UAASP,OAAO,CAACI,WAAY,EAA9C;AAAiD,OAAGJ,OAAO,CAACM;AAA5D,GAAhB;AAEA,QAAME,YAA6B,GAAG;AACpCC,IAAAA,WAAW,EAAE,mBADuB;AAEpCC,IAAAA,UAAU,EAAEV,OAAO,CAACW,cAFgB;AAGpCC,IAAAA,IAAI,EAAEb,QAH8B;AAIpCc,IAAAA,MAAM,EAAEC,IAAI,CAACC,SAAL,CAAed,aAAf,EAA8Be,SAA9B,EAAyC,CAAzC;AAJ4B,GAAtC;AAMA,QAAMC,gBAAgB,GAAG,MAAMpB,qBAAqB,CAA2B;AAC7EM,IAAAA,OAD6E;AAE7Ee,IAAAA,UAAU,EAAEjB,aAFiE;AAG7EK,IAAAA,OAH6E;AAI7EE,IAAAA;AAJ6E,GAA3B,CAApD;AAOA,QAAMW,OAAO,GAAGF,gBAAgB,CAACZ,MAAD,CAAhB,CAAyBe,GAAzB,CAA6B,CAA7B,CAAhB;AACAZ,EAAAA,YAAY,CAACC,WAAb,GAA2B,UAA3B;;AAEA,MAAIJ,MAAM,KAAK,UAAf,EAA2B;AACzB,UAAMgB,QAAQ,GAAG,MAAMxB,qBAAqB,CAAW;AACrDM,MAAAA,OAAO,EAAEgB,OAD4C;AAErDb,MAAAA,OAFqD;AAGrDE,MAAAA;AAHqD,KAAX,CAA5C;AAKA,WAAO,EAAC,GAAGa,QAAJ;AAAcjB,MAAAA;AAAd,KAAP;AACD;;AAED,SAAO,MAAMP,qBAAqB,CAA6B;AAC7DM,IAAAA,OAAO,EAAEgB,OADoD;AAE7Db,IAAAA,OAF6D;AAG7DE,IAAAA;AAH6D,GAA7B,CAAlC;AAKD","sourcesContent":["import type {MapType} from '../api/maps-api-common';\nimport {APIErrorContext} from '../api/carto-api-error';\nimport {\n CartoSourceOptionalOptions,\n CartoSourceRequiredOptions,\n CartoTilejsonResult,\n GeojsonResult,\n JsonResult,\n SOURCE_DEFAULTS,\n Tilejson,\n TilejsonMapInstantiation\n} from './common';\nimport {buildApiEndpoint, requestWithParameters} from './utils';\n\nexport async function cartoBaseSource<UrlParameters extends Record<string, string>>(\n endpoint: MapType,\n options: Partial<CartoSourceOptionalOptions> & CartoSourceRequiredOptions,\n urlParameters: UrlParameters\n): Promise<CartoTilejsonResult | GeojsonResult | JsonResult> {\n const mergedOptions = {...SOURCE_DEFAULTS, ...options, endpoint};\n const baseUrl = buildApiEndpoint(mergedOptions);\n const {accessToken, format} = mergedOptions;\n const headers = {Authorization: `Bearer ${options.accessToken}`, ...options.headers};\n\n const errorContext: APIErrorContext = {\n requestType: 'Map instantiation',\n connection: options.connectionName,\n type: endpoint,\n source: JSON.stringify(urlParameters, undefined, 2)\n };\n const mapInstantiation = await requestWithParameters<TilejsonMapInstantiation>({\n baseUrl,\n parameters: urlParameters,\n headers,\n errorContext\n });\n\n const dataUrl = mapInstantiation[format].url[0];\n errorContext.requestType = 'Map data';\n\n if (format === 'tilejson') {\n const tilejson = await requestWithParameters<Tilejson>({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n return {...tilejson, accessToken};\n }\n\n return await requestWithParameters<GeojsonResult | JsonResult>({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n}\n"],"file":"base-source.js"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const SOURCE_DEFAULTS = {
|
|
2
|
+
apiBaseUrl: 'https://gcp-us-east1.api.carto.com',
|
|
3
|
+
clientId: 'deck-gl-carto',
|
|
4
|
+
format: 'tilejson',
|
|
5
|
+
formatTiles: 'binary',
|
|
6
|
+
headers: {}
|
|
7
|
+
};
|
|
8
|
+
export const DEFAULT_CLIENT = 'deck-gl-carto';
|
|
9
|
+
export const V3_MINOR_VERSION = '3.2';
|
|
10
|
+
export const MAX_GET_LENGTH = 8192;
|
|
11
|
+
export const DEFAULT_PARAMETERS = {
|
|
12
|
+
client: DEFAULT_CLIENT,
|
|
13
|
+
v: V3_MINOR_VERSION
|
|
14
|
+
};
|
|
15
|
+
export const DEFAULT_HEADERS = {
|
|
16
|
+
Accept: 'application/json',
|
|
17
|
+
'Content-Type': 'application/json'
|
|
18
|
+
};
|
|
19
|
+
export const TilejsonPropType = {
|
|
20
|
+
type: 'object',
|
|
21
|
+
value: null,
|
|
22
|
+
validate: (value, propType) => propType.optional && value === null || typeof value === 'object' && Array.isArray(value.tiles) && value.tiles.every(url => typeof url === 'string'),
|
|
23
|
+
compare: 2,
|
|
24
|
+
async: true
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/common.ts"],"names":["SOURCE_DEFAULTS","apiBaseUrl","clientId","format","formatTiles","headers","DEFAULT_CLIENT","V3_MINOR_VERSION","MAX_GET_LENGTH","DEFAULT_PARAMETERS","client","v","DEFAULT_HEADERS","Accept","TilejsonPropType","type","value","validate","propType","optional","Array","isArray","tiles","every","url","compare","async"],"mappings":"AAyCA,OAAO,MAAMA,eAA2C,GAAG;AACzDC,EAAAA,UAAU,EAAE,oCAD6C;AAEzDC,EAAAA,QAAQ,EAAE,eAF+C;AAGzDC,EAAAA,MAAM,EAAE,UAHiD;AAIzDC,EAAAA,WAAW,EAAE,QAJ4C;AAKzDC,EAAAA,OAAO,EAAE;AALgD,CAApD;AAkEP,OAAO,MAAMC,cAAc,GAAG,eAAvB;AACP,OAAO,MAAMC,gBAAgB,GAAG,KAAzB;AACP,OAAO,MAAMC,cAAc,GAAG,IAAvB;AAEP,OAAO,MAAMC,kBAAkB,GAAG;AAChCC,EAAAA,MAAM,EAAEJ,cADwB;AAEhCK,EAAAA,CAAC,EAAEJ;AAF6B,CAA3B;AAKP,OAAO,MAAMK,eAAe,GAAG;AAC7BC,EAAAA,MAAM,EAAE,kBADqB;AAE7B,kBAAgB;AAFa,CAAxB;AAKP,OAAO,MAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,QADwB;AAE9BC,EAAAA,KAAK,EAAE,IAFuB;AAG9BC,EAAAA,QAAQ,EAAE,CAACD,KAAD,EAA6BE,QAA7B,KACPA,QAAQ,CAACC,QAAT,IAAqBH,KAAK,KAAK,IAAhC,IACC,OAAOA,KAAP,KAAiB,QAAjB,IACCI,KAAK,CAACC,OAAN,CAAcL,KAAK,CAACM,KAApB,CADD,IAECN,KAAK,CAACM,KAAN,CAAYC,KAAZ,CAAkBC,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAxC,CAP0B;AAQ9BC,EAAAA,OAAO,EAAE,CARqB;AAS9BC,EAAAA,KAAK,EAAE;AATuB,CAAzB","sourcesContent":["/* eslint-disable camelcase */\nimport type {Feature} from 'geojson';\nimport {Format, MapInstantiation, TileFormat, QueryParameters} from '../api/maps-api-common';\n\nexport type CartoSourceRequiredOptions = {\n accessToken: string;\n connectionName: string;\n};\n\nexport type CartoSourceOptionalOptions = {\n apiBaseUrl: string;\n clientId: string;\n format: Format;\n formatTiles: TileFormat;\n headers: Record<string, string>;\n mapsUrl?: string;\n};\n\nexport type CartoSourceOptions = CartoSourceRequiredOptions & Partial<CartoSourceOptionalOptions>;\n\nexport type CartoAggregationOptions = {\n aggregationExp: string;\n aggregationResLevel?: number;\n};\n\nexport type CartoQuerySourceOptions = {\n spatialDataColumn?: string;\n sqlQuery: string;\n queryParameters?: QueryParameters;\n};\n\nexport type CartoTableSourceOptions = {\n columns?: string[];\n spatialDataColumn?: string;\n tableName: string;\n};\n\nexport type CartoTilesetSourceOptions = {\n tableName: string;\n};\n\nexport const SOURCE_DEFAULTS: CartoSourceOptionalOptions = {\n apiBaseUrl: 'https://gcp-us-east1.api.carto.com',\n clientId: 'deck-gl-carto',\n format: 'tilejson',\n formatTiles: 'binary',\n headers: {}\n};\n\nexport type TilejsonMapInstantiation = MapInstantiation & {\n tilejson: {url: string[]};\n};\n\nexport interface Tilejson {\n tilejson: string;\n name: string;\n description: string;\n version: string;\n attribution: string;\n scheme: string;\n tiles: string[];\n properties_tiles: string[];\n minresolution: number;\n maxresolution: number;\n minzoom: number;\n maxzoom: number;\n bounds: [number, number, number, number];\n center: [number, number, number];\n vector_layers: VectorLayer[];\n tilestats: Tilestats;\n}\n\nexport interface Tilestats {\n layerCount: number;\n layers: Layer[];\n}\n\nexport interface Layer {\n layer: string;\n count: number;\n attributeCount: number;\n attributes: Attribute[];\n}\n\nexport interface Attribute {\n attribute: string;\n type: string;\n}\n\nexport interface VectorLayer {\n id: string;\n minzoom: number;\n maxzoom: number;\n fields: Record<string, string>;\n}\n\nexport type CartoTilejsonResult = Tilejson & {accessToken: string};\nexport type GeojsonResult = {type: 'FeatureCollection'; features: Feature[]};\nexport type JsonResult = any[];\nexport interface TilejsonSource<T> {\n (options: T & {format?: 'tilejson'}): Promise<CartoTilejsonResult>;\n}\nexport interface TypedSource<T> extends TilejsonSource<T> {\n (options: T & {format: 'geojson'}): Promise<GeojsonResult>;\n (options: T & {format: 'json'}): Promise<JsonResult>;\n}\n\nexport const DEFAULT_CLIENT = 'deck-gl-carto';\nexport const V3_MINOR_VERSION = '3.2';\nexport const MAX_GET_LENGTH = 8192;\n\nexport const DEFAULT_PARAMETERS = {\n client: DEFAULT_CLIENT,\n v: V3_MINOR_VERSION\n};\n\nexport const DEFAULT_HEADERS = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n};\n\nexport const TilejsonPropType = {\n type: 'object' as const,\n value: null as null | CartoTilejsonResult,\n validate: (value: CartoTilejsonResult, propType) =>\n (propType.optional && value === null) ||\n (typeof value === 'object' &&\n Array.isArray(value.tiles) &&\n value.tiles.every(url => typeof url === 'string')),\n compare: 2,\n async: true\n};\n"],"file":"common.js"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { cartoBaseSource } from './base-source';
|
|
2
|
+
|
|
3
|
+
const cartoH3QuerySource = async function (options) {
|
|
4
|
+
const {
|
|
5
|
+
aggregationExp,
|
|
6
|
+
aggregationResLevel = 4,
|
|
7
|
+
sqlQuery,
|
|
8
|
+
spatialDataColumn = 'h3:h3',
|
|
9
|
+
queryParameters
|
|
10
|
+
} = options;
|
|
11
|
+
const urlParameters = {
|
|
12
|
+
aggregationExp,
|
|
13
|
+
q: sqlQuery
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
if (aggregationResLevel) {
|
|
17
|
+
urlParameters.aggregationResLevel = String(aggregationResLevel);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (spatialDataColumn) {
|
|
21
|
+
urlParameters.geo_column = spatialDataColumn;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (queryParameters) {
|
|
25
|
+
urlParameters.queryParameters = JSON.stringify(queryParameters);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return cartoBaseSource('query', options, urlParameters);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { cartoH3QuerySource };
|
|
32
|
+
//# sourceMappingURL=h3-query-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/h3-query-source.ts"],"names":["cartoBaseSource","cartoH3QuerySource","options","aggregationExp","aggregationResLevel","sqlQuery","spatialDataColumn","queryParameters","urlParameters","q","String","geo_column","JSON","stringify"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAmBA,MAAMC,kBAA6D,GAAG,gBACpEC,OADoE,EAEtD;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,iBAAiB,GAAG,OAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,CAAC,EAAEJ;AAApB,GAArC;;AAEA,MAAID,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIE,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACG,UAAd,GAA2BL,iBAA3B;AACD;;AACD,MAAIC,eAAJ,EAAqB;AACnBC,IAAAA,aAAa,CAACD,eAAd,GAAgCK,IAAI,CAACC,SAAL,CAAeN,eAAf,CAAhC;AACD;;AACD,SAAOP,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,kBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoQuerySourceOptions,\n CartoSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoH3QuerySourceOptions = CartoSourceOptions &\n CartoQuerySourceOptions &\n CartoAggregationOptions;\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n geo_column?: string;\n q: string;\n queryParameters?: string;\n};\n\nconst cartoH3QuerySource: TilejsonSource<CartoH3QuerySourceOptions> = async function (\n options: CartoH3QuerySourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 4,\n sqlQuery,\n spatialDataColumn = 'h3:h3',\n queryParameters\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, q: sqlQuery};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n if (queryParameters) {\n urlParameters.queryParameters = JSON.stringify(queryParameters);\n }\n return cartoBaseSource<UrlParameters>('query', options, urlParameters);\n};\n\nexport {cartoH3QuerySource};\n"],"file":"h3-query-source.js"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { cartoBaseSource } from './base-source';
|
|
2
|
+
|
|
3
|
+
const cartoH3TableSource = async function (options) {
|
|
4
|
+
const {
|
|
5
|
+
aggregationExp,
|
|
6
|
+
aggregationResLevel = 4,
|
|
7
|
+
columns,
|
|
8
|
+
spatialDataColumn = 'h3:h3',
|
|
9
|
+
tableName
|
|
10
|
+
} = options;
|
|
11
|
+
const urlParameters = {
|
|
12
|
+
aggregationExp,
|
|
13
|
+
name: tableName
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
if (aggregationResLevel) {
|
|
17
|
+
urlParameters.aggregationResLevel = String(aggregationResLevel);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (columns) {
|
|
21
|
+
urlParameters.columns = columns.join(',');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (spatialDataColumn) {
|
|
25
|
+
urlParameters.geo_column = spatialDataColumn;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return cartoBaseSource('table', options, urlParameters);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { cartoH3TableSource };
|
|
32
|
+
//# sourceMappingURL=h3-table-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/h3-table-source.ts"],"names":["cartoBaseSource","cartoH3TableSource","options","aggregationExp","aggregationResLevel","columns","spatialDataColumn","tableName","urlParameters","name","String","join","geo_column"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAoBA,MAAMC,kBAA6D,GAAG,gBACpEC,OADoE,EAEtD;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,OAHI;AAIJC,IAAAA,iBAAiB,GAAG,OAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,IAAI,EAAEF;AAAvB,GAArC;;AAEA,MAAIH,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIC,OAAJ,EAAa;AACXG,IAAAA,aAAa,CAACH,OAAd,GAAwBA,OAAO,CAACM,IAAR,CAAa,GAAb,CAAxB;AACD;;AACD,MAAIL,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACI,UAAd,GAA2BN,iBAA3B;AACD;;AACD,SAAON,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,kBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoSourceOptions,\n CartoTableSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoH3TableSourceOptions = CartoSourceOptions &\n CartoTableSourceOptions &\n CartoAggregationOptions;\n\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n columns?: string;\n geo_column?: string;\n name: string;\n};\n\nconst cartoH3TableSource: TilejsonSource<CartoH3TableSourceOptions> = async function (\n options: CartoH3TableSourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 4,\n columns,\n spatialDataColumn = 'h3:h3',\n tableName\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, name: tableName};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n return cartoBaseSource<UrlParameters>('table', options, urlParameters);\n};\n\nexport {cartoH3TableSource};\n"],"file":"h3-table-source.js"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { cartoBaseSource } from './base-source';
|
|
2
|
+
|
|
3
|
+
const cartoH3TilesetSource = async function (options) {
|
|
4
|
+
const {
|
|
5
|
+
tableName
|
|
6
|
+
} = options;
|
|
7
|
+
const urlParameters = {
|
|
8
|
+
name: tableName
|
|
9
|
+
};
|
|
10
|
+
return cartoBaseSource('tileset', options, urlParameters);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { cartoH3TilesetSource };
|
|
14
|
+
//# sourceMappingURL=h3-tileset-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/h3-tileset-source.ts"],"names":["cartoBaseSource","cartoH3TilesetSource","options","tableName","urlParameters","name"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,eAA9B;;AAMA,MAAMC,oBAAiE,GAAG,gBACxEC,OADwE,EAE1D;AACd,QAAM;AAACC,IAAAA;AAAD,MAAcD,OAApB;AACA,QAAME,aAA4B,GAAG;AAACC,IAAAA,IAAI,EAAEF;AAAP,GAArC;AAEA,SAAOH,eAAe,CAAgB,SAAhB,EAA2BE,OAA3B,EAAoCE,aAApC,CAAtB;AACD,CAPD;;AASA,SAAQH,oBAAR","sourcesContent":["import {cartoBaseSource} from './base-source';\nimport {CartoSourceOptions, CartoTilesetSourceOptions, TilejsonSource} from './common';\n\nexport type CartoH3TilesetSourceOptions = CartoSourceOptions & CartoTilesetSourceOptions;\ntype UrlParameters = {name: string};\n\nconst cartoH3TilesetSource: TilejsonSource<CartoH3TilesetSourceOptions> = async function (\n options: CartoH3TilesetSourceOptions\n): Promise<any> {\n const {tableName} = options;\n const urlParameters: UrlParameters = {name: tableName};\n\n return cartoBaseSource<UrlParameters>('tileset', options, urlParameters);\n};\n\nexport {cartoH3TilesetSource};\n"],"file":"h3-tileset-source.js"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { SOURCE_DEFAULTS } from './common';
|
|
2
|
+
export { cartoH3QuerySource } from './h3-query-source';
|
|
3
|
+
export { cartoH3TableSource } from './h3-table-source';
|
|
4
|
+
export { cartoH3TilesetSource } from './h3-tileset-source';
|
|
5
|
+
export { cartoRasterSource } from './raster-source';
|
|
6
|
+
export { cartoQuadbinQuerySource } from './quadbin-query-source';
|
|
7
|
+
export { cartoQuadbinTableSource } from './quadbin-table-source';
|
|
8
|
+
export { cartoQuadbinTilesetSource } from './quadbin-tileset-source';
|
|
9
|
+
export { cartoVectorQuerySource } from './vector-query-source';
|
|
10
|
+
export { cartoVectorTableSource } from './vector-table-source';
|
|
11
|
+
export { cartoVectorTilesetSource } from './vector-tileset-source';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/index.ts"],"names":["SOURCE_DEFAULTS","cartoH3QuerySource","cartoH3TableSource","cartoH3TilesetSource","cartoRasterSource","cartoQuadbinQuerySource","cartoQuadbinTableSource","cartoQuadbinTilesetSource","cartoVectorQuerySource","cartoVectorTableSource","cartoVectorTilesetSource"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,UAA9B;AAGA,SAAQC,kBAAR,QAAiC,mBAAjC;AAGA,SAAQC,kBAAR,QAAiC,mBAAjC;AAGA,SAAQC,oBAAR,QAAmC,qBAAnC;AAGA,SAAQC,iBAAR,QAAgC,iBAAhC;AAGA,SAAQC,uBAAR,QAAsC,wBAAtC;AAGA,SAAQC,uBAAR,QAAsC,wBAAtC;AAGA,SAAQC,yBAAR,QAAwC,0BAAxC;AAGA,SAAQC,sBAAR,QAAqC,uBAArC;AAGA,SAAQC,sBAAR,QAAqC,uBAArC;AAGA,SAAQC,wBAAR,QAAuC,yBAAvC","sourcesContent":["export {SOURCE_DEFAULTS} from './common';\nexport type {CartoTilejsonResult, GeojsonResult, JsonResult} from './common';\n\nexport {cartoH3QuerySource} from './h3-query-source';\nexport type {CartoH3QuerySourceOptions} from './h3-query-source';\n\nexport {cartoH3TableSource} from './h3-table-source';\nexport type {CartoH3TableSourceOptions} from './h3-table-source';\n\nexport {cartoH3TilesetSource} from './h3-tileset-source';\nexport type {CartoH3TilesetSourceOptions} from './h3-tileset-source';\n\nexport {cartoRasterSource} from './raster-source';\nexport type {CartoRasterSourceOptions} from './raster-source';\n\nexport {cartoQuadbinQuerySource} from './quadbin-query-source';\nexport type {CartoQuadbinQuerySourceOptions} from './quadbin-query-source';\n\nexport {cartoQuadbinTableSource} from './quadbin-table-source';\nexport type {CartoQuadbinTableSourceOptions} from './quadbin-table-source';\n\nexport {cartoQuadbinTilesetSource} from './quadbin-tileset-source';\nexport type {CartoQuadbinTilesetSourceOptions} from './quadbin-tileset-source';\n\nexport {cartoVectorQuerySource} from './vector-query-source';\nexport type {CartoVectorQuerySourceOptions} from './vector-query-source';\n\nexport {cartoVectorTableSource} from './vector-table-source';\nexport type {CartoVectorTableSourceOptions} from './vector-table-source';\n\nexport {cartoVectorTilesetSource} from './vector-tileset-source';\nexport type {CartoVectorTilesetSourceOptions} from './vector-tileset-source';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { cartoBaseSource } from './base-source';
|
|
2
|
+
|
|
3
|
+
const cartoQuadbinQuerySource = async function (options) {
|
|
4
|
+
const {
|
|
5
|
+
aggregationExp,
|
|
6
|
+
aggregationResLevel = 6,
|
|
7
|
+
sqlQuery,
|
|
8
|
+
spatialDataColumn = 'quadbin:quadbin',
|
|
9
|
+
queryParameters
|
|
10
|
+
} = options;
|
|
11
|
+
const urlParameters = {
|
|
12
|
+
aggregationExp,
|
|
13
|
+
q: sqlQuery
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
if (aggregationResLevel) {
|
|
17
|
+
urlParameters.aggregationResLevel = String(aggregationResLevel);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (spatialDataColumn) {
|
|
21
|
+
urlParameters.geo_column = spatialDataColumn;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (queryParameters) {
|
|
25
|
+
urlParameters.queryParameters = JSON.stringify(queryParameters);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return cartoBaseSource('query', options, urlParameters);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { cartoQuadbinQuerySource };
|
|
32
|
+
//# sourceMappingURL=quadbin-query-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/quadbin-query-source.ts"],"names":["cartoBaseSource","cartoQuadbinQuerySource","options","aggregationExp","aggregationResLevel","sqlQuery","spatialDataColumn","queryParameters","urlParameters","q","String","geo_column","JSON","stringify"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAoBA,MAAMC,uBAAuE,GAAG,gBAC9EC,OAD8E,EAEhE;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,iBAAiB,GAAG,iBAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,CAAC,EAAEJ;AAApB,GAArC;;AAEA,MAAID,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIE,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACG,UAAd,GAA2BL,iBAA3B;AACD;;AACD,MAAIC,eAAJ,EAAqB;AACnBC,IAAAA,aAAa,CAACD,eAAd,GAAgCK,IAAI,CAACC,SAAL,CAAeN,eAAf,CAAhC;AACD;;AACD,SAAOP,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,uBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoQuerySourceOptions,\n CartoSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoQuadbinQuerySourceOptions = CartoSourceOptions &\n CartoQuerySourceOptions &\n CartoAggregationOptions;\n\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n geo_column?: string;\n q: string;\n queryParameters?: string;\n};\n\nconst cartoQuadbinQuerySource: TilejsonSource<CartoQuadbinQuerySourceOptions> = async function (\n options: CartoQuadbinQuerySourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 6,\n sqlQuery,\n spatialDataColumn = 'quadbin:quadbin',\n queryParameters\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, q: sqlQuery};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n if (queryParameters) {\n urlParameters.queryParameters = JSON.stringify(queryParameters);\n }\n return cartoBaseSource<UrlParameters>('query', options, urlParameters);\n};\n\nexport {cartoQuadbinQuerySource};\n"],"file":"quadbin-query-source.js"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { cartoBaseSource } from './base-source';
|
|
2
|
+
|
|
3
|
+
const cartoQuadbinTableSource = async function (options) {
|
|
4
|
+
const {
|
|
5
|
+
aggregationExp,
|
|
6
|
+
aggregationResLevel = 6,
|
|
7
|
+
columns,
|
|
8
|
+
spatialDataColumn = 'quadbin:quadbin',
|
|
9
|
+
tableName
|
|
10
|
+
} = options;
|
|
11
|
+
const urlParameters = {
|
|
12
|
+
aggregationExp,
|
|
13
|
+
name: tableName
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
if (aggregationResLevel) {
|
|
17
|
+
urlParameters.aggregationResLevel = String(aggregationResLevel);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (columns) {
|
|
21
|
+
urlParameters.columns = columns.join(',');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (spatialDataColumn) {
|
|
25
|
+
urlParameters.geo_column = spatialDataColumn;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return cartoBaseSource('table', options, urlParameters);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { cartoQuadbinTableSource };
|
|
32
|
+
//# sourceMappingURL=quadbin-table-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/quadbin-table-source.ts"],"names":["cartoBaseSource","cartoQuadbinTableSource","options","aggregationExp","aggregationResLevel","columns","spatialDataColumn","tableName","urlParameters","name","String","join","geo_column"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAoBA,MAAMC,uBAAuE,GAAG,gBAC9EC,OAD8E,EAEhE;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,OAHI;AAIJC,IAAAA,iBAAiB,GAAG,iBAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,IAAI,EAAEF;AAAvB,GAArC;;AAEA,MAAIH,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIC,OAAJ,EAAa;AACXG,IAAAA,aAAa,CAACH,OAAd,GAAwBA,OAAO,CAACM,IAAR,CAAa,GAAb,CAAxB;AACD;;AACD,MAAIL,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACI,UAAd,GAA2BN,iBAA3B;AACD;;AACD,SAAON,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,uBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoSourceOptions,\n CartoTableSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoQuadbinTableSourceOptions = CartoSourceOptions &\n CartoTableSourceOptions &\n CartoAggregationOptions;\n\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n columns?: string;\n geo_column?: string;\n name: string;\n};\n\nconst cartoQuadbinTableSource: TilejsonSource<CartoQuadbinTableSourceOptions> = async function (\n options: CartoQuadbinTableSourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 6,\n columns,\n spatialDataColumn = 'quadbin:quadbin',\n tableName\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, name: tableName};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n return cartoBaseSource<UrlParameters>('table', options, urlParameters);\n};\n\nexport {cartoQuadbinTableSource};\n"],"file":"quadbin-table-source.js"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { cartoBaseSource } from './base-source';
|
|
2
|
+
|
|
3
|
+
const cartoQuadbinTilesetSource = async function (options) {
|
|
4
|
+
const {
|
|
5
|
+
tableName
|
|
6
|
+
} = options;
|
|
7
|
+
const urlParameters = {
|
|
8
|
+
name: tableName
|
|
9
|
+
};
|
|
10
|
+
return cartoBaseSource('tileset', options, urlParameters);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { cartoQuadbinTilesetSource };
|
|
14
|
+
//# sourceMappingURL=quadbin-tileset-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sources/quadbin-tileset-source.ts"],"names":["cartoBaseSource","cartoQuadbinTilesetSource","options","tableName","urlParameters","name"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,eAA9B;;AAMA,MAAMC,yBAA2E,GAAG,gBAClFC,OADkF,EAEpE;AACd,QAAM;AAACC,IAAAA;AAAD,MAAcD,OAApB;AACA,QAAME,aAA4B,GAAG;AAACC,IAAAA,IAAI,EAAEF;AAAP,GAArC;AAEA,SAAOH,eAAe,CAAgB,SAAhB,EAA2BE,OAA3B,EAAoCE,aAApC,CAAtB;AACD,CAPD;;AASA,SAAQH,yBAAR","sourcesContent":["import {cartoBaseSource} from './base-source';\nimport {CartoSourceOptions, CartoTilesetSourceOptions, TilejsonSource} from './common';\n\nexport type CartoQuadbinTilesetSourceOptions = CartoSourceOptions & CartoTilesetSourceOptions;\ntype UrlParameters = {name: string};\n\nconst cartoQuadbinTilesetSource: TilejsonSource<CartoQuadbinTilesetSourceOptions> = async function (\n options: CartoQuadbinTilesetSourceOptions\n): Promise<any> {\n const {tableName} = options;\n const urlParameters: UrlParameters = {name: tableName};\n\n return cartoBaseSource<UrlParameters>('tileset', options, urlParameters);\n};\n\nexport {cartoQuadbinTilesetSource};\n"],"file":"quadbin-tileset-source.js"}
|