@deck.gl/geo-layers 8.10.0-alpha.2 → 8.10.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/dist.dev.js +76 -694
- package/dist/es5/geo-cell-layer/GeoCellLayer.js +66 -69
- package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +1 -1
- package/dist/es5/geohash-layer/geohash-layer.js +18 -22
- package/dist/es5/geohash-layer/geohash-layer.js.map +1 -1
- package/dist/es5/great-circle-layer/great-circle-layer.js +2 -4
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +85 -91
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +222 -234
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/mesh-layer/mesh-layer.js +126 -136
- package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/es5/mvt-layer/mvt-layer.js +338 -350
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/quadkey-layer/quadkey-layer.js +23 -27
- package/dist/es5/quadkey-layer/quadkey-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js +18 -22
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js +225 -234
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +338 -354
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/es5/tile-layer/tile-layer.js +219 -233
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tileset-2d/tile-2d-header.js +160 -164
- package/dist/es5/tileset-2d/tile-2d-header.js.map +1 -1
- package/dist/es5/tileset-2d/tile-2d-traversal.js +118 -122
- package/dist/es5/tileset-2d/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tileset-2d/tileset-2d.js +397 -411
- package/dist/es5/tileset-2d/tileset-2d.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js +48 -52
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist/es5/wms-layer/wms-layer.js +263 -274
- package/dist/es5/wms-layer/wms-layer.js.map +1 -1
- package/dist/esm/geo-cell-layer/GeoCellLayer.js +2 -5
- package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +1 -1
- package/dist/esm/geohash-layer/geohash-layer.js +2 -5
- package/dist/esm/geohash-layer/geohash-layer.js.map +1 -1
- package/dist/esm/great-circle-layer/great-circle-layer.js +2 -5
- package/dist/esm/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-cluster-layer.js +2 -5
- package/dist/esm/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js +4 -8
- package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js +55 -1
- package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +80 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer.js +2 -5
- package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/esm/mvt-layer/mvt-layer.js +2 -5
- package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/esm/quadkey-layer/quadkey-layer.js +2 -5
- package/dist/esm/quadkey-layer/quadkey-layer.js.map +1 -1
- package/dist/esm/s2-layer/s2-geometry.js +1 -1
- package/dist/esm/s2-layer/s2-geometry.js.map +1 -1
- package/dist/esm/s2-layer/s2-layer.js +2 -5
- package/dist/esm/s2-layer/s2-layer.js.map +1 -1
- package/dist/esm/terrain-layer/terrain-layer.js +3 -7
- package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js +7 -11
- package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/esm/tile-layer/tile-layer.js +6 -8
- package/dist/esm/tile-layer/tile-layer.js.map +1 -1
- package/dist/esm/tileset-2d/tile-2d-header.js +19 -39
- package/dist/esm/tileset-2d/tile-2d-header.js.map +1 -1
- package/dist/esm/tileset-2d/tile-2d-traversal.js +6 -13
- package/dist/esm/tileset-2d/tile-2d-traversal.js.map +1 -1
- package/dist/esm/tileset-2d/tileset-2d.js +17 -34
- package/dist/esm/tileset-2d/tileset-2d.js.map +1 -1
- package/dist/esm/tileset-2d/utils.js +1 -1
- package/dist/esm/tileset-2d/utils.js.map +1 -1
- package/dist/esm/trips-layer/trips-layer.js +27 -10
- package/dist/esm/trips-layer/trips-layer.js.map +1 -1
- package/dist/esm/wms-layer/wms-layer.js +3 -7
- package/dist/esm/wms-layer/wms-layer.js.map +1 -1
- package/dist.min.js +111 -56
- package/package.json +11 -11
- package/src/index.ts +1 -0
- package/src/tile-layer/tile-layer.ts +3 -2
- package/typed/index.d.ts +1 -0
- package/typed/index.d.ts.map +1 -1
- package/typed/tile-layer/tile-layer.d.ts.map +1 -1
- package/typed/geo-cell-layer/GeoCellLayer.js +0 -49
- package/typed/great-circle-layer/great-circle-layer.js +0 -29
- package/typed/h3-layers/h3-cluster-layer.js +0 -33
- package/typed/h3-layers/h3-hexagon-layer.js +0 -251
- package/typed/imagery-layer/imagery-layer.d.ts +0 -53
- package/typed/imagery-layer/imagery-layer.d.ts.map +0 -1
- package/typed/index.js +0 -33
- package/typed/mesh-layer/mesh-layer-fragment.glsl.js +0 -55
- package/typed/mesh-layer/mesh-layer-vertex.glsl.js +0 -80
- package/typed/mesh-layer/mesh-layer.js +0 -110
- package/typed/mvt-layer/coordinate-transform.js +0 -41
- package/typed/mvt-layer/find-index-binary.js +0 -96
- package/typed/mvt-layer/mvt-layer.js +0 -297
- package/typed/quadkey-layer/quadkey-layer.js +0 -18
- package/typed/quadkey-layer/quadkey-utils.js +0 -26
- package/typed/s2-layer/s2-geometry.js +0 -123
- package/typed/s2-layer/s2-layer.js +0 -37
- package/typed/s2-layer/s2-utils.js +0 -88
- package/typed/terrain-layer/terrain-layer.js +0 -226
- package/typed/tile-3d-layer/tile-3d-layer.js +0 -294
- package/typed/tile-layer/tile-2d-header.d.ts +0 -40
- package/typed/tile-layer/tile-2d-header.d.ts.map +0 -1
- package/typed/tile-layer/tile-2d-header.js +0 -113
- package/typed/tile-layer/tile-2d-traversal.d.ts +0 -4
- package/typed/tile-layer/tile-2d-traversal.d.ts.map +0 -1
- package/typed/tile-layer/tile-2d-traversal.js +0 -181
- package/typed/tile-layer/tile-layer.js +0 -192
- package/typed/tile-layer/tileset-2d.d.ts +0 -96
- package/typed/tile-layer/tileset-2d.d.ts.map +0 -1
- package/typed/tile-layer/tileset-2d.js +0 -399
- package/typed/tile-layer/types.d.ts +0 -30
- package/typed/tile-layer/types.d.ts.map +0 -1
- package/typed/tile-layer/types.js +0 -1
- package/typed/tile-layer/utils.d.ts +0 -51
- package/typed/tile-layer/utils.d.ts.map +0 -1
- package/typed/tile-layer/utils.js +0 -197
- package/typed/trips-layer/trips-layer.js +0 -92
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tile-3d-layer/tile-3d-layer.ts"],"names":["SINGLE_DATA","defaultProps","getPointColor","type","value","pointSize","data","loader","Tiles3DLoader","onTilesetLoad","tileset3d","onTileLoad","tileHeader","onTileUnload","onTileError","tile","message","url","_getMeshColor","Tile3DLayer","props","log","removed","state","layerMap","activeViewports","lastUpdatedViewports","isLoaded","changeFlags","somethingChanged","oldProps","_loadTileset","viewportChanged","viewportsNumber","Object","keys","length","_updateTileset","propsChanged","key","needsUpdate","viewport","internalState","id","lastViewport","equals","setChangeFlags","setNeedsUpdate","info","sourceLayer","sourceTile","picked","object","layer","viewportId","selected","viewportIds","includes","layerCache","updateAutoHighlight","tilesetUrl","loadOptions","loaders","Array","isArray","options","actualTilesetUrl","preload","preloadOptions","headers","fetch","assign","tilesetJson","Tileset3D","_onTileLoad","bind","_onTileUnload","setState","viewports","timeline","context","selectTiles","values","then","frameNumber","tilesetChanged","oldLayer","content","TILE_TYPE","POINTCLOUD","_makePointCloudLayer","SCENEGRAPH","_make3DModelLayer","MESH","_makeSimpleMeshLayer","Error","attributes","pointCount","constantRGBA","cartographicOrigin","modelMatrix","positions","normals","colors","header","vertexCount","POSITION","NORMAL","COLOR_0","SubLayerClass","getSubLayerClass","PointCloudLayer","getSubLayerProps","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","coordinateOrigin","getColor","_offset","gltf","instances","ScenegraphLayer","_lighting","scenegraph","getTransformMatrix","instance","getPosition","indices","material","featureIds","geometry","mesh","Geometry","drawMode","getMeshGeometry","MeshLayer","pbrMaterial","tiles","map","_getSubLayer","filter","Boolean","CompositeLayer","contentAttributes","Float32Array","texCoords","uvRegions"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {Geometry} from '@luma.gl/core';\n\nimport {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n COORDINATE_SYSTEM,\n FilterContext,\n GetPickingInfoParams,\n Layer,\n LayersList,\n log,\n PickingInfo,\n UpdateParameters,\n Viewport,\n DefaultProps\n} from '@deck.gl/core';\nimport {PointCloudLayer} from '@deck.gl/layers';\nimport {ScenegraphLayer} from '@deck.gl/mesh-layers';\nimport {default as MeshLayer} from '../mesh-layer/mesh-layer';\n\nimport {load} from '@loaders.gl/core';\nimport {MeshAttributes} from '@loaders.gl/schema';\nimport {Tileset3D, Tile3D, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Tiles3DLoader} from '@loaders.gl/3d-tiles';\n\nconst SINGLE_DATA = [0];\n\nconst defaultProps: DefaultProps<Tile3DLayerProps> = {\n getPointColor: {type: 'accessor', value: [0, 0, 0, 255]},\n pointSize: 1.0,\n\n // Disable async data loading (handling it in _loadTileSet)\n data: '',\n loader: Tiles3DLoader,\n\n onTilesetLoad: {type: 'function', value: tileset3d => {}},\n onTileLoad: {type: 'function', value: tileHeader => {}},\n onTileUnload: {type: 'function', value: tileHeader => {}},\n onTileError: {type: 'function', value: (tile, message, url) => {}},\n _getMeshColor: {type: 'function', value: tileHeader => [255, 255, 255]}\n};\n\n/** All properties supported by Tile3DLayer */\nexport type Tile3DLayerProps<DataT = any> = _Tile3DLayerProps<DataT> & CompositeLayerProps;\n\n/** Props added by the Tile3DLayer */\ntype _Tile3DLayerProps<DataT> = {\n data: string;\n /** Color Accessor for point clouds. **/\n getPointColor?: Accessor<DataT, Color>;\n\n /** Global radius of all points in pixels. **/\n pointSize?: number;\n\n /** A loader which is used to decode the fetched tiles.\n * @deprecated Use `loaders` instead\n */\n loader?: typeof Tiles3DLoader;\n\n /** Called when Tileset JSON file is loaded. **/\n onTilesetLoad?: (tile: Tileset3D) => void;\n\n /** Called when a tile in the tileset hierarchy is loaded. **/\n onTileLoad?: (tile: Tile3D) => void;\n\n /** Called when a tile is unloaded. **/\n onTileUnload?: (tile: Tile3D) => void;\n\n /** Called when a tile fails to load. **/\n onTileError?: (tile: Tile3D, url: string, message: string) => void;\n\n /** (Experimental) Accessor to change color of mesh based on properties. **/\n _getMeshColor?: (tile: Tile3D) => Color;\n};\n\n/** Render 3d tiles data formatted according to the [3D Tiles Specification](https://www.opengeospatial.org/standards/3DTiles) and [`ESRI I3S`](https://github.com/Esri/i3s-spec) */\nexport default class Tile3DLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_Tile3DLayerProps<DataT>>\n> {\n static defaultProps = defaultProps;\n static layerName = 'Tile3DLayer';\n\n state!: {\n activeViewports: {};\n frameNumber?: number;\n lastUpdatedViewports: {[viewportId: string]: Viewport} | null;\n layerMap: {[layerId: string]: any};\n tileset3d: Tileset3D | null;\n };\n\n initializeState() {\n if ('onTileLoadFail' in this.props) {\n log.removed('onTileLoadFail', 'onTileError')();\n }\n // prop verification\n this.state = {\n layerMap: {},\n tileset3d: null,\n activeViewports: {},\n lastUpdatedViewports: null\n };\n }\n\n get isLoaded(): boolean {\n const {tileset3d} = this.state;\n return tileset3d !== null && tileset3d.isLoaded();\n }\n\n shouldUpdateState({changeFlags}: UpdateParameters<this>): boolean {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, oldProps, changeFlags}: UpdateParameters<this>): void {\n if (props.data && props.data !== oldProps.data) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._loadTileset(props.data);\n }\n\n if (changeFlags.viewportChanged) {\n const {activeViewports} = this.state;\n const viewportsNumber = Object.keys(activeViewports).length;\n if (viewportsNumber) {\n this._updateTileset(activeViewports);\n this.state.lastUpdatedViewports = activeViewports;\n this.state.activeViewports = {};\n }\n }\n if (changeFlags.propsChanged) {\n const {layerMap} = this.state;\n for (const key in layerMap) {\n layerMap[key].needsUpdate = true;\n }\n }\n }\n\n activateViewport(viewport: Viewport): void {\n const {activeViewports, lastUpdatedViewports} = this.state;\n this.internalState!.viewport = viewport;\n\n activeViewports[viewport.id] = viewport;\n const lastViewport = lastUpdatedViewports?.[viewport.id];\n if (!lastViewport || !viewport.equals(lastViewport)) {\n this.setChangeFlags({viewportChanged: true});\n this.setNeedsUpdate();\n }\n }\n\n getPickingInfo({info, sourceLayer}: GetPickingInfoParams) {\n const sourceTile = sourceLayer && (sourceLayer.props as any).tile;\n if (info.picked) {\n info.object = sourceTile;\n }\n (info as any).sourceTile = sourceTile;\n\n return info;\n }\n\n filterSubLayer({layer, viewport}: FilterContext): boolean {\n // All sublayers will have a tile prop\n const {tile} = layer.props as unknown as {tile: Tile3D};\n const {id: viewportId} = viewport;\n return tile.selected && tile.viewportIds.includes(viewportId);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const sourceTile = (info as any).sourceTile;\n const layerCache = this.state.layerMap[sourceTile?.id];\n if (layerCache && layerCache.layer) {\n layerCache.layer.updateAutoHighlight(info);\n }\n }\n\n private async _loadTileset(tilesetUrl) {\n const {loadOptions = {}} = this.props;\n\n // TODO: deprecate `loader` in v9.0\n // @ts-ignore\n let loader = this.props.loader || this.props.loaders;\n if (Array.isArray(loader)) {\n loader = loader[0];\n }\n\n const options = {loadOptions: {...loadOptions}};\n let actualTilesetUrl = tilesetUrl;\n if (loader.preload) {\n const preloadOptions = await loader.preload(tilesetUrl, loadOptions);\n if (preloadOptions.url) {\n actualTilesetUrl = preloadOptions.url;\n }\n\n if (preloadOptions.headers) {\n options.loadOptions.fetch = {\n ...options.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n }\n Object.assign(options, preloadOptions);\n }\n const tilesetJson = await load(actualTilesetUrl, loader, options.loadOptions);\n\n const tileset3d = new Tileset3D(tilesetJson, {\n onTileLoad: this._onTileLoad.bind(this),\n onTileUnload: this._onTileUnload.bind(this),\n onTileError: this.props.onTileError,\n ...options\n });\n\n this.setState({\n tileset3d,\n layerMap: {}\n });\n\n this._updateTileset(this.state.activeViewports);\n this.props.onTilesetLoad(tileset3d);\n }\n\n private _onTileLoad(tileHeader: Tile3D): void {\n const {lastUpdatedViewports} = this.state;\n this.props.onTileLoad(tileHeader);\n this._updateTileset(lastUpdatedViewports);\n this.setNeedsUpdate();\n }\n\n private _onTileUnload(tileHeader: Tile3D): void {\n // Was cleaned up from tileset cache. We no longer need to track it.\n delete this.state.layerMap[tileHeader.id];\n this.props.onTileUnload(tileHeader);\n }\n\n private _updateTileset(viewports: {[viewportId: string]: Viewport} | null): void {\n if (!viewports) {\n return;\n }\n const {tileset3d} = this.state;\n const {timeline} = this.context;\n const viewportsNumber = Object.keys(viewports).length;\n if (!timeline || !viewportsNumber || !tileset3d) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tileset3d.selectTiles(Object.values(viewports)).then(frameNumber => {\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n if (tilesetChanged) {\n this.setState({frameNumber});\n }\n });\n }\n\n private _getSubLayer(\n tileHeader: Tile3D,\n oldLayer?: Layer\n ): MeshLayer<DataT> | PointCloudLayer<DataT> | ScenegraphLayer<DataT> | null {\n if (!tileHeader.content) {\n return null;\n }\n\n switch (tileHeader.type) {\n case TILE_TYPE.POINTCLOUD:\n return this._makePointCloudLayer(tileHeader, oldLayer as PointCloudLayer<DataT>);\n case TILE_TYPE.SCENEGRAPH:\n return this._make3DModelLayer(tileHeader);\n case TILE_TYPE.MESH:\n return this._makeSimpleMeshLayer(tileHeader, oldLayer as MeshLayer<DataT>);\n default:\n throw new Error(`Tile3DLayer: Failed to render layer of type ${tileHeader.content.type}`);\n }\n }\n\n private _makePointCloudLayer(\n tileHeader: Tile3D,\n oldLayer?: PointCloudLayer<DataT>\n ): PointCloudLayer<DataT> | null {\n const {attributes, pointCount, constantRGBA, cartographicOrigin, modelMatrix} =\n tileHeader.content;\n const {positions, normals, colors} = attributes;\n\n if (!positions) {\n return null;\n }\n const data = (oldLayer && oldLayer.props.data) || {\n header: {\n vertexCount: pointCount\n },\n attributes: {\n POSITION: positions,\n NORMAL: normals,\n COLOR_0: colors\n }\n };\n\n const {pointSize, getPointColor} = this.props;\n const SubLayerClass = this.getSubLayerClass('pointcloud', PointCloudLayer);\n return new SubLayerClass(\n {\n pointSize\n },\n this.getSubLayerProps({\n id: 'pointcloud'\n }),\n {\n id: `${this.id}-pointcloud-${tileHeader.id}`,\n tile: tileHeader,\n data,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getColor: constantRGBA || getPointColor,\n _offset: 0\n }\n );\n }\n\n private _make3DModelLayer(tileHeader: Tile3D): ScenegraphLayer<DataT> {\n const {gltf, instances, cartographicOrigin, modelMatrix} = tileHeader.content;\n\n const SubLayerClass = this.getSubLayerClass('scenegraph', ScenegraphLayer);\n\n return new SubLayerClass(\n {\n _lighting: 'pbr'\n },\n this.getSubLayerProps({\n id: 'scenegraph'\n }),\n {\n id: `${this.id}-scenegraph-${tileHeader.id}`,\n tile: tileHeader,\n data: instances || SINGLE_DATA,\n scenegraph: gltf,\n\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getTransformMatrix: instance => instance.modelMatrix,\n getPosition: [0, 0, 0],\n _offset: 0\n }\n );\n }\n\n private _makeSimpleMeshLayer(tileHeader: Tile3D, oldLayer?: MeshLayer<DataT>): MeshLayer<DataT> {\n const content = tileHeader.content;\n const {\n attributes,\n indices,\n modelMatrix,\n cartographicOrigin,\n coordinateSystem = COORDINATE_SYSTEM.METER_OFFSETS,\n material,\n featureIds\n } = content;\n const {_getMeshColor} = this.props;\n\n const geometry =\n (oldLayer && oldLayer.props.mesh) ||\n new Geometry({\n drawMode: GL.TRIANGLES,\n attributes: getMeshGeometry(attributes),\n indices\n });\n\n const SubLayerClass = this.getSubLayerClass('mesh', MeshLayer);\n\n return new SubLayerClass(\n this.getSubLayerProps({\n id: 'mesh'\n }),\n {\n id: `${this.id}-mesh-${tileHeader.id}`,\n tile: tileHeader,\n mesh: geometry,\n data: SINGLE_DATA,\n getColor: _getMeshColor(tileHeader),\n pbrMaterial: material,\n modelMatrix,\n coordinateOrigin: cartographicOrigin,\n coordinateSystem,\n featureIds,\n _offset: 0\n }\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {tileset3d, layerMap} = this.state;\n if (!tileset3d) {\n return null;\n }\n\n // loaders.gl doesn't provide a type for tileset3d.tiles\n return (tileset3d.tiles as Tile3D[])\n .map(tile => {\n const layerCache = (layerMap[tile.id] = layerMap[tile.id] || {tile});\n let {layer} = layerCache;\n if (tile.selected) {\n // render selected tiles\n if (!layer) {\n // create layer\n layer = this._getSubLayer(tile);\n } else if (layerCache.needsUpdate) {\n // props have changed, rerender layer\n layer = this._getSubLayer(tile, layer);\n layerCache.needsUpdate = false;\n }\n }\n layerCache.layer = layer;\n return layer;\n })\n .filter(Boolean);\n }\n}\n\nfunction getMeshGeometry(contentAttributes: MeshAttributes): MeshAttributes {\n const attributes: MeshAttributes = {};\n attributes.positions = {\n ...contentAttributes.positions,\n value: new Float32Array(contentAttributes.positions.value)\n };\n if (contentAttributes.normals) {\n attributes.normals = contentAttributes.normals;\n }\n if (contentAttributes.texCoords) {\n attributes.texCoords = contentAttributes.texCoords;\n }\n if (contentAttributes.colors) {\n attributes.colors = contentAttributes.colors;\n }\n if (contentAttributes.uvRegions) {\n attributes.uvRegions = contentAttributes.uvRegions;\n }\n return attributes;\n}\n"],"file":"tile-3d-layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/tile-3d-layer/tile-3d-layer.ts"],"names":["SINGLE_DATA","defaultProps","getPointColor","type","value","pointSize","data","loader","Tiles3DLoader","onTilesetLoad","tileset3d","onTileLoad","tileHeader","onTileUnload","onTileError","tile","message","url","_getMeshColor","Tile3DLayer","state","initializeState","props","log","removed","layerMap","activeViewports","lastUpdatedViewports","shouldUpdateState","changeFlags","somethingChanged","updateState","oldProps","_loadTileset","viewportChanged","viewportsNumber","Object","keys","length","_updateTileset","propsChanged","key","needsUpdate","activateViewport","viewport","internalState","id","lastViewport","equals","setChangeFlags","setNeedsUpdate","getPickingInfo","info","sourceLayer","sourceTile","picked","object","filterSubLayer","layer","viewportId","selected","viewportIds","includes","_updateAutoHighlight","layerCache","updateAutoHighlight","tilesetUrl","loadOptions","loaders","Array","isArray","options","actualTilesetUrl","preload","preloadOptions","headers","fetch","assign","tilesetJson","Tileset3D","_onTileLoad","bind","_onTileUnload","setState","viewports","timeline","context","selectTiles","values","then","frameNumber","tilesetChanged","_getSubLayer","oldLayer","content","TILE_TYPE","POINTCLOUD","_makePointCloudLayer","SCENEGRAPH","_make3DModelLayer","MESH","_makeSimpleMeshLayer","Error","attributes","pointCount","constantRGBA","cartographicOrigin","modelMatrix","positions","normals","colors","header","vertexCount","POSITION","NORMAL","COLOR_0","SubLayerClass","getSubLayerClass","PointCloudLayer","getSubLayerProps","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","coordinateOrigin","getColor","_offset","gltf","instances","ScenegraphLayer","_lighting","scenegraph","getTransformMatrix","instance","getPosition","indices","material","featureIds","geometry","mesh","Geometry","drawMode","getMeshGeometry","MeshLayer","pbrMaterial","renderLayers","tiles","map","filter","Boolean","isLoaded","CompositeLayer","layerName","contentAttributes","Float32Array","texCoords","uvRegions"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {Geometry} from '@luma.gl/core';\n\nimport {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n COORDINATE_SYSTEM,\n FilterContext,\n GetPickingInfoParams,\n Layer,\n LayersList,\n log,\n PickingInfo,\n UpdateParameters,\n Viewport,\n DefaultProps\n} from '@deck.gl/core';\nimport {PointCloudLayer} from '@deck.gl/layers';\nimport {ScenegraphLayer} from '@deck.gl/mesh-layers';\nimport {default as MeshLayer} from '../mesh-layer/mesh-layer';\n\nimport {load} from '@loaders.gl/core';\nimport {MeshAttributes} from '@loaders.gl/schema';\nimport {Tileset3D, Tile3D, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Tiles3DLoader} from '@loaders.gl/3d-tiles';\n\nconst SINGLE_DATA = [0];\n\nconst defaultProps: DefaultProps<Tile3DLayerProps> = {\n getPointColor: {type: 'accessor', value: [0, 0, 0, 255]},\n pointSize: 1.0,\n\n // Disable async data loading (handling it in _loadTileSet)\n data: '',\n loader: Tiles3DLoader,\n\n onTilesetLoad: {type: 'function', value: tileset3d => {}},\n onTileLoad: {type: 'function', value: tileHeader => {}},\n onTileUnload: {type: 'function', value: tileHeader => {}},\n onTileError: {type: 'function', value: (tile, message, url) => {}},\n _getMeshColor: {type: 'function', value: tileHeader => [255, 255, 255]}\n};\n\n/** All properties supported by Tile3DLayer */\nexport type Tile3DLayerProps<DataT = any> = _Tile3DLayerProps<DataT> & CompositeLayerProps;\n\n/** Props added by the Tile3DLayer */\ntype _Tile3DLayerProps<DataT> = {\n data: string;\n /** Color Accessor for point clouds. **/\n getPointColor?: Accessor<DataT, Color>;\n\n /** Global radius of all points in pixels. **/\n pointSize?: number;\n\n /** A loader which is used to decode the fetched tiles.\n * @deprecated Use `loaders` instead\n */\n loader?: typeof Tiles3DLoader;\n\n /** Called when Tileset JSON file is loaded. **/\n onTilesetLoad?: (tile: Tileset3D) => void;\n\n /** Called when a tile in the tileset hierarchy is loaded. **/\n onTileLoad?: (tile: Tile3D) => void;\n\n /** Called when a tile is unloaded. **/\n onTileUnload?: (tile: Tile3D) => void;\n\n /** Called when a tile fails to load. **/\n onTileError?: (tile: Tile3D, url: string, message: string) => void;\n\n /** (Experimental) Accessor to change color of mesh based on properties. **/\n _getMeshColor?: (tile: Tile3D) => Color;\n};\n\n/** Render 3d tiles data formatted according to the [3D Tiles Specification](https://www.opengeospatial.org/standards/3DTiles) and [`ESRI I3S`](https://github.com/Esri/i3s-spec) */\nexport default class Tile3DLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_Tile3DLayerProps<DataT>>\n> {\n static defaultProps = defaultProps;\n static layerName = 'Tile3DLayer';\n\n state!: {\n activeViewports: {};\n frameNumber?: number;\n lastUpdatedViewports: {[viewportId: string]: Viewport} | null;\n layerMap: {[layerId: string]: any};\n tileset3d: Tileset3D | null;\n };\n\n initializeState() {\n if ('onTileLoadFail' in this.props) {\n log.removed('onTileLoadFail', 'onTileError')();\n }\n // prop verification\n this.state = {\n layerMap: {},\n tileset3d: null,\n activeViewports: {},\n lastUpdatedViewports: null\n };\n }\n\n get isLoaded(): boolean {\n const {tileset3d} = this.state;\n return tileset3d !== null && tileset3d.isLoaded();\n }\n\n shouldUpdateState({changeFlags}: UpdateParameters<this>): boolean {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, oldProps, changeFlags}: UpdateParameters<this>): void {\n if (props.data && props.data !== oldProps.data) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._loadTileset(props.data);\n }\n\n if (changeFlags.viewportChanged) {\n const {activeViewports} = this.state;\n const viewportsNumber = Object.keys(activeViewports).length;\n if (viewportsNumber) {\n this._updateTileset(activeViewports);\n this.state.lastUpdatedViewports = activeViewports;\n this.state.activeViewports = {};\n }\n }\n if (changeFlags.propsChanged) {\n const {layerMap} = this.state;\n for (const key in layerMap) {\n layerMap[key].needsUpdate = true;\n }\n }\n }\n\n activateViewport(viewport: Viewport): void {\n const {activeViewports, lastUpdatedViewports} = this.state;\n this.internalState!.viewport = viewport;\n\n activeViewports[viewport.id] = viewport;\n const lastViewport = lastUpdatedViewports?.[viewport.id];\n if (!lastViewport || !viewport.equals(lastViewport)) {\n this.setChangeFlags({viewportChanged: true});\n this.setNeedsUpdate();\n }\n }\n\n getPickingInfo({info, sourceLayer}: GetPickingInfoParams) {\n const sourceTile = sourceLayer && (sourceLayer.props as any).tile;\n if (info.picked) {\n info.object = sourceTile;\n }\n (info as any).sourceTile = sourceTile;\n\n return info;\n }\n\n filterSubLayer({layer, viewport}: FilterContext): boolean {\n // All sublayers will have a tile prop\n const {tile} = layer.props as unknown as {tile: Tile3D};\n const {id: viewportId} = viewport;\n return tile.selected && tile.viewportIds.includes(viewportId);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const sourceTile = (info as any).sourceTile;\n const layerCache = this.state.layerMap[sourceTile?.id];\n if (layerCache && layerCache.layer) {\n layerCache.layer.updateAutoHighlight(info);\n }\n }\n\n private async _loadTileset(tilesetUrl) {\n const {loadOptions = {}} = this.props;\n\n // TODO: deprecate `loader` in v9.0\n // @ts-ignore\n let loader = this.props.loader || this.props.loaders;\n if (Array.isArray(loader)) {\n loader = loader[0];\n }\n\n const options = {loadOptions: {...loadOptions}};\n let actualTilesetUrl = tilesetUrl;\n if (loader.preload) {\n const preloadOptions = await loader.preload(tilesetUrl, loadOptions);\n if (preloadOptions.url) {\n actualTilesetUrl = preloadOptions.url;\n }\n\n if (preloadOptions.headers) {\n options.loadOptions.fetch = {\n ...options.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n }\n Object.assign(options, preloadOptions);\n }\n const tilesetJson = await load(actualTilesetUrl, loader, options.loadOptions);\n\n const tileset3d = new Tileset3D(tilesetJson, {\n onTileLoad: this._onTileLoad.bind(this),\n onTileUnload: this._onTileUnload.bind(this),\n onTileError: this.props.onTileError,\n ...options\n });\n\n this.setState({\n tileset3d,\n layerMap: {}\n });\n\n this._updateTileset(this.state.activeViewports);\n this.props.onTilesetLoad(tileset3d);\n }\n\n private _onTileLoad(tileHeader: Tile3D): void {\n const {lastUpdatedViewports} = this.state;\n this.props.onTileLoad(tileHeader);\n this._updateTileset(lastUpdatedViewports);\n this.setNeedsUpdate();\n }\n\n private _onTileUnload(tileHeader: Tile3D): void {\n // Was cleaned up from tileset cache. We no longer need to track it.\n delete this.state.layerMap[tileHeader.id];\n this.props.onTileUnload(tileHeader);\n }\n\n private _updateTileset(viewports: {[viewportId: string]: Viewport} | null): void {\n if (!viewports) {\n return;\n }\n const {tileset3d} = this.state;\n const {timeline} = this.context;\n const viewportsNumber = Object.keys(viewports).length;\n if (!timeline || !viewportsNumber || !tileset3d) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tileset3d.selectTiles(Object.values(viewports)).then(frameNumber => {\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n if (tilesetChanged) {\n this.setState({frameNumber});\n }\n });\n }\n\n private _getSubLayer(\n tileHeader: Tile3D,\n oldLayer?: Layer\n ): MeshLayer<DataT> | PointCloudLayer<DataT> | ScenegraphLayer<DataT> | null {\n if (!tileHeader.content) {\n return null;\n }\n\n switch (tileHeader.type) {\n case TILE_TYPE.POINTCLOUD:\n return this._makePointCloudLayer(tileHeader, oldLayer as PointCloudLayer<DataT>);\n case TILE_TYPE.SCENEGRAPH:\n return this._make3DModelLayer(tileHeader);\n case TILE_TYPE.MESH:\n return this._makeSimpleMeshLayer(tileHeader, oldLayer as MeshLayer<DataT>);\n default:\n throw new Error(`Tile3DLayer: Failed to render layer of type ${tileHeader.content.type}`);\n }\n }\n\n private _makePointCloudLayer(\n tileHeader: Tile3D,\n oldLayer?: PointCloudLayer<DataT>\n ): PointCloudLayer<DataT> | null {\n const {attributes, pointCount, constantRGBA, cartographicOrigin, modelMatrix} =\n tileHeader.content;\n const {positions, normals, colors} = attributes;\n\n if (!positions) {\n return null;\n }\n const data = (oldLayer && oldLayer.props.data) || {\n header: {\n vertexCount: pointCount\n },\n attributes: {\n POSITION: positions,\n NORMAL: normals,\n COLOR_0: colors\n }\n };\n\n const {pointSize, getPointColor} = this.props;\n const SubLayerClass = this.getSubLayerClass('pointcloud', PointCloudLayer);\n return new SubLayerClass(\n {\n pointSize\n },\n this.getSubLayerProps({\n id: 'pointcloud'\n }),\n {\n id: `${this.id}-pointcloud-${tileHeader.id}`,\n tile: tileHeader,\n data,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getColor: constantRGBA || getPointColor,\n _offset: 0\n }\n );\n }\n\n private _make3DModelLayer(tileHeader: Tile3D): ScenegraphLayer<DataT> {\n const {gltf, instances, cartographicOrigin, modelMatrix} = tileHeader.content;\n\n const SubLayerClass = this.getSubLayerClass('scenegraph', ScenegraphLayer);\n\n return new SubLayerClass(\n {\n _lighting: 'pbr'\n },\n this.getSubLayerProps({\n id: 'scenegraph'\n }),\n {\n id: `${this.id}-scenegraph-${tileHeader.id}`,\n tile: tileHeader,\n data: instances || SINGLE_DATA,\n scenegraph: gltf,\n\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getTransformMatrix: instance => instance.modelMatrix,\n getPosition: [0, 0, 0],\n _offset: 0\n }\n );\n }\n\n private _makeSimpleMeshLayer(tileHeader: Tile3D, oldLayer?: MeshLayer<DataT>): MeshLayer<DataT> {\n const content = tileHeader.content;\n const {\n attributes,\n indices,\n modelMatrix,\n cartographicOrigin,\n coordinateSystem = COORDINATE_SYSTEM.METER_OFFSETS,\n material,\n featureIds\n } = content;\n const {_getMeshColor} = this.props;\n\n const geometry =\n (oldLayer && oldLayer.props.mesh) ||\n new Geometry({\n drawMode: GL.TRIANGLES,\n attributes: getMeshGeometry(attributes),\n indices\n });\n\n const SubLayerClass = this.getSubLayerClass('mesh', MeshLayer);\n\n return new SubLayerClass(\n this.getSubLayerProps({\n id: 'mesh'\n }),\n {\n id: `${this.id}-mesh-${tileHeader.id}`,\n tile: tileHeader,\n mesh: geometry,\n data: SINGLE_DATA,\n getColor: _getMeshColor(tileHeader),\n pbrMaterial: material,\n modelMatrix,\n coordinateOrigin: cartographicOrigin,\n coordinateSystem,\n featureIds,\n _offset: 0\n }\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {tileset3d, layerMap} = this.state;\n if (!tileset3d) {\n return null;\n }\n\n // loaders.gl doesn't provide a type for tileset3d.tiles\n return (tileset3d.tiles as Tile3D[])\n .map(tile => {\n const layerCache = (layerMap[tile.id] = layerMap[tile.id] || {tile});\n let {layer} = layerCache;\n if (tile.selected) {\n // render selected tiles\n if (!layer) {\n // create layer\n layer = this._getSubLayer(tile);\n } else if (layerCache.needsUpdate) {\n // props have changed, rerender layer\n layer = this._getSubLayer(tile, layer);\n layerCache.needsUpdate = false;\n }\n }\n layerCache.layer = layer;\n return layer;\n })\n .filter(Boolean);\n }\n}\n\nfunction getMeshGeometry(contentAttributes: MeshAttributes): MeshAttributes {\n const attributes: MeshAttributes = {};\n attributes.positions = {\n ...contentAttributes.positions,\n value: new Float32Array(contentAttributes.positions.value)\n };\n if (contentAttributes.normals) {\n attributes.normals = contentAttributes.normals;\n }\n if (contentAttributes.texCoords) {\n attributes.texCoords = contentAttributes.texCoords;\n }\n if (contentAttributes.colors) {\n attributes.colors = contentAttributes.colors;\n }\n if (contentAttributes.uvRegions) {\n attributes.uvRegions = contentAttributes.uvRegions;\n }\n return attributes;\n}\n"],"file":"tile-3d-layer.js"}
|
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
10
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
13
|
|
|
12
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -17,8 +19,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
17
19
|
|
|
18
20
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
21
|
|
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
22
|
var _core = require("@deck.gl/core");
|
|
23
23
|
|
|
24
24
|
var _layers = require("@deck.gl/layers");
|
|
@@ -103,265 +103,251 @@ var TileLayer = function (_CompositeLayer) {
|
|
|
103
103
|
return _super.apply(this, arguments);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
key: "initializeState",
|
|
108
|
-
value: function initializeState() {
|
|
109
|
-
this.state = {
|
|
110
|
-
tileset: null,
|
|
111
|
-
isLoaded: false
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}, {
|
|
115
|
-
key: "finalizeState",
|
|
116
|
-
value: function finalizeState() {
|
|
117
|
-
var _this$state, _this$state$tileset;
|
|
106
|
+
var _proto = TileLayer.prototype;
|
|
118
107
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
108
|
+
_proto.initializeState = function initializeState() {
|
|
109
|
+
this.state = {
|
|
110
|
+
tileset: null,
|
|
111
|
+
isLoaded: false
|
|
112
|
+
};
|
|
113
|
+
};
|
|
125
114
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
115
|
+
_proto.finalizeState = function finalizeState() {
|
|
116
|
+
var _this$state, _this$state$tileset;
|
|
117
|
+
|
|
118
|
+
(_this$state = this.state) === null || _this$state === void 0 ? void 0 : (_this$state$tileset = _this$state.tileset) === null || _this$state$tileset === void 0 ? void 0 : _this$state$tileset.finalize();
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
_proto.shouldUpdateState = function shouldUpdateState(_ref) {
|
|
122
|
+
var changeFlags = _ref.changeFlags;
|
|
123
|
+
return changeFlags.somethingChanged;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
_proto.updateState = function updateState(_ref2) {
|
|
127
|
+
var changeFlags = _ref2.changeFlags;
|
|
128
|
+
var tileset = this.state.tileset;
|
|
129
|
+
var propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;
|
|
130
|
+
var dataChanged = changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData);
|
|
131
|
+
|
|
132
|
+
if (!tileset) {
|
|
133
|
+
tileset = new this.props.TilesetClass(this._getTilesetOptions());
|
|
134
|
+
this.setState({
|
|
135
|
+
tileset: tileset
|
|
130
136
|
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
key: "updateState",
|
|
140
|
-
value: function updateState(_ref2) {
|
|
141
|
-
var changeFlags = _ref2.changeFlags;
|
|
142
|
-
var tileset = this.state.tileset;
|
|
143
|
-
var propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;
|
|
144
|
-
var dataChanged = changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData);
|
|
145
|
-
|
|
146
|
-
if (!tileset) {
|
|
147
|
-
tileset = new this.props.TilesetClass(this._getTilesetOptions());
|
|
148
|
-
this.setState({
|
|
149
|
-
tileset: tileset
|
|
137
|
+
} else if (propsChanged) {
|
|
138
|
+
tileset.setOptions(this._getTilesetOptions());
|
|
139
|
+
|
|
140
|
+
if (dataChanged) {
|
|
141
|
+
tileset.reloadAll();
|
|
142
|
+
} else {
|
|
143
|
+
this.state.tileset.tiles.forEach(function (tile) {
|
|
144
|
+
tile.layers = null;
|
|
150
145
|
});
|
|
151
|
-
} else if (propsChanged) {
|
|
152
|
-
tileset.setOptions(this._getTilesetOptions());
|
|
153
|
-
|
|
154
|
-
if (dataChanged) {
|
|
155
|
-
tileset.reloadAll();
|
|
156
|
-
} else {
|
|
157
|
-
this.state.tileset.tiles.forEach(function (tile) {
|
|
158
|
-
tile.layers = null;
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
146
|
}
|
|
162
|
-
|
|
163
|
-
this._updateTileset();
|
|
164
147
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
148
|
+
|
|
149
|
+
this._updateTileset();
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
_proto._getTilesetOptions = function _getTilesetOptions() {
|
|
153
|
+
var _this$props = this.props,
|
|
154
|
+
tileSize = _this$props.tileSize,
|
|
155
|
+
maxCacheSize = _this$props.maxCacheSize,
|
|
156
|
+
maxCacheByteSize = _this$props.maxCacheByteSize,
|
|
157
|
+
refinementStrategy = _this$props.refinementStrategy,
|
|
158
|
+
extent = _this$props.extent,
|
|
159
|
+
maxZoom = _this$props.maxZoom,
|
|
160
|
+
minZoom = _this$props.minZoom,
|
|
161
|
+
maxRequests = _this$props.maxRequests,
|
|
162
|
+
zoomOffset = _this$props.zoomOffset;
|
|
163
|
+
return {
|
|
164
|
+
maxCacheSize: maxCacheSize,
|
|
165
|
+
maxCacheByteSize: maxCacheByteSize,
|
|
166
|
+
maxZoom: maxZoom,
|
|
167
|
+
minZoom: minZoom,
|
|
168
|
+
tileSize: tileSize,
|
|
169
|
+
refinementStrategy: refinementStrategy,
|
|
170
|
+
extent: extent,
|
|
171
|
+
maxRequests: maxRequests,
|
|
172
|
+
zoomOffset: zoomOffset,
|
|
173
|
+
getTileData: this.getTileData.bind(this),
|
|
174
|
+
onTileLoad: this._onTileLoad.bind(this),
|
|
175
|
+
onTileError: this._onTileError.bind(this),
|
|
176
|
+
onTileUnload: this._onTileUnload.bind(this)
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
_proto._updateTileset = function _updateTileset() {
|
|
181
|
+
var tileset = this.state.tileset;
|
|
182
|
+
var _this$props2 = this.props,
|
|
183
|
+
zRange = _this$props2.zRange,
|
|
184
|
+
modelMatrix = _this$props2.modelMatrix;
|
|
185
|
+
var frameNumber = tileset.update(this.context.viewport, {
|
|
186
|
+
zRange: zRange,
|
|
187
|
+
modelMatrix: modelMatrix
|
|
188
|
+
});
|
|
189
|
+
var isLoaded = tileset.isLoaded;
|
|
190
|
+
var loadingStateChanged = this.state.isLoaded !== isLoaded;
|
|
191
|
+
var tilesetChanged = this.state.frameNumber !== frameNumber;
|
|
192
|
+
|
|
193
|
+
if (isLoaded && (loadingStateChanged || tilesetChanged)) {
|
|
194
|
+
this._onViewportLoad();
|
|
193
195
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
var _this$props2 = this.props,
|
|
199
|
-
zRange = _this$props2.zRange,
|
|
200
|
-
modelMatrix = _this$props2.modelMatrix;
|
|
201
|
-
var frameNumber = tileset.update(this.context.viewport, {
|
|
202
|
-
zRange: zRange,
|
|
203
|
-
modelMatrix: modelMatrix
|
|
196
|
+
|
|
197
|
+
if (tilesetChanged) {
|
|
198
|
+
this.setState({
|
|
199
|
+
frameNumber: frameNumber
|
|
204
200
|
});
|
|
205
|
-
|
|
206
|
-
var loadingStateChanged = this.state.isLoaded !== isLoaded;
|
|
207
|
-
var tilesetChanged = this.state.frameNumber !== frameNumber;
|
|
201
|
+
}
|
|
208
202
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
203
|
+
this.state.isLoaded = isLoaded;
|
|
204
|
+
};
|
|
212
205
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
});
|
|
217
|
-
}
|
|
206
|
+
_proto._onViewportLoad = function _onViewportLoad() {
|
|
207
|
+
var tileset = this.state.tileset;
|
|
208
|
+
var onViewportLoad = this.props.onViewportLoad;
|
|
218
209
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}, {
|
|
222
|
-
key: "_onViewportLoad",
|
|
223
|
-
value: function _onViewportLoad() {
|
|
224
|
-
var tileset = this.state.tileset;
|
|
225
|
-
var onViewportLoad = this.props.onViewportLoad;
|
|
226
|
-
|
|
227
|
-
if (onViewportLoad) {
|
|
228
|
-
onViewportLoad(tileset.selectedTiles);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}, {
|
|
232
|
-
key: "_onTileLoad",
|
|
233
|
-
value: function _onTileLoad(tile) {
|
|
234
|
-
this.props.onTileLoad(tile);
|
|
235
|
-
tile.layers = null;
|
|
236
|
-
this.setNeedsUpdate();
|
|
210
|
+
if (onViewportLoad) {
|
|
211
|
+
onViewportLoad(tileset.selectedTiles);
|
|
237
212
|
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
_proto._onTileLoad = function _onTileLoad(tile) {
|
|
216
|
+
this.props.onTileLoad(tile);
|
|
217
|
+
tile.layers = null;
|
|
218
|
+
this.setNeedsUpdate();
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
_proto._onTileError = function _onTileError(error, tile) {
|
|
222
|
+
this.props.onTileError(error);
|
|
223
|
+
tile.layers = null;
|
|
224
|
+
this.setNeedsUpdate();
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
_proto._onTileUnload = function _onTileUnload(tile) {
|
|
228
|
+
this.props.onTileUnload(tile);
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
_proto.getTileData = function getTileData(tile) {
|
|
232
|
+
var _this$props3 = this.props,
|
|
233
|
+
data = _this$props3.data,
|
|
234
|
+
getTileData = _this$props3.getTileData,
|
|
235
|
+
fetch = _this$props3.fetch;
|
|
236
|
+
var signal = tile.signal;
|
|
237
|
+
tile.url = typeof data === 'string' || Array.isArray(data) ? (0, _tileset2d.getURLFromTemplate)(data, tile) : null;
|
|
238
|
+
|
|
239
|
+
if (getTileData) {
|
|
240
|
+
return getTileData(tile);
|
|
244
241
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
242
|
+
|
|
243
|
+
if (fetch && tile.url) {
|
|
244
|
+
return fetch(tile.url, {
|
|
245
|
+
propName: 'data',
|
|
246
|
+
layer: this,
|
|
247
|
+
signal: signal
|
|
248
|
+
});
|
|
249
249
|
}
|
|
250
|
-
}, {
|
|
251
|
-
key: "getTileData",
|
|
252
|
-
value: function getTileData(tile) {
|
|
253
|
-
var _this$props3 = this.props,
|
|
254
|
-
data = _this$props3.data,
|
|
255
|
-
getTileData = _this$props3.getTileData,
|
|
256
|
-
fetch = _this$props3.fetch;
|
|
257
|
-
var signal = tile.signal;
|
|
258
|
-
tile.url = typeof data === 'string' || Array.isArray(data) ? (0, _tileset2d.getURLFromTemplate)(data, tile) : null;
|
|
259
|
-
|
|
260
|
-
if (getTileData) {
|
|
261
|
-
return getTileData(tile);
|
|
262
|
-
}
|
|
263
250
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
propName: 'data',
|
|
267
|
-
layer: this,
|
|
268
|
-
signal: signal
|
|
269
|
-
});
|
|
270
|
-
}
|
|
251
|
+
return null;
|
|
252
|
+
};
|
|
271
253
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}, {
|
|
280
|
-
key: "getSubLayerPropsByTile",
|
|
281
|
-
value: function getSubLayerPropsByTile(tile) {
|
|
282
|
-
return null;
|
|
283
|
-
}
|
|
284
|
-
}, {
|
|
285
|
-
key: "getPickingInfo",
|
|
286
|
-
value: function getPickingInfo(_ref3) {
|
|
287
|
-
var info = _ref3.info,
|
|
288
|
-
sourceLayer = _ref3.sourceLayer;
|
|
289
|
-
var sourceTile = sourceLayer.props.tile;
|
|
290
|
-
|
|
291
|
-
if (info.picked) {
|
|
292
|
-
info.tile = sourceTile;
|
|
293
|
-
}
|
|
254
|
+
_proto.renderSubLayers = function renderSubLayers(props) {
|
|
255
|
+
return this.props.renderSubLayers(props);
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
_proto.getSubLayerPropsByTile = function getSubLayerPropsByTile(tile) {
|
|
259
|
+
return null;
|
|
260
|
+
};
|
|
294
261
|
|
|
295
|
-
|
|
296
|
-
|
|
262
|
+
_proto.getPickingInfo = function getPickingInfo(_ref3) {
|
|
263
|
+
var info = _ref3.info,
|
|
264
|
+
sourceLayer = _ref3.sourceLayer;
|
|
265
|
+
var sourceTile = sourceLayer.props.tile;
|
|
266
|
+
|
|
267
|
+
if (info.picked) {
|
|
268
|
+
info.tile = sourceTile;
|
|
297
269
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
} finally {
|
|
315
|
-
_iterator.f();
|
|
270
|
+
|
|
271
|
+
info.sourceTile = sourceTile;
|
|
272
|
+
return info;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
_proto._updateAutoHighlight = function _updateAutoHighlight(info) {
|
|
276
|
+
var sourceTile = info.sourceTile;
|
|
277
|
+
|
|
278
|
+
if (sourceTile && sourceTile.layers) {
|
|
279
|
+
var _iterator = _createForOfIteratorHelper(sourceTile.layers),
|
|
280
|
+
_step;
|
|
281
|
+
|
|
282
|
+
try {
|
|
283
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
284
|
+
var layer = _step.value;
|
|
285
|
+
layer.updateAutoHighlight(info);
|
|
316
286
|
}
|
|
287
|
+
} catch (err) {
|
|
288
|
+
_iterator.e(err);
|
|
289
|
+
} finally {
|
|
290
|
+
_iterator.f();
|
|
317
291
|
}
|
|
318
292
|
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
_proto.renderLayers = function renderLayers() {
|
|
296
|
+
var _this = this;
|
|
297
|
+
|
|
298
|
+
return this.state.tileset.tiles.map(function (tile) {
|
|
299
|
+
var subLayerProps = _this.getSubLayerPropsByTile(tile);
|
|
300
|
+
|
|
301
|
+
if (!tile.isLoaded && !tile.content) {} else if (!tile.layers) {
|
|
302
|
+
var layers = _this.renderSubLayers(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.getSubLayerProps({
|
|
303
|
+
id: tile.id,
|
|
304
|
+
updateTriggers: _this.props.updateTriggers
|
|
305
|
+
})), {}, {
|
|
306
|
+
data: tile.content,
|
|
307
|
+
_offset: 0,
|
|
308
|
+
tile: tile
|
|
309
|
+
}));
|
|
310
|
+
|
|
311
|
+
tile.layers = (0, _core._flatten)(layers, Boolean).map(function (layer) {
|
|
312
|
+
return layer.clone(_objectSpread({
|
|
333
313
|
tile: tile
|
|
334
|
-
}));
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
314
|
+
}, subLayerProps));
|
|
315
|
+
});
|
|
316
|
+
} else if (subLayerProps && tile.layers[0] && Object.keys(subLayerProps).some(function (propName) {
|
|
317
|
+
return tile.layers[0].props[propName] !== subLayerProps[propName];
|
|
318
|
+
})) {
|
|
319
|
+
tile.layers = tile.layers.map(function (layer) {
|
|
320
|
+
return layer.clone(subLayerProps);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
return tile.layers;
|
|
325
|
+
});
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
_proto.filterSubLayer = function filterSubLayer(_ref4) {
|
|
329
|
+
var layer = _ref4.layer,
|
|
330
|
+
cullRect = _ref4.cullRect;
|
|
331
|
+
var tile = layer.props.tile;
|
|
332
|
+
return this.state.tileset.isTileVisible(tile, cullRect);
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
(0, _createClass2.default)(TileLayer, [{
|
|
336
|
+
key: "isLoaded",
|
|
337
|
+
get: function get() {
|
|
338
|
+
var _this$state2, _this$state2$tileset, _this$state2$tileset$;
|
|
348
339
|
|
|
349
|
-
|
|
340
|
+
return (_this$state2 = this.state) === null || _this$state2 === void 0 ? void 0 : (_this$state2$tileset = _this$state2.tileset) === null || _this$state2$tileset === void 0 ? void 0 : (_this$state2$tileset$ = _this$state2$tileset.selectedTiles) === null || _this$state2$tileset$ === void 0 ? void 0 : _this$state2$tileset$.every(function (tile) {
|
|
341
|
+
return tile.isLoaded && tile.layers && tile.layers.every(function (layer) {
|
|
342
|
+
return layer.isLoaded;
|
|
343
|
+
});
|
|
350
344
|
});
|
|
351
345
|
}
|
|
352
|
-
}, {
|
|
353
|
-
key: "filterSubLayer",
|
|
354
|
-
value: function filterSubLayer(_ref4) {
|
|
355
|
-
var layer = _ref4.layer,
|
|
356
|
-
cullRect = _ref4.cullRect;
|
|
357
|
-
var tile = layer.props.tile;
|
|
358
|
-
return this.state.tileset.isTileVisible(tile, cullRect);
|
|
359
|
-
}
|
|
360
346
|
}]);
|
|
361
347
|
return TileLayer;
|
|
362
348
|
}(_core.CompositeLayer);
|
|
363
349
|
|
|
364
350
|
exports.default = TileLayer;
|
|
365
|
-
|
|
366
|
-
|
|
351
|
+
TileLayer.defaultProps = defaultProps;
|
|
352
|
+
TileLayer.layerName = 'TileLayer';
|
|
367
353
|
//# sourceMappingURL=tile-layer.js.map
|