@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
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@deck.gl/carto",
|
|
3
3
|
"description": "CARTO official integration with Deck.gl. Build geospatial applications using CARTO and Deck.gl.",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "8.10.0-alpha.
|
|
5
|
+
"version": "8.10.0-alpha.5",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
@@ -28,15 +28,17 @@
|
|
|
28
28
|
],
|
|
29
29
|
"sideEffects": false,
|
|
30
30
|
"scripts": {
|
|
31
|
-
"build-bundle": "ocular-bundle ./bundle.ts",
|
|
31
|
+
"build-bundle": "npm run build-workers && ocular-bundle ./bundle.ts",
|
|
32
|
+
"build-workers": "npm run build-worker --cartoloader=RasterTile && npm run build-worker --cartoloader=SpatialTile && npm run build-worker --cartoloader=VectorTile",
|
|
33
|
+
"build-worker": "esbuild src/workers/carto$npm_config_cartoloader.ts --bundle --outfile=dist/carto$npm_config_cartoloader-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
32
34
|
"prepublishOnly": "npm run build-bundle && npm run build-bundle -- --env=dev"
|
|
33
35
|
},
|
|
34
36
|
"dependencies": {
|
|
35
37
|
"@babel/runtime": "^7.0.0",
|
|
36
|
-
"@loaders.gl/gis": "^3.4.
|
|
37
|
-
"@loaders.gl/loader-utils": "^3.4.
|
|
38
|
-
"@loaders.gl/mvt": "^3.4.
|
|
39
|
-
"@loaders.gl/tiles": "^3.4.
|
|
38
|
+
"@loaders.gl/gis": "^3.4.13",
|
|
39
|
+
"@loaders.gl/loader-utils": "^3.4.13",
|
|
40
|
+
"@loaders.gl/mvt": "^3.4.13",
|
|
41
|
+
"@loaders.gl/tiles": "^3.4.13",
|
|
40
42
|
"@luma.gl/constants": "^8.5.20",
|
|
41
43
|
"@math.gl/web-mercator": "^3.6.2",
|
|
42
44
|
"cartocolor": "^4.0.2",
|
|
@@ -50,7 +52,7 @@
|
|
|
50
52
|
"quadbin": "^0.1.9"
|
|
51
53
|
},
|
|
52
54
|
"devDependencies": {
|
|
53
|
-
"@loaders.gl/schema": "^3.4.
|
|
55
|
+
"@loaders.gl/schema": "^3.4.13",
|
|
54
56
|
"@types/d3-array": "^3.0.2",
|
|
55
57
|
"@types/d3-color": "^1.4.2",
|
|
56
58
|
"@types/d3-scale": "^3.0.0"
|
|
@@ -61,7 +63,7 @@
|
|
|
61
63
|
"@deck.gl/extensions": "^8.0.0",
|
|
62
64
|
"@deck.gl/geo-layers": "^8.0.0",
|
|
63
65
|
"@deck.gl/layers": "^8.0.0",
|
|
64
|
-
"@loaders.gl/core": "^3.4.
|
|
66
|
+
"@loaders.gl/core": "^3.4.13"
|
|
65
67
|
},
|
|
66
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "7fce975a84ff492e83bcd2206bedd9ccd4264f50"
|
|
67
69
|
}
|
package/src/api/layer-map.ts
CHANGED
|
@@ -16,12 +16,12 @@ import moment from 'moment-timezone';
|
|
|
16
16
|
import {Accessor, Layer, _ConstructorOf as ConstructorOf} from '@deck.gl/core';
|
|
17
17
|
import {CPUGridLayer, HeatmapLayer, HexagonLayer} from '@deck.gl/aggregation-layers';
|
|
18
18
|
import {GeoJsonLayer} from '@deck.gl/layers';
|
|
19
|
-
import {H3HexagonLayer
|
|
19
|
+
import {H3HexagonLayer} from '@deck.gl/geo-layers';
|
|
20
20
|
|
|
21
|
-
import CartoTileLayer from '../layers/carto-tile-layer';
|
|
22
21
|
import H3TileLayer from '../layers/h3-tile-layer';
|
|
23
22
|
import QuadbinTileLayer from '../layers/quadbin-tile-layer';
|
|
24
23
|
import RasterTileLayer from '../layers/raster-tile-layer';
|
|
24
|
+
import VectorTileLayer from '../layers/vector-tile-layer';
|
|
25
25
|
import {MapType, TILE_FORMATS, TileFormat} from './maps-api-common';
|
|
26
26
|
import {assert, createBinaryProxy} from '../utils';
|
|
27
27
|
import {
|
|
@@ -204,7 +204,7 @@ export function layerFromTileDataset(
|
|
|
204
204
|
formatTiles: TileFormat | null = TILE_FORMATS.MVT,
|
|
205
205
|
scheme: string,
|
|
206
206
|
type?: MapType
|
|
207
|
-
): typeof
|
|
207
|
+
): typeof VectorTileLayer | typeof H3TileLayer | typeof QuadbinTileLayer {
|
|
208
208
|
if (type === 'raster') {
|
|
209
209
|
return RasterTileLayer;
|
|
210
210
|
}
|
|
@@ -214,12 +214,8 @@ export function layerFromTileDataset(
|
|
|
214
214
|
if (scheme === 'quadbin') {
|
|
215
215
|
return QuadbinTileLayer;
|
|
216
216
|
}
|
|
217
|
-
if (formatTiles === 'mvt') {
|
|
218
|
-
return MVTLayer;
|
|
219
|
-
}
|
|
220
217
|
|
|
221
|
-
|
|
222
|
-
return CartoTileLayer;
|
|
218
|
+
return VectorTileLayer;
|
|
223
219
|
}
|
|
224
220
|
|
|
225
221
|
function getTileLayer(dataset: MapDataset, basePropMap) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
1
2
|
/**
|
|
2
3
|
* Maps API Client for Carto 3
|
|
3
4
|
*/
|
|
@@ -32,7 +33,7 @@ import {assert} from '../utils';
|
|
|
32
33
|
|
|
33
34
|
const MAX_GET_LENGTH = 8192;
|
|
34
35
|
const DEFAULT_CLIENT = 'deck-gl-carto';
|
|
35
|
-
const V3_MINOR_VERSION = '3.
|
|
36
|
+
const V3_MINOR_VERSION = '3.2';
|
|
36
37
|
|
|
37
38
|
export type Headers = Record<string, string>;
|
|
38
39
|
interface RequestParams {
|
|
@@ -112,9 +113,9 @@ async function requestData({
|
|
|
112
113
|
}: RequestParams & {
|
|
113
114
|
format: Format;
|
|
114
115
|
}): Promise<Response | unknown> {
|
|
115
|
-
if (format === FORMATS.NDJSON) {
|
|
116
|
-
|
|
117
|
-
}
|
|
116
|
+
// if (format === FORMATS.NDJSON) {
|
|
117
|
+
// return request({method, url, accessToken, body, errorContext});
|
|
118
|
+
// }
|
|
118
119
|
|
|
119
120
|
const data = await requestJson<any>({method, url, accessToken, body, errorContext});
|
|
120
121
|
return data.rows ? data.rows : data;
|
|
@@ -395,7 +396,7 @@ async function _fetchDataUrl({
|
|
|
395
396
|
assert(url, `Format ${format} not available`);
|
|
396
397
|
} else {
|
|
397
398
|
// guess map format
|
|
398
|
-
const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.
|
|
399
|
+
const prioritizedFormats = [FORMATS.GEOJSON, FORMATS.JSON, FORMATS.TILEJSON];
|
|
399
400
|
for (const f of prioritizedFormats) {
|
|
400
401
|
url = getUrlFromMetadata(metadata, f);
|
|
401
402
|
if (url) {
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export {getDefaultCredentials, setDefaultCredentials} from './config';
|
|
2
|
-
export {default as CartoLayer} from './layers/carto-layer';
|
|
3
|
-
export {default as
|
|
4
|
-
export {default as
|
|
2
|
+
export {default as CartoLayer} from './layers/carto-layer'; // <-- REMOVE in v9
|
|
3
|
+
export {default as VectorTileLayer} from './layers/vector-tile-layer';
|
|
4
|
+
export {default as H3TileLayer} from './layers/h3-tile-layer';
|
|
5
5
|
export {default as _PointLabelLayer} from './layers/point-label-layer';
|
|
6
|
-
export {default as
|
|
7
|
-
export {default as
|
|
6
|
+
export {default as QuadbinTileLayer} from './layers/quadbin-tile-layer';
|
|
7
|
+
export {default as RasterTileLayer} from './layers/raster-tile-layer';
|
|
8
8
|
export {default as BASEMAP} from './basemap';
|
|
9
9
|
export {default as colorBins} from './style/color-bins-style';
|
|
10
10
|
export {default as colorCategories} from './style/color-categories-style';
|
|
@@ -22,3 +22,32 @@ export {
|
|
|
22
22
|
} from './api';
|
|
23
23
|
export type {APIErrorContext, QueryParameters} from './api';
|
|
24
24
|
export type {CartoLayerProps} from './layers/carto-layer';
|
|
25
|
+
|
|
26
|
+
export {
|
|
27
|
+
cartoH3QuerySource,
|
|
28
|
+
cartoH3TableSource,
|
|
29
|
+
cartoH3TilesetSource,
|
|
30
|
+
cartoRasterSource,
|
|
31
|
+
cartoQuadbinQuerySource,
|
|
32
|
+
cartoQuadbinTableSource,
|
|
33
|
+
cartoQuadbinTilesetSource,
|
|
34
|
+
cartoVectorQuerySource,
|
|
35
|
+
cartoVectorTableSource,
|
|
36
|
+
cartoVectorTilesetSource,
|
|
37
|
+
SOURCE_DEFAULTS
|
|
38
|
+
} from './sources';
|
|
39
|
+
export type {
|
|
40
|
+
CartoTilejsonResult,
|
|
41
|
+
CartoH3QuerySourceOptions,
|
|
42
|
+
CartoH3TableSourceOptions,
|
|
43
|
+
CartoH3TilesetSourceOptions,
|
|
44
|
+
CartoRasterSourceOptions,
|
|
45
|
+
CartoQuadbinQuerySourceOptions,
|
|
46
|
+
CartoQuadbinTableSourceOptions,
|
|
47
|
+
CartoQuadbinTilesetSourceOptions,
|
|
48
|
+
CartoVectorQuerySourceOptions,
|
|
49
|
+
CartoVectorTableSourceOptions,
|
|
50
|
+
CartoVectorTilesetSourceOptions,
|
|
51
|
+
GeojsonResult,
|
|
52
|
+
JsonResult
|
|
53
|
+
} from './sources';
|
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CompositeLayer,
|
|
3
|
-
CompositeLayerProps,
|
|
4
|
-
Layer,
|
|
5
|
-
LayersList,
|
|
6
|
-
UpdateParameters,
|
|
7
|
-
DefaultProps
|
|
8
|
-
} from '@deck.gl/core';
|
|
1
|
+
import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';
|
|
9
2
|
import {H3HexagonLayer} from '@deck.gl/geo-layers';
|
|
10
3
|
import H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';
|
|
11
4
|
import SpatialIndexTileLayer from './spatial-index-tile-layer';
|
|
5
|
+
import {TilejsonPropType, CartoTilejsonResult} from '../sources/common';
|
|
6
|
+
import {injectAccessToken} from './utils';
|
|
12
7
|
|
|
13
|
-
const renderSubLayers = props => {
|
|
8
|
+
const renderSubLayers = (props: H3HexagonLayerProps) => {
|
|
14
9
|
const {data} = props;
|
|
15
10
|
const {index} = props.tile;
|
|
16
11
|
if (!data || !data.length) return null;
|
|
@@ -23,7 +18,8 @@ const renderSubLayers = props => {
|
|
|
23
18
|
};
|
|
24
19
|
|
|
25
20
|
const defaultProps: DefaultProps<H3HexagonLayerProps> = {
|
|
26
|
-
aggregationResLevel: 4
|
|
21
|
+
aggregationResLevel: 4,
|
|
22
|
+
data: TilejsonPropType
|
|
27
23
|
};
|
|
28
24
|
|
|
29
25
|
/** All properties supported by H3TileLayer. */
|
|
@@ -34,8 +30,8 @@ export type H3TileLayerProps<DataT = any> = _H3TileLayerProps<DataT> & Composite
|
|
|
34
30
|
type H3HexagonLayerProps<DataT = any> = Record<string, any>;
|
|
35
31
|
|
|
36
32
|
/** Properties added by H3TileLayer. */
|
|
37
|
-
type _H3TileLayerProps<DataT> = H3HexagonLayerProps<DataT> & {
|
|
38
|
-
data:
|
|
33
|
+
type _H3TileLayerProps<DataT> = Omit<H3HexagonLayerProps<DataT>, 'data'> & {
|
|
34
|
+
data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;
|
|
39
35
|
aggregationResLevel?: number;
|
|
40
36
|
};
|
|
41
37
|
|
|
@@ -45,30 +41,24 @@ export default class H3TileLayer<DataT = any, ExtraPropsT extends {} = {}> exten
|
|
|
45
41
|
static layerName = 'H3TileLayer';
|
|
46
42
|
static defaultProps = defaultProps;
|
|
47
43
|
|
|
48
|
-
state!: {
|
|
49
|
-
tileJSON: any;
|
|
50
|
-
data: any;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
44
|
initializeState(): void {
|
|
54
45
|
H3HexagonLayer._checkH3Lib();
|
|
55
|
-
this.setState({data: null, tileJSON: null});
|
|
56
46
|
}
|
|
57
47
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
48
|
+
getLoadOptions(): any {
|
|
49
|
+
const loadOptions = super.getLoadOptions() || {};
|
|
50
|
+
const tileJSON = this.props.data as CartoTilejsonResult;
|
|
51
|
+
injectAccessToken(loadOptions, tileJSON.accessToken);
|
|
52
|
+
loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'h3'};
|
|
53
|
+
return loadOptions;
|
|
65
54
|
}
|
|
66
55
|
|
|
67
56
|
renderLayers(): Layer | null | LayersList {
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
let maxresolution = parseInt(tileJSON.maxresolution);
|
|
57
|
+
const tileJSON = this.props.data as CartoTilejsonResult;
|
|
58
|
+
if (!tileJSON) return null;
|
|
71
59
|
|
|
60
|
+
const {tiles: data} = tileJSON;
|
|
61
|
+
let {minresolution, maxresolution} = tileJSON;
|
|
72
62
|
// Convert Mercator zooms provided in props into H3 res levels
|
|
73
63
|
// and clip into valid range provided from the tilejson
|
|
74
64
|
if (this.props.minZoom) {
|
|
@@ -87,20 +77,17 @@ export default class H3TileLayer<DataT = any, ExtraPropsT extends {} = {}> exten
|
|
|
87
77
|
// The naming is unfortunate, but minZoom & maxZoom in the context
|
|
88
78
|
// of a Tileset2D refer to the resolution levels, not the Mercator zooms
|
|
89
79
|
return [
|
|
80
|
+
// @ts-ignore
|
|
90
81
|
new SpatialIndexTileLayer(this.props, {
|
|
91
82
|
id: `h3-tile-layer-${this.props.id}`,
|
|
92
83
|
data,
|
|
93
|
-
//
|
|
94
|
-
TilesetClass: H3Tileset2D,
|
|
84
|
+
// TODO: Tileset2D should be generic over TileIndex type
|
|
85
|
+
TilesetClass: H3Tileset2D as any,
|
|
95
86
|
renderSubLayers,
|
|
96
87
|
// minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects
|
|
97
88
|
minZoom: minresolution,
|
|
98
89
|
maxZoom: maxresolution,
|
|
99
|
-
loadOptions:
|
|
100
|
-
...this.getLoadOptions(),
|
|
101
|
-
cartoSpatialTile: {scheme: 'h3'},
|
|
102
|
-
mimeType: 'application/vnd.carto-spatial-tile'
|
|
103
|
-
}
|
|
90
|
+
loadOptions: this.getLoadOptions()
|
|
104
91
|
})
|
|
105
92
|
];
|
|
106
93
|
}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CompositeLayer,
|
|
3
|
-
CompositeLayerProps,
|
|
4
|
-
Layer,
|
|
5
|
-
LayersList,
|
|
6
|
-
UpdateParameters,
|
|
7
|
-
DefaultProps
|
|
8
|
-
} from '@deck.gl/core';
|
|
1
|
+
import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';
|
|
9
2
|
import QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';
|
|
10
3
|
import QuadbinTileset2D from './quadbin-tileset-2d';
|
|
11
4
|
import SpatialIndexTileLayer from './spatial-index-tile-layer';
|
|
12
5
|
import {hexToBigInt} from 'quadbin';
|
|
6
|
+
import {TilejsonPropType, CartoTilejsonResult} from '../sources/common';
|
|
7
|
+
import {injectAccessToken} from './utils';
|
|
13
8
|
|
|
14
9
|
export const renderSubLayers = props => {
|
|
15
10
|
const {data} = props;
|
|
@@ -21,7 +16,8 @@ export const renderSubLayers = props => {
|
|
|
21
16
|
};
|
|
22
17
|
|
|
23
18
|
const defaultProps: DefaultProps<QuadbinTileLayerProps> = {
|
|
24
|
-
aggregationResLevel: 6
|
|
19
|
+
aggregationResLevel: 6,
|
|
20
|
+
data: TilejsonPropType
|
|
25
21
|
};
|
|
26
22
|
|
|
27
23
|
/** All properties supported by QuadbinTileLayer. */
|
|
@@ -29,8 +25,8 @@ export type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &
|
|
|
29
25
|
CompositeLayerProps;
|
|
30
26
|
|
|
31
27
|
/** Properties added by QuadbinTileLayer. */
|
|
32
|
-
type _QuadbinTileLayerProps<DataT> = QuadbinLayerProps<DataT> & {
|
|
33
|
-
data:
|
|
28
|
+
type _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> & {
|
|
29
|
+
data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;
|
|
34
30
|
aggregationResLevel?: number;
|
|
35
31
|
};
|
|
36
32
|
|
|
@@ -41,27 +37,21 @@ export default class QuadbinTileLayer<
|
|
|
41
37
|
static layerName = 'QuadbinTileLayer';
|
|
42
38
|
static defaultProps = defaultProps;
|
|
43
39
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
data
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
updateState({changeFlags}: UpdateParameters<this>): void {
|
|
53
|
-
if (changeFlags.dataChanged) {
|
|
54
|
-
let {data} = this.props;
|
|
55
|
-
const tileJSON = data;
|
|
56
|
-
data = (tileJSON as any).tiles;
|
|
57
|
-
this.setState({data, tileJSON});
|
|
58
|
-
}
|
|
40
|
+
getLoadOptions(): any {
|
|
41
|
+
const loadOptions = super.getLoadOptions() || {};
|
|
42
|
+
const tileJSON = this.props.data as CartoTilejsonResult;
|
|
43
|
+
injectAccessToken(loadOptions, tileJSON.accessToken);
|
|
44
|
+
loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};
|
|
45
|
+
return loadOptions;
|
|
59
46
|
}
|
|
60
47
|
|
|
61
48
|
renderLayers(): Layer | null | LayersList {
|
|
62
|
-
const
|
|
63
|
-
|
|
49
|
+
const tileJSON = this.props.data as CartoTilejsonResult;
|
|
50
|
+
if (!tileJSON) return null;
|
|
51
|
+
|
|
52
|
+
const {tiles: data, maxresolution: maxZoom} = tileJSON;
|
|
64
53
|
return [
|
|
54
|
+
// @ts-ignore
|
|
65
55
|
new SpatialIndexTileLayer(this.props, {
|
|
66
56
|
id: `quadbin-tile-layer-${this.props.id}`,
|
|
67
57
|
data,
|
|
@@ -69,11 +59,7 @@ export default class QuadbinTileLayer<
|
|
|
69
59
|
TilesetClass: QuadbinTileset2D as any,
|
|
70
60
|
renderSubLayers,
|
|
71
61
|
maxZoom,
|
|
72
|
-
loadOptions:
|
|
73
|
-
...this.getLoadOptions(),
|
|
74
|
-
cartoSpatialTile: {scheme: 'quadbin'},
|
|
75
|
-
mimeType: 'application/vnd.carto-spatial-tile'
|
|
76
|
-
}
|
|
62
|
+
loadOptions: this.getLoadOptions()
|
|
77
63
|
})
|
|
78
64
|
];
|
|
79
65
|
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CompositeLayer,
|
|
3
|
-
CompositeLayerProps,
|
|
4
|
-
Layer,
|
|
5
|
-
LayersList,
|
|
6
|
-
UpdateParameters
|
|
7
|
-
} from '@deck.gl/core';
|
|
1
|
+
import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';
|
|
8
2
|
import RasterLayer, {RasterLayerProps} from './raster-layer';
|
|
9
3
|
import QuadbinTileset2D from './quadbin-tileset-2d';
|
|
10
4
|
import SpatialIndexTileLayer from './spatial-index-tile-layer';
|
|
5
|
+
import {TilejsonPropType, CartoTilejsonResult} from '../sources/common';
|
|
6
|
+
import {injectAccessToken} from './utils';
|
|
11
7
|
|
|
12
8
|
export const renderSubLayers = props => {
|
|
13
9
|
const tileIndex = props.tile?.index?.q;
|
|
@@ -15,12 +11,16 @@ export const renderSubLayers = props => {
|
|
|
15
11
|
return new RasterLayer(props, {tileIndex});
|
|
16
12
|
};
|
|
17
13
|
|
|
14
|
+
const defaultProps: DefaultProps<RasterTileLayerProps> = {
|
|
15
|
+
data: TilejsonPropType
|
|
16
|
+
};
|
|
17
|
+
|
|
18
18
|
/** All properties supported by RasterTileLayer. */
|
|
19
19
|
export type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;
|
|
20
20
|
|
|
21
21
|
/** Properties added by RasterTileLayer. */
|
|
22
|
-
type _RasterTileLayerProps<DataT> = RasterLayerProps<DataT> & {
|
|
23
|
-
data:
|
|
22
|
+
type _RasterTileLayerProps<DataT> = Omit<RasterLayerProps<DataT>, 'data'> & {
|
|
23
|
+
data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export default class RasterTileLayer<
|
|
@@ -28,27 +28,22 @@ export default class RasterTileLayer<
|
|
|
28
28
|
ExtraProps extends {} = {}
|
|
29
29
|
> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {
|
|
30
30
|
static layerName = 'RasterTileLayer';
|
|
31
|
-
static defaultProps =
|
|
31
|
+
static defaultProps = defaultProps;
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
updateState({changeFlags}: UpdateParameters<this>): void {
|
|
39
|
-
if (changeFlags.dataChanged) {
|
|
40
|
-
let {data} = this.props;
|
|
41
|
-
const tileJSON = data;
|
|
42
|
-
data = (tileJSON as any).tiles;
|
|
43
|
-
this.setState({data, tileJSON});
|
|
44
|
-
}
|
|
33
|
+
getLoadOptions(): any {
|
|
34
|
+
const loadOptions = super.getLoadOptions() || {};
|
|
35
|
+
const tileJSON = this.props.data as CartoTilejsonResult;
|
|
36
|
+
injectAccessToken(loadOptions, tileJSON.accessToken);
|
|
37
|
+
return loadOptions;
|
|
45
38
|
}
|
|
46
39
|
|
|
47
40
|
renderLayers(): Layer | null | LayersList {
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
const tileJSON = this.props.data as CartoTilejsonResult;
|
|
42
|
+
if (!tileJSON) return null;
|
|
43
|
+
|
|
44
|
+
const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;
|
|
51
45
|
return [
|
|
46
|
+
// @ts-ignore
|
|
52
47
|
new SpatialIndexTileLayer(this.props, {
|
|
53
48
|
id: `raster-tile-layer-${this.props.id}`,
|
|
54
49
|
data,
|
|
@@ -56,7 +51,8 @@ export default class RasterTileLayer<
|
|
|
56
51
|
TilesetClass: QuadbinTileset2D as any,
|
|
57
52
|
renderSubLayers,
|
|
58
53
|
minZoom,
|
|
59
|
-
maxZoom
|
|
54
|
+
maxZoom,
|
|
55
|
+
loadOptions: this.getLoadOptions()
|
|
60
56
|
})
|
|
61
57
|
];
|
|
62
58
|
}
|
|
@@ -2,20 +2,37 @@ import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
|
2
2
|
|
|
3
3
|
import {TileReader} from './carto-raster-tile';
|
|
4
4
|
import {parsePbf} from './tile-loader-utils';
|
|
5
|
+
import {getWorkerUrl} from '../../utils';
|
|
5
6
|
import {NumericProps, Properties} from './spatialjson-utils';
|
|
6
7
|
|
|
8
|
+
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
9
|
+
const id = 'cartoRasterTile';
|
|
10
|
+
|
|
11
|
+
type CartoRasterTileLoaderOptions = LoaderOptions & {
|
|
12
|
+
cartoRasterTile?: {
|
|
13
|
+
workerUrl: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const DEFAULT_OPTIONS: CartoRasterTileLoaderOptions = {
|
|
18
|
+
cartoRasterTile: {
|
|
19
|
+
workerUrl: getWorkerUrl(id, VERSION)
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
7
23
|
const CartoRasterTileLoader: LoaderWithParser = {
|
|
8
24
|
name: 'CARTO Raster Tile',
|
|
9
|
-
version:
|
|
10
|
-
id
|
|
25
|
+
version: VERSION,
|
|
26
|
+
id,
|
|
11
27
|
module: 'carto',
|
|
12
28
|
extensions: ['pbf'],
|
|
13
29
|
mimeTypes: ['application/vnd.carto-raster-tile'],
|
|
14
30
|
category: 'geometry',
|
|
15
|
-
|
|
16
|
-
|
|
31
|
+
parse: async (arrayBuffer, options?: CartoRasterTileLoaderOptions) =>
|
|
32
|
+
parseCartoRasterTile(arrayBuffer, options),
|
|
17
33
|
parseSync: parseCartoRasterTile,
|
|
18
|
-
|
|
34
|
+
worker: true,
|
|
35
|
+
options: DEFAULT_OPTIONS
|
|
19
36
|
};
|
|
20
37
|
|
|
21
38
|
export type Raster = {
|
|
@@ -27,7 +44,10 @@ export type Raster = {
|
|
|
27
44
|
};
|
|
28
45
|
};
|
|
29
46
|
|
|
30
|
-
function parseCartoRasterTile(
|
|
47
|
+
function parseCartoRasterTile(
|
|
48
|
+
arrayBuffer: ArrayBuffer,
|
|
49
|
+
options?: CartoRasterTileLoaderOptions
|
|
50
|
+
): Raster | null {
|
|
31
51
|
if (!arrayBuffer) return null;
|
|
32
52
|
const tile = parsePbf(arrayBuffer, TileReader);
|
|
33
53
|
const {bands, blockHeight, blockWidth} = tile;
|
|
@@ -2,35 +2,49 @@ import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
|
2
2
|
|
|
3
3
|
import {Tile, TileReader} from './carto-spatial-tile';
|
|
4
4
|
import {parsePbf} from './tile-loader-utils';
|
|
5
|
+
import {getWorkerUrl} from '../../utils';
|
|
5
6
|
import {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';
|
|
6
7
|
|
|
8
|
+
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
9
|
+
const id = 'cartoSpatialTile';
|
|
10
|
+
|
|
11
|
+
type CartoSpatialTileLoaderOptions = LoaderOptions & {
|
|
12
|
+
cartoSpatialTile?: {
|
|
13
|
+
scheme: IndexScheme;
|
|
14
|
+
workerUrl: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const DEFAULT_OPTIONS: CartoSpatialTileLoaderOptions = {
|
|
19
|
+
cartoSpatialTile: {
|
|
20
|
+
scheme: 'quadbin',
|
|
21
|
+
workerUrl: getWorkerUrl(id, VERSION)
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
7
25
|
const CartoSpatialTileLoader: LoaderWithParser = {
|
|
8
26
|
name: 'CARTO Spatial Tile',
|
|
9
|
-
version:
|
|
10
|
-
id
|
|
27
|
+
version: VERSION,
|
|
28
|
+
id,
|
|
11
29
|
module: 'carto',
|
|
12
30
|
extensions: ['pbf'],
|
|
13
31
|
mimeTypes: ['application/vnd.carto-spatial-tile'],
|
|
14
32
|
category: 'geometry',
|
|
15
|
-
|
|
16
|
-
|
|
33
|
+
parse: async (arrayBuffer, options?: CartoSpatialTileLoaderOptions) =>
|
|
34
|
+
parseCartoSpatialTile(arrayBuffer, options),
|
|
17
35
|
parseSync: parseCartoSpatialTile,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
scheme: 'quadbin'
|
|
21
|
-
} as {scheme: IndexScheme}
|
|
22
|
-
}
|
|
36
|
+
worker: true,
|
|
37
|
+
options: DEFAULT_OPTIONS
|
|
23
38
|
};
|
|
24
39
|
|
|
25
40
|
function parseCartoSpatialTile(
|
|
26
41
|
arrayBuffer: ArrayBuffer,
|
|
27
|
-
options?:
|
|
42
|
+
options?: CartoSpatialTileLoaderOptions
|
|
28
43
|
): SpatialJson | null {
|
|
29
44
|
if (!arrayBuffer) return null;
|
|
30
45
|
const tile: Tile = parsePbf(arrayBuffer, TileReader);
|
|
31
46
|
|
|
32
47
|
const {cells} = tile;
|
|
33
|
-
// @ts-expect-error
|
|
34
48
|
const scheme = options?.cartoSpatialTile?.scheme;
|
|
35
49
|
const data = {cells, scheme};
|
|
36
50
|
|
|
@@ -8,7 +8,7 @@ interface KeyValueObject {
|
|
|
8
8
|
|
|
9
9
|
class KeyValueObjectReader {
|
|
10
10
|
static read(pbf, end?: number): KeyValueObject {
|
|
11
|
-
return pbf.readFields(KeyValueObjectReader._readField, {key: '', value:
|
|
11
|
+
return pbf.readFields(KeyValueObjectReader._readField, {key: '', value: null}, end);
|
|
12
12
|
}
|
|
13
13
|
static _readField(this: void, tag: number, obj: KeyValueObject, pbf) {
|
|
14
14
|
if (tag === 1) obj.key = pbf.readString();
|