@developmentseed/deck.gl-raster 0.7.0-beta.1 → 0.8.0-beta.1

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 (94) hide show
  1. package/dist/fp64.d.ts +18 -0
  2. package/dist/fp64.d.ts.map +1 -0
  3. package/dist/fp64.js +28 -0
  4. package/dist/fp64.js.map +1 -0
  5. package/dist/globe-grid-mesh.d.ts +30 -0
  6. package/dist/globe-grid-mesh.d.ts.map +1 -0
  7. package/dist/globe-grid-mesh.js +67 -0
  8. package/dist/globe-grid-mesh.js.map +1 -0
  9. package/dist/gpu-modules/cutline-bbox.d.ts +26 -40
  10. package/dist/gpu-modules/cutline-bbox.d.ts.map +1 -1
  11. package/dist/gpu-modules/cutline-bbox.js +24 -53
  12. package/dist/gpu-modules/cutline-bbox.js.map +1 -1
  13. package/dist/gpu-modules/index.d.ts +1 -1
  14. package/dist/gpu-modules/index.d.ts.map +1 -1
  15. package/dist/gpu-modules/index.js +1 -1
  16. package/dist/gpu-modules/index.js.map +1 -1
  17. package/dist/index.d.ts +4 -4
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +4 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/layer-utils.d.ts +2 -2
  22. package/dist/layer-utils.d.ts.map +1 -1
  23. package/dist/layer-utils.js.map +1 -1
  24. package/dist/mesh-layer/mesh-layer-fragment.glsl.d.ts +1 -1
  25. package/dist/mesh-layer/mesh-layer-fragment.glsl.js +1 -1
  26. package/dist/mesh-layer/mesh-layer-vertex.glsl.d.ts +3 -0
  27. package/dist/mesh-layer/mesh-layer-vertex.glsl.d.ts.map +1 -0
  28. package/dist/mesh-layer/mesh-layer-vertex.glsl.js +90 -0
  29. package/dist/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -0
  30. package/dist/mesh-layer/mesh-layer.d.ts +31 -5
  31. package/dist/mesh-layer/mesh-layer.d.ts.map +1 -1
  32. package/dist/mesh-layer/mesh-layer.js +67 -3
  33. package/dist/mesh-layer/mesh-layer.js.map +1 -1
  34. package/dist/multi-raster-tileset/index.d.ts +2 -2
  35. package/dist/multi-raster-tileset/index.d.ts.map +1 -1
  36. package/dist/multi-raster-tileset/index.js +1 -1
  37. package/dist/multi-raster-tileset/index.js.map +1 -1
  38. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts +21 -21
  39. package/dist/multi-raster-tileset/multi-tileset-descriptor.d.ts.map +1 -1
  40. package/dist/multi-raster-tileset/multi-tileset-descriptor.js +11 -11
  41. package/dist/multi-raster-tileset/multi-tileset-descriptor.js.map +1 -1
  42. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts +4 -4
  43. package/dist/multi-raster-tileset/secondary-tile-resolver.d.ts.map +1 -1
  44. package/dist/multi-raster-tileset/secondary-tile-resolver.js +2 -2
  45. package/dist/multi-raster-tileset/secondary-tile-resolver.js.map +1 -1
  46. package/dist/raster-layer.d.ts +39 -4
  47. package/dist/raster-layer.d.ts.map +1 -1
  48. package/dist/raster-layer.js +51 -35
  49. package/dist/raster-layer.js.map +1 -1
  50. package/dist/raster-tile-layer/raster-tile-layer.d.ts +6 -6
  51. package/dist/raster-tile-layer/raster-tile-layer.d.ts.map +1 -1
  52. package/dist/raster-tile-layer/raster-tile-layer.js +40 -31
  53. package/dist/raster-tile-layer/raster-tile-layer.js.map +1 -1
  54. package/dist/raster-tileset/affine-tileset-level.d.ts +4 -4
  55. package/dist/raster-tileset/affine-tileset-level.d.ts.map +1 -1
  56. package/dist/raster-tileset/affine-tileset-level.js +2 -2
  57. package/dist/raster-tileset/affine-tileset.d.ts +3 -3
  58. package/dist/raster-tileset/affine-tileset.d.ts.map +1 -1
  59. package/dist/raster-tileset/affine-tileset.js +1 -1
  60. package/dist/raster-tileset/bounding-volume-cache.d.ts +11 -4
  61. package/dist/raster-tileset/bounding-volume-cache.d.ts.map +1 -1
  62. package/dist/raster-tileset/bounding-volume-cache.js +13 -4
  63. package/dist/raster-tileset/bounding-volume-cache.js.map +1 -1
  64. package/dist/raster-tileset/index.d.ts +3 -2
  65. package/dist/raster-tileset/index.d.ts.map +1 -1
  66. package/dist/raster-tileset/index.js +1 -0
  67. package/dist/raster-tileset/index.js.map +1 -1
  68. package/dist/raster-tileset/raster-tile-traversal.d.ts +68 -13
  69. package/dist/raster-tileset/raster-tile-traversal.d.ts.map +1 -1
  70. package/dist/raster-tileset/raster-tile-traversal.js +240 -35
  71. package/dist/raster-tileset/raster-tile-traversal.js.map +1 -1
  72. package/dist/raster-tileset/raster-tileset-2d.d.ts +64 -6
  73. package/dist/raster-tileset/raster-tileset-2d.d.ts.map +1 -1
  74. package/dist/raster-tileset/raster-tileset-2d.js +75 -2
  75. package/dist/raster-tileset/raster-tileset-2d.js.map +1 -1
  76. package/dist/raster-tileset/sort-by-distance.d.ts +41 -0
  77. package/dist/raster-tileset/sort-by-distance.d.ts.map +1 -0
  78. package/dist/raster-tileset/sort-by-distance.js +72 -0
  79. package/dist/raster-tileset/sort-by-distance.js.map +1 -0
  80. package/dist/raster-tileset/tile-matrix-set.d.ts +4 -4
  81. package/dist/raster-tileset/tile-matrix-set.d.ts.map +1 -1
  82. package/dist/raster-tileset/tile-matrix-set.js +1 -1
  83. package/dist/raster-tileset/tile-matrix-set.js.map +1 -1
  84. package/dist/raster-tileset/tileset-interface.d.ts +3 -3
  85. package/dist/raster-tileset/tileset-interface.d.ts.map +1 -1
  86. package/dist/raster-tileset/web-mercator-clamp.d.ts +29 -0
  87. package/dist/raster-tileset/web-mercator-clamp.d.ts.map +1 -0
  88. package/dist/raster-tileset/web-mercator-clamp.js +54 -0
  89. package/dist/raster-tileset/web-mercator-clamp.js.map +1 -0
  90. package/package.json +7 -7
  91. package/dist/raster-tile-layer/constants.d.ts +0 -11
  92. package/dist/raster-tile-layer/constants.d.ts.map +0 -1
  93. package/dist/raster-tile-layer/constants.js +0 -11
  94. package/dist/raster-tile-layer/constants.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAmC3D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,GACzD;IAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAWD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAC/D,OAAgB,SAAS,SAAiB;IAC1C,OAAgB,YAAY,iCAAgB;IAEpC,KAAK,EAAE;QACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,IAAI,CAAC,EAAE;YACL,SAAS,EAAE,YAAY,CAAC;YACxB,OAAO,EAAE,WAAW,CAAC;YACrB,SAAS,EAAE,YAAY,CAAC;SACzB,CAAC;KACH,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IA8BnD,SAAS,CAAC,aAAa,IAAI,IAAI;IAiC/B,gBAAgB,IAAI,KAAK,GAAG,IAAI;IA6DhC,YAAY;CAoDb"}
1
+ {"version":3,"file":"raster-layer.d.ts","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAmC3D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,GACzD;IAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAWD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAC/D,OAAgB,SAAS,SAAiB;IAC1C,OAAgB,YAAY,iCAAgB;IAEpC,KAAK,EAAE;QACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC;;;;;;WAMG;QACH,IAAI,CAAC,EAAE;YACL,OAAO,EAAE;gBAAE,KAAK,EAAE,WAAW,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAC9C,UAAU,EAAE;gBACV,QAAQ,EAAE;oBAAE,KAAK,EAAE,YAAY,CAAC;oBAAC,IAAI,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAChD,UAAU,EAAE;oBAAE,KAAK,EAAE,YAAY,CAAC;oBAAC,IAAI,EAAE,MAAM,CAAA;iBAAE,CAAC;aACnD,CAAC;SACH,CAAC;QACF;;;;;;;;WAQG;QACH,cAAc,CAAC,EAAE,YAAY,CAAC;KAC/B,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IA+BnD,SAAS,CAAC,aAAa,IAAI,IAAI;IAgE/B,gBAAgB,IAAI,KAAK,GAAG,IAAI;IA6DhC,YAAY;CAoCb"}
@@ -1,6 +1,8 @@
1
1
  import { CompositeLayer } from "@deck.gl/core";
2
2
  import { PolygonLayer } from "@deck.gl/layers";
3
3
  import { RasterReprojector } from "@developmentseed/raster-reproject";
4
+ import { splitFloat64Array } from "./fp64.js";
5
+ import { buildUniformGridMesh } from "./globe-grid-mesh.js";
4
6
  import { MeshTextureLayer } from "./mesh-layer/mesh-layer.js";
5
7
  const DEFAULT_MAX_ERROR = 0.125;
6
8
  const DEBUG_COLORS = [
@@ -68,13 +70,37 @@ export class RasterLayer extends CompositeLayer {
68
70
  props.width !== oldProps.width ||
69
71
  props.height !== oldProps.height ||
70
72
  reprojectionFnsChanged ||
71
- props.maxError !== oldProps.maxError;
73
+ props.maxError !== oldProps.maxError ||
74
+ props.initialTriangulation !== oldProps.initialTriangulation;
72
75
  if (needsMeshUpdate) {
73
76
  this._generateMesh();
74
77
  }
75
78
  }
76
79
  _generateMesh() {
77
- const { width, height, reprojectionFns, maxError = DEFAULT_MAX_ERROR, } = this.props;
80
+ const { width, height, reprojectionFns, initialTriangulation, maxError = DEFAULT_MAX_ERROR, } = this.props;
81
+ // TEMPORARY GLOBE VIEW HACK:
82
+ //
83
+ // GlobeView (lnglat) uses viewport.resolution, the same detection as
84
+ // RasterTileLayer. THROWAWAY: globe renders a uniform grid instead of the
85
+ // adaptive mesh, because Delatin's reprojection-error metric is blind to
86
+ // sphere curvature and facets at low zoom. See globe-grid-mesh.ts and
87
+ // dev-docs/specs/2026-05-21-globe-view-design.md.
88
+ const isGlobe = this.context?.viewport?.resolution !== undefined;
89
+ if (isGlobe) {
90
+ const { indices, positions64High, positions64Low, texCoords } = buildUniformGridMesh(reprojectionFns, width + 1, height + 1);
91
+ this.setState({
92
+ reprojector: undefined,
93
+ mesh: {
94
+ indices: { value: indices, size: 1 },
95
+ attributes: {
96
+ POSITION: { value: positions64High, size: 3 },
97
+ TEXCOORD_0: { value: texCoords, size: 2 },
98
+ },
99
+ },
100
+ positions64Low,
101
+ });
102
+ return;
103
+ }
78
104
  // The mesh is lined up with the upper and left edges of the raster. So if
79
105
  // we give the raster the same width and height as the number of pixels in
80
106
  // the image, it'll be omitting the last row and column of pixels.
@@ -82,16 +108,19 @@ export class RasterLayer extends CompositeLayer {
82
108
  // To account for this, we add 1 to both width and height when generating
83
109
  // the mesh. This also solves obvious gaps in between neighboring tiles in
84
110
  // the COGLayer.
85
- const reprojector = new RasterReprojector(reprojectionFns, width + 1, height + 1);
111
+ const reprojector = new RasterReprojector(reprojectionFns, width + 1, height + 1, { initialTriangulation });
86
112
  reprojector.run(maxError);
87
- const { indices, positions, texCoords } = reprojectorToMesh(reprojector);
113
+ const { indices, positions64High, positions64Low, texCoords } = reprojectorToMesh(reprojector);
88
114
  this.setState({
89
115
  reprojector,
90
116
  mesh: {
91
- positions,
92
- indices,
93
- texCoords,
117
+ indices: { value: indices, size: 1 },
118
+ attributes: {
119
+ POSITION: { value: positions64High, size: 3 },
120
+ TEXCOORD_0: { value: texCoords, size: 2 },
121
+ },
94
122
  },
123
+ positions64Low,
95
124
  });
96
125
  }
97
126
  renderDebugLayer() {
@@ -136,39 +165,22 @@ export class RasterLayer extends CompositeLayer {
136
165
  }));
137
166
  }
138
167
  renderLayers() {
139
- const { mesh } = this.state;
168
+ const { mesh, positions64Low } = this.state;
140
169
  const { debug, image, renderPipeline } = this.props;
141
- if (!mesh || (!image && (renderPipeline?.length ?? 0) === 0)) {
170
+ // mesh and positions64Low are always set together by _generateMesh.
171
+ if (!mesh ||
172
+ !positions64Low ||
173
+ (!image && (renderPipeline?.length ?? 0) === 0)) {
142
174
  return null;
143
175
  }
144
- const { indices, positions, texCoords } = mesh;
145
176
  const meshLayer = new MeshTextureLayer(this.getSubLayerProps({
146
177
  id: "raster",
147
178
  image,
148
179
  renderPipeline,
149
- // Dummy data because we're only rendering _one_ instance of this mesh
150
- // https://github.com/visgl/deck.gl/blob/93111b667b919148da06ff1918410cf66381904f/modules/geo-layers/src/terrain-layer/terrain-layer.ts#L241
151
- data: [1],
152
- mesh: {
153
- indices: { value: indices, size: 1 },
154
- attributes: {
155
- POSITION: {
156
- value: positions,
157
- size: 3,
158
- },
159
- TEXCOORD_0: {
160
- value: texCoords,
161
- size: 2,
162
- },
163
- },
164
- },
165
- // We're only rendering a single mesh, without instancing
166
- // https://github.com/visgl/deck.gl/blob/93111b667b919148da06ff1918410cf66381904f/modules/geo-layers/src/terrain-layer/terrain-layer.ts#L244
167
- _instanced: false,
168
- // Dummy accessors for the dummy data
169
- // We place our mesh at the coordinate origin
170
- getPosition: [0, 0, 0],
171
- // We give a white color to turn off color mixing with the texture
180
+ // Single mesh rendered as one non-instanced draw.
181
+ data: { length: 1, attributes: { positions64Low } },
182
+ mesh,
183
+ // We give a white color to turn off color mixing with the texture.
172
184
  getColor: [255, 255, 255],
173
185
  }));
174
186
  const layers = [meshLayer];
@@ -183,19 +195,23 @@ export class RasterLayer extends CompositeLayer {
183
195
  }
184
196
  function reprojectorToMesh(reprojector) {
185
197
  const numVertices = reprojector.uvs.length / 2;
186
- const positions = new Float32Array(numVertices * 3);
187
198
  const texCoords = new Float32Array(reprojector.uvs);
199
+ const positions = new Float64Array(numVertices * 3);
188
200
  for (let i = 0; i < numVertices; i++) {
189
201
  positions[i * 3] = reprojector.exactOutputPositions[i * 2];
190
202
  positions[i * 3 + 1] = reprojector.exactOutputPositions[i * 2 + 1];
191
203
  // z (flat on the ground)
192
204
  positions[i * 3 + 2] = 0;
193
205
  }
206
+ // Split the float64 positions into high and low parts for fp64 emulation in
207
+ // the shader.
208
+ const [positions64Low, positions64High] = splitFloat64Array(positions);
194
209
  // TODO: Consider using 16-bit indices if the mesh is small enough
195
210
  const indices = new Uint32Array(reprojector.triangles);
196
211
  return {
197
212
  indices,
198
- positions,
213
+ positions64High,
214
+ positions64Low,
199
215
  texCoords,
200
216
  };
201
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"raster-layer.js","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-layer.js","sourceRoot":"","sources":["../src/raster-layer.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { CompositeLayer } from "@deck.gl/core";
3
3
  import type { _Tile2DHeader as Tile2DHeader, TileLayerProps, _TileLoadProps as TileLoadProps } from "@deck.gl/geo-layers";
4
4
  import type { Device } from "@luma.gl/core";
5
5
  import type { RenderTileResult } from "../raster-layer.js";
6
- import type { TilesetDescriptor } from "../raster-tileset/index.js";
6
+ import type { RasterTilesetDescriptor } from "../raster-tileset/index.js";
7
7
  /**
8
8
  * Minimum interface returned by `getTileData`.
9
9
  *
@@ -39,14 +39,14 @@ export type GetTileDataOptions = {
39
39
  /**
40
40
  * Props for {@link RasterTileLayer}.
41
41
  */
42
- export type RasterTileLayerProps<DataT extends MinimalTileData = MinimalTileData> = CompositeLayerProps & Pick<TileLayerProps, "tileSize" | "zoomOffset" | "maxZoom" | "minZoom" | "extent" | "debounceTime" | "maxCacheSize" | "maxCacheByteSize" | "maxRequests" | "refinementStrategy"> & {
42
+ export type RasterTileLayerProps<DataT extends MinimalTileData = MinimalTileData> = CompositeLayerProps & Pick<TileLayerProps, "debounceTime" | "extent" | "maxCacheByteSize" | "maxCacheSize" | "maxRequests" | "maxZoom" | "minZoom" | "onTileError" | "onTileLoad" | "onTileUnload" | "onViewportLoad" | "refinementStrategy" | "tileSize" | "zoomOffset"> & {
43
43
  /**
44
44
  * Tile pyramid + CRS projection descriptor.
45
45
  *
46
46
  * Subclasses may supply this via state by overriding the protected
47
47
  * `_tilesetDescriptor()` method.
48
48
  */
49
- tilesetDescriptor?: TilesetDescriptor;
49
+ tilesetDescriptor?: RasterTilesetDescriptor;
50
50
  /**
51
51
  * Load data for one tile. Runs once per (x, y, z); the resulting `DataT`
52
52
  * is cached by the underlying TileLayer.
@@ -105,7 +105,7 @@ type RasterTileLayerBaseProps<DataT extends MinimalTileData> = Omit<RasterTileLa
105
105
  type RasterTileLayerDefaultExtraProps<DataT extends MinimalTileData> = Pick<RasterTileLayerProps<DataT>, "tilesetDescriptor" | "getTileData" | "renderTile">;
106
106
  /**
107
107
  * Base layer that renders a tiled raster source driven by a generic
108
- * {@link TilesetDescriptor}.
108
+ * {@link RasterTilesetDescriptor}.
109
109
  *
110
110
  * Usable directly (provide `tilesetDescriptor`, `getTileData`, and `renderTile`
111
111
  * as props) or as a base class (override the protected `_tilesetDescriptor`,
@@ -120,7 +120,7 @@ export declare class RasterTileLayer<DataT extends MinimalTileData = MinimalTile
120
120
  static layerName: string;
121
121
  static defaultProps: DefaultProps<RasterTileLayerProps<MinimalTileData>>;
122
122
  /**
123
- * The currently effective {@link TilesetDescriptor}.
123
+ * The currently effective {@link RasterTilesetDescriptor}.
124
124
  *
125
125
  * Subclasses override this to return a descriptor built from their own
126
126
  * async-parsed state. Returns `undefined` while the source is still
@@ -132,7 +132,7 @@ export declare class RasterTileLayer<DataT extends MinimalTileData = MinimalTile
132
132
  * brings it in; for subclass use this method is overridden and the cast
133
133
  * is never reached.
134
134
  */
135
- protected _tilesetDescriptor(): TilesetDescriptor | undefined;
135
+ protected _tilesetDescriptor(): RasterTilesetDescriptor | undefined;
136
136
  /**
137
137
  * The currently effective tile-fetch callback.
138
138
  *
@@ -1 +1 @@
1
- {"version":3,"file":"raster-tile-layer.d.ts","sourceRoot":"","sources":["../../src/raster-tile-layer/raster-tile-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-tile-layer.d.ts","sourceRoot":"","sources":["../../src/raster-tile-layer/raster-tile-layer.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import { TileLayer } from "@deck.gl/geo-layers";
3
3
  import { renderDebugTileOutline } from "../layer-utils.js";
4
4
  import { RasterLayer } from "../raster-layer.js";
5
5
  import { RasterTileset2D } from "../raster-tileset/index.js";
6
- import { TILE_SIZE, WEB_MERCATOR_TO_WORLD_SCALE } from "./constants.js";
7
6
  const defaultProps = {
8
7
  ...TileLayer.defaultProps,
9
8
  maxError: 0.125,
@@ -12,7 +11,7 @@ const defaultProps = {
12
11
  };
13
12
  /**
14
13
  * Base layer that renders a tiled raster source driven by a generic
15
- * {@link TilesetDescriptor}.
14
+ * {@link RasterTilesetDescriptor}.
16
15
  *
17
16
  * Usable directly (provide `tilesetDescriptor`, `getTileData`, and `renderTile`
18
17
  * as props) or as a base class (override the protected `_tilesetDescriptor`,
@@ -27,7 +26,7 @@ export class RasterTileLayer extends CompositeLayer {
27
26
  static layerName = "RasterTileLayer";
28
27
  static defaultProps = defaultProps;
29
28
  /**
30
- * The currently effective {@link TilesetDescriptor}.
29
+ * The currently effective {@link RasterTilesetDescriptor}.
31
30
  *
32
31
  * Subclasses override this to return a descriptor built from their own
33
32
  * async-parsed state. Returns `undefined` while the source is still
@@ -82,7 +81,7 @@ export class RasterTileLayer extends CompositeLayer {
82
81
  if (!descriptor) {
83
82
  return [];
84
83
  }
85
- // Tiles built by RasterTileset2D are augmented with TileMetadata
84
+ // Tiles built by RasterTileset2D are augmented with RasterTileMetadata
86
85
  // (projectedBbox/Corners, tileWidth/Height) at construction time. The cast
87
86
  // makes that runtime augmentation visible to the typed helper.
88
87
  return renderDebugTileOutline(`${this.id}-${tile.id}-bounds`, tile, descriptor.projectTo4326);
@@ -121,7 +120,7 @@ export class RasterTileLayer extends CompositeLayer {
121
120
  });
122
121
  }
123
122
  }
124
- const { tileSize, zoomOffset, maxZoom, minZoom, extent, debounceTime, maxCacheSize, maxCacheByteSize, maxRequests, refinementStrategy, updateTriggers, } = this.props;
123
+ const { tileSize, zoomOffset, maxZoom, minZoom, extent, debounceTime, maxCacheSize, maxCacheByteSize, maxRequests, refinementStrategy, updateTriggers, onTileError, onTileLoad, onTileUnload, onViewportLoad, } = this.props;
125
124
  return new TileLayer({
126
125
  id: `raster-tile-layer-${this.id}`,
127
126
  TilesetClass: TilesetFactory,
@@ -140,6 +139,10 @@ export class RasterTileLayer extends CompositeLayer {
140
139
  maxCacheByteSize,
141
140
  maxRequests,
142
141
  refinementStrategy,
142
+ onTileError,
143
+ onTileLoad,
144
+ onTileUnload,
145
+ onViewportLoad,
143
146
  });
144
147
  }
145
148
  async _wrapGetTileData(tile, getTileData) {
@@ -163,12 +166,9 @@ export class RasterTileLayer extends CompositeLayer {
163
166
  if (!props.data) {
164
167
  return debugLayers;
165
168
  }
166
- const { x, y, z } = tile.index;
167
- const level = descriptor.levels[z];
168
- if (!level) {
169
- return debugLayers;
170
- }
171
- const { forwardTransform, inverseTransform } = level.tileTransform(x, y);
169
+ // Access forwardTransform/inverseTransform from tile metadata so that
170
+ // reference equality holds across renders.
171
+ const { forwardTransform, inverseTransform } = tile;
172
172
  const tileResult = renderTile(props.data);
173
173
  if (!tileResult) {
174
174
  return debugLayers;
@@ -176,32 +176,36 @@ export class RasterTileLayer extends CompositeLayer {
176
176
  const { image, renderPipeline } = tileResult;
177
177
  const { width, height } = props.data;
178
178
  const isGlobe = this.context.viewport.resolution !== undefined;
179
- const reprojectionFns = isGlobe
180
- ? {
179
+ let reprojectionFns;
180
+ let coordinateSystem;
181
+ if (isGlobe) {
182
+ // Globe view
183
+ reprojectionFns = {
181
184
  forwardTransform,
182
185
  inverseTransform,
183
186
  forwardReproject: descriptor.projectTo4326,
184
187
  inverseReproject: descriptor.projectFrom4326,
185
- }
186
- : {
188
+ };
189
+ coordinateSystem = "lnglat";
190
+ }
191
+ else {
192
+ // Web Mercator: render the mesh directly in deck.gl common space.
193
+ //
194
+ // The tile's `_projectPosition` maps source CRS → common space, support
195
+ // high precision with fp64 emulation.
196
+ //
197
+ // `_projectPosition`/`_unprojectPosition` must be reference-stable across
198
+ // renders to avoid regenerating the mesh and recompiling the shader every
199
+ // frame.
200
+ const { _projectPosition, _unprojectPosition } = tile;
201
+ reprojectionFns = {
187
202
  forwardTransform,
188
203
  inverseTransform,
189
- forwardReproject: descriptor.projectTo3857,
190
- inverseReproject: descriptor.projectFrom3857,
191
- };
192
- const deckProjectionProps = isGlobe
193
- ? {}
194
- : {
195
- coordinateSystem: "cartesian",
196
- coordinateOrigin: [TILE_SIZE / 2, TILE_SIZE / 2, 0],
197
- // biome-ignore format: array
198
- modelMatrix: [
199
- WEB_MERCATOR_TO_WORLD_SCALE, 0, 0, 0,
200
- 0, WEB_MERCATOR_TO_WORLD_SCALE, 0, 0,
201
- 0, 0, 1, 0,
202
- 0, 0, 0, 1,
203
- ],
204
+ forwardReproject: _projectPosition,
205
+ inverseReproject: _unprojectPosition,
204
206
  };
207
+ coordinateSystem = "cartesian";
208
+ }
205
209
  const rasterLayer = new RasterLayer(this.getSubLayerProps({
206
210
  id: `${props.id}-raster`,
207
211
  width,
@@ -212,9 +216,14 @@ export class RasterTileLayer extends CompositeLayer {
212
216
  renderPipeline,
213
217
  maxError,
214
218
  reprojectionFns,
219
+ // Web Mercator: clamp the mesh to the valid latitude band for tiles
220
+ // past ±85.051°. Globe renders the full mesh (it shows the poles).
221
+ initialTriangulation: isGlobe
222
+ ? undefined
223
+ : tile._webMercatorInitialTriangulation,
215
224
  debug,
216
225
  debugOpacity,
217
- ...deckProjectionProps,
226
+ coordinateSystem,
218
227
  }));
219
228
  return [rasterLayer, ...debugLayers];
220
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"raster-tile-layer.js","sourceRoot":"","sources":["../../src/raster-tile-layer/raster-tile-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raster-tile-layer.js","sourceRoot":"","sources":["../../src/raster-tile-layer/raster-tile-layer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Affine } from "@developmentseed/affine";
2
- import type { TilesetLevel } from "./tileset-interface.js";
2
+ import type { RasterTilesetLevel } from "./tileset-interface.js";
3
3
  import type { Bounds, Corners, ProjectionFunction } from "./types.js";
4
4
  /**
5
5
  * Constructor options for {@link AffineTilesetLevel}.
@@ -19,15 +19,15 @@ export interface AffineTilesetLevelOptions {
19
19
  mpu: number;
20
20
  }
21
21
  /**
22
- * A {@link TilesetLevel} described by a single affine transform plus tile and
22
+ * A {@link RasterTilesetLevel} described by a single affine transform plus tile and
23
23
  * array sizes.
24
24
  *
25
25
  * This handles axis-aligned, rotated, skewed, and non-square-pixel grids
26
26
  * uniformly. Sources that fit this shape (tiled GeoTIFF overviews, GeoZarr
27
27
  * multiscales) can construct one of these per resolution level instead of
28
- * implementing {@link TilesetLevel} manually.
28
+ * implementing {@link RasterTilesetLevel} manually.
29
29
  */
30
- export declare class AffineTilesetLevel implements TilesetLevel {
30
+ export declare class AffineTilesetLevel implements RasterTilesetLevel {
31
31
  readonly tileWidth: number;
32
32
  readonly tileHeight: number;
33
33
  readonly matrixWidth: number;
@@ -1 +1 @@
1
- {"version":3,"file":"affine-tileset-level.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/affine-tileset-level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,yBAAyB;IA6B9C,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAavD,aAAa,CACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV;QACD,gBAAgB,EAAE,kBAAkB,CAAC;QACrC,gBAAgB,EAAE,kBAAkB,CAAC;KACtC;IAaD,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAmCtE"}
1
+ {"version":3,"file":"affine-tileset-level.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/affine-tileset-level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,yBAAyB;IA6B9C,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAavD,aAAa,CACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV;QACD,gBAAgB,EAAE,kBAAkB,CAAC;QACrC,gBAAgB,EAAE,kBAAkB,CAAC;KACtC;IAaD,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAmCtE"}
@@ -1,12 +1,12 @@
1
1
  import * as affine from "@developmentseed/affine";
2
2
  /**
3
- * A {@link TilesetLevel} described by a single affine transform plus tile and
3
+ * A {@link RasterTilesetLevel} described by a single affine transform plus tile and
4
4
  * array sizes.
5
5
  *
6
6
  * This handles axis-aligned, rotated, skewed, and non-square-pixel grids
7
7
  * uniformly. Sources that fit this shape (tiled GeoTIFF overviews, GeoZarr
8
8
  * multiscales) can construct one of these per resolution level instead of
9
- * implementing {@link TilesetLevel} manually.
9
+ * implementing {@link RasterTilesetLevel} manually.
10
10
  */
11
11
  export class AffineTilesetLevel {
12
12
  tileWidth;
@@ -1,5 +1,5 @@
1
1
  import type { AffineTilesetLevel } from "./affine-tileset-level.js";
2
- import type { TilesetDescriptor } from "./tileset-interface.js";
2
+ import type { RasterTilesetDescriptor } from "./tileset-interface.js";
3
3
  import type { Bounds, ProjectionFunction } from "./types.js";
4
4
  /**
5
5
  * Constructor options for {@link AffineTileset}.
@@ -17,12 +17,12 @@ export interface AffineTilesetOptions {
17
17
  projectFrom4326: ProjectionFunction;
18
18
  }
19
19
  /**
20
- * A {@link TilesetDescriptor} backed by per-level affine transforms.
20
+ * A {@link RasterTilesetDescriptor} backed by per-level affine transforms.
21
21
  *
22
22
  * Derives `projectedBounds` from the coarsest level's array. Everything else
23
23
  * is passed through from the constructor options.
24
24
  */
25
- export declare class AffineTileset implements TilesetDescriptor {
25
+ export declare class AffineTileset implements RasterTilesetDescriptor {
26
26
  readonly levels: AffineTilesetLevel[];
27
27
  readonly projectTo3857: ProjectionFunction;
28
28
  readonly projectFrom3857: ProjectionFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"affine-tileset.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/affine-tileset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,gEAAgE;IAChE,aAAa,EAAE,kBAAkB,CAAC;IAClC,gEAAgE;IAChE,eAAe,EAAE,kBAAkB,CAAC;IACpC,gEAAgE;IAChE,aAAa,EAAE,kBAAkB,CAAC;IAClC,gEAAgE;IAChE,eAAe,EAAE,kBAAkB,CAAC;CACrC;AAED;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,iBAAiB;IACrD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAErB,OAAO,EAAE,oBAAoB;CAW1C"}
1
+ {"version":3,"file":"affine-tileset.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/affine-tileset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,gEAAgE;IAChE,aAAa,EAAE,kBAAkB,CAAC;IAClC,gEAAgE;IAChE,eAAe,EAAE,kBAAkB,CAAC;IACpC,gEAAgE;IAChE,aAAa,EAAE,kBAAkB,CAAC;IAClC,gEAAgE;IAChE,eAAe,EAAE,kBAAkB,CAAC;CACrC;AAED;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,uBAAuB;IAC3D,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAErB,OAAO,EAAE,oBAAoB;CAW1C"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * A {@link TilesetDescriptor} backed by per-level affine transforms.
2
+ * A {@link RasterTilesetDescriptor} backed by per-level affine transforms.
3
3
  *
4
4
  * Derives `projectedBounds` from the coarsest level's array. Everything else
5
5
  * is passed through from the constructor options.
@@ -34,10 +34,11 @@ export interface BoundingVolumeCacheOptions {
34
34
  * `(z, x, y, zRange)` for a given tileset descriptor, so it is safe to memoize
35
35
  * across `getTileIndices` calls (i.e. across animation frames).
36
36
  *
37
- * NOTE: this assumes a non-Globe traversal (`project === null`) the only kind
38
- * `RasterTileNode.getBoundingVolume` currently supports. If Globe-view bounding
39
- * volumes are ever implemented, the cache key will need a viewport/resolution
40
- * component.
37
+ * The key is valid only within a single projection mode. A tile's bounding
38
+ * volume is computed in a different common space under a GlobeView than under
39
+ * Web Mercator, so the cache must be {@link BoundingVolumeCache.clear cleared}
40
+ * when the viewport's projection mode changes. `RasterTileset2D` owns the cache
41
+ * and does this in `getTileIndices` when it detects a globe↔mercator switch.
41
42
  */
42
43
  export declare class BoundingVolumeCache {
43
44
  private entries;
@@ -52,6 +53,12 @@ export declare class BoundingVolumeCache {
52
53
  get(z: number, x: number, y: number): BoundingVolumeCacheEntry | undefined;
53
54
  /** Store the bounding volume for tile `(z, x, y)` as most-recently-used. */
54
55
  set(z: number, x: number, y: number, entry: BoundingVolumeCacheEntry): void;
56
+ /**
57
+ * Drop all cached entries. Called by the owner when the viewport's projection
58
+ * mode changes (globe↔mercator), since volumes computed under one projection
59
+ * are not valid under the other.
60
+ */
61
+ clear(): void;
55
62
  /**
56
63
  * If the cache is over its soft cap, drop least-recently-used entries down to
57
64
  * roughly half of `maxEntries`. No-op when at or under the cap. Call once at
@@ -1 +1 @@
1
- {"version":3,"file":"bounding-volume-cache.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/bounding-volume-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,mBAAmB,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,UAAU,CAAS;gBAEf,EACV,UAAgC,GACjC,GAAE,0BAA+B;IAIlC,gCAAgC;IAChC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAY1E,4EAA4E;IAC5E,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAM3E;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAiBd"}
1
+ {"version":3,"file":"bounding-volume-cache.d.ts","sourceRoot":"","sources":["../../src/raster-tileset/bounding-volume-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,mBAAmB,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,UAAU,CAAS;gBAEf,EACV,UAAgC,GACjC,GAAE,0BAA+B;IAIlC,gCAAgC;IAChC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAY1E,4EAA4E;IAC5E,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAM3E;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAiBd"}
@@ -8,10 +8,11 @@ const DEFAULT_MAX_ENTRIES = 65_536;
8
8
  * `(z, x, y, zRange)` for a given tileset descriptor, so it is safe to memoize
9
9
  * across `getTileIndices` calls (i.e. across animation frames).
10
10
  *
11
- * NOTE: this assumes a non-Globe traversal (`project === null`) the only kind
12
- * `RasterTileNode.getBoundingVolume` currently supports. If Globe-view bounding
13
- * volumes are ever implemented, the cache key will need a viewport/resolution
14
- * component.
11
+ * The key is valid only within a single projection mode. A tile's bounding
12
+ * volume is computed in a different common space under a GlobeView than under
13
+ * Web Mercator, so the cache must be {@link BoundingVolumeCache.clear cleared}
14
+ * when the viewport's projection mode changes. `RasterTileset2D` owns the cache
15
+ * and does this in `getTileIndices` when it detects a globe↔mercator switch.
15
16
  */
16
17
  export class BoundingVolumeCache {
17
18
  entries = new Map();
@@ -44,6 +45,14 @@ export class BoundingVolumeCache {
44
45
  this.entries.delete(key);
45
46
  this.entries.set(key, entry);
46
47
  }
48
+ /**
49
+ * Drop all cached entries. Called by the owner when the viewport's projection
50
+ * mode changes (globe↔mercator), since volumes computed under one projection
51
+ * are not valid under the other.
52
+ */
53
+ clear() {
54
+ this.entries.clear();
55
+ }
47
56
  /**
48
57
  * If the cache is over its soft cap, drop least-recently-used entries down to
49
58
  * roughly half of `maxEntries`. No-op when at or under the cap. Call once at
@@ -1 +1 @@
1
- {"version":3,"file":"bounding-volume-cache.js","sourceRoot":"","sources":["../../src/raster-tileset/bounding-volume-cache.ts"],"names":[],"mappings":"AA+BA,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IACtD,UAAU,CAAS;IAE3B,YAAY,EACV,UAAU,GAAG,mBAAmB,MACF,EAAE;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,sEAAsE;QACtE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4EAA4E;IAC5E,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAA+B;QAClE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;QAC1C,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;gBAClC,MAAM;YACR,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"bounding-volume-cache.js","sourceRoot":"","sources":["../../src/raster-tileset/bounding-volume-cache.ts"],"names":[],"mappings":"AA+BA,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IACtD,UAAU,CAAS;IAE3B,YAAY,EACV,UAAU,GAAG,mBAAmB,MACF,EAAE;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,sEAAsE;QACtE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4EAA4E;IAC5E,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAA+B;QAClE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;QAC1C,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;gBAClC,MAAM;YACR,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF"}
@@ -2,9 +2,10 @@ export type { AffineTilesetOptions } from "./affine-tileset.js";
2
2
  export { AffineTileset } from "./affine-tileset.js";
3
3
  export type { AffineTilesetLevelOptions } from "./affine-tileset-level.js";
4
4
  export { AffineTilesetLevel } from "./affine-tileset-level.js";
5
- export type { TileMetadata } from "./raster-tileset-2d.js";
5
+ export type { RasterTileMetadata } from "./raster-tileset-2d.js";
6
6
  export { RasterTileset2D } from "./raster-tileset-2d.js";
7
+ export { sortItemsByDistanceFromViewportCenter } from "./sort-by-distance.js";
7
8
  export { TileMatrixSetAdaptor } from "./tile-matrix-set.js";
8
- export type { TilesetDescriptor, TilesetLevel } from "./tileset-interface.js";
9
+ export type { RasterTilesetDescriptor, RasterTilesetLevel, } from "./tileset-interface.js";
9
10
  export type { Bounds, CornerBounds, Corners, ProjectionFunction, } from "./types.js";
10
11
  //# sourceMappingURL=index.d.ts.map