@deck.gl/geo-layers 8.10.0-alpha.4 → 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.
Files changed (84) hide show
  1. package/dist/dist.dev.js +23 -666
  2. package/dist/es5/geo-cell-layer/GeoCellLayer.js +66 -69
  3. package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +1 -1
  4. package/dist/es5/geohash-layer/geohash-layer.js +18 -22
  5. package/dist/es5/geohash-layer/geohash-layer.js.map +1 -1
  6. package/dist/es5/great-circle-layer/great-circle-layer.js +2 -4
  7. package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
  8. package/dist/es5/h3-layers/h3-cluster-layer.js +85 -91
  9. package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
  10. package/dist/es5/h3-layers/h3-hexagon-layer.js +222 -234
  11. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
  12. package/dist/es5/index.js.map +1 -1
  13. package/dist/es5/mesh-layer/mesh-layer.js +126 -136
  14. package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
  15. package/dist/es5/mvt-layer/mvt-layer.js +338 -350
  16. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  17. package/dist/es5/quadkey-layer/quadkey-layer.js +23 -27
  18. package/dist/es5/quadkey-layer/quadkey-layer.js.map +1 -1
  19. package/dist/es5/s2-layer/s2-layer.js +18 -22
  20. package/dist/es5/s2-layer/s2-layer.js.map +1 -1
  21. package/dist/es5/terrain-layer/terrain-layer.js +225 -234
  22. package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
  23. package/dist/es5/tile-3d-layer/tile-3d-layer.js +338 -354
  24. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
  25. package/dist/es5/tile-layer/tile-layer.js +219 -234
  26. package/dist/es5/tile-layer/tile-layer.js.map +1 -1
  27. package/dist/es5/tileset-2d/tile-2d-header.js +160 -164
  28. package/dist/es5/tileset-2d/tile-2d-header.js.map +1 -1
  29. package/dist/es5/tileset-2d/tile-2d-traversal.js +118 -122
  30. package/dist/es5/tileset-2d/tile-2d-traversal.js.map +1 -1
  31. package/dist/es5/tileset-2d/tileset-2d.js +397 -411
  32. package/dist/es5/tileset-2d/tileset-2d.js.map +1 -1
  33. package/dist/es5/trips-layer/trips-layer.js +48 -52
  34. package/dist/es5/trips-layer/trips-layer.js.map +1 -1
  35. package/dist/es5/wms-layer/wms-layer.js +263 -274
  36. package/dist/es5/wms-layer/wms-layer.js.map +1 -1
  37. package/dist/esm/geo-cell-layer/GeoCellLayer.js +2 -5
  38. package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +1 -1
  39. package/dist/esm/geohash-layer/geohash-layer.js +2 -5
  40. package/dist/esm/geohash-layer/geohash-layer.js.map +1 -1
  41. package/dist/esm/great-circle-layer/great-circle-layer.js +2 -5
  42. package/dist/esm/great-circle-layer/great-circle-layer.js.map +1 -1
  43. package/dist/esm/h3-layers/h3-cluster-layer.js +2 -5
  44. package/dist/esm/h3-layers/h3-cluster-layer.js.map +1 -1
  45. package/dist/esm/h3-layers/h3-hexagon-layer.js +4 -8
  46. package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js +55 -1
  49. package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js.map +1 -1
  50. package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +80 -1
  51. package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -1
  52. package/dist/esm/mesh-layer/mesh-layer.js +2 -5
  53. package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
  54. package/dist/esm/mvt-layer/mvt-layer.js +2 -5
  55. package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
  56. package/dist/esm/quadkey-layer/quadkey-layer.js +2 -5
  57. package/dist/esm/quadkey-layer/quadkey-layer.js.map +1 -1
  58. package/dist/esm/s2-layer/s2-geometry.js +1 -1
  59. package/dist/esm/s2-layer/s2-geometry.js.map +1 -1
  60. package/dist/esm/s2-layer/s2-layer.js +2 -5
  61. package/dist/esm/s2-layer/s2-layer.js.map +1 -1
  62. package/dist/esm/terrain-layer/terrain-layer.js +3 -7
  63. package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
  64. package/dist/esm/tile-3d-layer/tile-3d-layer.js +7 -11
  65. package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
  66. package/dist/esm/tile-layer/tile-layer.js +2 -5
  67. package/dist/esm/tile-layer/tile-layer.js.map +1 -1
  68. package/dist/esm/tileset-2d/tile-2d-header.js +19 -39
  69. package/dist/esm/tileset-2d/tile-2d-header.js.map +1 -1
  70. package/dist/esm/tileset-2d/tile-2d-traversal.js +6 -13
  71. package/dist/esm/tileset-2d/tile-2d-traversal.js.map +1 -1
  72. package/dist/esm/tileset-2d/tileset-2d.js +17 -34
  73. package/dist/esm/tileset-2d/tileset-2d.js.map +1 -1
  74. package/dist/esm/tileset-2d/utils.js +1 -1
  75. package/dist/esm/tileset-2d/utils.js.map +1 -1
  76. package/dist/esm/trips-layer/trips-layer.js +27 -10
  77. package/dist/esm/trips-layer/trips-layer.js.map +1 -1
  78. package/dist/esm/wms-layer/wms-layer.js +3 -7
  79. package/dist/esm/wms-layer/wms-layer.js.map +1 -1
  80. package/dist.min.js +111 -56
  81. package/package.json +2 -2
  82. package/src/index.ts +1 -0
  83. package/typed/index.d.ts +1 -0
  84. package/typed/index.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile-layer/tile-layer.ts"],"names":["defaultProps","TilesetClass","Tileset2D","data","type","value","dataComparator","urlType","equal","renderSubLayers","props","GeoJsonLayer","getTileData","optional","onViewportLoad","onTileLoad","tile","onTileUnload","onTileError","err","console","error","extent","compare","tileSize","maxZoom","minZoom","maxCacheSize","maxCacheByteSize","refinementStrategy","STRATEGY_DEFAULT","zRange","maxRequests","zoomOffset","TileLayer","state","tileset","isLoaded","finalize","selectedTiles","every","layers","layer","changeFlags","somethingChanged","propsChanged","propsOrDataChanged","updateTriggersChanged","dataChanged","all","_getTilesetOptions","setState","setOptions","reloadAll","tiles","forEach","_updateTileset","bind","_onTileLoad","_onTileError","_onTileUnload","modelMatrix","frameNumber","update","context","viewport","loadingStateChanged","tilesetChanged","_onViewportLoad","setNeedsUpdate","fetch","signal","url","Array","isArray","propName","info","sourceLayer","sourceTile","picked","updateAutoHighlight","map","subLayerProps","getSubLayerPropsByTile","content","getSubLayerProps","id","updateTriggers","_offset","Boolean","clone","Object","keys","some","cullRect","isTileVisible","CompositeLayer"],"mappings":"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","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayerProps,\n UpdateParameters,\n PickingInfo,\n GetPickingInfoParams,\n DefaultProps,\n FilterContext,\n _flatten as flatten\n} from '@deck.gl/core';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {LayersList} from '@deck.gl/core';\n\nimport type {TileLoadProps, ZRange} from '../tileset-2d';\nimport {\n Tileset2D,\n Tile2DHeader,\n RefinementStrategy,\n STRATEGY_DEFAULT,\n Tileset2DProps\n} from '../tileset-2d';\nimport {urlType, URLTemplate, getURLFromTemplate} from '../tileset-2d';\n\nconst defaultProps: DefaultProps<TileLayerProps> = {\n TilesetClass: Tileset2D,\n data: {type: 'data', value: []},\n dataComparator: urlType.equal,\n renderSubLayers: {type: 'function', value: props => new GeoJsonLayer(props)},\n getTileData: {type: 'function', optional: true, value: null},\n // TODO - change to onViewportLoad to align with Tile3DLayer\n onViewportLoad: {type: 'function', optional: true, value: null},\n onTileLoad: {type: 'function', value: tile => {}},\n onTileUnload: {type: 'function', value: tile => {}},\n // eslint-disable-next-line\n onTileError: {type: 'function', value: err => console.error(err)},\n extent: {type: 'array', optional: true, value: null, compare: true},\n tileSize: 512,\n maxZoom: null,\n minZoom: 0,\n maxCacheSize: null,\n maxCacheByteSize: null,\n refinementStrategy: STRATEGY_DEFAULT,\n zRange: null,\n maxRequests: 6,\n zoomOffset: 0\n};\n\n/** All props supported by the TileLayer */\nexport type TileLayerProps<DataT = any> = CompositeLayerProps & _TileLayerProps<DataT>;\n\n/** Props added by the TileLayer */\ntype _TileLayerProps<DataT> = {\n data: URLTemplate;\n /**\n * Optionally implement a custom indexing scheme.\n */\n TilesetClass?: typeof Tileset2D;\n /**\n * Renders one or an array of Layer instances.\n */\n renderSubLayers?: (\n props: TileLayerProps<DataT> & {\n id: string;\n data: DataT;\n _offset: number;\n tile: Tile2DHeader<DataT>;\n }\n ) => Layer | null | LayersList;\n /**\n * If supplied, `getTileData` is called to retrieve the data of each tile.\n */\n getTileData?: ((props: TileLoadProps) => Promise<DataT> | DataT) | null;\n\n /** Called when all tiles in the current viewport are loaded. */\n onViewportLoad?: ((tiles: Tile2DHeader<DataT>[]) => void) | null;\n\n /** Called when a tile successfully loads. */\n onTileLoad?: (tile: Tile2DHeader<DataT>) => void;\n\n /** Called when a tile is cleared from cache. */\n onTileUnload?: (tile: Tile2DHeader<DataT>) => void;\n\n /** Called when a tile failed to load. */\n onTileError?: (err: any, tile?) => void;\n\n /** The bounding box of the layer's data. */\n extent?: number[] | null;\n\n /** The pixel dimension of the tiles, usually a power of 2. */\n tileSize?: number;\n\n /** The max zoom level of the layer's data.\n * @default null\n */\n maxZoom?: number | null;\n\n /** The min zoom level of the layer's data.\n * @default 0\n */\n minZoom?: number | null;\n\n /** The maximum number of tiles that can be cached. */\n maxCacheSize?: number | null;\n\n /**\n * The maximum memory used for caching tiles.\n *\n * @default null\n */\n maxCacheByteSize?: number | null;\n\n /**\n * How the tile layer refines the visibility of tiles.\n *\n * @default 'best-available'\n */\n refinementStrategy?: RefinementStrategy;\n\n /** Range of minimum and maximum heights in the tile. */\n zRange?: ZRange | null;\n\n /**\n * The maximum number of concurrent getTileData calls.\n *\n * @default 6\n */\n maxRequests?: number;\n\n /**\n * This offset changes the zoom level at which the tiles are fetched.\n *\n * Needs to be an integer.\n *\n * @default 0\n */\n zoomOffset?: number;\n};\n\nexport type TiledPickingInfo<DataT = any> = PickingInfo & {\n tile?: Tile2DHeader<DataT>;\n};\n\n/**\n * The TileLayer is a composite layer that makes it possible to visualize very large datasets.\n *\n * Instead of fetching the entire dataset, it only loads and renders what's visible in the current viewport.\n */\nexport default class TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_TileLayerProps<DataT>>\n> {\n static defaultProps: DefaultProps = defaultProps;\n static layerName = 'TileLayer';\n\n initializeState() {\n this.state = {\n tileset: null,\n isLoaded: false\n };\n }\n\n finalizeState() {\n this.state?.tileset?.finalize();\n }\n\n get isLoaded(): boolean {\n return this.state?.tileset?.selectedTiles?.every(\n tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)\n );\n }\n\n shouldUpdateState({changeFlags}): boolean {\n return changeFlags.somethingChanged;\n }\n\n updateState({changeFlags}: UpdateParameters<this>) {\n let {tileset} = this.state;\n const propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;\n const dataChanged =\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData));\n\n if (!tileset) {\n tileset = new this.props.TilesetClass(this._getTilesetOptions());\n this.setState({tileset});\n } else if (propsChanged) {\n tileset.setOptions(this._getTilesetOptions());\n\n if (dataChanged) {\n // reload all tiles\n // use cached layers until new content is loaded\n tileset.reloadAll();\n } else {\n // some render options changed, regenerate sub layers now\n this.state.tileset.tiles.forEach(tile => {\n tile.layers = null;\n });\n }\n }\n\n this._updateTileset();\n }\n\n _getTilesetOptions(): Tileset2DProps {\n const {\n tileSize,\n maxCacheSize,\n maxCacheByteSize,\n refinementStrategy,\n extent,\n maxZoom,\n minZoom,\n maxRequests,\n zoomOffset\n } = this.props;\n\n return {\n maxCacheSize,\n maxCacheByteSize,\n maxZoom,\n minZoom,\n tileSize,\n refinementStrategy,\n extent,\n maxRequests,\n zoomOffset,\n\n getTileData: this.getTileData.bind(this),\n onTileLoad: this._onTileLoad.bind(this),\n onTileError: this._onTileError.bind(this),\n onTileUnload: this._onTileUnload.bind(this)\n };\n }\n\n private _updateTileset(): void {\n const {tileset} = this.state;\n const {zRange, modelMatrix} = this.props;\n const frameNumber = tileset.update(this.context.viewport, {zRange, modelMatrix});\n const {isLoaded} = tileset;\n\n const loadingStateChanged = this.state.isLoaded !== isLoaded;\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n\n if (isLoaded && (loadingStateChanged || tilesetChanged)) {\n this._onViewportLoad();\n }\n\n if (tilesetChanged) {\n // Save the tileset frame number - trigger a rerender\n this.setState({frameNumber});\n }\n // Save the loaded state - should not trigger a rerender\n this.state.isLoaded = isLoaded;\n }\n\n _onViewportLoad(): void {\n const {tileset} = this.state;\n const {onViewportLoad} = this.props;\n\n if (onViewportLoad) {\n onViewportLoad(tileset.selectedTiles);\n }\n }\n\n _onTileLoad(tile: Tile2DHeader<DataT>): void {\n this.props.onTileLoad(tile);\n tile.layers = null;\n\n this.setNeedsUpdate();\n }\n\n _onTileError(error: any, tile: Tile2DHeader<DataT>) {\n this.props.onTileError(error);\n tile.layers = null;\n\n this.setNeedsUpdate();\n }\n\n _onTileUnload(tile: Tile2DHeader<DataT>) {\n this.props.onTileUnload(tile);\n }\n\n // Methods for subclass to override\n\n getTileData(tile: TileLoadProps): Promise<DataT> | DataT | null {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url =\n typeof data === 'string' || Array.isArray(data) ? getURLFromTemplate(data, tile) : null;\n\n if (getTileData) {\n return getTileData(tile);\n }\n if (fetch && tile.url) {\n return fetch(tile.url, {propName: 'data', layer: this, signal});\n }\n return null;\n }\n\n renderSubLayers(\n props: TileLayer['props'] & {\n id: string;\n data: DataT;\n _offset: number;\n tile: Tile2DHeader<DataT>;\n }\n ): Layer | null | LayersList {\n return this.props.renderSubLayers(props);\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader): Partial<LayerProps> | null {\n return null;\n }\n\n getPickingInfo({info, sourceLayer}: GetPickingInfoParams): TiledPickingInfo<DataT> {\n const sourceTile = (sourceLayer as any).props.tile;\n if (info.picked) {\n (info as any).tile = sourceTile;\n }\n (info as any).sourceTile = sourceTile;\n return info;\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const sourceTile = (info as any).sourceTile as Tile2DHeader;\n if (sourceTile && sourceTile.layers) {\n for (const layer of sourceTile.layers) {\n layer.updateAutoHighlight(info);\n }\n }\n }\n\n renderLayers(): Layer | null | LayersList {\n return this.state.tileset.tiles.map((tile: Tile2DHeader) => {\n const subLayerProps = this.getSubLayerPropsByTile(tile);\n // cache the rendered layer in the tile\n if (!tile.isLoaded && !tile.content) {\n // nothing to show\n } else if (!tile.layers) {\n const layers = this.renderSubLayers({\n ...this.props,\n ...this.getSubLayerProps({\n id: tile.id,\n updateTriggers: this.props.updateTriggers\n }),\n data: tile.content,\n _offset: 0,\n tile\n });\n tile.layers = (flatten(layers, Boolean) as Layer<{tile?: Tile2DHeader}>[]).map(layer =>\n layer.clone({\n tile,\n ...subLayerProps\n })\n );\n } else if (\n subLayerProps &&\n tile.layers[0] &&\n Object.keys(subLayerProps).some(\n propName => tile.layers![0].props[propName] !== subLayerProps[propName]\n )\n ) {\n tile.layers = tile.layers.map(layer => layer.clone(subLayerProps));\n }\n return tile.layers;\n });\n }\n\n filterSubLayer({layer, cullRect}: FilterContext) {\n const {tile} = (layer as Layer<{tile: Tile2DHeader}>).props;\n return this.state.tileset.isTileVisible(tile, cullRect);\n }\n}\n"],"file":"tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/tile-layer/tile-layer.ts"],"names":["defaultProps","TilesetClass","Tileset2D","data","type","value","dataComparator","urlType","equal","renderSubLayers","props","GeoJsonLayer","getTileData","optional","onViewportLoad","onTileLoad","tile","onTileUnload","onTileError","err","console","error","extent","compare","tileSize","maxZoom","minZoom","maxCacheSize","maxCacheByteSize","refinementStrategy","STRATEGY_DEFAULT","zRange","maxRequests","zoomOffset","TileLayer","initializeState","state","tileset","isLoaded","finalizeState","finalize","shouldUpdateState","changeFlags","somethingChanged","updateState","propsChanged","propsOrDataChanged","updateTriggersChanged","dataChanged","all","_getTilesetOptions","setState","setOptions","reloadAll","tiles","forEach","layers","_updateTileset","bind","_onTileLoad","_onTileError","_onTileUnload","modelMatrix","frameNumber","update","context","viewport","loadingStateChanged","tilesetChanged","_onViewportLoad","selectedTiles","setNeedsUpdate","fetch","signal","url","Array","isArray","propName","layer","getSubLayerPropsByTile","getPickingInfo","info","sourceLayer","sourceTile","picked","_updateAutoHighlight","updateAutoHighlight","renderLayers","map","subLayerProps","content","getSubLayerProps","id","updateTriggers","_offset","Boolean","clone","Object","keys","some","filterSubLayer","cullRect","isTileVisible","every","CompositeLayer","layerName"],"mappings":"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","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayerProps,\n UpdateParameters,\n PickingInfo,\n GetPickingInfoParams,\n DefaultProps,\n FilterContext,\n _flatten as flatten\n} from '@deck.gl/core';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {LayersList} from '@deck.gl/core';\n\nimport type {TileLoadProps, ZRange} from '../tileset-2d';\nimport {\n Tileset2D,\n Tile2DHeader,\n RefinementStrategy,\n STRATEGY_DEFAULT,\n Tileset2DProps\n} from '../tileset-2d';\nimport {urlType, URLTemplate, getURLFromTemplate} from '../tileset-2d';\n\nconst defaultProps: DefaultProps<TileLayerProps> = {\n TilesetClass: Tileset2D,\n data: {type: 'data', value: []},\n dataComparator: urlType.equal,\n renderSubLayers: {type: 'function', value: props => new GeoJsonLayer(props)},\n getTileData: {type: 'function', optional: true, value: null},\n // TODO - change to onViewportLoad to align with Tile3DLayer\n onViewportLoad: {type: 'function', optional: true, value: null},\n onTileLoad: {type: 'function', value: tile => {}},\n onTileUnload: {type: 'function', value: tile => {}},\n // eslint-disable-next-line\n onTileError: {type: 'function', value: err => console.error(err)},\n extent: {type: 'array', optional: true, value: null, compare: true},\n tileSize: 512,\n maxZoom: null,\n minZoom: 0,\n maxCacheSize: null,\n maxCacheByteSize: null,\n refinementStrategy: STRATEGY_DEFAULT,\n zRange: null,\n maxRequests: 6,\n zoomOffset: 0\n};\n\n/** All props supported by the TileLayer */\nexport type TileLayerProps<DataT = any> = CompositeLayerProps & _TileLayerProps<DataT>;\n\n/** Props added by the TileLayer */\ntype _TileLayerProps<DataT> = {\n data: URLTemplate;\n /**\n * Optionally implement a custom indexing scheme.\n */\n TilesetClass?: typeof Tileset2D;\n /**\n * Renders one or an array of Layer instances.\n */\n renderSubLayers?: (\n props: TileLayerProps<DataT> & {\n id: string;\n data: DataT;\n _offset: number;\n tile: Tile2DHeader<DataT>;\n }\n ) => Layer | null | LayersList;\n /**\n * If supplied, `getTileData` is called to retrieve the data of each tile.\n */\n getTileData?: ((props: TileLoadProps) => Promise<DataT> | DataT) | null;\n\n /** Called when all tiles in the current viewport are loaded. */\n onViewportLoad?: ((tiles: Tile2DHeader<DataT>[]) => void) | null;\n\n /** Called when a tile successfully loads. */\n onTileLoad?: (tile: Tile2DHeader<DataT>) => void;\n\n /** Called when a tile is cleared from cache. */\n onTileUnload?: (tile: Tile2DHeader<DataT>) => void;\n\n /** Called when a tile failed to load. */\n onTileError?: (err: any, tile?) => void;\n\n /** The bounding box of the layer's data. */\n extent?: number[] | null;\n\n /** The pixel dimension of the tiles, usually a power of 2. */\n tileSize?: number;\n\n /** The max zoom level of the layer's data.\n * @default null\n */\n maxZoom?: number | null;\n\n /** The min zoom level of the layer's data.\n * @default 0\n */\n minZoom?: number | null;\n\n /** The maximum number of tiles that can be cached. */\n maxCacheSize?: number | null;\n\n /**\n * The maximum memory used for caching tiles.\n *\n * @default null\n */\n maxCacheByteSize?: number | null;\n\n /**\n * How the tile layer refines the visibility of tiles.\n *\n * @default 'best-available'\n */\n refinementStrategy?: RefinementStrategy;\n\n /** Range of minimum and maximum heights in the tile. */\n zRange?: ZRange | null;\n\n /**\n * The maximum number of concurrent getTileData calls.\n *\n * @default 6\n */\n maxRequests?: number;\n\n /**\n * This offset changes the zoom level at which the tiles are fetched.\n *\n * Needs to be an integer.\n *\n * @default 0\n */\n zoomOffset?: number;\n};\n\nexport type TiledPickingInfo<DataT = any> = PickingInfo & {\n tile?: Tile2DHeader<DataT>;\n};\n\n/**\n * The TileLayer is a composite layer that makes it possible to visualize very large datasets.\n *\n * Instead of fetching the entire dataset, it only loads and renders what's visible in the current viewport.\n */\nexport default class TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_TileLayerProps<DataT>>\n> {\n static defaultProps: DefaultProps = defaultProps;\n static layerName = 'TileLayer';\n\n initializeState() {\n this.state = {\n tileset: null,\n isLoaded: false\n };\n }\n\n finalizeState() {\n this.state?.tileset?.finalize();\n }\n\n get isLoaded(): boolean {\n return this.state?.tileset?.selectedTiles?.every(\n tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)\n );\n }\n\n shouldUpdateState({changeFlags}): boolean {\n return changeFlags.somethingChanged;\n }\n\n updateState({changeFlags}: UpdateParameters<this>) {\n let {tileset} = this.state;\n const propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;\n const dataChanged =\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData));\n\n if (!tileset) {\n tileset = new this.props.TilesetClass(this._getTilesetOptions());\n this.setState({tileset});\n } else if (propsChanged) {\n tileset.setOptions(this._getTilesetOptions());\n\n if (dataChanged) {\n // reload all tiles\n // use cached layers until new content is loaded\n tileset.reloadAll();\n } else {\n // some render options changed, regenerate sub layers now\n this.state.tileset.tiles.forEach(tile => {\n tile.layers = null;\n });\n }\n }\n\n this._updateTileset();\n }\n\n _getTilesetOptions(): Tileset2DProps {\n const {\n tileSize,\n maxCacheSize,\n maxCacheByteSize,\n refinementStrategy,\n extent,\n maxZoom,\n minZoom,\n maxRequests,\n zoomOffset\n } = this.props;\n\n return {\n maxCacheSize,\n maxCacheByteSize,\n maxZoom,\n minZoom,\n tileSize,\n refinementStrategy,\n extent,\n maxRequests,\n zoomOffset,\n\n getTileData: this.getTileData.bind(this),\n onTileLoad: this._onTileLoad.bind(this),\n onTileError: this._onTileError.bind(this),\n onTileUnload: this._onTileUnload.bind(this)\n };\n }\n\n private _updateTileset(): void {\n const {tileset} = this.state;\n const {zRange, modelMatrix} = this.props;\n const frameNumber = tileset.update(this.context.viewport, {zRange, modelMatrix});\n const {isLoaded} = tileset;\n\n const loadingStateChanged = this.state.isLoaded !== isLoaded;\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n\n if (isLoaded && (loadingStateChanged || tilesetChanged)) {\n this._onViewportLoad();\n }\n\n if (tilesetChanged) {\n // Save the tileset frame number - trigger a rerender\n this.setState({frameNumber});\n }\n // Save the loaded state - should not trigger a rerender\n this.state.isLoaded = isLoaded;\n }\n\n _onViewportLoad(): void {\n const {tileset} = this.state;\n const {onViewportLoad} = this.props;\n\n if (onViewportLoad) {\n onViewportLoad(tileset.selectedTiles);\n }\n }\n\n _onTileLoad(tile: Tile2DHeader<DataT>): void {\n this.props.onTileLoad(tile);\n tile.layers = null;\n\n this.setNeedsUpdate();\n }\n\n _onTileError(error: any, tile: Tile2DHeader<DataT>) {\n this.props.onTileError(error);\n tile.layers = null;\n\n this.setNeedsUpdate();\n }\n\n _onTileUnload(tile: Tile2DHeader<DataT>) {\n this.props.onTileUnload(tile);\n }\n\n // Methods for subclass to override\n\n getTileData(tile: TileLoadProps): Promise<DataT> | DataT | null {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url =\n typeof data === 'string' || Array.isArray(data) ? getURLFromTemplate(data, tile) : null;\n\n if (getTileData) {\n return getTileData(tile);\n }\n if (fetch && tile.url) {\n return fetch(tile.url, {propName: 'data', layer: this, signal});\n }\n return null;\n }\n\n renderSubLayers(\n props: TileLayer['props'] & {\n id: string;\n data: DataT;\n _offset: number;\n tile: Tile2DHeader<DataT>;\n }\n ): Layer | null | LayersList {\n return this.props.renderSubLayers(props);\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader): Partial<LayerProps> | null {\n return null;\n }\n\n getPickingInfo({info, sourceLayer}: GetPickingInfoParams): TiledPickingInfo<DataT> {\n const sourceTile = (sourceLayer as any).props.tile;\n if (info.picked) {\n (info as any).tile = sourceTile;\n }\n (info as any).sourceTile = sourceTile;\n return info;\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const sourceTile = (info as any).sourceTile as Tile2DHeader;\n if (sourceTile && sourceTile.layers) {\n for (const layer of sourceTile.layers) {\n layer.updateAutoHighlight(info);\n }\n }\n }\n\n renderLayers(): Layer | null | LayersList {\n return this.state.tileset.tiles.map((tile: Tile2DHeader) => {\n const subLayerProps = this.getSubLayerPropsByTile(tile);\n // cache the rendered layer in the tile\n if (!tile.isLoaded && !tile.content) {\n // nothing to show\n } else if (!tile.layers) {\n const layers = this.renderSubLayers({\n ...this.props,\n ...this.getSubLayerProps({\n id: tile.id,\n updateTriggers: this.props.updateTriggers\n }),\n data: tile.content,\n _offset: 0,\n tile\n });\n tile.layers = (flatten(layers, Boolean) as Layer<{tile?: Tile2DHeader}>[]).map(layer =>\n layer.clone({\n tile,\n ...subLayerProps\n })\n );\n } else if (\n subLayerProps &&\n tile.layers[0] &&\n Object.keys(subLayerProps).some(\n propName => tile.layers![0].props[propName] !== subLayerProps[propName]\n )\n ) {\n tile.layers = tile.layers.map(layer => layer.clone(subLayerProps));\n }\n return tile.layers;\n });\n }\n\n filterSubLayer({layer, cullRect}: FilterContext) {\n const {tile} = (layer as Layer<{tile: Tile2DHeader}>).props;\n return this.state.tileset.isTileVisible(tile, cullRect);\n }\n}\n"],"file":"tile-layer.js"}
@@ -15,30 +15,28 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
15
15
 
16
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
17
 
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
-
20
18
  var Tile2DHeader = function () {
21
19
  function Tile2DHeader(index) {
22
20
  (0, _classCallCheck2.default)(this, Tile2DHeader);
23
- (0, _defineProperty2.default)(this, "index", void 0);
24
- (0, _defineProperty2.default)(this, "isVisible", void 0);
25
- (0, _defineProperty2.default)(this, "isSelected", void 0);
26
- (0, _defineProperty2.default)(this, "parent", void 0);
27
- (0, _defineProperty2.default)(this, "children", void 0);
28
- (0, _defineProperty2.default)(this, "content", void 0);
29
- (0, _defineProperty2.default)(this, "state", void 0);
30
- (0, _defineProperty2.default)(this, "layers", void 0);
31
- (0, _defineProperty2.default)(this, "id", void 0);
32
- (0, _defineProperty2.default)(this, "zoom", void 0);
33
- (0, _defineProperty2.default)(this, "userData", void 0);
34
- (0, _defineProperty2.default)(this, "boundingBox", void 0);
35
- (0, _defineProperty2.default)(this, "_abortController", void 0);
36
- (0, _defineProperty2.default)(this, "_loader", void 0);
37
- (0, _defineProperty2.default)(this, "_loaderId", void 0);
38
- (0, _defineProperty2.default)(this, "_isLoaded", void 0);
39
- (0, _defineProperty2.default)(this, "_isCancelled", void 0);
40
- (0, _defineProperty2.default)(this, "_needsReload", void 0);
41
- (0, _defineProperty2.default)(this, "_bbox", void 0);
21
+ this.index = void 0;
22
+ this.isVisible = void 0;
23
+ this.isSelected = void 0;
24
+ this.parent = void 0;
25
+ this.children = void 0;
26
+ this.content = void 0;
27
+ this.state = void 0;
28
+ this.layers = void 0;
29
+ this.id = void 0;
30
+ this.zoom = void 0;
31
+ this.userData = void 0;
32
+ this.boundingBox = void 0;
33
+ this._abortController = void 0;
34
+ this._loader = void 0;
35
+ this._loaderId = void 0;
36
+ this._isLoaded = void 0;
37
+ this._isCancelled = void 0;
38
+ this._needsReload = void 0;
39
+ this._bbox = void 0;
42
40
  this.index = index;
43
41
  this.isVisible = false;
44
42
  this.isSelected = false;
@@ -53,6 +51,147 @@ var Tile2DHeader = function () {
53
51
  this._needsReload = false;
54
52
  }
55
53
 
54
+ var _proto = Tile2DHeader.prototype;
55
+
56
+ _proto._loadData = function () {
57
+ var _loadData2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref) {
58
+ var getData, requestScheduler, onLoad, onError, index, id, bbox, userData, zoom, loaderId, signal, requestToken, tileData, error;
59
+ return _regenerator.default.wrap(function _callee$(_context) {
60
+ while (1) {
61
+ switch (_context.prev = _context.next) {
62
+ case 0:
63
+ getData = _ref.getData, requestScheduler = _ref.requestScheduler, onLoad = _ref.onLoad, onError = _ref.onError;
64
+ index = this.index, id = this.id, bbox = this.bbox, userData = this.userData, zoom = this.zoom;
65
+ loaderId = this._loaderId;
66
+ this._abortController = new AbortController();
67
+ signal = this._abortController.signal;
68
+ _context.next = 7;
69
+ return requestScheduler.scheduleRequest(this, function (tile) {
70
+ return tile.isSelected ? 1 : -1;
71
+ });
72
+
73
+ case 7:
74
+ requestToken = _context.sent;
75
+
76
+ if (requestToken) {
77
+ _context.next = 11;
78
+ break;
79
+ }
80
+
81
+ this._isCancelled = true;
82
+ return _context.abrupt("return");
83
+
84
+ case 11:
85
+ if (!this._isCancelled) {
86
+ _context.next = 14;
87
+ break;
88
+ }
89
+
90
+ requestToken.done();
91
+ return _context.abrupt("return");
92
+
93
+ case 14:
94
+ tileData = null;
95
+ _context.prev = 15;
96
+ _context.next = 18;
97
+ return getData({
98
+ index: index,
99
+ id: id,
100
+ bbox: bbox,
101
+ userData: userData,
102
+ zoom: zoom,
103
+ signal: signal
104
+ });
105
+
106
+ case 18:
107
+ tileData = _context.sent;
108
+ _context.next = 24;
109
+ break;
110
+
111
+ case 21:
112
+ _context.prev = 21;
113
+ _context.t0 = _context["catch"](15);
114
+ error = _context.t0 || true;
115
+
116
+ case 24:
117
+ _context.prev = 24;
118
+ requestToken.done();
119
+ return _context.finish(24);
120
+
121
+ case 27:
122
+ if (!(loaderId !== this._loaderId)) {
123
+ _context.next = 29;
124
+ break;
125
+ }
126
+
127
+ return _context.abrupt("return");
128
+
129
+ case 29:
130
+ this._loader = undefined;
131
+ this.content = tileData;
132
+
133
+ if (!(this._isCancelled && !tileData)) {
134
+ _context.next = 34;
135
+ break;
136
+ }
137
+
138
+ this._isLoaded = false;
139
+ return _context.abrupt("return");
140
+
141
+ case 34:
142
+ this._isLoaded = true;
143
+ this._isCancelled = false;
144
+
145
+ if (error) {
146
+ onError(error, this);
147
+ } else {
148
+ onLoad(this);
149
+ }
150
+
151
+ case 37:
152
+ case "end":
153
+ return _context.stop();
154
+ }
155
+ }
156
+ }, _callee, this, [[15, 21, 24, 27]]);
157
+ }));
158
+
159
+ function _loadData(_x) {
160
+ return _loadData2.apply(this, arguments);
161
+ }
162
+
163
+ return _loadData;
164
+ }();
165
+
166
+ _proto.loadData = function loadData(opts) {
167
+ this._isLoaded = false;
168
+ this._isCancelled = false;
169
+ this._needsReload = false;
170
+ this._loaderId++;
171
+ this._loader = this._loadData(opts);
172
+ return this._loader;
173
+ };
174
+
175
+ _proto.setNeedsReload = function setNeedsReload() {
176
+ if (this.isLoading) {
177
+ this.abort();
178
+ this._loader = undefined;
179
+ }
180
+
181
+ this._needsReload = true;
182
+ };
183
+
184
+ _proto.abort = function abort() {
185
+ var _this$_abortControlle;
186
+
187
+ if (this.isLoaded) {
188
+ return;
189
+ }
190
+
191
+ this._isCancelled = true;
192
+ (_this$_abortControlle = this._abortController) === null || _this$_abortControlle === void 0 ? void 0 : _this$_abortControlle.abort();
193
+ };
194
+
56
195
  (0, _createClass2.default)(Tile2DHeader, [{
57
196
  key: "bbox",
58
197
  get: function get() {
@@ -103,149 +242,6 @@ var Tile2DHeader = function () {
103
242
 
104
243
  return result;
105
244
  }
106
- }, {
107
- key: "_loadData",
108
- value: function () {
109
- var _loadData2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref) {
110
- var getData, requestScheduler, onLoad, onError, index, id, bbox, userData, zoom, loaderId, signal, requestToken, tileData, error;
111
- return _regenerator.default.wrap(function _callee$(_context) {
112
- while (1) {
113
- switch (_context.prev = _context.next) {
114
- case 0:
115
- getData = _ref.getData, requestScheduler = _ref.requestScheduler, onLoad = _ref.onLoad, onError = _ref.onError;
116
- index = this.index, id = this.id, bbox = this.bbox, userData = this.userData, zoom = this.zoom;
117
- loaderId = this._loaderId;
118
- this._abortController = new AbortController();
119
- signal = this._abortController.signal;
120
- _context.next = 7;
121
- return requestScheduler.scheduleRequest(this, function (tile) {
122
- return tile.isSelected ? 1 : -1;
123
- });
124
-
125
- case 7:
126
- requestToken = _context.sent;
127
-
128
- if (requestToken) {
129
- _context.next = 11;
130
- break;
131
- }
132
-
133
- this._isCancelled = true;
134
- return _context.abrupt("return");
135
-
136
- case 11:
137
- if (!this._isCancelled) {
138
- _context.next = 14;
139
- break;
140
- }
141
-
142
- requestToken.done();
143
- return _context.abrupt("return");
144
-
145
- case 14:
146
- tileData = null;
147
- _context.prev = 15;
148
- _context.next = 18;
149
- return getData({
150
- index: index,
151
- id: id,
152
- bbox: bbox,
153
- userData: userData,
154
- zoom: zoom,
155
- signal: signal
156
- });
157
-
158
- case 18:
159
- tileData = _context.sent;
160
- _context.next = 24;
161
- break;
162
-
163
- case 21:
164
- _context.prev = 21;
165
- _context.t0 = _context["catch"](15);
166
- error = _context.t0 || true;
167
-
168
- case 24:
169
- _context.prev = 24;
170
- requestToken.done();
171
- return _context.finish(24);
172
-
173
- case 27:
174
- if (!(loaderId !== this._loaderId)) {
175
- _context.next = 29;
176
- break;
177
- }
178
-
179
- return _context.abrupt("return");
180
-
181
- case 29:
182
- this._loader = undefined;
183
- this.content = tileData;
184
-
185
- if (!(this._isCancelled && !tileData)) {
186
- _context.next = 34;
187
- break;
188
- }
189
-
190
- this._isLoaded = false;
191
- return _context.abrupt("return");
192
-
193
- case 34:
194
- this._isLoaded = true;
195
- this._isCancelled = false;
196
-
197
- if (error) {
198
- onError(error, this);
199
- } else {
200
- onLoad(this);
201
- }
202
-
203
- case 37:
204
- case "end":
205
- return _context.stop();
206
- }
207
- }
208
- }, _callee, this, [[15, 21, 24, 27]]);
209
- }));
210
-
211
- function _loadData(_x) {
212
- return _loadData2.apply(this, arguments);
213
- }
214
-
215
- return _loadData;
216
- }()
217
- }, {
218
- key: "loadData",
219
- value: function loadData(opts) {
220
- this._isLoaded = false;
221
- this._isCancelled = false;
222
- this._needsReload = false;
223
- this._loaderId++;
224
- this._loader = this._loadData(opts);
225
- return this._loader;
226
- }
227
- }, {
228
- key: "setNeedsReload",
229
- value: function setNeedsReload() {
230
- if (this.isLoading) {
231
- this.abort();
232
- this._loader = undefined;
233
- }
234
-
235
- this._needsReload = true;
236
- }
237
- }, {
238
- key: "abort",
239
- value: function abort() {
240
- var _this$_abortControlle;
241
-
242
- if (this.isLoaded) {
243
- return;
244
- }
245
-
246
- this._isCancelled = true;
247
- (_this$_abortControlle = this._abortController) === null || _this$_abortControlle === void 0 ? void 0 : _this$_abortControlle.abort();
248
- }
249
245
  }]);
250
246
  return Tile2DHeader;
251
247
  }();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tileset-2d/tile-2d-header.ts"],"names":["Tile2DHeader","index","isVisible","isSelected","parent","children","content","_loader","undefined","_abortController","_loaderId","_isLoaded","_isCancelled","_needsReload","_bbox","value","boundingBox","west","south","east","north","left","top","right","bottom","isLoading","then","data","Boolean","result","byteLength","Number","isFinite","console","error","getData","requestScheduler","onLoad","onError","id","bbox","userData","zoom","loaderId","AbortController","signal","scheduleRequest","tile","requestToken","done","tileData","opts","_loadData","abort","isLoaded"],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport {RequestScheduler} from '@loaders.gl/loader-utils';\nimport {TileBoundingBox, TileIndex, TileLoadProps} from './types';\n\nexport type TileLoadDataProps<DataT = any> = {\n requestScheduler: RequestScheduler;\n getData: (props: TileLoadProps) => Promise<DataT>;\n onLoad: (tile: Tile2DHeader<DataT>) => void;\n onError: (error: any, tile: Tile2DHeader<DataT>) => void;\n};\n\nexport class Tile2DHeader<DataT = any> {\n index: TileIndex;\n isVisible: boolean;\n isSelected: boolean;\n parent: Tile2DHeader | null;\n children: Tile2DHeader[] | null;\n content: DataT | null;\n state?: number;\n layers?: any[] | null; // Layer[] | null\n\n id!: string; // assigned _always_ with result of `getTileId`\n zoom!: number; // assigned _always_ with result of `getTileZoom`\n userData?: Record<string, any>; // _may be_ assigned with result of `getTileMetadata`\n boundingBox!: [min: number[], max: number[]]; // assigned _always_ with bbox from `getTileMetadata`\n\n private _abortController: AbortController | null;\n private _loader: Promise<void> | undefined;\n private _loaderId: number;\n private _isLoaded: boolean;\n private _isCancelled: boolean;\n private _needsReload: boolean;\n private _bbox!: TileBoundingBox;\n\n constructor(index: TileIndex) {\n this.index = index;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loader = undefined;\n this._abortController = null;\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n /** @deprecated use `boundingBox` instead */\n get bbox(): TileBoundingBox {\n return this._bbox;\n }\n\n // TODO - remove in v9\n set bbox(value: TileBoundingBox) {\n // Only set once from `Tileset2D.getTileMetadata`\n if (this._bbox) return;\n\n this._bbox = value;\n if ('west' in value) {\n this.boundingBox = [\n [value.west, value.south],\n [value.east, value.north]\n ];\n } else {\n this.boundingBox = [\n [value.left, value.top],\n [value.right, value.bottom]\n ];\n }\n }\n\n get data(): Promise<DataT | null> | DataT | null {\n return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded(): boolean {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading(): boolean {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload(): boolean {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength(): number {\n const result = this.content ? (this.content as any).byteLength : 0;\n if (!Number.isFinite(result)) {\n // eslint-disable-next-line no-console\n console.error('byteLength not defined in tile data');\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n private async _loadData({\n getData,\n requestScheduler,\n onLoad,\n onError\n }: TileLoadDataProps<DataT>): Promise<void> {\n const {index, id, bbox, userData, zoom} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController();\n const {signal} = this._abortController;\n\n // @ts-expect-error (2345) Argument of type '(tile: any) => 1 | -1' is not assignable ...\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData: DataT | null = null;\n let error;\n try {\n tileData = await getData({index, id, bbox, userData, zoom, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n\n loadData(opts: TileLoadDataProps): Promise<void> {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload(): void {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort(): void {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController?.abort();\n }\n}\n"],"file":"tile-2d-header.js"}
1
+ {"version":3,"sources":["../../../src/tileset-2d/tile-2d-header.ts"],"names":["Tile2DHeader","index","isVisible","isSelected","parent","children","content","state","layers","id","zoom","userData","boundingBox","_abortController","_loader","_loaderId","_isLoaded","_isCancelled","_needsReload","_bbox","undefined","_loadData","getData","requestScheduler","onLoad","onError","bbox","loaderId","AbortController","signal","scheduleRequest","tile","requestToken","done","tileData","error","loadData","opts","setNeedsReload","isLoading","abort","isLoaded","value","west","south","east","north","left","top","right","bottom","then","data","Boolean","result","byteLength","Number","isFinite","console"],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport {RequestScheduler} from '@loaders.gl/loader-utils';\nimport {TileBoundingBox, TileIndex, TileLoadProps} from './types';\n\nexport type TileLoadDataProps<DataT = any> = {\n requestScheduler: RequestScheduler;\n getData: (props: TileLoadProps) => Promise<DataT>;\n onLoad: (tile: Tile2DHeader<DataT>) => void;\n onError: (error: any, tile: Tile2DHeader<DataT>) => void;\n};\n\nexport class Tile2DHeader<DataT = any> {\n index: TileIndex;\n isVisible: boolean;\n isSelected: boolean;\n parent: Tile2DHeader | null;\n children: Tile2DHeader[] | null;\n content: DataT | null;\n state?: number;\n layers?: any[] | null; // Layer[] | null\n\n id!: string; // assigned _always_ with result of `getTileId`\n zoom!: number; // assigned _always_ with result of `getTileZoom`\n userData?: Record<string, any>; // _may be_ assigned with result of `getTileMetadata`\n boundingBox!: [min: number[], max: number[]]; // assigned _always_ with bbox from `getTileMetadata`\n\n private _abortController: AbortController | null;\n private _loader: Promise<void> | undefined;\n private _loaderId: number;\n private _isLoaded: boolean;\n private _isCancelled: boolean;\n private _needsReload: boolean;\n private _bbox!: TileBoundingBox;\n\n constructor(index: TileIndex) {\n this.index = index;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loader = undefined;\n this._abortController = null;\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n /** @deprecated use `boundingBox` instead */\n get bbox(): TileBoundingBox {\n return this._bbox;\n }\n\n // TODO - remove in v9\n set bbox(value: TileBoundingBox) {\n // Only set once from `Tileset2D.getTileMetadata`\n if (this._bbox) return;\n\n this._bbox = value;\n if ('west' in value) {\n this.boundingBox = [\n [value.west, value.south],\n [value.east, value.north]\n ];\n } else {\n this.boundingBox = [\n [value.left, value.top],\n [value.right, value.bottom]\n ];\n }\n }\n\n get data(): Promise<DataT | null> | DataT | null {\n return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded(): boolean {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading(): boolean {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload(): boolean {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength(): number {\n const result = this.content ? (this.content as any).byteLength : 0;\n if (!Number.isFinite(result)) {\n // eslint-disable-next-line no-console\n console.error('byteLength not defined in tile data');\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n private async _loadData({\n getData,\n requestScheduler,\n onLoad,\n onError\n }: TileLoadDataProps<DataT>): Promise<void> {\n const {index, id, bbox, userData, zoom} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController();\n const {signal} = this._abortController;\n\n // @ts-expect-error (2345) Argument of type '(tile: any) => 1 | -1' is not assignable ...\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData: DataT | null = null;\n let error;\n try {\n tileData = await getData({index, id, bbox, userData, zoom, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n\n loadData(opts: TileLoadDataProps): Promise<void> {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload(): void {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort(): void {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController?.abort();\n }\n}\n"],"file":"tile-2d-header.js"}