@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.
Files changed (263) hide show
  1. package/dist/dist.dev.js +2574 -5044
  2. package/dist/geo-cell-layer/GeoCellLayer.js +51 -0
  3. package/{typed → dist}/geohash-layer/geohash-layer.d.ts +1 -1
  4. package/dist/geohash-layer/geohash-layer.d.ts.map +1 -0
  5. package/dist/geohash-layer/geohash-layer.js +19 -0
  6. package/dist/geohash-layer/geohash-utils.js +50 -0
  7. package/dist/great-circle-layer/great-circle-layer.js +12 -0
  8. package/{typed → dist}/h3-layers/h3-cluster-layer.d.ts +1 -1
  9. package/dist/h3-layers/h3-cluster-layer.d.ts.map +1 -0
  10. package/dist/h3-layers/h3-cluster-layer.js +47 -0
  11. package/dist/h3-layers/h3-hexagon-layer.js +204 -0
  12. package/dist/h3-layers/h3-utils.js +56 -0
  13. package/dist/index.cjs +3160 -0
  14. package/dist/index.cjs.map +7 -0
  15. package/dist/index.d.ts +31 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +36 -0
  18. package/dist/mesh-layer/mesh-layer-fragment.glsl.d.ts +3 -0
  19. package/{typed → dist}/mesh-layer/mesh-layer-fragment.glsl.d.ts.map +1 -1
  20. package/dist/mesh-layer/mesh-layer-fragment.glsl.js +33 -0
  21. package/dist/mesh-layer/mesh-layer-vertex.glsl.js +63 -0
  22. package/{typed → dist}/mesh-layer/mesh-layer.d.ts.map +1 -1
  23. package/dist/mesh-layer/mesh-layer.js +128 -0
  24. package/{typed → dist}/mvt-layer/coordinate-transform.d.ts +1 -1
  25. package/{typed → dist}/mvt-layer/coordinate-transform.d.ts.map +1 -1
  26. package/dist/mvt-layer/coordinate-transform.js +41 -0
  27. package/dist/mvt-layer/find-index-binary.d.ts +11 -0
  28. package/dist/mvt-layer/find-index-binary.d.ts.map +1 -0
  29. package/dist/mvt-layer/find-index-binary.js +96 -0
  30. package/{typed → dist}/mvt-layer/mvt-layer.d.ts +13 -11
  31. package/dist/mvt-layer/mvt-layer.d.ts.map +1 -0
  32. package/dist/mvt-layer/mvt-layer.js +305 -0
  33. package/{typed → dist}/quadkey-layer/quadkey-layer.d.ts +1 -1
  34. package/dist/quadkey-layer/quadkey-layer.d.ts.map +1 -0
  35. package/dist/quadkey-layer/quadkey-layer.js +22 -0
  36. package/dist/quadkey-layer/quadkey-utils.js +26 -0
  37. package/dist/s2-layer/s2-geometry.js +123 -0
  38. package/{typed → dist}/s2-layer/s2-layer.d.ts +1 -1
  39. package/dist/s2-layer/s2-layer.d.ts.map +1 -0
  40. package/dist/s2-layer/s2-layer.js +38 -0
  41. package/dist/s2-layer/s2-utils.js +87 -0
  42. package/{typed → dist}/terrain-layer/terrain-layer.d.ts +4 -4
  43. package/dist/terrain-layer/terrain-layer.d.ts.map +1 -0
  44. package/dist/terrain-layer/terrain-layer.js +233 -0
  45. package/{typed → dist}/tile-3d-layer/tile-3d-layer.d.ts +15 -1
  46. package/{typed → dist}/tile-3d-layer/tile-3d-layer.d.ts.map +1 -1
  47. package/dist/tile-3d-layer/tile-3d-layer.js +302 -0
  48. package/{typed → dist}/tile-layer/tile-layer.d.ts +14 -5
  49. package/dist/tile-layer/tile-layer.d.ts.map +1 -0
  50. package/dist/tile-layer/tile-layer.js +207 -0
  51. package/dist/tileset-2d/index.d.ts +7 -0
  52. package/dist/tileset-2d/index.d.ts.map +1 -0
  53. package/dist/tileset-2d/index.js +4 -0
  54. package/dist/tileset-2d/memoize.js +41 -0
  55. package/{typed → dist}/tileset-2d/tile-2d-header.d.ts +3 -2
  56. package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -0
  57. package/dist/tileset-2d/tile-2d-header.js +135 -0
  58. package/dist/tileset-2d/tile-2d-traversal.d.ts +4 -0
  59. package/dist/tileset-2d/tile-2d-traversal.d.ts.map +1 -0
  60. package/dist/tileset-2d/tile-2d-traversal.js +182 -0
  61. package/{typed → dist}/tileset-2d/tileset-2d.d.ts +9 -7
  62. package/dist/tileset-2d/tileset-2d.d.ts.map +1 -0
  63. package/dist/tileset-2d/tileset-2d.js +458 -0
  64. package/dist/tileset-2d/types.js +1 -0
  65. package/{typed → dist}/tileset-2d/utils.d.ts +3 -3
  66. package/dist/tileset-2d/utils.d.ts.map +1 -0
  67. package/dist/tileset-2d/utils.js +234 -0
  68. package/{typed → dist}/trips-layer/trips-layer.d.ts +1 -1
  69. package/{typed → dist}/trips-layer/trips-layer.d.ts.map +1 -1
  70. package/dist/trips-layer/trips-layer.js +93 -0
  71. package/dist/wms-layer/utils.js +13 -0
  72. package/dist/wms-layer/wms-layer.js +192 -0
  73. package/dist.min.js +243 -564
  74. package/package.json +30 -23
  75. package/src/index.ts +7 -7
  76. package/src/mesh-layer/mesh-layer-fragment.glsl.ts +1 -9
  77. package/src/mesh-layer/mesh-layer.ts +1 -2
  78. package/src/mvt-layer/coordinate-transform.ts +1 -1
  79. package/src/mvt-layer/find-index-binary.ts +5 -9
  80. package/src/mvt-layer/mvt-layer.ts +36 -25
  81. package/src/terrain-layer/terrain-layer.ts +13 -3
  82. package/src/tile-3d-layer/tile-3d-layer.ts +1 -2
  83. package/src/tile-layer/tile-layer.ts +30 -14
  84. package/src/tileset-2d/tile-2d-header.ts +2 -1
  85. package/src/tileset-2d/tile-2d-traversal.ts +1 -1
  86. package/src/tileset-2d/tileset-2d.ts +14 -7
  87. package/src/tileset-2d/utils.ts +2 -2
  88. package/src/trips-layer/trips-layer.ts +1 -1
  89. package/src/wms-layer/wms-layer.ts +1 -1
  90. package/dist/es5/geo-cell-layer/GeoCellLayer.js +0 -118
  91. package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +0 -1
  92. package/dist/es5/geohash-layer/geohash-layer.js +0 -67
  93. package/dist/es5/geohash-layer/geohash-layer.js.map +0 -1
  94. package/dist/es5/geohash-layer/geohash-utils.js +0 -77
  95. package/dist/es5/geohash-layer/geohash-utils.js.map +0 -1
  96. package/dist/es5/great-circle-layer/great-circle-layer.js +0 -48
  97. package/dist/es5/great-circle-layer/great-circle-layer.js.map +0 -1
  98. package/dist/es5/h3-layers/h3-cluster-layer.js +0 -162
  99. package/dist/es5/h3-layers/h3-cluster-layer.js.map +0 -1
  100. package/dist/es5/h3-layers/h3-hexagon-layer.js +0 -351
  101. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +0 -1
  102. package/dist/es5/h3-layers/h3-utils.js +0 -111
  103. package/dist/es5/h3-layers/h3-utils.js.map +0 -1
  104. package/dist/es5/index.js +0 -132
  105. package/dist/es5/index.js.map +0 -1
  106. package/dist/es5/mesh-layer/mesh-layer-fragment.glsl.js +0 -9
  107. package/dist/es5/mesh-layer/mesh-layer-fragment.glsl.js.map +0 -1
  108. package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js +0 -9
  109. package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js.map +0 -1
  110. package/dist/es5/mesh-layer/mesh-layer.js +0 -217
  111. package/dist/es5/mesh-layer/mesh-layer.js.map +0 -1
  112. package/dist/es5/mvt-layer/coordinate-transform.js +0 -83
  113. package/dist/es5/mvt-layer/coordinate-transform.js.map +0 -1
  114. package/dist/es5/mvt-layer/find-index-binary.js +0 -127
  115. package/dist/es5/mvt-layer/find-index-binary.js.map +0 -1
  116. package/dist/es5/mvt-layer/mvt-layer.js +0 -533
  117. package/dist/es5/mvt-layer/mvt-layer.js.map +0 -1
  118. package/dist/es5/quadkey-layer/quadkey-layer.js +0 -72
  119. package/dist/es5/quadkey-layer/quadkey-layer.js.map +0 -1
  120. package/dist/es5/quadkey-layer/quadkey-utils.js +0 -53
  121. package/dist/es5/quadkey-layer/quadkey-utils.js.map +0 -1
  122. package/dist/es5/s2-layer/s2-geometry.js +0 -158
  123. package/dist/es5/s2-layer/s2-geometry.js.map +0 -1
  124. package/dist/es5/s2-layer/s2-layer.js +0 -67
  125. package/dist/es5/s2-layer/s2-layer.js.map +0 -1
  126. package/dist/es5/s2-layer/s2-utils.js +0 -80
  127. package/dist/es5/s2-layer/s2-utils.js.map +0 -1
  128. package/dist/es5/terrain-layer/terrain-layer.js +0 -347
  129. package/dist/es5/terrain-layer/terrain-layer.js.map +0 -1
  130. package/dist/es5/tile-3d-layer/tile-3d-layer.js +0 -511
  131. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +0 -1
  132. package/dist/es5/tile-layer/tile-layer.js +0 -363
  133. package/dist/es5/tile-layer/tile-layer.js.map +0 -1
  134. package/dist/es5/tileset-2d/index.js +0 -66
  135. package/dist/es5/tileset-2d/index.js.map +0 -1
  136. package/dist/es5/tileset-2d/memoize.js +0 -47
  137. package/dist/es5/tileset-2d/memoize.js.map +0 -1
  138. package/dist/es5/tileset-2d/tile-2d-header.js +0 -250
  139. package/dist/es5/tileset-2d/tile-2d-header.js.map +0 -1
  140. package/dist/es5/tileset-2d/tile-2d-traversal.js +0 -256
  141. package/dist/es5/tileset-2d/tile-2d-traversal.js.map +0 -1
  142. package/dist/es5/tileset-2d/tileset-2d.js +0 -757
  143. package/dist/es5/tileset-2d/tileset-2d.js.map +0 -1
  144. package/dist/es5/tileset-2d/types.js +0 -2
  145. package/dist/es5/tileset-2d/types.js.map +0 -1
  146. package/dist/es5/tileset-2d/utils.js +0 -302
  147. package/dist/es5/tileset-2d/utils.js.map +0 -1
  148. package/dist/es5/trips-layer/trips-layer.js +0 -114
  149. package/dist/es5/trips-layer/trips-layer.js.map +0 -1
  150. package/dist/es5/wms-layer/utils.js +0 -18
  151. package/dist/es5/wms-layer/utils.js.map +0 -1
  152. package/dist/es5/wms-layer/wms-layer.js +0 -376
  153. package/dist/es5/wms-layer/wms-layer.js.map +0 -1
  154. package/dist/esm/geo-cell-layer/GeoCellLayer.js +0 -72
  155. package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +0 -1
  156. package/dist/esm/geohash-layer/geohash-layer.js +0 -26
  157. package/dist/esm/geohash-layer/geohash-layer.js.map +0 -1
  158. package/dist/esm/geohash-layer/geohash-utils.js +0 -56
  159. package/dist/esm/geohash-layer/geohash-utils.js.map +0 -1
  160. package/dist/esm/great-circle-layer/great-circle-layer.js +0 -12
  161. package/dist/esm/great-circle-layer/great-circle-layer.js.map +0 -1
  162. package/dist/esm/h3-layers/h3-cluster-layer.js +0 -79
  163. package/dist/esm/h3-layers/h3-cluster-layer.js.map +0 -1
  164. package/dist/esm/h3-layers/h3-hexagon-layer.js +0 -280
  165. package/dist/esm/h3-layers/h3-hexagon-layer.js.map +0 -1
  166. package/dist/esm/h3-layers/h3-utils.js +0 -54
  167. package/dist/esm/h3-layers/h3-utils.js.map +0 -1
  168. package/dist/esm/index.js +0 -17
  169. package/dist/esm/index.js.map +0 -1
  170. package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js +0 -56
  171. package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js.map +0 -1
  172. package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +0 -85
  173. package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +0 -1
  174. package/dist/esm/mesh-layer/mesh-layer.js +0 -178
  175. package/dist/esm/mesh-layer/mesh-layer.js.map +0 -1
  176. package/dist/esm/mvt-layer/coordinate-transform.js +0 -49
  177. package/dist/esm/mvt-layer/coordinate-transform.js.map +0 -1
  178. package/dist/esm/mvt-layer/find-index-binary.js +0 -99
  179. package/dist/esm/mvt-layer/find-index-binary.js.map +0 -1
  180. package/dist/esm/mvt-layer/mvt-layer.js +0 -427
  181. package/dist/esm/mvt-layer/mvt-layer.js.map +0 -1
  182. package/dist/esm/quadkey-layer/quadkey-layer.js +0 -31
  183. package/dist/esm/quadkey-layer/quadkey-layer.js.map +0 -1
  184. package/dist/esm/quadkey-layer/quadkey-utils.js +0 -24
  185. package/dist/esm/quadkey-layer/quadkey-utils.js.map +0 -1
  186. package/dist/esm/s2-layer/s2-geometry.js +0 -126
  187. package/dist/esm/s2-layer/s2-geometry.js.map +0 -1
  188. package/dist/esm/s2-layer/s2-layer.js +0 -26
  189. package/dist/esm/s2-layer/s2-layer.js.map +0 -1
  190. package/dist/esm/s2-layer/s2-utils.js +0 -69
  191. package/dist/esm/s2-layer/s2-utils.js.map +0 -1
  192. package/dist/esm/terrain-layer/terrain-layer.js +0 -292
  193. package/dist/esm/terrain-layer/terrain-layer.js.map +0 -1
  194. package/dist/esm/tile-3d-layer/tile-3d-layer.js +0 -438
  195. package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +0 -1
  196. package/dist/esm/tile-layer/tile-layer.js +0 -299
  197. package/dist/esm/tile-layer/tile-layer.js.map +0 -1
  198. package/dist/esm/tileset-2d/index.js +0 -4
  199. package/dist/esm/tileset-2d/index.js.map +0 -1
  200. package/dist/esm/tileset-2d/memoize.js +0 -40
  201. package/dist/esm/tileset-2d/memoize.js.map +0 -1
  202. package/dist/esm/tileset-2d/tile-2d-header.js +0 -179
  203. package/dist/esm/tileset-2d/tile-2d-header.js.map +0 -1
  204. package/dist/esm/tileset-2d/tile-2d-traversal.js +0 -184
  205. package/dist/esm/tileset-2d/tile-2d-traversal.js.map +0 -1
  206. package/dist/esm/tileset-2d/tileset-2d.js +0 -509
  207. package/dist/esm/tileset-2d/tileset-2d.js.map +0 -1
  208. package/dist/esm/tileset-2d/types.js +0 -2
  209. package/dist/esm/tileset-2d/types.js.map +0 -1
  210. package/dist/esm/tileset-2d/utils.js +0 -233
  211. package/dist/esm/tileset-2d/utils.js.map +0 -1
  212. package/dist/esm/trips-layer/trips-layer.js +0 -88
  213. package/dist/esm/trips-layer/trips-layer.js.map +0 -1
  214. package/dist/esm/wms-layer/utils.js +0 -9
  215. package/dist/esm/wms-layer/utils.js.map +0 -1
  216. package/dist/esm/wms-layer/wms-layer.js +0 -231
  217. package/dist/esm/wms-layer/wms-layer.js.map +0 -1
  218. package/typed/geohash-layer/geohash-layer.d.ts.map +0 -1
  219. package/typed/h3-layers/h3-cluster-layer.d.ts.map +0 -1
  220. package/typed/index.d.ts +0 -31
  221. package/typed/index.d.ts.map +0 -1
  222. package/typed/mesh-layer/mesh-layer-fragment.glsl.d.ts +0 -3
  223. package/typed/mvt-layer/find-index-binary.d.ts +0 -12
  224. package/typed/mvt-layer/find-index-binary.d.ts.map +0 -1
  225. package/typed/mvt-layer/mvt-layer.d.ts.map +0 -1
  226. package/typed/quadkey-layer/quadkey-layer.d.ts.map +0 -1
  227. package/typed/s2-layer/s2-layer.d.ts.map +0 -1
  228. package/typed/terrain-layer/terrain-layer.d.ts.map +0 -1
  229. package/typed/tile-layer/tile-layer.d.ts.map +0 -1
  230. package/typed/tileset-2d/index.d.ts +0 -7
  231. package/typed/tileset-2d/index.d.ts.map +0 -1
  232. package/typed/tileset-2d/tile-2d-header.d.ts.map +0 -1
  233. package/typed/tileset-2d/tile-2d-traversal.d.ts +0 -4
  234. package/typed/tileset-2d/tile-2d-traversal.d.ts.map +0 -1
  235. package/typed/tileset-2d/tileset-2d.d.ts.map +0 -1
  236. package/typed/tileset-2d/utils.d.ts.map +0 -1
  237. /package/{typed → dist}/geo-cell-layer/GeoCellLayer.d.ts +0 -0
  238. /package/{typed → dist}/geo-cell-layer/GeoCellLayer.d.ts.map +0 -0
  239. /package/{typed → dist}/geohash-layer/geohash-utils.d.ts +0 -0
  240. /package/{typed → dist}/geohash-layer/geohash-utils.d.ts.map +0 -0
  241. /package/{typed → dist}/great-circle-layer/great-circle-layer.d.ts +0 -0
  242. /package/{typed → dist}/great-circle-layer/great-circle-layer.d.ts.map +0 -0
  243. /package/{typed → dist}/h3-layers/h3-hexagon-layer.d.ts +0 -0
  244. /package/{typed → dist}/h3-layers/h3-hexagon-layer.d.ts.map +0 -0
  245. /package/{typed → dist}/h3-layers/h3-utils.d.ts +0 -0
  246. /package/{typed → dist}/h3-layers/h3-utils.d.ts.map +0 -0
  247. /package/{typed → dist}/mesh-layer/mesh-layer-vertex.glsl.d.ts +0 -0
  248. /package/{typed → dist}/mesh-layer/mesh-layer-vertex.glsl.d.ts.map +0 -0
  249. /package/{typed → dist}/mesh-layer/mesh-layer.d.ts +0 -0
  250. /package/{typed → dist}/quadkey-layer/quadkey-utils.d.ts +0 -0
  251. /package/{typed → dist}/quadkey-layer/quadkey-utils.d.ts.map +0 -0
  252. /package/{typed → dist}/s2-layer/s2-geometry.d.ts +0 -0
  253. /package/{typed → dist}/s2-layer/s2-geometry.d.ts.map +0 -0
  254. /package/{typed → dist}/s2-layer/s2-utils.d.ts +0 -0
  255. /package/{typed → dist}/s2-layer/s2-utils.d.ts.map +0 -0
  256. /package/{typed → dist}/tileset-2d/memoize.d.ts +0 -0
  257. /package/{typed → dist}/tileset-2d/memoize.d.ts.map +0 -0
  258. /package/{typed → dist}/tileset-2d/types.d.ts +0 -0
  259. /package/{typed → dist}/tileset-2d/types.d.ts.map +0 -0
  260. /package/{typed → dist}/wms-layer/utils.d.ts +0 -0
  261. /package/{typed → dist}/wms-layer/utils.d.ts.map +0 -0
  262. /package/{typed → dist}/wms-layer/wms-layer.d.ts +0 -0
  263. /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
- "version": "9.0.0-alpha.7",
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
- "main": "dist/es5/index.js",
20
- "module": "dist/esm/index.js",
21
- "types": "typed/index.d.ts",
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
- "@babel/runtime": "^7.0.0",
35
- "@loaders.gl/3d-tiles": "4.1.0-alpha.9",
36
- "@loaders.gl/gis": "4.1.0-alpha.9",
37
- "@loaders.gl/loader-utils": "4.1.0-alpha.9",
38
- "@loaders.gl/mvt": "4.1.0-alpha.9",
39
- "@loaders.gl/schema": "4.1.0-alpha.9",
40
- "@loaders.gl/terrain": "4.1.0-alpha.9",
41
- "@loaders.gl/tiles": "4.1.0-alpha.9",
42
- "@loaders.gl/wms": "4.1.0-alpha.9",
43
- "@luma.gl/core": "9.0.0-alpha.53",
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-alpha",
53
- "@deck.gl/extensions": "^9.0.0-alpha",
54
- "@deck.gl/layers": "^9.0.0-alpha",
55
- "@deck.gl/mesh-layers": "^9.0.0-alpha",
56
- "@loaders.gl/core": "4.1.0-alpha.9",
57
- "@luma.gl/core": "9.0.0-alpha.53",
58
- "@luma.gl/shadertools": "9.0.0-alpha.53"
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": "de061268077ab74e163792162efbc07be95d10f5"
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
- // NOTE(Tarek): This is necessary because
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: GL.UNSIGNED_BYTE,
74
+ type: 'uint8',
76
75
  size: 3,
77
76
  noAlloc: true,
78
77
  // eslint-disable-next-line @typescript-eslint/unbound-method
@@ -1,6 +1,6 @@
1
1
  import {Viewport} from '@deck.gl/core';
2
2
  import {lerp} from '@math.gl/core';
3
- import {GeoBoundingBox} from '../tileset-2d';
3
+ import {GeoBoundingBox} from '../tileset-2d/index';
4
4
 
5
5
  const availableTransformations = {
6
6
  Point,
@@ -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, {TiledPickingInfo, TileLayerProps} from '../tile-layer/tile-layer';
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<GeoJsonLayerProps, 'data'> &
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<ExtraProps extends {} = {}> extends TileLayer<
100
- ParsedMvtTile,
101
- Required<_MVTLayerProps> & ExtraProps
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: any;
110
- highlightColor: number[];
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 && this.state.data && this.state.tileset && super.isLoaded);
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: any = this.props.data;
149
- let tileJSON: any = null;
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.tilejson) {
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 | undefined = this.state.tileJSON;
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): TiledPickingInfo {
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 {Bounds, GeoBoundingBox, TileBoundingBox, TileLoadProps, ZRange} from '../tileset-2d';
39
- import {Tile2DHeader, urlType, getURLFromTemplate, URLTemplate} from '../tileset-2d';
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: MeshAttributes;
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 TiledPickingInfo<DataT = any> = PickingInfo & {
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
- const selectedTiles = this.state?.tileset?.selectedTiles;
175
- return selectedTiles
176
- ? selectedTiles.every(
177
- tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)
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({info, sourceLayer}: GetPickingInfoParams): TiledPickingInfo<DataT> {
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
- (info as any).tile = sourceTile;
347
+ info.tile = sourceTile;
332
348
  }
333
- (info as any).sourceTile = sourceTile;
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?: any[] | null; // Layer[] | null
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`
@@ -183,7 +183,7 @@ class OSMNode {
183
183
  export function getOSMTileIndices(
184
184
  viewport: Viewport,
185
185
  maxZ: number,
186
- zRange?: ZRange | null,
186
+ zRange: ZRange | null,
187
187
  bounds?: Bounds
188
188
  ): TileIndex[] {
189
189
  const project: ((xyz: number[]) => number[]) | null =
@@ -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?: ZRange | null;
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
- maxRequests: opts.maxRequests,
154
- throttleRequests: Boolean(opts.maxRequests && opts.maxRequests > 0)
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?: ZRange | null; modelMatrix?: NumericArray | null} = {}
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?: ZRange | null;
336
+ zRange: ZRange | null;
330
337
  tileSize?: number;
331
338
  modelMatrix?: Matrix4;
332
339
  modelMatrixInverse?: Matrix4;
@@ -138,7 +138,7 @@ export function getCullBounds({
138
138
  /** Current viewport */
139
139
  viewport: Viewport;
140
140
  /** Current z range */
141
- z?: ZRange | number | null;
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?: ZRange | null;
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> & ExtraProps
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 Boolean(this.state) && this.state.loadCounter === 0 && super.isLoaded;
89
+ return this.state?.loadCounter === 0 && super.isLoaded;
90
90
  }
91
91
 
92
92
  /** Lets deck.gl know that we want viewport change events */