@deck.gl/geo-layers 9.3.0-alpha.5 → 9.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1067,8 +1067,8 @@ function getIdentityTileIndices(viewport, z, tileSize, extent, modelMatrixInvers
1067
1067
  }
1068
1068
  return indices;
1069
1069
  }
1070
- function getTileIndices({ viewport, maxZoom, minZoom, zRange, extent, tileSize = TILE_SIZE3, modelMatrix, modelMatrixInverse, zoomOffset = 0 }) {
1071
- let z = viewport.isGeospatial ? Math.round(viewport.zoom + Math.log2(TILE_SIZE3 / tileSize)) + zoomOffset : Math.ceil(viewport.zoom) + zoomOffset;
1070
+ function getTileIndices({ viewport, maxZoom, minZoom, zRange, extent, tileSize = TILE_SIZE3, modelMatrix, modelMatrixInverse, zoomOffset = 0, visibleMinZoom, visibleMaxZoom }) {
1071
+ let z = viewport.isGeospatial ? Math.round(viewport.zoom + Math.log2(TILE_SIZE3 / tileSize) + zoomOffset) : Math.ceil(viewport.zoom + zoomOffset);
1072
1072
  if (typeof minZoom === "number" && Number.isFinite(minZoom) && z < minZoom) {
1073
1073
  if (!extent) {
1074
1074
  return [];
@@ -1078,6 +1078,12 @@ function getTileIndices({ viewport, maxZoom, minZoom, zRange, extent, tileSize =
1078
1078
  if (typeof maxZoom === "number" && Number.isFinite(maxZoom) && z > maxZoom) {
1079
1079
  z = maxZoom;
1080
1080
  }
1081
+ if (visibleMinZoom != null && viewport.zoom < visibleMinZoom) {
1082
+ return [];
1083
+ }
1084
+ if (visibleMaxZoom != null && viewport.zoom > visibleMaxZoom) {
1085
+ return [];
1086
+ }
1081
1087
  let transformedExtent = extent;
1082
1088
  if (modelMatrix && modelMatrixInverse && extent && !viewport.isGeospatial) {
1083
1089
  transformedExtent = transformBox(extent, modelMatrix);
@@ -1150,6 +1156,8 @@ var DEFAULT_TILESET2D_PROPS = {
1150
1156
  maxRequests: 6,
1151
1157
  debounceTime: 0,
1152
1158
  zoomOffset: 0,
1159
+ visibleMinZoom: null,
1160
+ visibleMaxZoom: null,
1153
1161
  // onTileLoad: (tile: Tile2DHeader) => void, // onTileUnload: (tile: Tile2DHeader) => void, // onTileError: (error: any, tile: Tile2DHeader) => void, /** Called when all tiles in the current viewport are loaded. */
1154
1162
  // onViewportLoad: ((tiles: Tile2DHeader<DataT>[]) => void) | null,
1155
1163
  onTileLoad: () => {
@@ -1213,6 +1221,7 @@ var Tileset2D = class {
1213
1221
  if (Number.isFinite(opts.minZoom)) {
1214
1222
  this._minZoom = Math.ceil(opts.minZoom);
1215
1223
  }
1224
+ this._viewport = null;
1216
1225
  }
1217
1226
  // Clean up any outstanding tile requests.
1218
1227
  finalize() {
@@ -1312,7 +1321,7 @@ var Tileset2D = class {
1312
1321
  /* Public interface for subclassing */
1313
1322
  /** Returns array of tile indices in the current viewport */
1314
1323
  getTileIndices({ viewport, maxZoom, minZoom, zRange, modelMatrix, modelMatrixInverse }) {
1315
- const { tileSize, extent, zoomOffset } = this.opts;
1324
+ const { tileSize, extent, zoomOffset, visibleMinZoom, visibleMaxZoom } = this.opts;
1316
1325
  return getTileIndices({
1317
1326
  viewport,
1318
1327
  maxZoom,
@@ -1322,7 +1331,9 @@ var Tileset2D = class {
1322
1331
  extent,
1323
1332
  modelMatrix,
1324
1333
  modelMatrixInverse,
1325
- zoomOffset
1334
+ zoomOffset,
1335
+ visibleMinZoom,
1336
+ visibleMaxZoom
1326
1337
  });
1327
1338
  }
1328
1339
  /** Returns unique string key for a tile index */
@@ -1551,7 +1562,9 @@ var defaultProps7 = {
1551
1562
  zRange: null,
1552
1563
  maxRequests: 6,
1553
1564
  debounceTime: 0,
1554
- zoomOffset: 0
1565
+ zoomOffset: 0,
1566
+ visibleMinZoom: null,
1567
+ visibleMaxZoom: null
1555
1568
  };
1556
1569
  var TileLayer = class extends import_core7.CompositeLayer {
1557
1570
  initializeState() {
@@ -1596,7 +1609,7 @@ var TileLayer = class extends import_core7.CompositeLayer {
1596
1609
  this._updateTileset();
1597
1610
  }
1598
1611
  _getTilesetOptions() {
1599
- const { tileSize, maxCacheSize, maxCacheByteSize, refinementStrategy, extent, maxZoom, minZoom, maxRequests, debounceTime, zoomOffset } = this.props;
1612
+ const { tileSize, maxCacheSize, maxCacheByteSize, refinementStrategy, extent, maxZoom, minZoom, maxRequests, debounceTime, zoomOffset, visibleMinZoom, visibleMaxZoom } = this.props;
1600
1613
  return {
1601
1614
  maxCacheSize,
1602
1615
  maxCacheByteSize,
@@ -1608,6 +1621,8 @@ var TileLayer = class extends import_core7.CompositeLayer {
1608
1621
  maxRequests,
1609
1622
  debounceTime,
1610
1623
  zoomOffset,
1624
+ visibleMinZoom,
1625
+ visibleMaxZoom,
1611
1626
  getTileData: this.getTileData.bind(this),
1612
1627
  onTileLoad: this._onTileLoad.bind(this),
1613
1628
  onTileError: this._onTileError.bind(this),
@@ -1683,6 +1698,15 @@ var TileLayer = class extends import_core7.CompositeLayer {
1683
1698
  info.sourceTileSubLayer.updateAutoHighlight(info);
1684
1699
  }
1685
1700
  renderLayers() {
1701
+ const { visibleMinZoom, visibleMaxZoom, minZoom, extent } = this.props;
1702
+ const zoom = this.context.viewport.zoom;
1703
+ const hidden = visibleMinZoom != null && zoom < visibleMinZoom || visibleMaxZoom != null && zoom > visibleMaxZoom || minZoom != null && !extent && zoom < minZoom;
1704
+ if (hidden) {
1705
+ for (const tile of this.state.tileset.tiles) {
1706
+ tile.layers = null;
1707
+ }
1708
+ return [];
1709
+ }
1686
1710
  return this.state.tileset.tiles.map((tile) => {
1687
1711
  const subLayerProps = this.getSubLayerPropsByTile(tile);
1688
1712
  if (!tile.isLoaded && !tile.content) {
@@ -2114,11 +2138,12 @@ pbr_vPosition = geometry.position.xyz;
2114
2138
  pbr_vNormal = geometry.normal;
2115
2139
  #endif
2116
2140
  #ifdef HAS_UV
2117
- pbr_vUV = uv;
2141
+ pbr_vUV0 = uv;
2118
2142
  #else
2119
- pbr_vUV = vec2(0., 0.);
2143
+ pbr_vUV0 = vec2(0., 0.);
2120
2144
  #endif
2121
- geometry.uv = pbr_vUV;
2145
+ pbr_vUV1 = vec2(0., 0.);
2146
+ geometry.uv = pbr_vUV0;
2122
2147
  #endif
2123
2148
  DECKGL_FILTER_COLOR(vColor, geometry);
2124
2149
  }
@@ -2138,7 +2163,7 @@ out vec4 fragColor;
2138
2163
  void main(void) {
2139
2164
  #ifdef MODULE_PBRMATERIAL
2140
2165
  fragColor = vColor * pbr_filterColor(vec4(0));
2141
- geometry.uv = pbr_vUV;
2166
+ geometry.uv = pbr_vUV0;
2142
2167
  fragColor.a *= layer.opacity;
2143
2168
  #else
2144
2169
  geometry.uv = vTexCoord;