@deck.gl/geo-layers 9.0.0-beta.1 → 9.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +2574 -5077
- package/dist/geo-cell-layer/GeoCellLayer.js +51 -0
- package/{typed → dist}/geohash-layer/geohash-layer.d.ts +1 -1
- package/dist/geohash-layer/geohash-layer.d.ts.map +1 -0
- package/dist/geohash-layer/geohash-layer.js +19 -0
- package/dist/geohash-layer/geohash-utils.js +50 -0
- package/dist/great-circle-layer/great-circle-layer.js +12 -0
- package/{typed → dist}/h3-layers/h3-cluster-layer.d.ts +1 -1
- package/dist/h3-layers/h3-cluster-layer.d.ts.map +1 -0
- package/dist/h3-layers/h3-cluster-layer.js +47 -0
- package/dist/h3-layers/h3-hexagon-layer.js +204 -0
- package/dist/h3-layers/h3-utils.js +56 -0
- package/dist/index.cjs +3160 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/mesh-layer/mesh-layer-fragment.glsl.d.ts +3 -0
- package/{typed → dist}/mesh-layer/mesh-layer-fragment.glsl.d.ts.map +1 -1
- package/dist/mesh-layer/mesh-layer-fragment.glsl.js +33 -0
- package/dist/mesh-layer/mesh-layer-vertex.glsl.js +63 -0
- package/{typed → dist}/mesh-layer/mesh-layer.d.ts.map +1 -1
- package/dist/mesh-layer/mesh-layer.js +128 -0
- package/{typed → dist}/mvt-layer/coordinate-transform.d.ts +1 -1
- package/{typed → dist}/mvt-layer/coordinate-transform.d.ts.map +1 -1
- package/dist/mvt-layer/coordinate-transform.js +41 -0
- package/dist/mvt-layer/find-index-binary.d.ts +11 -0
- package/dist/mvt-layer/find-index-binary.d.ts.map +1 -0
- package/dist/mvt-layer/find-index-binary.js +96 -0
- package/{typed → dist}/mvt-layer/mvt-layer.d.ts +13 -11
- package/dist/mvt-layer/mvt-layer.d.ts.map +1 -0
- package/dist/mvt-layer/mvt-layer.js +305 -0
- package/{typed → dist}/quadkey-layer/quadkey-layer.d.ts +1 -1
- package/dist/quadkey-layer/quadkey-layer.d.ts.map +1 -0
- package/dist/quadkey-layer/quadkey-layer.js +22 -0
- package/dist/quadkey-layer/quadkey-utils.js +26 -0
- package/dist/s2-layer/s2-geometry.js +123 -0
- package/{typed → dist}/s2-layer/s2-layer.d.ts +1 -1
- package/dist/s2-layer/s2-layer.d.ts.map +1 -0
- package/dist/s2-layer/s2-layer.js +38 -0
- package/dist/s2-layer/s2-utils.js +87 -0
- package/{typed → dist}/terrain-layer/terrain-layer.d.ts +4 -4
- package/dist/terrain-layer/terrain-layer.d.ts.map +1 -0
- package/dist/terrain-layer/terrain-layer.js +233 -0
- package/{typed → dist}/tile-3d-layer/tile-3d-layer.d.ts +15 -1
- package/{typed → dist}/tile-3d-layer/tile-3d-layer.d.ts.map +1 -1
- package/dist/tile-3d-layer/tile-3d-layer.js +302 -0
- package/{typed → dist}/tile-layer/tile-layer.d.ts +14 -5
- package/dist/tile-layer/tile-layer.d.ts.map +1 -0
- package/dist/tile-layer/tile-layer.js +207 -0
- package/dist/tileset-2d/index.d.ts +7 -0
- package/dist/tileset-2d/index.d.ts.map +1 -0
- package/dist/tileset-2d/index.js +4 -0
- package/dist/tileset-2d/memoize.js +41 -0
- package/{typed → dist}/tileset-2d/tile-2d-header.d.ts +3 -2
- package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -0
- package/dist/tileset-2d/tile-2d-header.js +135 -0
- package/dist/tileset-2d/tile-2d-traversal.d.ts +4 -0
- package/dist/tileset-2d/tile-2d-traversal.d.ts.map +1 -0
- package/dist/tileset-2d/tile-2d-traversal.js +182 -0
- package/{typed → dist}/tileset-2d/tileset-2d.d.ts +9 -7
- package/dist/tileset-2d/tileset-2d.d.ts.map +1 -0
- package/dist/tileset-2d/tileset-2d.js +458 -0
- package/dist/tileset-2d/types.js +1 -0
- package/{typed → dist}/tileset-2d/utils.d.ts +3 -3
- package/dist/tileset-2d/utils.d.ts.map +1 -0
- package/dist/tileset-2d/utils.js +234 -0
- package/{typed → dist}/trips-layer/trips-layer.d.ts +1 -1
- package/{typed → dist}/trips-layer/trips-layer.d.ts.map +1 -1
- package/dist/trips-layer/trips-layer.js +93 -0
- package/dist/wms-layer/utils.js +13 -0
- package/dist/wms-layer/wms-layer.js +192 -0
- package/dist.min.js +243 -564
- package/package.json +30 -23
- package/src/index.ts +7 -7
- package/src/mesh-layer/mesh-layer-fragment.glsl.ts +1 -9
- package/src/mesh-layer/mesh-layer.ts +1 -2
- package/src/mvt-layer/coordinate-transform.ts +1 -1
- package/src/mvt-layer/find-index-binary.ts +5 -9
- package/src/mvt-layer/mvt-layer.ts +36 -25
- package/src/terrain-layer/terrain-layer.ts +13 -3
- package/src/tile-layer/tile-layer.ts +30 -14
- package/src/tileset-2d/tile-2d-header.ts +2 -1
- package/src/tileset-2d/tile-2d-traversal.ts +1 -1
- package/src/tileset-2d/tileset-2d.ts +14 -7
- package/src/tileset-2d/utils.ts +2 -2
- package/src/trips-layer/trips-layer.ts +1 -1
- package/src/wms-layer/wms-layer.ts +1 -1
- package/dist/es5/geo-cell-layer/GeoCellLayer.js +0 -118
- package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +0 -1
- package/dist/es5/geohash-layer/geohash-layer.js +0 -67
- package/dist/es5/geohash-layer/geohash-layer.js.map +0 -1
- package/dist/es5/geohash-layer/geohash-utils.js +0 -77
- package/dist/es5/geohash-layer/geohash-utils.js.map +0 -1
- package/dist/es5/great-circle-layer/great-circle-layer.js +0 -48
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +0 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +0 -162
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +0 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +0 -351
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +0 -1
- package/dist/es5/h3-layers/h3-utils.js +0 -111
- package/dist/es5/h3-layers/h3-utils.js.map +0 -1
- package/dist/es5/index.js +0 -132
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/mesh-layer/mesh-layer-fragment.glsl.js +0 -9
- package/dist/es5/mesh-layer/mesh-layer-fragment.glsl.js.map +0 -1
- package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js +0 -9
- package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js.map +0 -1
- package/dist/es5/mesh-layer/mesh-layer.js +0 -217
- package/dist/es5/mesh-layer/mesh-layer.js.map +0 -1
- package/dist/es5/mvt-layer/coordinate-transform.js +0 -83
- package/dist/es5/mvt-layer/coordinate-transform.js.map +0 -1
- package/dist/es5/mvt-layer/find-index-binary.js +0 -127
- package/dist/es5/mvt-layer/find-index-binary.js.map +0 -1
- package/dist/es5/mvt-layer/mvt-layer.js +0 -533
- package/dist/es5/mvt-layer/mvt-layer.js.map +0 -1
- package/dist/es5/quadkey-layer/quadkey-layer.js +0 -72
- package/dist/es5/quadkey-layer/quadkey-layer.js.map +0 -1
- package/dist/es5/quadkey-layer/quadkey-utils.js +0 -53
- package/dist/es5/quadkey-layer/quadkey-utils.js.map +0 -1
- package/dist/es5/s2-layer/s2-geometry.js +0 -158
- package/dist/es5/s2-layer/s2-geometry.js.map +0 -1
- package/dist/es5/s2-layer/s2-layer.js +0 -67
- package/dist/es5/s2-layer/s2-layer.js.map +0 -1
- package/dist/es5/s2-layer/s2-utils.js +0 -80
- package/dist/es5/s2-layer/s2-utils.js.map +0 -1
- package/dist/es5/terrain-layer/terrain-layer.js +0 -347
- package/dist/es5/terrain-layer/terrain-layer.js.map +0 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +0 -511
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +0 -1
- package/dist/es5/tile-layer/tile-layer.js +0 -363
- package/dist/es5/tile-layer/tile-layer.js.map +0 -1
- package/dist/es5/tileset-2d/index.js +0 -66
- package/dist/es5/tileset-2d/index.js.map +0 -1
- package/dist/es5/tileset-2d/memoize.js +0 -47
- package/dist/es5/tileset-2d/memoize.js.map +0 -1
- package/dist/es5/tileset-2d/tile-2d-header.js +0 -250
- package/dist/es5/tileset-2d/tile-2d-header.js.map +0 -1
- package/dist/es5/tileset-2d/tile-2d-traversal.js +0 -256
- package/dist/es5/tileset-2d/tile-2d-traversal.js.map +0 -1
- package/dist/es5/tileset-2d/tileset-2d.js +0 -757
- package/dist/es5/tileset-2d/tileset-2d.js.map +0 -1
- package/dist/es5/tileset-2d/types.js +0 -2
- package/dist/es5/tileset-2d/types.js.map +0 -1
- package/dist/es5/tileset-2d/utils.js +0 -302
- package/dist/es5/tileset-2d/utils.js.map +0 -1
- package/dist/es5/trips-layer/trips-layer.js +0 -114
- package/dist/es5/trips-layer/trips-layer.js.map +0 -1
- package/dist/es5/wms-layer/utils.js +0 -18
- package/dist/es5/wms-layer/utils.js.map +0 -1
- package/dist/es5/wms-layer/wms-layer.js +0 -376
- package/dist/es5/wms-layer/wms-layer.js.map +0 -1
- package/dist/esm/geo-cell-layer/GeoCellLayer.js +0 -72
- package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +0 -1
- package/dist/esm/geohash-layer/geohash-layer.js +0 -26
- package/dist/esm/geohash-layer/geohash-layer.js.map +0 -1
- package/dist/esm/geohash-layer/geohash-utils.js +0 -56
- package/dist/esm/geohash-layer/geohash-utils.js.map +0 -1
- package/dist/esm/great-circle-layer/great-circle-layer.js +0 -12
- package/dist/esm/great-circle-layer/great-circle-layer.js.map +0 -1
- package/dist/esm/h3-layers/h3-cluster-layer.js +0 -79
- package/dist/esm/h3-layers/h3-cluster-layer.js.map +0 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js +0 -280
- package/dist/esm/h3-layers/h3-hexagon-layer.js.map +0 -1
- package/dist/esm/h3-layers/h3-utils.js +0 -54
- package/dist/esm/h3-layers/h3-utils.js.map +0 -1
- package/dist/esm/index.js +0 -17
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js +0 -56
- package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js.map +0 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +0 -85
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +0 -1
- package/dist/esm/mesh-layer/mesh-layer.js +0 -178
- package/dist/esm/mesh-layer/mesh-layer.js.map +0 -1
- package/dist/esm/mvt-layer/coordinate-transform.js +0 -49
- package/dist/esm/mvt-layer/coordinate-transform.js.map +0 -1
- package/dist/esm/mvt-layer/find-index-binary.js +0 -99
- package/dist/esm/mvt-layer/find-index-binary.js.map +0 -1
- package/dist/esm/mvt-layer/mvt-layer.js +0 -427
- package/dist/esm/mvt-layer/mvt-layer.js.map +0 -1
- package/dist/esm/quadkey-layer/quadkey-layer.js +0 -31
- package/dist/esm/quadkey-layer/quadkey-layer.js.map +0 -1
- package/dist/esm/quadkey-layer/quadkey-utils.js +0 -24
- package/dist/esm/quadkey-layer/quadkey-utils.js.map +0 -1
- package/dist/esm/s2-layer/s2-geometry.js +0 -126
- package/dist/esm/s2-layer/s2-geometry.js.map +0 -1
- package/dist/esm/s2-layer/s2-layer.js +0 -26
- package/dist/esm/s2-layer/s2-layer.js.map +0 -1
- package/dist/esm/s2-layer/s2-utils.js +0 -69
- package/dist/esm/s2-layer/s2-utils.js.map +0 -1
- package/dist/esm/terrain-layer/terrain-layer.js +0 -292
- package/dist/esm/terrain-layer/terrain-layer.js.map +0 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js +0 -438
- package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +0 -1
- package/dist/esm/tile-layer/tile-layer.js +0 -299
- package/dist/esm/tile-layer/tile-layer.js.map +0 -1
- package/dist/esm/tileset-2d/index.js +0 -4
- package/dist/esm/tileset-2d/index.js.map +0 -1
- package/dist/esm/tileset-2d/memoize.js +0 -40
- package/dist/esm/tileset-2d/memoize.js.map +0 -1
- package/dist/esm/tileset-2d/tile-2d-header.js +0 -179
- package/dist/esm/tileset-2d/tile-2d-header.js.map +0 -1
- package/dist/esm/tileset-2d/tile-2d-traversal.js +0 -184
- package/dist/esm/tileset-2d/tile-2d-traversal.js.map +0 -1
- package/dist/esm/tileset-2d/tileset-2d.js +0 -509
- package/dist/esm/tileset-2d/tileset-2d.js.map +0 -1
- package/dist/esm/tileset-2d/types.js +0 -2
- package/dist/esm/tileset-2d/types.js.map +0 -1
- package/dist/esm/tileset-2d/utils.js +0 -233
- package/dist/esm/tileset-2d/utils.js.map +0 -1
- package/dist/esm/trips-layer/trips-layer.js +0 -88
- package/dist/esm/trips-layer/trips-layer.js.map +0 -1
- package/dist/esm/wms-layer/utils.js +0 -9
- package/dist/esm/wms-layer/utils.js.map +0 -1
- package/dist/esm/wms-layer/wms-layer.js +0 -231
- package/dist/esm/wms-layer/wms-layer.js.map +0 -1
- package/typed/geohash-layer/geohash-layer.d.ts.map +0 -1
- package/typed/h3-layers/h3-cluster-layer.d.ts.map +0 -1
- package/typed/index.d.ts +0 -31
- package/typed/index.d.ts.map +0 -1
- package/typed/mesh-layer/mesh-layer-fragment.glsl.d.ts +0 -3
- package/typed/mvt-layer/find-index-binary.d.ts +0 -12
- package/typed/mvt-layer/find-index-binary.d.ts.map +0 -1
- package/typed/mvt-layer/mvt-layer.d.ts.map +0 -1
- package/typed/quadkey-layer/quadkey-layer.d.ts.map +0 -1
- package/typed/s2-layer/s2-layer.d.ts.map +0 -1
- package/typed/terrain-layer/terrain-layer.d.ts.map +0 -1
- package/typed/tile-layer/tile-layer.d.ts.map +0 -1
- package/typed/tileset-2d/index.d.ts +0 -7
- package/typed/tileset-2d/index.d.ts.map +0 -1
- package/typed/tileset-2d/tile-2d-header.d.ts.map +0 -1
- package/typed/tileset-2d/tile-2d-traversal.d.ts +0 -4
- package/typed/tileset-2d/tile-2d-traversal.d.ts.map +0 -1
- package/typed/tileset-2d/tileset-2d.d.ts.map +0 -1
- package/typed/tileset-2d/utils.d.ts.map +0 -1
- /package/{typed → dist}/geo-cell-layer/GeoCellLayer.d.ts +0 -0
- /package/{typed → dist}/geo-cell-layer/GeoCellLayer.d.ts.map +0 -0
- /package/{typed → dist}/geohash-layer/geohash-utils.d.ts +0 -0
- /package/{typed → dist}/geohash-layer/geohash-utils.d.ts.map +0 -0
- /package/{typed → dist}/great-circle-layer/great-circle-layer.d.ts +0 -0
- /package/{typed → dist}/great-circle-layer/great-circle-layer.d.ts.map +0 -0
- /package/{typed → dist}/h3-layers/h3-hexagon-layer.d.ts +0 -0
- /package/{typed → dist}/h3-layers/h3-hexagon-layer.d.ts.map +0 -0
- /package/{typed → dist}/h3-layers/h3-utils.d.ts +0 -0
- /package/{typed → dist}/h3-layers/h3-utils.d.ts.map +0 -0
- /package/{typed → dist}/mesh-layer/mesh-layer-vertex.glsl.d.ts +0 -0
- /package/{typed → dist}/mesh-layer/mesh-layer-vertex.glsl.d.ts.map +0 -0
- /package/{typed → dist}/mesh-layer/mesh-layer.d.ts +0 -0
- /package/{typed → dist}/quadkey-layer/quadkey-utils.d.ts +0 -0
- /package/{typed → dist}/quadkey-layer/quadkey-utils.d.ts.map +0 -0
- /package/{typed → dist}/s2-layer/s2-geometry.d.ts +0 -0
- /package/{typed → dist}/s2-layer/s2-geometry.d.ts.map +0 -0
- /package/{typed → dist}/s2-layer/s2-utils.d.ts +0 -0
- /package/{typed → dist}/s2-layer/s2-utils.d.ts.map +0 -0
- /package/{typed → dist}/tileset-2d/memoize.d.ts +0 -0
- /package/{typed → dist}/tileset-2d/memoize.d.ts.map +0 -0
- /package/{typed → dist}/tileset-2d/types.d.ts +0 -0
- /package/{typed → dist}/tileset-2d/types.d.ts.map +0 -0
- /package/{typed → dist}/wms-layer/utils.d.ts +0 -0
- /package/{typed → dist}/wms-layer/utils.d.ts.map +0 -0
- /package/{typed → dist}/wms-layer/wms-layer.d.ts +0 -0
- /package/{typed → dist}/wms-layer/wms-layer.d.ts.map +0 -0
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import { CompositeLayer, _flatten as flatten } from '@deck.gl/core';
|
|
2
|
-
import { GeoJsonLayer } from '@deck.gl/layers';
|
|
3
|
-
import { Tileset2D, STRATEGY_DEFAULT } from '../tileset-2d';
|
|
4
|
-
import { urlType, getURLFromTemplate } from '../tileset-2d';
|
|
5
|
-
const defaultProps = {
|
|
6
|
-
TilesetClass: Tileset2D,
|
|
7
|
-
data: {
|
|
8
|
-
type: 'data',
|
|
9
|
-
value: []
|
|
10
|
-
},
|
|
11
|
-
dataComparator: urlType.equal,
|
|
12
|
-
renderSubLayers: {
|
|
13
|
-
type: 'function',
|
|
14
|
-
value: props => new GeoJsonLayer(props)
|
|
15
|
-
},
|
|
16
|
-
getTileData: {
|
|
17
|
-
type: 'function',
|
|
18
|
-
optional: true,
|
|
19
|
-
value: null
|
|
20
|
-
},
|
|
21
|
-
onViewportLoad: {
|
|
22
|
-
type: 'function',
|
|
23
|
-
optional: true,
|
|
24
|
-
value: null
|
|
25
|
-
},
|
|
26
|
-
onTileLoad: {
|
|
27
|
-
type: 'function',
|
|
28
|
-
value: tile => {}
|
|
29
|
-
},
|
|
30
|
-
onTileUnload: {
|
|
31
|
-
type: 'function',
|
|
32
|
-
value: tile => {}
|
|
33
|
-
},
|
|
34
|
-
onTileError: {
|
|
35
|
-
type: 'function',
|
|
36
|
-
value: err => console.error(err)
|
|
37
|
-
},
|
|
38
|
-
extent: {
|
|
39
|
-
type: 'array',
|
|
40
|
-
optional: true,
|
|
41
|
-
value: null,
|
|
42
|
-
compare: true
|
|
43
|
-
},
|
|
44
|
-
tileSize: 512,
|
|
45
|
-
maxZoom: null,
|
|
46
|
-
minZoom: 0,
|
|
47
|
-
maxCacheSize: null,
|
|
48
|
-
maxCacheByteSize: null,
|
|
49
|
-
refinementStrategy: STRATEGY_DEFAULT,
|
|
50
|
-
zRange: null,
|
|
51
|
-
maxRequests: 6,
|
|
52
|
-
zoomOffset: 0
|
|
53
|
-
};
|
|
54
|
-
export default class TileLayer extends CompositeLayer {
|
|
55
|
-
constructor(...args) {
|
|
56
|
-
super(...args);
|
|
57
|
-
this.state = void 0;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
initializeState() {
|
|
61
|
-
this.state = {
|
|
62
|
-
tileset: null,
|
|
63
|
-
isLoaded: false
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
finalizeState() {
|
|
68
|
-
var _this$state, _this$state$tileset;
|
|
69
|
-
|
|
70
|
-
(_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();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
get isLoaded() {
|
|
74
|
-
var _this$state2, _this$state2$tileset;
|
|
75
|
-
|
|
76
|
-
const selectedTiles = (_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.selectedTiles;
|
|
77
|
-
return selectedTiles ? selectedTiles.every(tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)) : false;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
shouldUpdateState({
|
|
81
|
-
changeFlags
|
|
82
|
-
}) {
|
|
83
|
-
return changeFlags.somethingChanged;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
updateState({
|
|
87
|
-
changeFlags
|
|
88
|
-
}) {
|
|
89
|
-
let {
|
|
90
|
-
tileset
|
|
91
|
-
} = this.state;
|
|
92
|
-
const propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;
|
|
93
|
-
const dataChanged = changeFlags.dataChanged || changeFlags.updateTriggersChanged && (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData);
|
|
94
|
-
|
|
95
|
-
if (!tileset) {
|
|
96
|
-
tileset = new this.props.TilesetClass(this._getTilesetOptions());
|
|
97
|
-
this.setState({
|
|
98
|
-
tileset
|
|
99
|
-
});
|
|
100
|
-
} else if (propsChanged) {
|
|
101
|
-
tileset.setOptions(this._getTilesetOptions());
|
|
102
|
-
|
|
103
|
-
if (dataChanged) {
|
|
104
|
-
tileset.reloadAll();
|
|
105
|
-
} else {
|
|
106
|
-
tileset.tiles.forEach(tile => {
|
|
107
|
-
tile.layers = null;
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
this._updateTileset();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
_getTilesetOptions() {
|
|
116
|
-
const {
|
|
117
|
-
tileSize,
|
|
118
|
-
maxCacheSize,
|
|
119
|
-
maxCacheByteSize,
|
|
120
|
-
refinementStrategy,
|
|
121
|
-
extent,
|
|
122
|
-
maxZoom,
|
|
123
|
-
minZoom,
|
|
124
|
-
maxRequests,
|
|
125
|
-
zoomOffset
|
|
126
|
-
} = this.props;
|
|
127
|
-
return {
|
|
128
|
-
maxCacheSize,
|
|
129
|
-
maxCacheByteSize,
|
|
130
|
-
maxZoom,
|
|
131
|
-
minZoom,
|
|
132
|
-
tileSize,
|
|
133
|
-
refinementStrategy,
|
|
134
|
-
extent,
|
|
135
|
-
maxRequests,
|
|
136
|
-
zoomOffset,
|
|
137
|
-
getTileData: this.getTileData.bind(this),
|
|
138
|
-
onTileLoad: this._onTileLoad.bind(this),
|
|
139
|
-
onTileError: this._onTileError.bind(this),
|
|
140
|
-
onTileUnload: this._onTileUnload.bind(this)
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
_updateTileset() {
|
|
145
|
-
const tileset = this.state.tileset;
|
|
146
|
-
const {
|
|
147
|
-
zRange,
|
|
148
|
-
modelMatrix
|
|
149
|
-
} = this.props;
|
|
150
|
-
const frameNumber = tileset.update(this.context.viewport, {
|
|
151
|
-
zRange,
|
|
152
|
-
modelMatrix
|
|
153
|
-
});
|
|
154
|
-
const {
|
|
155
|
-
isLoaded
|
|
156
|
-
} = tileset;
|
|
157
|
-
const loadingStateChanged = this.state.isLoaded !== isLoaded;
|
|
158
|
-
const tilesetChanged = this.state.frameNumber !== frameNumber;
|
|
159
|
-
|
|
160
|
-
if (isLoaded && (loadingStateChanged || tilesetChanged)) {
|
|
161
|
-
this._onViewportLoad();
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if (tilesetChanged) {
|
|
165
|
-
this.setState({
|
|
166
|
-
frameNumber
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
this.state.isLoaded = isLoaded;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
_onViewportLoad() {
|
|
174
|
-
const {
|
|
175
|
-
tileset
|
|
176
|
-
} = this.state;
|
|
177
|
-
const {
|
|
178
|
-
onViewportLoad
|
|
179
|
-
} = this.props;
|
|
180
|
-
|
|
181
|
-
if (onViewportLoad) {
|
|
182
|
-
onViewportLoad(tileset.selectedTiles);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
_onTileLoad(tile) {
|
|
187
|
-
this.props.onTileLoad(tile);
|
|
188
|
-
tile.layers = null;
|
|
189
|
-
this.setNeedsUpdate();
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
_onTileError(error, tile) {
|
|
193
|
-
this.props.onTileError(error);
|
|
194
|
-
tile.layers = null;
|
|
195
|
-
this.setNeedsUpdate();
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
_onTileUnload(tile) {
|
|
199
|
-
this.props.onTileUnload(tile);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
getTileData(tile) {
|
|
203
|
-
const {
|
|
204
|
-
data,
|
|
205
|
-
getTileData,
|
|
206
|
-
fetch
|
|
207
|
-
} = this.props;
|
|
208
|
-
const {
|
|
209
|
-
signal
|
|
210
|
-
} = tile;
|
|
211
|
-
tile.url = typeof data === 'string' || Array.isArray(data) ? getURLFromTemplate(data, tile) : null;
|
|
212
|
-
|
|
213
|
-
if (getTileData) {
|
|
214
|
-
return getTileData(tile);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
if (fetch && tile.url) {
|
|
218
|
-
return fetch(tile.url, {
|
|
219
|
-
propName: 'data',
|
|
220
|
-
layer: this,
|
|
221
|
-
signal
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
renderSubLayers(props) {
|
|
229
|
-
return this.props.renderSubLayers(props);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
getSubLayerPropsByTile(tile) {
|
|
233
|
-
return null;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
getPickingInfo({
|
|
237
|
-
info,
|
|
238
|
-
sourceLayer
|
|
239
|
-
}) {
|
|
240
|
-
const sourceTile = sourceLayer.props.tile;
|
|
241
|
-
|
|
242
|
-
if (info.picked) {
|
|
243
|
-
info.tile = sourceTile;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
info.sourceTile = sourceTile;
|
|
247
|
-
return info;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
_updateAutoHighlight(info) {
|
|
251
|
-
const sourceTile = info.sourceTile;
|
|
252
|
-
|
|
253
|
-
if (sourceTile && sourceTile.layers) {
|
|
254
|
-
for (const layer of sourceTile.layers) {
|
|
255
|
-
layer.updateAutoHighlight(info);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
renderLayers() {
|
|
261
|
-
return this.state.tileset.tiles.map(tile => {
|
|
262
|
-
const subLayerProps = this.getSubLayerPropsByTile(tile);
|
|
263
|
-
|
|
264
|
-
if (!tile.isLoaded && !tile.content) {} else if (!tile.layers) {
|
|
265
|
-
const layers = this.renderSubLayers({ ...this.props,
|
|
266
|
-
...this.getSubLayerProps({
|
|
267
|
-
id: tile.id,
|
|
268
|
-
updateTriggers: this.props.updateTriggers
|
|
269
|
-
}),
|
|
270
|
-
data: tile.content,
|
|
271
|
-
_offset: 0,
|
|
272
|
-
tile
|
|
273
|
-
});
|
|
274
|
-
tile.layers = flatten(layers, Boolean).map(layer => layer.clone({
|
|
275
|
-
tile,
|
|
276
|
-
...subLayerProps
|
|
277
|
-
}));
|
|
278
|
-
} else if (subLayerProps && tile.layers[0] && Object.keys(subLayerProps).some(propName => tile.layers[0].props[propName] !== subLayerProps[propName])) {
|
|
279
|
-
tile.layers = tile.layers.map(layer => layer.clone(subLayerProps));
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
return tile.layers;
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
filterSubLayer({
|
|
287
|
-
layer,
|
|
288
|
-
cullRect
|
|
289
|
-
}) {
|
|
290
|
-
const {
|
|
291
|
-
tile
|
|
292
|
-
} = layer.props;
|
|
293
|
-
return this.state.tileset.isTileVisible(tile, cullRect);
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
}
|
|
297
|
-
TileLayer.defaultProps = defaultProps;
|
|
298
|
-
TileLayer.layerName = 'TileLayer';
|
|
299
|
-
//# sourceMappingURL=tile-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tile-layer/tile-layer.ts"],"names":["CompositeLayer","_flatten","flatten","GeoJsonLayer","Tileset2D","STRATEGY_DEFAULT","urlType","getURLFromTemplate","defaultProps","TilesetClass","data","type","value","dataComparator","equal","renderSubLayers","props","getTileData","optional","onViewportLoad","onTileLoad","tile","onTileUnload","onTileError","err","console","error","extent","compare","tileSize","maxZoom","minZoom","maxCacheSize","maxCacheByteSize","refinementStrategy","zRange","maxRequests","zoomOffset","TileLayer","state","initializeState","tileset","isLoaded","finalizeState","finalize","selectedTiles","every","layers","layer","shouldUpdateState","changeFlags","somethingChanged","updateState","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","getSubLayerPropsByTile","getPickingInfo","info","sourceLayer","sourceTile","picked","_updateAutoHighlight","updateAutoHighlight","renderLayers","map","subLayerProps","content","getSubLayerProps","id","updateTriggers","_offset","Boolean","clone","Object","keys","some","filterSubLayer","cullRect","isTileVisible","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: any) => 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 = unknown> = 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 state!: {\n tileset: Tileset2D | null;\n isLoaded: boolean;\n frameNumber?: number;\n };\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 const selectedTiles = this.state?.tileset?.selectedTiles;\n return selectedTiles\n ? selectedTiles.every(\n tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)\n )\n : false;\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 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.tileset!;\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 // This method can only be called when tileset is defined and updated\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tileset-2d/index.ts"],"names":["Tileset2D","STRATEGY_DEFAULT","Tile2DHeader","isGeoBoundingBox","isURLTemplate","urlType","getURLFromTemplate","getTileIndices","tileToBoundingBox"],"mappings":"AAYA,SAAQA,SAAR,EAAmBC,gBAAnB,QAA0C,cAA1C;AAEA,SAAQC,YAAR,QAA2B,kBAA3B;AAGA,SACEC,gBADF,EAEEC,aAFF,EAGEC,OAHF,EAIEC,kBAJF,EAKEC,cALF,EAMEC,iBANF,QAOO,SAPP","sourcesContent":["// deck.gl, MIT license\n\nexport type {\n TileLoadProps,\n Bounds,\n ZRange,\n GeoBoundingBox,\n NonGeoBoundingBox,\n TileBoundingBox\n} from './types';\n\nexport type {Tileset2DProps, RefinementStrategy} from './tileset-2d';\nexport {Tileset2D, STRATEGY_DEFAULT} from './tileset-2d';\n\nexport {Tile2DHeader} from './tile-2d-header';\n\nexport type {URLTemplate} from './utils';\nexport {\n isGeoBoundingBox,\n isURLTemplate,\n urlType,\n getURLFromTemplate,\n getTileIndices,\n tileToBoundingBox\n} from './utils';\n"],"file":"index.js"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
export function memoize(compute) {
|
|
2
|
-
let cachedArgs = {};
|
|
3
|
-
let cachedResult;
|
|
4
|
-
return args => {
|
|
5
|
-
for (const key in args) {
|
|
6
|
-
if (!isEqual(args[key], cachedArgs[key])) {
|
|
7
|
-
cachedResult = compute(args);
|
|
8
|
-
cachedArgs = args;
|
|
9
|
-
break;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return cachedResult;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function isEqual(a, b) {
|
|
18
|
-
if (a === b) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if (Array.isArray(a)) {
|
|
23
|
-
const len = a.length;
|
|
24
|
-
|
|
25
|
-
if (!b || b.length !== len) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
for (let i = 0; i < len; i++) {
|
|
30
|
-
if (a[i] !== b[i]) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=memoize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tileset-2d/memoize.ts"],"names":["memoize","compute","cachedArgs","cachedResult","args","key","isEqual","a","b","Array","isArray","len","length","i"],"mappings":"AAQA,OAAO,SAASA,OAAT,CAA0BC,OAA1B,EAAyE;AAC9E,MAAIC,UAAe,GAAG,EAAtB;AACA,MAAIC,YAAJ;AAEA,SAAQC,IAAD,IAAc;AACnB,SAAK,MAAMC,GAAX,IAAkBD,IAAlB,EAAwB;AACtB,UAAI,CAACE,OAAO,CAACF,IAAI,CAACC,GAAD,CAAL,EAAYH,UAAU,CAACG,GAAD,CAAtB,CAAZ,EAA0C;AACxCF,QAAAA,YAAY,GAAGF,OAAO,CAACG,IAAD,CAAtB;AACAF,QAAAA,UAAU,GAAGE,IAAb;AACA;AACD;AACF;;AACD,WAAOD,YAAP;AACD,GATD;AAUD;;AAED,SAASG,OAAT,CAAiBC,CAAjB,EAAoBC,CAApB,EAAuB;AACrB,MAAID,CAAC,KAAKC,CAAV,EAAa;AACX,WAAO,IAAP;AACD;;AACD,MAAIC,KAAK,CAACC,OAAN,CAAcH,CAAd,CAAJ,EAAsB;AAGpB,UAAMI,GAAG,GAAGJ,CAAC,CAACK,MAAd;;AACA,QAAI,CAACJ,CAAD,IAAMA,CAAC,CAACI,MAAF,KAAaD,GAAvB,EAA4B;AAC1B,aAAO,KAAP;AACD;;AAED,SAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,GAApB,EAAyBE,CAAC,EAA1B,EAA8B;AAC5B,UAAIN,CAAC,CAACM,CAAD,CAAD,KAASL,CAAC,CAACK,CAAD,CAAd,EAAmB;AACjB,eAAO,KAAP;AACD;AACF;;AACD,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD","sourcesContent":["// deck.gl, MIT license\n// @note - this is a duplicate of the deck.gl core export (because Tileset2D should be deck.gl independent)\n\n/**\n * Speed up consecutive function calls by caching the result of calls with identical input\n * https://en.wikipedia.org/wiki/Memoization\n * @param compute - the function to be memoized\n */\nexport function memoize<In, Out>(compute: (args: In) => Out): (args: In) => Out {\n let cachedArgs: any = {};\n let cachedResult: Out;\n\n return (args: In) => {\n for (const key in args) {\n if (!isEqual(args[key], cachedArgs[key])) {\n cachedResult = compute(args);\n cachedArgs = args;\n break;\n }\n }\n return cachedResult;\n };\n}\n\nfunction isEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (Array.isArray(a)) {\n // Special treatment for arrays: compare 1-level deep\n // This is to support equality of matrix/coordinate props\n const len = a.length;\n if (!b || b.length !== len) {\n return false;\n }\n\n for (let i = 0; i < len; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n"],"file":"memoize.js"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
export class Tile2DHeader {
|
|
2
|
-
constructor(index) {
|
|
3
|
-
this.index = void 0;
|
|
4
|
-
this.isVisible = void 0;
|
|
5
|
-
this.isSelected = void 0;
|
|
6
|
-
this.parent = void 0;
|
|
7
|
-
this.children = void 0;
|
|
8
|
-
this.content = void 0;
|
|
9
|
-
this.state = void 0;
|
|
10
|
-
this.layers = void 0;
|
|
11
|
-
this.id = void 0;
|
|
12
|
-
this.zoom = void 0;
|
|
13
|
-
this.userData = void 0;
|
|
14
|
-
this.boundingBox = void 0;
|
|
15
|
-
this._abortController = void 0;
|
|
16
|
-
this._loader = void 0;
|
|
17
|
-
this._loaderId = void 0;
|
|
18
|
-
this._isLoaded = void 0;
|
|
19
|
-
this._isCancelled = void 0;
|
|
20
|
-
this._needsReload = void 0;
|
|
21
|
-
this._bbox = void 0;
|
|
22
|
-
this.index = index;
|
|
23
|
-
this.isVisible = false;
|
|
24
|
-
this.isSelected = false;
|
|
25
|
-
this.parent = null;
|
|
26
|
-
this.children = [];
|
|
27
|
-
this.content = null;
|
|
28
|
-
this._loader = undefined;
|
|
29
|
-
this._abortController = null;
|
|
30
|
-
this._loaderId = 0;
|
|
31
|
-
this._isLoaded = false;
|
|
32
|
-
this._isCancelled = false;
|
|
33
|
-
this._needsReload = false;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get bbox() {
|
|
37
|
-
return this._bbox;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
set bbox(value) {
|
|
41
|
-
if (this._bbox) return;
|
|
42
|
-
this._bbox = value;
|
|
43
|
-
|
|
44
|
-
if ('west' in value) {
|
|
45
|
-
this.boundingBox = [[value.west, value.south], [value.east, value.north]];
|
|
46
|
-
} else {
|
|
47
|
-
this.boundingBox = [[value.left, value.top], [value.right, value.bottom]];
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
get data() {
|
|
52
|
-
return this.isLoading && this._loader ? this._loader.then(() => this.data) : this.content;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
get isLoaded() {
|
|
56
|
-
return this._isLoaded && !this._needsReload;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
get isLoading() {
|
|
60
|
-
return Boolean(this._loader) && !this._isCancelled;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
get needsReload() {
|
|
64
|
-
return this._needsReload || this._isCancelled;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
get byteLength() {
|
|
68
|
-
const result = this.content ? this.content.byteLength : 0;
|
|
69
|
-
|
|
70
|
-
if (!Number.isFinite(result)) {
|
|
71
|
-
console.error('byteLength not defined in tile data');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
async _loadData({
|
|
78
|
-
getData,
|
|
79
|
-
requestScheduler,
|
|
80
|
-
onLoad,
|
|
81
|
-
onError
|
|
82
|
-
}) {
|
|
83
|
-
const {
|
|
84
|
-
index,
|
|
85
|
-
id,
|
|
86
|
-
bbox,
|
|
87
|
-
userData,
|
|
88
|
-
zoom
|
|
89
|
-
} = this;
|
|
90
|
-
const loaderId = this._loaderId;
|
|
91
|
-
this._abortController = new AbortController();
|
|
92
|
-
const {
|
|
93
|
-
signal
|
|
94
|
-
} = this._abortController;
|
|
95
|
-
const requestToken = await requestScheduler.scheduleRequest(this, tile => {
|
|
96
|
-
return tile.isSelected ? 1 : -1;
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
if (!requestToken) {
|
|
100
|
-
this._isCancelled = true;
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if (this._isCancelled) {
|
|
105
|
-
requestToken.done();
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
let tileData = null;
|
|
110
|
-
let error;
|
|
111
|
-
|
|
112
|
-
try {
|
|
113
|
-
tileData = await getData({
|
|
114
|
-
index,
|
|
115
|
-
id,
|
|
116
|
-
bbox,
|
|
117
|
-
userData,
|
|
118
|
-
zoom,
|
|
119
|
-
signal
|
|
120
|
-
});
|
|
121
|
-
} catch (err) {
|
|
122
|
-
error = err || true;
|
|
123
|
-
} finally {
|
|
124
|
-
requestToken.done();
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (loaderId !== this._loaderId) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
this._loader = undefined;
|
|
132
|
-
this.content = tileData;
|
|
133
|
-
|
|
134
|
-
if (this._isCancelled && !tileData) {
|
|
135
|
-
this._isLoaded = false;
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
this._isLoaded = true;
|
|
140
|
-
this._isCancelled = false;
|
|
141
|
-
|
|
142
|
-
if (error) {
|
|
143
|
-
onError(error, this);
|
|
144
|
-
} else {
|
|
145
|
-
onLoad(this);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
loadData(opts) {
|
|
150
|
-
this._isLoaded = false;
|
|
151
|
-
this._isCancelled = false;
|
|
152
|
-
this._needsReload = false;
|
|
153
|
-
this._loaderId++;
|
|
154
|
-
this._loader = this._loadData(opts);
|
|
155
|
-
return this._loader;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
setNeedsReload() {
|
|
159
|
-
if (this.isLoading) {
|
|
160
|
-
this.abort();
|
|
161
|
-
this._loader = undefined;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
this._needsReload = true;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
abort() {
|
|
168
|
-
var _this$_abortControlle;
|
|
169
|
-
|
|
170
|
-
if (this.isLoaded) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
this._isCancelled = true;
|
|
175
|
-
(_this$_abortControlle = this._abortController) === null || _this$_abortControlle === void 0 ? void 0 : _this$_abortControlle.abort();
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=tile-2d-header.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tileset-2d/tile-2d-header.ts"],"names":["Tile2DHeader","constructor","index","isVisible","isSelected","parent","children","content","state","layers","id","zoom","userData","boundingBox","_abortController","_loader","_loaderId","_isLoaded","_isCancelled","_needsReload","_bbox","undefined","bbox","value","west","south","east","north","left","top","right","bottom","data","isLoading","then","isLoaded","Boolean","needsReload","byteLength","result","Number","isFinite","console","error","_loadData","getData","requestScheduler","onLoad","onError","loaderId","AbortController","signal","requestToken","scheduleRequest","tile","done","tileData","err","loadData","opts","setNeedsReload","abort"],"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"}
|