@deck.gl/carto 8.10.0-alpha.2 → 8.10.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cartoRasterTile-worker.js +1084 -0
  3. package/dist/cartoSpatialTile-worker.js +1469 -0
  4. package/dist/cartoVectorTile-worker.js +1727 -0
  5. package/dist/dist.dev.js +1733 -881
  6. package/dist/es5/api/layer-map.js +3 -7
  7. package/dist/es5/api/layer-map.js.map +1 -1
  8. package/dist/es5/api/maps-api-common.js +0 -1
  9. package/dist/es5/api/maps-api-common.js.map +1 -1
  10. package/dist/es5/api/maps-v3-client.js +5 -20
  11. package/dist/es5/api/maps-v3-client.js.map +1 -1
  12. package/dist/es5/index.js +74 -6
  13. package/dist/es5/index.js.map +1 -1
  14. package/dist/es5/layers/h3-tile-layer.js +23 -41
  15. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  16. package/dist/es5/layers/quadbin-tile-layer.js +21 -42
  17. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  18. package/dist/es5/layers/raster-tile-layer.js +23 -39
  19. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  20. package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
  21. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  22. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
  23. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  24. package/dist/es5/layers/schema/carto-tile.js +1 -1
  25. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  26. package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
  27. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  28. package/dist/es5/layers/utils.js +29 -0
  29. package/dist/es5/layers/utils.js.map +1 -0
  30. package/dist/es5/layers/{carto-tile-layer.js → vector-tile-layer.js} +49 -24
  31. package/dist/es5/layers/vector-tile-layer.js.map +1 -0
  32. package/dist/es5/sources/base-source.js +100 -0
  33. package/dist/es5/sources/base-source.js.map +1 -0
  34. package/dist/es5/sources/common.js +48 -0
  35. package/dist/es5/sources/common.js.map +1 -0
  36. package/dist/es5/sources/h3-query-source.js +58 -0
  37. package/dist/es5/sources/h3-query-source.js.map +1 -0
  38. package/dist/es5/sources/h3-table-source.js +58 -0
  39. package/dist/es5/sources/h3-table-source.js.map +1 -0
  40. package/dist/es5/sources/h3-tileset-source.js +43 -0
  41. package/dist/es5/sources/h3-tileset-source.js.map +1 -0
  42. package/dist/es5/sources/index.js +94 -0
  43. package/dist/es5/sources/index.js.map +1 -0
  44. package/dist/es5/sources/quadbin-query-source.js +58 -0
  45. package/dist/es5/sources/quadbin-query-source.js.map +1 -0
  46. package/dist/es5/sources/quadbin-table-source.js +58 -0
  47. package/dist/es5/sources/quadbin-table-source.js.map +1 -0
  48. package/dist/es5/sources/quadbin-tileset-source.js +43 -0
  49. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
  50. package/dist/es5/sources/raster-source.js +43 -0
  51. package/dist/es5/sources/raster-source.js.map +1 -0
  52. package/dist/es5/sources/utils.js +136 -0
  53. package/dist/es5/sources/utils.js.map +1 -0
  54. package/dist/es5/sources/vector-query-source.js +52 -0
  55. package/dist/es5/sources/vector-query-source.js.map +1 -0
  56. package/dist/es5/sources/vector-table-source.js +52 -0
  57. package/dist/es5/sources/vector-table-source.js.map +1 -0
  58. package/dist/es5/sources/vector-tileset-source.js +43 -0
  59. package/dist/es5/sources/vector-tileset-source.js.map +1 -0
  60. package/dist/es5/utils.js +5 -0
  61. package/dist/es5/utils.js.map +1 -1
  62. package/dist/es5/workers/cartoRasterTile.js +10 -0
  63. package/dist/es5/workers/cartoRasterTile.js.map +1 -0
  64. package/dist/es5/workers/cartoSpatialTile.js +10 -0
  65. package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
  66. package/dist/es5/workers/cartoVectorTile.js +10 -0
  67. package/dist/es5/workers/cartoVectorTile.js.map +1 -0
  68. package/dist/esm/api/layer-map.js +3 -7
  69. package/dist/esm/api/layer-map.js.map +1 -1
  70. package/dist/esm/api/maps-api-common.js +0 -1
  71. package/dist/esm/api/maps-api-common.js.map +1 -1
  72. package/dist/esm/api/maps-v3-client.js +2 -12
  73. package/dist/esm/api/maps-v3-client.js.map +1 -1
  74. package/dist/esm/index.js +5 -4
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/layers/h3-tile-layer.js +21 -37
  77. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  78. package/dist/esm/layers/quadbin-tile-layer.js +18 -38
  79. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  80. package/dist/esm/layers/raster-tile-layer.js +19 -34
  81. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  82. package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
  83. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  84. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
  85. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  86. package/dist/esm/layers/schema/carto-tile.js +1 -1
  87. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  88. package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
  89. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  90. package/dist/esm/layers/utils.js +14 -0
  91. package/dist/esm/layers/utils.js.map +1 -0
  92. package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -15
  93. package/dist/esm/layers/vector-tile-layer.js.map +1 -0
  94. package/dist/esm/sources/base-source.js +49 -0
  95. package/dist/esm/sources/base-source.js.map +1 -0
  96. package/dist/esm/sources/common.js +26 -0
  97. package/dist/esm/sources/common.js.map +1 -0
  98. package/dist/esm/sources/h3-query-source.js +32 -0
  99. package/dist/esm/sources/h3-query-source.js.map +1 -0
  100. package/dist/esm/sources/h3-table-source.js +32 -0
  101. package/dist/esm/sources/h3-table-source.js.map +1 -0
  102. package/dist/esm/sources/h3-tileset-source.js +14 -0
  103. package/dist/esm/sources/h3-tileset-source.js.map +1 -0
  104. package/dist/esm/sources/index.js +12 -0
  105. package/dist/esm/sources/index.js.map +1 -0
  106. package/dist/esm/sources/quadbin-query-source.js +32 -0
  107. package/dist/esm/sources/quadbin-query-source.js.map +1 -0
  108. package/dist/esm/sources/quadbin-table-source.js +32 -0
  109. package/dist/esm/sources/quadbin-table-source.js.map +1 -0
  110. package/dist/esm/sources/quadbin-tileset-source.js +14 -0
  111. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
  112. package/dist/esm/sources/raster-source.js +14 -0
  113. package/dist/esm/sources/raster-source.js.map +1 -0
  114. package/dist/esm/sources/utils.js +69 -0
  115. package/dist/esm/sources/utils.js.map +1 -0
  116. package/dist/esm/sources/vector-query-source.js +25 -0
  117. package/dist/esm/sources/vector-query-source.js.map +1 -0
  118. package/dist/esm/sources/vector-table-source.js +25 -0
  119. package/dist/esm/sources/vector-table-source.js.map +1 -0
  120. package/dist/esm/sources/vector-tileset-source.js +14 -0
  121. package/dist/esm/sources/vector-tileset-source.js.map +1 -0
  122. package/dist/esm/utils.js +3 -0
  123. package/dist/esm/utils.js.map +1 -1
  124. package/dist/esm/workers/cartoRasterTile.js +4 -0
  125. package/dist/esm/workers/cartoRasterTile.js.map +1 -0
  126. package/dist/esm/workers/cartoSpatialTile.js +4 -0
  127. package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
  128. package/dist/esm/workers/cartoVectorTile.js +4 -0
  129. package/dist/esm/workers/cartoVectorTile.js.map +1 -0
  130. package/dist.min.js +25 -25
  131. package/package.json +11 -9
  132. package/src/api/layer-map.ts +4 -8
  133. package/src/api/maps-api-common.ts +0 -1
  134. package/src/api/maps-v3-client.ts +6 -5
  135. package/src/index.ts +34 -5
  136. package/src/layers/h3-tile-layer.ts +22 -35
  137. package/src/layers/quadbin-tile-layer.ts +19 -33
  138. package/src/layers/raster-tile-layer.ts +22 -26
  139. package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
  140. package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
  141. package/src/layers/schema/carto-tile.ts +1 -1
  142. package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
  143. package/src/layers/utils.ts +11 -0
  144. package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
  145. package/src/sources/base-source.ts +55 -0
  146. package/src/sources/common.ts +132 -0
  147. package/src/sources/h3-query-source.ts +45 -0
  148. package/src/sources/h3-table-source.ts +46 -0
  149. package/src/sources/h3-tileset-source.ts +16 -0
  150. package/src/sources/index.ts +32 -0
  151. package/src/sources/quadbin-query-source.ts +46 -0
  152. package/src/sources/quadbin-table-source.ts +46 -0
  153. package/src/sources/quadbin-tileset-source.ts +16 -0
  154. package/src/sources/raster-source.ts +16 -0
  155. package/src/sources/utils.ts +63 -0
  156. package/src/sources/vector-query-source.ts +23 -0
  157. package/src/sources/vector-table-source.ts +23 -0
  158. package/src/sources/vector-tileset-source.ts +16 -0
  159. package/src/utils.ts +6 -0
  160. package/src/workers/cartoRasterTile.ts +4 -0
  161. package/src/workers/cartoSpatialTile.ts +4 -0
  162. package/src/workers/cartoVectorTile.ts +4 -0
  163. package/typed/api/layer-map.d.ts +2 -3
  164. package/typed/api/layer-map.d.ts.map +1 -1
  165. package/typed/api/maps-api-common.d.ts +0 -1
  166. package/typed/api/maps-api-common.d.ts.map +1 -1
  167. package/typed/api/maps-v3-client.d.ts +0 -3
  168. package/typed/api/maps-v3-client.d.ts.map +1 -1
  169. package/typed/index.d.ts +6 -4
  170. package/typed/index.d.ts.map +1 -1
  171. package/typed/layers/h3-tile-layer.d.ts +5 -8
  172. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  173. package/typed/layers/quadbin-tile-layer.d.ts +5 -9
  174. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  175. package/typed/layers/raster-tile-layer.d.ts +6 -10
  176. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  177. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  178. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  179. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  180. package/typed/layers/utils.d.ts +5 -0
  181. package/typed/layers/utils.d.ts.map +1 -0
  182. package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
  183. package/typed/layers/vector-tile-layer.d.ts.map +1 -0
  184. package/typed/sources/base-source.d.ts +4 -0
  185. package/typed/sources/base-source.d.ts.map +1 -0
  186. package/typed/sources/common.d.ts +116 -0
  187. package/typed/sources/common.d.ts.map +1 -0
  188. package/typed/sources/h3-query-source.d.ts +5 -0
  189. package/typed/sources/h3-query-source.d.ts.map +1 -0
  190. package/typed/sources/h3-table-source.d.ts +5 -0
  191. package/typed/sources/h3-table-source.d.ts.map +1 -0
  192. package/typed/sources/h3-tileset-source.d.ts +5 -0
  193. package/typed/sources/h3-tileset-source.d.ts.map +1 -0
  194. package/typed/sources/index.d.ts +23 -0
  195. package/typed/sources/index.d.ts.map +1 -0
  196. package/typed/sources/quadbin-query-source.d.ts +5 -0
  197. package/typed/sources/quadbin-query-source.d.ts.map +1 -0
  198. package/typed/sources/quadbin-table-source.d.ts +5 -0
  199. package/typed/sources/quadbin-table-source.d.ts.map +1 -0
  200. package/typed/sources/quadbin-tileset-source.d.ts +5 -0
  201. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
  202. package/typed/sources/raster-source.d.ts +5 -0
  203. package/typed/sources/raster-source.d.ts.map +1 -0
  204. package/typed/sources/utils.d.ts +15 -0
  205. package/typed/sources/utils.d.ts.map +1 -0
  206. package/typed/sources/vector-query-source.d.ts +5 -0
  207. package/typed/sources/vector-query-source.d.ts.map +1 -0
  208. package/typed/sources/vector-table-source.d.ts +5 -0
  209. package/typed/sources/vector-table-source.d.ts.map +1 -0
  210. package/typed/sources/vector-tileset-source.d.ts +5 -0
  211. package/typed/sources/vector-tileset-source.d.ts.map +1 -0
  212. package/typed/utils.d.ts +1 -0
  213. package/typed/utils.d.ts.map +1 -1
  214. package/typed/workers/cartoRasterTile.d.ts +2 -0
  215. package/typed/workers/cartoRasterTile.d.ts.map +1 -0
  216. package/typed/workers/cartoSpatialTile.d.ts +2 -0
  217. package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
  218. package/typed/workers/cartoVectorTile.d.ts +2 -0
  219. package/typed/workers/cartoVectorTile.d.ts.map +1 -0
  220. package/dist/es5/layers/carto-tile-layer.js.map +0 -1
  221. package/dist/esm/layers/carto-tile-layer.js.map +0 -1
  222. package/typed/api/index.js +0 -3
  223. package/typed/api/layer-map.js +0 -264
  224. package/typed/api/maps-api-common.js +0 -50
  225. package/typed/api/maps-client.js +0 -125
  226. package/typed/api/maps-v3-client.js +0 -304
  227. package/typed/api/parseMap.js +0 -178
  228. package/typed/basemap.js +0 -9
  229. package/typed/config.js +0 -35
  230. package/typed/index.js +0 -10
  231. package/typed/layers/carto-layer.js +0 -173
  232. package/typed/layers/carto-tile-layer.d.ts.map +0 -1
  233. package/typed/layers/carto-tile-layer.js +0 -105
  234. package/typed/layers/h3-tile-layer.js +0 -47
  235. package/typed/layers/h3-tileset-2d.js +0 -85
  236. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  237. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  238. package/typed/layers/quadkey-tile-layer.js +0 -42
  239. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  240. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  241. package/typed/layers/quadkey-tileset-2d.js +0 -36
  242. package/typed/layers/schema/carto-tile.js +0 -161
  243. package/typed/layers/spatial-index-tile-layer.js +0 -40
  244. package/typed/style/color-bins-style.js +0 -12
  245. package/typed/style/color-categories-style.js +0 -16
  246. package/typed/style/color-continuous-style.js +0 -12
  247. package/typed/style/palette.js +0 -62
  248. package/typed/style/utils.js +0 -15
  249. 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.2",
5
+ "version": "8.10.0-alpha.4",
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.2",
37
- "@loaders.gl/loader-utils": "^3.4.2",
38
- "@loaders.gl/mvt": "^3.4.2",
39
- "@loaders.gl/tiles": "^3.4.2",
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.2",
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.2"
66
+ "@loaders.gl/core": "^3.4.13"
65
67
  },
66
- "gitHead": "888ee50db498da4b42697854e79e46cdbb881470"
68
+ "gitHead": "8195f543d7673ab0d6755f316c4ad516cff4f049"
67
69
  }
@@ -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, MVTLayer} from '@deck.gl/geo-layers';
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 CartoTileLayer | typeof H3TileLayer | typeof MVTLayer | typeof QuadbinTileLayer {
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
- // formatTiles === BINARY|JSON|GEOJSON
222
- return CartoTileLayer;
218
+ return VectorTileLayer;
223
219
  }
224
220
 
225
221
  function getTileLayer(dataset: MapDataset, basePropMap) {
@@ -27,7 +27,6 @@ export const GEO_COLUMN_SUPPORT: MapType[] = [MAP_TYPES.QUERY, MAP_TYPES.TABLE];
27
27
  // AVAILABLE FORMATS
28
28
  export const FORMATS = {
29
29
  GEOJSON: 'geojson',
30
- NDJSON: 'ndjson',
31
30
  TILEJSON: 'tilejson',
32
31
  JSON: 'json'
33
32
  } as const;
@@ -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.1';
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
- return request({method, url, accessToken, body, errorContext});
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.NDJSON, FORMATS.TILEJSON];
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 _CartoTileLayer} from './layers/carto-tile-layer';
4
- export {default as _H3TileLayer} from './layers/h3-tile-layer';
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 _QuadbinTileLayer} from './layers/quadbin-tile-layer';
7
- export {default as _RasterTileLayer} from './layers/raster-tile-layer';
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: string;
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
- updateState({changeFlags}: UpdateParameters<this>): void {
59
- if (changeFlags.dataChanged) {
60
- let {data} = this.props;
61
- const tileJSON = data;
62
- data = (tileJSON as any).tiles;
63
- this.setState({data, tileJSON});
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 {data, tileJSON} = this.state;
69
- let minresolution = parseInt(tileJSON.minresolution);
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
- // @ts-expect-error Tileset2D should be generic over TileIndex
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: string;
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
- state!: {
45
- tileJSON: any;
46
- data: any;
47
- };
48
- initializeState(): void {
49
- this.setState({data: null, tileJSON: null});
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 {data, tileJSON} = this.state;
63
- const maxZoom = parseInt(tileJSON?.maxresolution);
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: string;
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
- state!: {tileJSON: any; data: any};
34
- initializeState(): void {
35
- this.setState({data: null, tileJSON: null});
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 {data, tileJSON} = this.state;
49
- const minZoom = parseInt(tileJSON?.minzoom);
50
- const maxZoom = parseInt(tileJSON?.maxzoom);
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: '1',
10
- id: 'cartoRasterTile',
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
- worker: false,
16
- parse: async (arrayBuffer, options) => parseCartoRasterTile(arrayBuffer, options),
31
+ parse: async (arrayBuffer, options?: CartoRasterTileLoaderOptions) =>
32
+ parseCartoRasterTile(arrayBuffer, options),
17
33
  parseSync: parseCartoRasterTile,
18
- options: {}
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(arrayBuffer: ArrayBuffer, options?: LoaderOptions): Raster | null {
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: '1',
10
- id: 'cartoSpatialTile',
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
- worker: false,
16
- parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),
33
+ parse: async (arrayBuffer, options?: CartoSpatialTileLoaderOptions) =>
34
+ parseCartoSpatialTile(arrayBuffer, options),
17
35
  parseSync: parseCartoSpatialTile,
18
- options: {
19
- cartoSpatialTile: {
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?: LoaderOptions
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: ''}, end);
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();