@deck.gl/geo-layers 9.0.0-alpha.7 → 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 -5044
- 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-3d-layer/tile-3d-layer.ts +1 -2
- 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
package/package.json
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
"name": "@deck.gl/geo-layers",
|
|
3
3
|
"description": "deck.gl layers supporting geospatial use cases and GIS formats",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"version": "9.0.0-beta.10",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
8
9
|
},
|
|
@@ -16,13 +17,19 @@
|
|
|
16
17
|
"type": "git",
|
|
17
18
|
"url": "https://github.com/visgl/deck.gl.git"
|
|
18
19
|
},
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
"types": "dist/index.d.ts",
|
|
21
|
+
"main": "dist/index.cjs",
|
|
22
|
+
"module": "dist/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"import": "./dist/index.js",
|
|
27
|
+
"require": "./dist/index.cjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
22
30
|
"files": [
|
|
23
31
|
"dist",
|
|
24
32
|
"src",
|
|
25
|
-
"typed",
|
|
26
33
|
"dist.min.js"
|
|
27
34
|
],
|
|
28
35
|
"sideEffects": false,
|
|
@@ -31,16 +38,16 @@
|
|
|
31
38
|
"prepublishOnly": "npm run build-bundle && npm run build-bundle -- --env=dev"
|
|
32
39
|
},
|
|
33
40
|
"dependencies": {
|
|
34
|
-
"@
|
|
35
|
-
"@loaders.gl/
|
|
36
|
-
"@loaders.gl/
|
|
37
|
-
"@loaders.gl/
|
|
38
|
-
"@loaders.gl/
|
|
39
|
-
"@loaders.gl/
|
|
40
|
-
"@loaders.gl/
|
|
41
|
-
"@loaders.gl/
|
|
42
|
-
"@
|
|
43
|
-
"@luma.gl/
|
|
41
|
+
"@loaders.gl/3d-tiles": "^4.1.4",
|
|
42
|
+
"@loaders.gl/gis": "^4.1.4",
|
|
43
|
+
"@loaders.gl/loader-utils": "^4.1.4",
|
|
44
|
+
"@loaders.gl/mvt": "^4.1.4",
|
|
45
|
+
"@loaders.gl/schema": "^4.1.4",
|
|
46
|
+
"@loaders.gl/terrain": "^4.1.4",
|
|
47
|
+
"@loaders.gl/tiles": "^4.1.4",
|
|
48
|
+
"@loaders.gl/wms": "^4.1.4",
|
|
49
|
+
"@luma.gl/gltf": "^9.0.4",
|
|
50
|
+
"@luma.gl/shadertools": "^9.0.4",
|
|
44
51
|
"@math.gl/core": "^4.0.0",
|
|
45
52
|
"@math.gl/culling": "^4.0.0",
|
|
46
53
|
"@math.gl/web-mercator": "^4.0.0",
|
|
@@ -49,13 +56,13 @@
|
|
|
49
56
|
"long": "^3.2.0"
|
|
50
57
|
},
|
|
51
58
|
"peerDependencies": {
|
|
52
|
-
"@deck.gl/core": "^9.0.0-
|
|
53
|
-
"@deck.gl/extensions": "^9.0.0-
|
|
54
|
-
"@deck.gl/layers": "^9.0.0-
|
|
55
|
-
"@deck.gl/mesh-layers": "^9.0.0-
|
|
56
|
-
"@loaders.gl/core": "4.1.
|
|
57
|
-
"@luma.gl/core": "9.0.
|
|
58
|
-
"@luma.gl/
|
|
59
|
+
"@deck.gl/core": "^9.0.0-beta",
|
|
60
|
+
"@deck.gl/extensions": "^9.0.0-beta",
|
|
61
|
+
"@deck.gl/layers": "^9.0.0-beta",
|
|
62
|
+
"@deck.gl/mesh-layers": "^9.0.0-beta",
|
|
63
|
+
"@loaders.gl/core": "^4.1.4",
|
|
64
|
+
"@luma.gl/core": "^9.0.4",
|
|
65
|
+
"@luma.gl/engine": "^9.0.4"
|
|
59
66
|
},
|
|
60
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "6c44f602069374cd21268ff279c5bf818c905ff7"
|
|
61
68
|
}
|
package/src/index.ts
CHANGED
|
@@ -40,19 +40,19 @@ export type {H3ClusterLayerProps} from './h3-layers/h3-cluster-layer';
|
|
|
40
40
|
export type {H3HexagonLayerProps} from './h3-layers/h3-hexagon-layer';
|
|
41
41
|
export type {GreatCircleLayerProps} from './great-circle-layer/great-circle-layer';
|
|
42
42
|
export type {S2LayerProps} from './s2-layer/s2-layer';
|
|
43
|
-
export type {TileLayerProps} from './tile-layer/tile-layer';
|
|
43
|
+
export type {TileLayerProps, TileLayerPickingInfo} from './tile-layer/tile-layer';
|
|
44
44
|
export type {TripsLayerProps} from './trips-layer/trips-layer';
|
|
45
45
|
export type {QuadkeyLayerProps} from './quadkey-layer/quadkey-layer';
|
|
46
46
|
export type {TerrainLayerProps} from './terrain-layer/terrain-layer';
|
|
47
47
|
export type {Tile3DLayerProps} from './tile-3d-layer/tile-3d-layer';
|
|
48
|
-
export type {MVTLayerProps} from './mvt-layer/mvt-layer';
|
|
48
|
+
export type {MVTLayerProps, MVTLayerPickingInfo} from './mvt-layer/mvt-layer';
|
|
49
49
|
export type {GeoCellLayerProps as _GeoCellLayerProps} from './geo-cell-layer/GeoCellLayer';
|
|
50
50
|
|
|
51
51
|
// Tileset2D
|
|
52
52
|
|
|
53
|
-
export type {GeoBoundingBox, NonGeoBoundingBox} from './tileset-2d';
|
|
54
|
-
export type {TileLoadProps as _TileLoadProps} from './tileset-2d';
|
|
53
|
+
export type {GeoBoundingBox, NonGeoBoundingBox} from './tileset-2d/index';
|
|
54
|
+
export type {TileLoadProps as _TileLoadProps} from './tileset-2d/index';
|
|
55
55
|
|
|
56
|
-
export {getURLFromTemplate as _getURLFromTemplate} from './tileset-2d';
|
|
57
|
-
export {Tileset2D as _Tileset2D} from './tileset-2d';
|
|
58
|
-
export {Tile2DHeader as _Tile2DHeader} from './tileset-2d';
|
|
56
|
+
export {getURLFromTemplate as _getURLFromTemplate} from './tileset-2d/index';
|
|
57
|
+
export {Tileset2D as _Tileset2D} from './tileset-2d/index';
|
|
58
|
+
export {Tile2DHeader as _Tile2DHeader} from './tileset-2d/index';
|
|
@@ -31,15 +31,7 @@ void main(void) {
|
|
|
31
31
|
vec3 normal;
|
|
32
32
|
if (flatShading) {
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
// headless.gl reports the extension as
|
|
36
|
-
// available but does not support it in
|
|
37
|
-
// the shader.
|
|
38
|
-
#ifdef DERIVATIVES_AVAILABLE
|
|
39
|
-
normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
|
|
40
|
-
#else
|
|
41
|
-
normal = vec3(0.0, 0.0, 1.0);
|
|
42
|
-
#endif
|
|
34
|
+
normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
|
|
43
35
|
} else {
|
|
44
36
|
normal = normals_commonspace;
|
|
45
37
|
}
|
|
@@ -2,7 +2,6 @@ import type {NumericArray} from '@math.gl/core';
|
|
|
2
2
|
import {parsePBRMaterial, ParsedPBRMaterial} from '@luma.gl/gltf';
|
|
3
3
|
import {pbr} from '@luma.gl/shadertools';
|
|
4
4
|
import {Model} from '@luma.gl/engine';
|
|
5
|
-
import {GL} from '@luma.gl/constants';
|
|
6
5
|
import type {MeshAttribute, MeshAttributes} from '@loaders.gl/schema';
|
|
7
6
|
import type {UpdateParameters, DefaultProps, LayerContext} from '@deck.gl/core';
|
|
8
7
|
import {SimpleMeshLayer, SimpleMeshLayerProps} from '@deck.gl/mesh-layers';
|
|
@@ -72,7 +71,7 @@ export default class MeshLayer<DataT = any, ExtraProps extends {} = {}> extends
|
|
|
72
71
|
// attributeManager is always defined in a primitive layer
|
|
73
72
|
attributeManager!.add({
|
|
74
73
|
featureIdsPickingColors: {
|
|
75
|
-
type:
|
|
74
|
+
type: 'uint8',
|
|
76
75
|
size: 3,
|
|
77
76
|
noAlloc: true,
|
|
78
77
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
@@ -12,16 +12,12 @@ const GEOM_TYPES = ['points', 'lines', 'polygons'];
|
|
|
12
12
|
* Return the index of feature (numericProps or featureIds) for given feature id
|
|
13
13
|
* Example: findIndexBinary(data, 'id', 33) will return the index in the array of numericProps
|
|
14
14
|
* of the feature 33.
|
|
15
|
-
* @param {Object} data - The data in binary format
|
|
16
|
-
* @param {String} uniqueIdProperty - Name of the unique id property
|
|
17
|
-
* @param {Number|String} featureId - feature id to find
|
|
18
|
-
* @param {String} layerName - the layer to search in
|
|
19
15
|
*/
|
|
20
16
|
export default function findIndexBinary(
|
|
21
|
-
data: BinaryFeatureCollection,
|
|
22
|
-
uniqueIdProperty: string,
|
|
23
|
-
featureId: string | number,
|
|
24
|
-
layerName: string
|
|
17
|
+
data: BinaryFeatureCollection, // The data in binary format
|
|
18
|
+
uniqueIdProperty: string, // Name of the unique id property
|
|
19
|
+
featureId: string | number, // feature id to find
|
|
20
|
+
layerName: string | null // the layer to search in
|
|
25
21
|
): number {
|
|
26
22
|
for (const gt of GEOM_TYPES) {
|
|
27
23
|
const index = data[gt] && findIndexByType(data[gt], uniqueIdProperty, featureId, layerName);
|
|
@@ -37,7 +33,7 @@ function findIndexByType(
|
|
|
37
33
|
geomData: FeatureTypes,
|
|
38
34
|
uniqueIdProperty: string,
|
|
39
35
|
featureId: string | number,
|
|
40
|
-
layerName: string
|
|
36
|
+
layerName: string | null
|
|
41
37
|
): number {
|
|
42
38
|
const featureIds = geomData.featureIds.value;
|
|
43
39
|
|
|
@@ -18,14 +18,14 @@ import {binaryToGeojson} from '@loaders.gl/gis';
|
|
|
18
18
|
|
|
19
19
|
import type {Loader} from '@loaders.gl/loader-utils';
|
|
20
20
|
import type {BinaryFeatureCollection} from '@loaders.gl/schema';
|
|
21
|
-
import type {Feature} from 'geojson';
|
|
21
|
+
import type {Feature, Geometry} from 'geojson';
|
|
22
22
|
|
|
23
23
|
import {transform} from './coordinate-transform';
|
|
24
24
|
import findIndexBinary from './find-index-binary';
|
|
25
25
|
|
|
26
|
-
import TileLayer, {
|
|
26
|
+
import TileLayer, {TileLayerPickingInfo, TileLayerProps} from '../tile-layer/tile-layer';
|
|
27
27
|
|
|
28
|
-
import type {Tileset2DProps, TileLoadProps, GeoBoundingBox} from '../tileset-2d';
|
|
28
|
+
import type {Tileset2DProps, TileLoadProps, GeoBoundingBox} from '../tileset-2d/index';
|
|
29
29
|
import {
|
|
30
30
|
urlType,
|
|
31
31
|
Tileset2D,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
URLTemplate,
|
|
35
35
|
isGeoBoundingBox,
|
|
36
36
|
isURLTemplate
|
|
37
|
-
} from '../tileset-2d';
|
|
37
|
+
} from '../tileset-2d/index';
|
|
38
38
|
|
|
39
39
|
const WORLD_SIZE = 512;
|
|
40
40
|
|
|
@@ -62,13 +62,22 @@ export type TileJson = {
|
|
|
62
62
|
|
|
63
63
|
type ParsedMvtTile = Feature[] | BinaryFeatureCollection;
|
|
64
64
|
|
|
65
|
+
export type MVTLayerPickingInfo<FeaturePropertiesT = {}> = TileLayerPickingInfo<
|
|
66
|
+
ParsedMvtTile,
|
|
67
|
+
PickingInfo<Feature<Geometry, FeaturePropertiesT>>
|
|
68
|
+
>;
|
|
69
|
+
|
|
65
70
|
/** All props supported by the MVTLayer */
|
|
66
|
-
export type MVTLayerProps = _MVTLayerProps &
|
|
67
|
-
Omit<
|
|
68
|
-
TileLayerProps<ParsedMvtTile>;
|
|
71
|
+
export type MVTLayerProps<FeaturePropertiesT = unknown> = _MVTLayerProps<FeaturePropertiesT> &
|
|
72
|
+
Omit<TileLayerProps<ParsedMvtTile>, 'data'>;
|
|
69
73
|
|
|
70
74
|
/** Props added by the MVTLayer */
|
|
71
|
-
export type _MVTLayerProps =
|
|
75
|
+
export type _MVTLayerProps<FeaturePropertiesT> = Omit<
|
|
76
|
+
GeoJsonLayerProps<FeaturePropertiesT>,
|
|
77
|
+
'data'
|
|
78
|
+
> & {
|
|
79
|
+
data: TileJson | URLTemplate;
|
|
80
|
+
|
|
72
81
|
/** Called if `data` is a TileJSON URL when it is successfully fetched. */
|
|
73
82
|
onDataLoad?: ((tilejson: TileJson | null) => void) | null;
|
|
74
83
|
|
|
@@ -96,18 +105,18 @@ export type _MVTLayerProps = {
|
|
|
96
105
|
type ContentWGS84Cache = {_contentWGS84?: Feature[]};
|
|
97
106
|
|
|
98
107
|
/** Render data formatted as [Mapbox Vector Tiles](https://docs.mapbox.com/vector-tiles/specification/). */
|
|
99
|
-
export default class MVTLayer<
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
> {
|
|
108
|
+
export default class MVTLayer<
|
|
109
|
+
FeaturePropertiesT = any,
|
|
110
|
+
ExtraProps extends {} = {}
|
|
111
|
+
> extends TileLayer<ParsedMvtTile, Required<_MVTLayerProps<FeaturePropertiesT>> & ExtraProps> {
|
|
103
112
|
static layerName = 'MVTLayer';
|
|
104
113
|
static defaultProps = defaultProps;
|
|
105
114
|
|
|
106
115
|
state!: TileLayer<ParsedMvtTile>['state'] & {
|
|
107
116
|
binary: boolean;
|
|
108
117
|
data: URLTemplate;
|
|
109
|
-
tileJSON:
|
|
110
|
-
highlightColor
|
|
118
|
+
tileJSON: TileJson | null;
|
|
119
|
+
highlightColor?: number[];
|
|
111
120
|
hoveredFeatureId: number | string | null;
|
|
112
121
|
hoveredFeatureLayerName: string | null;
|
|
113
122
|
};
|
|
@@ -119,12 +128,14 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
119
128
|
this.setState({
|
|
120
129
|
binary,
|
|
121
130
|
data: null,
|
|
122
|
-
tileJSON: null
|
|
131
|
+
tileJSON: null,
|
|
132
|
+
hoveredFeatureId: null,
|
|
133
|
+
hoveredFeatureLayerName: null
|
|
123
134
|
});
|
|
124
135
|
}
|
|
125
136
|
|
|
126
137
|
get isLoaded(): boolean {
|
|
127
|
-
return Boolean(this.state
|
|
138
|
+
return Boolean(this.state?.data && super.isLoaded);
|
|
128
139
|
}
|
|
129
140
|
|
|
130
141
|
updateState({props, oldProps, context, changeFlags}: UpdateParameters<this>) {
|
|
@@ -145,8 +156,8 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
145
156
|
|
|
146
157
|
/* eslint-disable complexity */
|
|
147
158
|
private async _updateTileData(): Promise<void> {
|
|
148
|
-
let data
|
|
149
|
-
let tileJSON:
|
|
159
|
+
let data = this.props.data;
|
|
160
|
+
let tileJSON: TileJson | null = null;
|
|
150
161
|
|
|
151
162
|
if (typeof data === 'string' && !isURLTemplate(data)) {
|
|
152
163
|
const {onDataLoad, fetch} = this.props;
|
|
@@ -161,7 +172,7 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
161
172
|
if (onDataLoad) {
|
|
162
173
|
onDataLoad(tileJSON, {propName: 'data', layer: this});
|
|
163
174
|
}
|
|
164
|
-
} else if (data
|
|
175
|
+
} else if (data && typeof data === 'object' && 'tilejson' in data) {
|
|
165
176
|
tileJSON = data;
|
|
166
177
|
}
|
|
167
178
|
|
|
@@ -174,7 +185,7 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
174
185
|
|
|
175
186
|
_getTilesetOptions(): Tileset2DProps {
|
|
176
187
|
const opts = super._getTilesetOptions();
|
|
177
|
-
const tileJSON: TileJson | null
|
|
188
|
+
const tileJSON: TileJson | null = this.state.tileJSON;
|
|
178
189
|
const {minZoom, maxZoom} = this.props;
|
|
179
190
|
|
|
180
191
|
if (tileJSON) {
|
|
@@ -268,8 +279,8 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
268
279
|
|
|
269
280
|
const {hoveredFeatureId, hoveredFeatureLayerName} = this.state;
|
|
270
281
|
const hoveredFeature = info.object;
|
|
271
|
-
let newHoveredFeatureId;
|
|
272
|
-
let newHoveredFeatureLayerName;
|
|
282
|
+
let newHoveredFeatureId: string | number | null = null;
|
|
283
|
+
let newHoveredFeatureLayerName: string | null = null;
|
|
273
284
|
|
|
274
285
|
if (hoveredFeature) {
|
|
275
286
|
newHoveredFeatureId = getFeatureUniqueId(hoveredFeature, uniqueIdProperty);
|
|
@@ -292,7 +303,7 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
292
303
|
}
|
|
293
304
|
}
|
|
294
305
|
|
|
295
|
-
getPickingInfo(params: GetPickingInfoParams):
|
|
306
|
+
getPickingInfo(params: GetPickingInfoParams): MVTLayerPickingInfo<FeaturePropertiesT> {
|
|
296
307
|
const info = super.getPickingInfo(params);
|
|
297
308
|
|
|
298
309
|
const isWGS84 = Boolean(this.context.viewport.resolution);
|
|
@@ -333,7 +344,7 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
333
344
|
return -1;
|
|
334
345
|
}
|
|
335
346
|
|
|
336
|
-
const featureIdToHighlight = isHighlighted ? highlightedFeatureId : hoveredFeatureId
|
|
347
|
+
const featureIdToHighlight = isHighlighted ? highlightedFeatureId! : hoveredFeatureId!;
|
|
337
348
|
|
|
338
349
|
// Iterable data
|
|
339
350
|
if (Array.isArray(data)) {
|
|
@@ -350,7 +361,7 @@ export default class MVTLayer<ExtraProps extends {} = {}> extends TileLayer<
|
|
|
350
361
|
return findIndexBinary(
|
|
351
362
|
data,
|
|
352
363
|
uniqueIdProperty,
|
|
353
|
-
featureIdToHighlight
|
|
364
|
+
featureIdToHighlight,
|
|
354
365
|
isHighlighted ? '' : hoveredFeatureLayerName!
|
|
355
366
|
);
|
|
356
367
|
}
|
|
@@ -35,8 +35,14 @@ import {COORDINATE_SYSTEM} from '@deck.gl/core';
|
|
|
35
35
|
import type {MeshAttributes} from '@loaders.gl/schema';
|
|
36
36
|
import {TerrainWorkerLoader} from '@loaders.gl/terrain';
|
|
37
37
|
import TileLayer, {TileLayerProps} from '../tile-layer/tile-layer';
|
|
38
|
-
import type {
|
|
39
|
-
|
|
38
|
+
import type {
|
|
39
|
+
Bounds,
|
|
40
|
+
GeoBoundingBox,
|
|
41
|
+
TileBoundingBox,
|
|
42
|
+
TileLoadProps,
|
|
43
|
+
ZRange
|
|
44
|
+
} from '../tileset-2d/index';
|
|
45
|
+
import {Tile2DHeader, urlType, getURLFromTemplate, URLTemplate} from '../tileset-2d/index';
|
|
40
46
|
|
|
41
47
|
const DUMMY_DATA = [1];
|
|
42
48
|
|
|
@@ -136,7 +142,7 @@ export default class TerrainLayer<ExtraPropsT extends {} = {}> extends Composite
|
|
|
136
142
|
|
|
137
143
|
state!: {
|
|
138
144
|
isTiled?: boolean;
|
|
139
|
-
terrain
|
|
145
|
+
terrain?: MeshAttributes;
|
|
140
146
|
zRange?: ZRange | null;
|
|
141
147
|
};
|
|
142
148
|
|
|
@@ -343,6 +349,10 @@ export default class TerrainLayer<ExtraPropsT extends {} = {}> extends Composite
|
|
|
343
349
|
);
|
|
344
350
|
}
|
|
345
351
|
|
|
352
|
+
if (!elevationData) {
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
|
|
346
356
|
const SubLayerClass = this.getSubLayerClass('mesh', SimpleMeshLayer);
|
|
347
357
|
return new SubLayerClass(
|
|
348
358
|
this.getSubLayerProps({
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {GL} from '@luma.gl/constants';
|
|
2
1
|
import {Geometry} from '@luma.gl/engine';
|
|
3
2
|
|
|
4
3
|
import {
|
|
@@ -255,7 +254,7 @@ export default class Tile3DLayer<DataT = any, ExtraPropsT extends {} = {}> exten
|
|
|
255
254
|
return null;
|
|
256
255
|
}
|
|
257
256
|
|
|
258
|
-
switch (tileHeader.type) {
|
|
257
|
+
switch (tileHeader.type as TILE_TYPE) {
|
|
259
258
|
case TILE_TYPE.POINTCLOUD:
|
|
260
259
|
return this._makePointCloudLayer(tileHeader, oldLayer as PointCloudLayer<DataT>);
|
|
261
260
|
case TILE_TYPE.SCENEGRAPH:
|
|
@@ -13,15 +13,15 @@ import {
|
|
|
13
13
|
import {GeoJsonLayer} from '@deck.gl/layers';
|
|
14
14
|
import {LayersList} from '@deck.gl/core';
|
|
15
15
|
|
|
16
|
-
import type {TileLoadProps, ZRange} from '../tileset-2d';
|
|
16
|
+
import type {TileLoadProps, ZRange} from '../tileset-2d/index';
|
|
17
17
|
import {
|
|
18
18
|
Tileset2D,
|
|
19
19
|
Tile2DHeader,
|
|
20
20
|
RefinementStrategy,
|
|
21
21
|
STRATEGY_DEFAULT,
|
|
22
22
|
Tileset2DProps
|
|
23
|
-
} from '../tileset-2d';
|
|
24
|
-
import {urlType, URLTemplate, getURLFromTemplate} from '../tileset-2d';
|
|
23
|
+
} from '../tileset-2d/index';
|
|
24
|
+
import {urlType, URLTemplate, getURLFromTemplate} from '../tileset-2d/index';
|
|
25
25
|
|
|
26
26
|
const defaultProps: DefaultProps<TileLayerProps> = {
|
|
27
27
|
TilesetClass: Tileset2D,
|
|
@@ -44,6 +44,7 @@ const defaultProps: DefaultProps<TileLayerProps> = {
|
|
|
44
44
|
refinementStrategy: STRATEGY_DEFAULT,
|
|
45
45
|
zRange: null,
|
|
46
46
|
maxRequests: 6,
|
|
47
|
+
debounceTime: 0,
|
|
47
48
|
zoomOffset: 0
|
|
48
49
|
};
|
|
49
50
|
|
|
@@ -128,6 +129,13 @@ type _TileLayerProps<DataT> = {
|
|
|
128
129
|
*/
|
|
129
130
|
maxRequests?: number;
|
|
130
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Queue tile requests until no new tiles have been requested for at least `debounceTime` milliseconds.
|
|
134
|
+
*
|
|
135
|
+
* @default 0
|
|
136
|
+
*/
|
|
137
|
+
debounceTime?: number;
|
|
138
|
+
|
|
131
139
|
/**
|
|
132
140
|
* This offset changes the zoom level at which the tiles are fetched.
|
|
133
141
|
*
|
|
@@ -138,8 +146,14 @@ type _TileLayerProps<DataT> = {
|
|
|
138
146
|
zoomOffset?: number;
|
|
139
147
|
};
|
|
140
148
|
|
|
141
|
-
export type
|
|
149
|
+
export type TileLayerPickingInfo<
|
|
150
|
+
DataT = any,
|
|
151
|
+
SubLayerPickingInfo = PickingInfo
|
|
152
|
+
> = SubLayerPickingInfo & {
|
|
153
|
+
/** The picked tile */
|
|
142
154
|
tile?: Tile2DHeader<DataT>;
|
|
155
|
+
/** the tile that emitted the picking event */
|
|
156
|
+
sourceTile: Tile2DHeader<DataT>;
|
|
143
157
|
};
|
|
144
158
|
|
|
145
159
|
/**
|
|
@@ -171,12 +185,11 @@ export default class TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends
|
|
|
171
185
|
}
|
|
172
186
|
|
|
173
187
|
get isLoaded(): boolean {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
: false;
|
|
188
|
+
return Boolean(
|
|
189
|
+
this.state?.tileset?.selectedTiles?.every(
|
|
190
|
+
tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)
|
|
191
|
+
)
|
|
192
|
+
);
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
shouldUpdateState({changeFlags}): boolean {
|
|
@@ -222,6 +235,7 @@ export default class TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends
|
|
|
222
235
|
maxZoom,
|
|
223
236
|
minZoom,
|
|
224
237
|
maxRequests,
|
|
238
|
+
debounceTime,
|
|
225
239
|
zoomOffset
|
|
226
240
|
} = this.props;
|
|
227
241
|
|
|
@@ -234,6 +248,7 @@ export default class TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends
|
|
|
234
248
|
refinementStrategy,
|
|
235
249
|
extent,
|
|
236
250
|
maxRequests,
|
|
251
|
+
debounceTime,
|
|
237
252
|
zoomOffset,
|
|
238
253
|
|
|
239
254
|
getTileData: this.getTileData.bind(this),
|
|
@@ -325,12 +340,13 @@ export default class TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends
|
|
|
325
340
|
return null;
|
|
326
341
|
}
|
|
327
342
|
|
|
328
|
-
getPickingInfo(
|
|
329
|
-
const sourceTile = (sourceLayer as any).props.tile;
|
|
343
|
+
getPickingInfo(params: GetPickingInfoParams): TileLayerPickingInfo<DataT> {
|
|
344
|
+
const sourceTile: Tile2DHeader<DataT> = (params.sourceLayer as any).props.tile;
|
|
345
|
+
const info = params.info as TileLayerPickingInfo<DataT>;
|
|
330
346
|
if (info.picked) {
|
|
331
|
-
|
|
347
|
+
info.tile = sourceTile;
|
|
332
348
|
}
|
|
333
|
-
|
|
349
|
+
info.sourceTile = sourceTile;
|
|
334
350
|
return info;
|
|
335
351
|
}
|
|
336
352
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import {RequestScheduler} from '@loaders.gl/loader-utils';
|
|
3
3
|
import {TileBoundingBox, TileIndex, TileLoadProps} from './types';
|
|
4
|
+
import type {Layer} from '@deck.gl/core';
|
|
4
5
|
|
|
5
6
|
export type TileLoadDataProps<DataT = any> = {
|
|
6
7
|
requestScheduler: RequestScheduler;
|
|
@@ -17,7 +18,7 @@ export class Tile2DHeader<DataT = any> {
|
|
|
17
18
|
children: Tile2DHeader[] | null;
|
|
18
19
|
content: DataT | null;
|
|
19
20
|
state?: number;
|
|
20
|
-
layers?:
|
|
21
|
+
layers?: Layer[] | null;
|
|
21
22
|
|
|
22
23
|
id!: string; // assigned _always_ with result of `getTileId`
|
|
23
24
|
zoom!: number; // assigned _always_ with result of `getTileZoom`
|
|
@@ -73,6 +73,8 @@ export type Tileset2DProps<DataT = any> = {
|
|
|
73
73
|
zRange?: ZRange | null;
|
|
74
74
|
/** The maximum number of concurrent getTileData calls. @default 6 */
|
|
75
75
|
maxRequests?: number;
|
|
76
|
+
/** Queue tile requests until no new tiles have been requested for at least `debounceTime` milliseconds. @default 0 */
|
|
77
|
+
debounceTime?: number;
|
|
76
78
|
/** Changes the zoom level at which the tiles are fetched. Needs to be an integer. @default 0 */
|
|
77
79
|
zoomOffset?: number;
|
|
78
80
|
|
|
@@ -101,6 +103,7 @@ export const DEFAULT_TILESET2D_PROPS: Omit<Required<Tileset2DProps>, 'getTileDat
|
|
|
101
103
|
refinementStrategy: 'best-available',
|
|
102
104
|
zRange: null,
|
|
103
105
|
maxRequests: 6,
|
|
106
|
+
debounceTime: 0,
|
|
104
107
|
zoomOffset: 0,
|
|
105
108
|
|
|
106
109
|
// onTileLoad: (tile: Tile2DHeader) => void, // onTileUnload: (tile: Tile2DHeader) => void, // onTileError: (error: any, tile: Tile2DHeader) => void, /** Called when all tiles in the current viewport are loaded. */
|
|
@@ -123,7 +126,7 @@ export class Tileset2D {
|
|
|
123
126
|
|
|
124
127
|
private _cacheByteSize: number;
|
|
125
128
|
private _viewport: Viewport | null;
|
|
126
|
-
private _zRange
|
|
129
|
+
private _zRange: ZRange | null;
|
|
127
130
|
private _selectedTiles: Tile2DHeader[] | null;
|
|
128
131
|
private _frameNumber: number;
|
|
129
132
|
private _modelMatrix: Matrix4;
|
|
@@ -140,6 +143,7 @@ export class Tileset2D {
|
|
|
140
143
|
*/
|
|
141
144
|
constructor(opts: Tileset2DProps) {
|
|
142
145
|
this.opts = {...DEFAULT_TILESET2D_PROPS, ...opts};
|
|
146
|
+
this.setOptions(this.opts);
|
|
143
147
|
|
|
144
148
|
this.onTileLoad = tile => {
|
|
145
149
|
this.opts.onTileLoad?.(tile);
|
|
@@ -150,8 +154,9 @@ export class Tileset2D {
|
|
|
150
154
|
};
|
|
151
155
|
|
|
152
156
|
this._requestScheduler = new RequestScheduler({
|
|
153
|
-
|
|
154
|
-
|
|
157
|
+
throttleRequests: this.opts.maxRequests > 0 || this.opts.debounceTime > 0,
|
|
158
|
+
maxRequests: this.opts.maxRequests,
|
|
159
|
+
debounceTime: this.opts.debounceTime
|
|
155
160
|
});
|
|
156
161
|
|
|
157
162
|
// Maps tile id in string {z}-{x}-{y} to a Tile object
|
|
@@ -162,13 +167,12 @@ export class Tileset2D {
|
|
|
162
167
|
|
|
163
168
|
// Cache the last processed viewport
|
|
164
169
|
this._viewport = null;
|
|
170
|
+
this._zRange = null;
|
|
165
171
|
this._selectedTiles = null;
|
|
166
172
|
this._frameNumber = 0;
|
|
167
173
|
|
|
168
174
|
this._modelMatrix = new Matrix4();
|
|
169
175
|
this._modelMatrixInverse = new Matrix4();
|
|
170
|
-
|
|
171
|
-
this.setOptions(opts);
|
|
172
176
|
}
|
|
173
177
|
|
|
174
178
|
/* Public API */
|
|
@@ -226,7 +230,10 @@ export class Tileset2D {
|
|
|
226
230
|
*/
|
|
227
231
|
update(
|
|
228
232
|
viewport: Viewport,
|
|
229
|
-
{zRange, modelMatrix}: {zRange
|
|
233
|
+
{zRange, modelMatrix}: {zRange: ZRange | null; modelMatrix: NumericArray | null} = {
|
|
234
|
+
zRange: null,
|
|
235
|
+
modelMatrix: null
|
|
236
|
+
}
|
|
230
237
|
): number {
|
|
231
238
|
const modelMatrixAsMatrix4 = modelMatrix ? new Matrix4(modelMatrix) : new Matrix4();
|
|
232
239
|
const isModelMatrixNew = !modelMatrixAsMatrix4.equals(this._modelMatrix);
|
|
@@ -326,7 +333,7 @@ export class Tileset2D {
|
|
|
326
333
|
viewport: Viewport;
|
|
327
334
|
maxZoom?: number;
|
|
328
335
|
minZoom?: number;
|
|
329
|
-
zRange
|
|
336
|
+
zRange: ZRange | null;
|
|
330
337
|
tileSize?: number;
|
|
331
338
|
modelMatrix?: Matrix4;
|
|
332
339
|
modelMatrixInverse?: Matrix4;
|
package/src/tileset-2d/utils.ts
CHANGED
|
@@ -138,7 +138,7 @@ export function getCullBounds({
|
|
|
138
138
|
/** Current viewport */
|
|
139
139
|
viewport: Viewport;
|
|
140
140
|
/** Current z range */
|
|
141
|
-
z
|
|
141
|
+
z: ZRange | number | null;
|
|
142
142
|
/** Culling rectangle in screen space */
|
|
143
143
|
cullRect: {x: number; y: number; width: number; height: number};
|
|
144
144
|
}): [number, number, number, number][] {
|
|
@@ -273,7 +273,7 @@ export function getTileIndices({
|
|
|
273
273
|
viewport: Viewport;
|
|
274
274
|
maxZoom?: number;
|
|
275
275
|
minZoom?: number;
|
|
276
|
-
zRange
|
|
276
|
+
zRange: ZRange | null;
|
|
277
277
|
extent?: Bounds;
|
|
278
278
|
tileSize?: number;
|
|
279
279
|
modelMatrix?: Matrix4;
|
|
@@ -58,7 +58,7 @@ type _TripsLayerProps<DataT = unknown> = {
|
|
|
58
58
|
/** Render animated paths that represent vehicle trips. */
|
|
59
59
|
export default class TripsLayer<DataT = any, ExtraProps extends {} = {}> extends PathLayer<
|
|
60
60
|
DataT,
|
|
61
|
-
Required<_TripsLayerProps
|
|
61
|
+
Required<_TripsLayerProps<DataT>> & ExtraProps
|
|
62
62
|
> {
|
|
63
63
|
static layerName = 'TripsLayer';
|
|
64
64
|
static defaultProps = defaultProps;
|
|
@@ -86,7 +86,7 @@ export class WMSLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<
|
|
|
86
86
|
/** Returns true if all async resources are loaded */
|
|
87
87
|
get isLoaded(): boolean {
|
|
88
88
|
// Track the explicit loading done by this layer
|
|
89
|
-
return
|
|
89
|
+
return this.state?.loadCounter === 0 && super.isLoaded;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
/** Lets deck.gl know that we want viewport change events */
|