@deck.gl/carto 9.0.37 → 9.0.40

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 (37) hide show
  1. package/dist/cartoRasterTile-worker.js +4386 -6
  2. package/dist/cartoSpatialTile-worker.js +4378 -3
  3. package/dist/cartoVectorTile-worker.js +4378 -3
  4. package/dist/dist.dev.js +4449 -30
  5. package/dist/index.cjs +72 -21
  6. package/dist/index.cjs.map +3 -3
  7. package/dist/layers/post-process-utils.d.ts +14 -9
  8. package/dist/layers/post-process-utils.d.ts.map +1 -1
  9. package/dist/layers/post-process-utils.js +24 -0
  10. package/dist/layers/raster-layer-vertex.glsl.d.ts +1 -1
  11. package/dist/layers/raster-layer-vertex.glsl.d.ts.map +1 -1
  12. package/dist/layers/raster-layer-vertex.glsl.js +7 -7
  13. package/dist/layers/raster-layer.d.ts.map +1 -1
  14. package/dist/layers/raster-layer.js +14 -2
  15. package/dist/layers/raster-tile-layer.d.ts.map +1 -1
  16. package/dist/layers/raster-tile-layer.js +17 -3
  17. package/dist/layers/schema/carto-properties-tile-loader.js +1 -1
  18. package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  19. package/dist/layers/schema/carto-raster-tile-loader.js +7 -3
  20. package/dist/layers/schema/carto-raster-tile.d.ts +1 -0
  21. package/dist/layers/schema/carto-raster-tile.d.ts.map +1 -1
  22. package/dist/layers/schema/carto-raster-tile.js +2 -1
  23. package/dist/layers/schema/carto-spatial-tile-loader.js +1 -1
  24. package/dist/layers/schema/carto-vector-tile-loader.js +1 -1
  25. package/dist/layers/schema/fast-pbf.d.ts +5 -1
  26. package/dist/layers/schema/fast-pbf.d.ts.map +1 -1
  27. package/dist/layers/schema/fast-pbf.js +11 -2
  28. package/dist.min.js +21 -18
  29. package/package.json +2 -2
  30. package/src/layers/post-process-utils.ts +30 -1
  31. package/src/layers/raster-layer-vertex.glsl.ts +10 -8
  32. package/src/layers/raster-layer.ts +15 -2
  33. package/src/layers/raster-tile-layer.ts +27 -5
  34. package/src/layers/schema/carto-properties-tile-loader.ts +1 -1
  35. package/src/layers/schema/carto-raster-tile-loader.ts +7 -2
  36. package/src/layers/schema/carto-raster-tile.ts +3 -1
  37. package/src/layers/schema/fast-pbf.ts +17 -2
package/dist/index.cjs CHANGED
@@ -247,9 +247,17 @@ function getQuadbinPolygon(quadbin, coverage = 1) {
247
247
  }
248
248
 
249
249
  // dist/layers/schema/fast-pbf.js
250
- function readPackedTypedArray(TypedArray, pbf, obj) {
250
+ var import_compression = require("@loaders.gl/compression");
251
+ function readPackedTypedArray(TypedArray, pbf, obj, options) {
251
252
  const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
252
- obj.value = new TypedArray(pbf.buf.buffer.slice(pbf.pos, end));
253
+ const data = pbf.buf.buffer.slice(pbf.pos, end);
254
+ if ((options == null ? void 0 : options.compression) === "gzip") {
255
+ const compression = new import_compression.GZipCompression();
256
+ const decompressedData = compression.decompressSync(data);
257
+ obj.value = new TypedArray(decompressedData);
258
+ } else {
259
+ obj.value = new TypedArray(data);
260
+ }
253
261
  pbf.pos = end;
254
262
  return obj.value;
255
263
  }
@@ -551,7 +559,7 @@ function binaryToSpatialjson(binary) {
551
559
  }
552
560
 
553
561
  // dist/layers/schema/carto-spatial-tile-loader.js
554
- var VERSION = true ? "9.0.37" : "latest";
562
+ var VERSION = true ? "9.0.40" : "latest";
555
563
  var id = "cartoSpatialTile";
556
564
  var DEFAULT_OPTIONS = {
557
565
  cartoSpatialTile: {
@@ -899,7 +907,8 @@ var BandReader = class {
899
907
  throw Error(`Invalid data type: ${obj.type}`);
900
908
  }
901
909
  obj.data = {};
902
- readPackedTypedArray(TypedArray, pbf, obj.data);
910
+ const { compression } = TileReader3;
911
+ readPackedTypedArray(TypedArray, pbf, obj.data, { compression });
903
912
  }
904
913
  }
905
914
  };
@@ -916,10 +925,11 @@ var TileReader3 = class {
916
925
  };
917
926
 
918
927
  // dist/layers/schema/carto-raster-tile-loader.js
919
- var VERSION2 = true ? "9.0.37" : "latest";
928
+ var VERSION2 = true ? "9.0.40" : "latest";
920
929
  var id2 = "cartoRasterTile";
921
930
  var DEFAULT_OPTIONS2 = {
922
931
  cartoRasterTile: {
932
+ metadata: null,
923
933
  workerUrl: getWorkerUrl(id2, VERSION2)
924
934
  }
925
935
  };
@@ -937,9 +947,13 @@ var CartoRasterTileLoader = {
937
947
  options: DEFAULT_OPTIONS2
938
948
  };
939
949
  function parseCartoRasterTile(arrayBuffer, options) {
940
- if (!arrayBuffer)
950
+ var _a;
951
+ const metadata = (_a = options == null ? void 0 : options.cartoRasterTile) == null ? void 0 : _a.metadata;
952
+ if (!arrayBuffer || !metadata)
941
953
  return null;
942
- const { bands, blockSize } = parsePbf(arrayBuffer, TileReader3);
954
+ TileReader3.compression = metadata.compression;
955
+ const out = parsePbf(arrayBuffer, TileReader3);
956
+ const { bands, blockSize } = out;
943
957
  const numericProps = {};
944
958
  for (let i = 0; i < bands.length; i++) {
945
959
  const { name, data } = bands[i];
@@ -1266,8 +1280,25 @@ function PostProcessModifier(BaseLayer, effect) {
1266
1280
  });
1267
1281
  this.internalState.renderInProgress = false;
1268
1282
  }
1283
+ _finalize() {
1284
+ this.internalState.renderBuffers.forEach((fbo) => {
1285
+ fbo.destroy();
1286
+ });
1287
+ this.internalState.renderBuffers = null;
1288
+ this.internalState.postProcess.cleanup();
1289
+ }
1269
1290
  }, _a.layerName = `PostProcess${BaseLayer.layerName}`, _a;
1270
1291
  }
1292
+ var fs2 = `vec4 copy_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
1293
+ return color;
1294
+ }
1295
+ `;
1296
+ var copy = {
1297
+ name: "copy",
1298
+ fs: fs2,
1299
+ getUniforms: () => ({}),
1300
+ passes: [{ filter: true }]
1301
+ };
1271
1302
 
1272
1303
  // dist/layers/quadbin-tile-layer.js
1273
1304
  var import_core10 = require("@deck.gl/core");
@@ -1704,15 +1735,15 @@ out vec4 vColor;
1704
1735
  out vec4 position_commonspace;
1705
1736
  #endif
1706
1737
  void main(void) {
1707
- vec2 common_position = offset.xy;
1738
+ vec2 tileOrigin = offset.xy;
1708
1739
  float scale = offset.z;
1709
1740
  int yIndex = - (gl_InstanceID / BLOCK_WIDTH);
1710
1741
  int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);
1711
- common_position += scale * vec2(float(xIndex), float(yIndex - 1));
1742
+ vec2 cellCenter = scale * vec2(float(xIndex) + 0.5, float(yIndex) - 0.5);
1712
1743
  vec4 color = isStroke ? instanceLineColors : instanceFillColors;
1713
1744
  float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);
1714
1745
  float cellWidth = coverage * scale;
1715
- geometry.position = vec4(common_position, 0.0, 1.0);
1746
+ geometry.position = vec4(tileOrigin + cellCenter, 0.0, 1.0);
1716
1747
  if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {
1717
1748
  geometry.position.xyz -= project_uCommonOrigin;
1718
1749
  }
@@ -1729,10 +1760,10 @@ strokeOffsetRatio -= halfOffset;
1729
1760
  }
1730
1761
  }
1731
1762
  geometry.pickingColor = instancePickingColors;
1732
- vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;
1733
- vec3 pos = vec3(offset, project_size(elevation));
1734
- DECKGL_FILTER_SIZE(pos, geometry);
1735
- geometry.position.xyz += pos;
1763
+ vec2 base = positions.xy * scale * strokeOffsetRatio * coverage * shouldRender;
1764
+ vec3 cell = vec3(base, project_size(elevation));
1765
+ DECKGL_FILTER_SIZE(cell, geometry);
1766
+ geometry.position.xyz += cell;
1736
1767
  gl_Position = project_common_position_to_clipspace(geometry.position);
1737
1768
  geometry.normal = project_normal(normals);
1738
1769
  DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
@@ -1763,7 +1794,7 @@ var defaultProps8 = {
1763
1794
  [-0.5, 0.5]
1764
1795
  ]
1765
1796
  };
1766
- var RasterColumnLayer = class extends import_layers4.ColumnLayer {
1797
+ var RasterColumnLayer = class extends RTTModifier(import_layers4.ColumnLayer) {
1767
1798
  getShaders() {
1768
1799
  const shaders = super.getShaders();
1769
1800
  const data = this.props.data;
@@ -1824,7 +1855,15 @@ var RasterLayer = class extends import_core13.CompositeLayer {
1824
1855
  dataComparator: wrappedDataComparator,
1825
1856
  offset,
1826
1857
  highlightedObjectIndex,
1827
- highlightColor
1858
+ highlightColor,
1859
+ parameters: {
1860
+ blendColorSrcFactor: "one",
1861
+ blendAlphaSrcFactor: "one",
1862
+ blendColorDstFactor: "zero",
1863
+ blendAlphaDstFactor: "zero",
1864
+ blendColorOperation: "add",
1865
+ blendAlphaOperation: "add"
1866
+ }
1828
1867
  });
1829
1868
  }
1830
1869
  getSubLayerAccessor(accessor) {
@@ -1881,8 +1920,17 @@ var renderSubLayers3 = (props) => {
1881
1920
  };
1882
1921
  var defaultProps9 = {
1883
1922
  data: TilejsonPropType,
1923
+ refinementStrategy: "no-overlap",
1884
1924
  tileSize: DEFAULT_TILE_SIZE
1885
1925
  };
1926
+ var PostProcessTileLayer = class extends PostProcessModifier(import_geo_layers7.TileLayer, copy) {
1927
+ filterSubLayer(context) {
1928
+ const { tile } = context.layer.props;
1929
+ if (!tile)
1930
+ return true;
1931
+ return super.filterSubLayer(context);
1932
+ }
1933
+ };
1886
1934
  var RasterTileLayer = class extends import_core14.CompositeLayer {
1887
1935
  getLoadOptions() {
1888
1936
  const loadOptions = super.getLoadOptions() || {};
@@ -1894,8 +1942,8 @@ var RasterTileLayer = class extends import_core14.CompositeLayer {
1894
1942
  const tileJSON = this.props.data;
1895
1943
  if (!tileJSON)
1896
1944
  return null;
1897
- const { tiles: data, minzoom: minZoom, maxzoom: maxZoom } = tileJSON;
1898
- const SubLayerClass = this.getSubLayerClass("tile", import_geo_layers7.TileLayer);
1945
+ const { tiles: data, minzoom: minZoom, maxzoom: maxZoom, raster_metadata: metadata } = tileJSON;
1946
+ const SubLayerClass = this.getSubLayerClass("tile", PostProcessTileLayer);
1899
1947
  return new SubLayerClass(this.props, {
1900
1948
  id: `raster-tile-layer-${this.props.id}`,
1901
1949
  data,
@@ -1903,7 +1951,10 @@ var RasterTileLayer = class extends import_core14.CompositeLayer {
1903
1951
  renderSubLayers: renderSubLayers3,
1904
1952
  minZoom,
1905
1953
  maxZoom,
1906
- loadOptions: this.getLoadOptions()
1954
+ loadOptions: {
1955
+ cartoRasterTile: { metadata },
1956
+ ...this.getLoadOptions()
1957
+ }
1907
1958
  });
1908
1959
  }
1909
1960
  };
@@ -1938,7 +1989,7 @@ var CartoPropertiesTileLoader = {
1938
1989
  extensions: ["pbf"],
1939
1990
  mimeTypes: ["application/vnd.carto-properties-tile"],
1940
1991
  category: "geometry",
1941
- worker: false,
1992
+ worker: true,
1942
1993
  parse: async (arrayBuffer, options) => parseCartoPropertiesTile(arrayBuffer, options),
1943
1994
  parseSync: parseCartoPropertiesTile,
1944
1995
  options: {}
@@ -1952,7 +2003,7 @@ var carto_properties_tile_loader_default = CartoPropertiesTileLoader;
1952
2003
 
1953
2004
  // dist/layers/schema/carto-vector-tile-loader.js
1954
2005
  var import_earcut = __toESM(require("earcut"), 1);
1955
- var VERSION3 = true ? "9.0.37" : "latest";
2006
+ var VERSION3 = true ? "9.0.40" : "latest";
1956
2007
  var id3 = "cartoVectorTile";
1957
2008
  var DEFAULT_OPTIONS3 = {
1958
2009
  cartoVectorTile: {