@deck.gl-community/geo-layers 9.2.8 → 9.3.0-beta.2
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/global-grid-layer/global-grid-cluster-layer.d.ts.map +1 -1
- package/dist/global-grid-layer/global-grid-cluster-layer.js +1 -0
- package/dist/global-grid-layer/global-grid-cluster-layer.js.map +1 -1
- package/dist/index.cjs +1799 -7
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/shared-tile-2d-layer/deck-tile-traversal.d.ts +5 -0
- package/dist/shared-tile-2d-layer/deck-tile-traversal.d.ts.map +1 -0
- package/dist/shared-tile-2d-layer/deck-tile-traversal.js +173 -0
- package/dist/shared-tile-2d-layer/deck-tile-traversal.js.map +1 -0
- package/dist/shared-tile-2d-layer/deck-tileset-adapter.d.ts +26 -0
- package/dist/shared-tile-2d-layer/deck-tileset-adapter.d.ts.map +1 -0
- package/dist/shared-tile-2d-layer/deck-tileset-adapter.js +174 -0
- package/dist/shared-tile-2d-layer/deck-tileset-adapter.js.map +1 -0
- package/dist/shared-tile-2d-layer/index.d.ts +4 -0
- package/dist/shared-tile-2d-layer/index.d.ts.map +1 -0
- package/dist/shared-tile-2d-layer/index.js +6 -0
- package/dist/shared-tile-2d-layer/index.js.map +1 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-layer.d.ts +151 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-layer.d.ts.map +1 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-layer.js +422 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-layer.js.map +1 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-view.d.ts +57 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-view.d.ts.map +1 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-view.js +253 -0
- package/dist/shared-tile-2d-layer/shared-tile-2d-view.js.map +1 -0
- package/dist/shared-tile-2d-layer/url-template.d.ts +9 -0
- package/dist/shared-tile-2d-layer/url-template.d.ts.map +1 -0
- package/dist/shared-tile-2d-layer/url-template.js +25 -0
- package/dist/shared-tile-2d-layer/url-template.js.map +1 -0
- package/dist/tile-grid-layer/tile-grid-layer.d.ts +47 -0
- package/dist/tile-grid-layer/tile-grid-layer.d.ts.map +1 -0
- package/dist/tile-grid-layer/tile-grid-layer.js +94 -0
- package/dist/tile-grid-layer/tile-grid-layer.js.map +1 -0
- package/dist/tile-source-layer/tile-source-layer.d.ts +2 -2
- package/dist/tile-source-layer/tile-source-layer.d.ts.map +1 -1
- package/dist/tileset/adapter.d.ts +38 -0
- package/dist/tileset/adapter.d.ts.map +1 -0
- package/dist/tileset/adapter.js +5 -0
- package/dist/tileset/adapter.js.map +1 -0
- package/dist/tileset/index.cjs +721 -0
- package/dist/tileset/index.cjs.map +7 -0
- package/dist/tileset/index.d.ts +8 -0
- package/dist/tileset/index.d.ts.map +1 -0
- package/dist/tileset/index.js +7 -0
- package/dist/tileset/index.js.map +1 -0
- package/dist/tileset/tile-2d-header.d.ts +71 -0
- package/dist/tileset/tile-2d-header.d.ts.map +1 -0
- package/dist/tileset/tile-2d-header.js +168 -0
- package/dist/tileset/tile-2d-header.js.map +1 -0
- package/dist/tileset/tileset-2d.d.ts +210 -0
- package/dist/tileset/tileset-2d.d.ts.map +1 -0
- package/dist/tileset/tileset-2d.js +531 -0
- package/dist/tileset/tileset-2d.js.map +1 -0
- package/dist/tileset/types.d.ts +44 -0
- package/dist/tileset/types.d.ts.map +1 -0
- package/dist/tileset/types.js +5 -0
- package/dist/tileset/types.js.map +1 -0
- package/dist/utils/memoize.d.ts +2 -0
- package/dist/utils/memoize.d.ts.map +1 -0
- package/dist/utils/memoize.js +36 -0
- package/dist/utils/memoize.js.map +1 -0
- package/package.json +17 -11
- package/src/global-grid-layer/global-grid-cluster-layer.ts +1 -1
- package/src/index.ts +14 -0
- package/src/shared-tile-2d-layer/deck-tile-traversal.ts +247 -0
- package/src/shared-tile-2d-layer/deck-tileset-adapter.ts +262 -0
- package/src/shared-tile-2d-layer/index.ts +7 -0
- package/src/shared-tile-2d-layer/shared-tile-2d-layer.ts +681 -0
- package/src/shared-tile-2d-layer/shared-tile-2d-view.ts +339 -0
- package/src/shared-tile-2d-layer/url-template.ts +40 -0
- package/src/tile-grid-layer/tile-grid-layer.ts +158 -0
- package/src/tile-source-layer/tile-source-layer.ts +2 -2
- package/src/tileset/adapter.ts +47 -0
- package/src/tileset/index.ts +22 -0
- package/src/tileset/tile-2d-header.ts +210 -0
- package/src/tileset/tileset-2d.ts +705 -0
- package/src/tileset/types.ts +38 -0
- package/src/utils/memoize.ts +38 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,eAAe,EAAC,iDAA8C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,eAAe,EAAC,iDAA8C;AAKtE,OAAO,EAAC,iBAAiB,EAAE,uBAAuB,EAAC,wCAAqC;AAOxF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,2BAAwB;AAEpE,OAAO,EAAC,aAAa,EAAC,6CAA0C;AAEhE,OAAO,EAAC,eAAe,EAA4B,iDAA8C;AAGjG,OAAO,EAAC,MAAM,EAAC,+CAA4C;AAC3D,OAAO,EAAC,MAAM,EAAC,+CAA4C;AAC3D,OAAO,EAAC,MAAM,EAAC,+CAA4C;AAC3D,OAAO,EAAC,WAAW,EAAC,oDAAiD;AACrE,OAAO,EAAC,WAAW,EAAC,oDAAiD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Viewport } from '@deck.gl/core';
|
|
2
|
+
import type { Bounds, TileIndex, ZRange } from "../tileset/types.js";
|
|
3
|
+
/** deck.gl-specific OSM tile traversal for geospatial viewports. */
|
|
4
|
+
export declare function getOSMTileIndices(viewport: Viewport, maxZ: number, zRange: ZRange | null, bounds?: Bounds): TileIndex[];
|
|
5
|
+
//# sourceMappingURL=deck-tile-traversal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deck-tile-traversal.d.ts","sourceRoot":"","sources":["../../src/shared-tile-2d-layer/deck-tile-traversal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAsC,MAAM,eAAe,CAAC;AAQ5E,OAAO,KAAK,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAC,4BAAyB;AA0JhE,oEAAoE;AACpE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,SAAS,EAAE,CAuCb"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { WebMercatorViewport, _GlobeViewport } from '@deck.gl/core';
|
|
5
|
+
import { CullingVolume, Plane, AxisAlignedBoundingBox, makeOrientedBoundingBoxFromPoints } from '@math.gl/culling';
|
|
6
|
+
import { lngLatToWorld } from '@math.gl/web-mercator';
|
|
7
|
+
import { osmTile2lngLat } from "./deck-tileset-adapter.js";
|
|
8
|
+
const TILE_SIZE = 512;
|
|
9
|
+
const MAX_MAPS = 3;
|
|
10
|
+
const REF_POINTS_5 = [
|
|
11
|
+
[0.5, 0.5],
|
|
12
|
+
[0, 0],
|
|
13
|
+
[0, 1],
|
|
14
|
+
[1, 0],
|
|
15
|
+
[1, 1]
|
|
16
|
+
];
|
|
17
|
+
const REF_POINTS_9 = REF_POINTS_5.concat([
|
|
18
|
+
[0, 0.5],
|
|
19
|
+
[0.5, 0],
|
|
20
|
+
[1, 0.5],
|
|
21
|
+
[0.5, 1]
|
|
22
|
+
]);
|
|
23
|
+
const REF_POINTS_11 = REF_POINTS_9.concat([
|
|
24
|
+
[0.25, 0.5],
|
|
25
|
+
[0.75, 0.5]
|
|
26
|
+
]);
|
|
27
|
+
class OSMNode {
|
|
28
|
+
x;
|
|
29
|
+
y;
|
|
30
|
+
z;
|
|
31
|
+
childVisible;
|
|
32
|
+
selected;
|
|
33
|
+
_children;
|
|
34
|
+
constructor(x, y, z) {
|
|
35
|
+
this.x = x;
|
|
36
|
+
this.y = y;
|
|
37
|
+
this.z = z;
|
|
38
|
+
}
|
|
39
|
+
get children() {
|
|
40
|
+
if (!this._children) {
|
|
41
|
+
const x = this.x * 2;
|
|
42
|
+
const y = this.y * 2;
|
|
43
|
+
const z = this.z + 1;
|
|
44
|
+
this._children = [
|
|
45
|
+
new OSMNode(x, y, z),
|
|
46
|
+
new OSMNode(x, y + 1, z),
|
|
47
|
+
new OSMNode(x + 1, y, z),
|
|
48
|
+
new OSMNode(x + 1, y + 1, z)
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
return this._children;
|
|
52
|
+
}
|
|
53
|
+
update(params) {
|
|
54
|
+
const { viewport, cullingVolume, elevationBounds, minZ, maxZ, bounds, offset, project } = params;
|
|
55
|
+
const boundingVolume = this.getBoundingVolume(elevationBounds, offset, project);
|
|
56
|
+
if (bounds && !this.insideBounds(bounds)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
const isInside = cullingVolume.computeVisibility(boundingVolume);
|
|
60
|
+
if (isInside < 0) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (!this.childVisible) {
|
|
64
|
+
let { z } = this;
|
|
65
|
+
if (z < maxZ && z >= minZ) {
|
|
66
|
+
const distance = (boundingVolume.distanceTo(viewport.cameraPosition) * viewport.scale) / viewport.height;
|
|
67
|
+
z += Math.floor(Math.log2(distance));
|
|
68
|
+
}
|
|
69
|
+
if (z >= maxZ) {
|
|
70
|
+
this.selected = true;
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
this.selected = false;
|
|
75
|
+
this.childVisible = true;
|
|
76
|
+
for (const child of this.children) {
|
|
77
|
+
child.update(params);
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
getSelected(result = []) {
|
|
82
|
+
if (this.selected) {
|
|
83
|
+
result.push(this);
|
|
84
|
+
}
|
|
85
|
+
if (this._children) {
|
|
86
|
+
for (const node of this._children) {
|
|
87
|
+
node.getSelected(result);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
insideBounds([minX, minY, maxX, maxY]) {
|
|
93
|
+
const scale = Math.pow(2, this.z);
|
|
94
|
+
const extent = TILE_SIZE / scale;
|
|
95
|
+
return (this.x * extent < maxX &&
|
|
96
|
+
this.y * extent < maxY &&
|
|
97
|
+
(this.x + 1) * extent > minX &&
|
|
98
|
+
(this.y + 1) * extent > minY);
|
|
99
|
+
}
|
|
100
|
+
getBoundingVolume(zRange, worldOffset, project) {
|
|
101
|
+
if (project) {
|
|
102
|
+
const refPoints = this.z < 1 ? REF_POINTS_11 : this.z < 2 ? REF_POINTS_9 : REF_POINTS_5;
|
|
103
|
+
const refPointPositions = [];
|
|
104
|
+
for (const p of refPoints) {
|
|
105
|
+
const lngLat = osmTile2lngLat(this.x + p[0], this.y + p[1], this.z);
|
|
106
|
+
lngLat[2] = zRange[0];
|
|
107
|
+
refPointPositions.push(project(lngLat));
|
|
108
|
+
if (zRange[0] !== zRange[1]) {
|
|
109
|
+
lngLat[2] = zRange[1];
|
|
110
|
+
refPointPositions.push(project(lngLat));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return makeOrientedBoundingBoxFromPoints(refPointPositions);
|
|
114
|
+
}
|
|
115
|
+
const scale = Math.pow(2, this.z);
|
|
116
|
+
const extent = TILE_SIZE / scale;
|
|
117
|
+
const originX = this.x * extent + worldOffset * TILE_SIZE;
|
|
118
|
+
const originY = TILE_SIZE - (this.y + 1) * extent;
|
|
119
|
+
return new AxisAlignedBoundingBox([originX, originY, zRange[0]], [originX + extent, originY + extent, zRange[1]]);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** deck.gl-specific OSM tile traversal for geospatial viewports. */
|
|
123
|
+
export function getOSMTileIndices(viewport, maxZ, zRange, bounds) {
|
|
124
|
+
const project = viewport instanceof _GlobeViewport && viewport.resolution
|
|
125
|
+
? (xyz) => viewport.projectPosition(xyz)
|
|
126
|
+
: null;
|
|
127
|
+
const planes = Object.values(viewport.getFrustumPlanes()).map(({ normal, distance }) => new Plane(normal.clone().negate(), distance));
|
|
128
|
+
const cullingVolume = new CullingVolume(planes);
|
|
129
|
+
const unitsPerMeter = viewport.distanceScales.unitsPerMeter[2];
|
|
130
|
+
const elevationMin = (zRange && zRange[0] * unitsPerMeter) || 0;
|
|
131
|
+
const elevationMax = (zRange && zRange[1] * unitsPerMeter) || 0;
|
|
132
|
+
const minZ = viewport instanceof WebMercatorViewport && viewport.pitch <= 60 ? maxZ : 0;
|
|
133
|
+
if (bounds) {
|
|
134
|
+
const [minLng, minLat, maxLng, maxLat] = bounds;
|
|
135
|
+
const topLeft = lngLatToWorld([minLng, maxLat]);
|
|
136
|
+
const bottomRight = lngLatToWorld([maxLng, minLat]);
|
|
137
|
+
bounds = [topLeft[0], TILE_SIZE - topLeft[1], bottomRight[0], TILE_SIZE - bottomRight[1]];
|
|
138
|
+
}
|
|
139
|
+
const root = new OSMNode(0, 0, 0);
|
|
140
|
+
const traversalParams = {
|
|
141
|
+
viewport,
|
|
142
|
+
project,
|
|
143
|
+
cullingVolume,
|
|
144
|
+
elevationBounds: [elevationMin, elevationMax],
|
|
145
|
+
minZ,
|
|
146
|
+
maxZ,
|
|
147
|
+
bounds,
|
|
148
|
+
offset: 0
|
|
149
|
+
};
|
|
150
|
+
root.update(traversalParams);
|
|
151
|
+
updateWrappedWorldCopies(root, traversalParams, viewport);
|
|
152
|
+
return root.getSelected();
|
|
153
|
+
}
|
|
154
|
+
function updateWrappedWorldCopies(root, traversalParams, viewport) {
|
|
155
|
+
if (!(viewport instanceof WebMercatorViewport) ||
|
|
156
|
+
!viewport.subViewports ||
|
|
157
|
+
viewport.subViewports.length <= 1) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
sweepOffsets(root, traversalParams, -1, -MAX_MAPS);
|
|
161
|
+
sweepOffsets(root, traversalParams, 1, MAX_MAPS);
|
|
162
|
+
}
|
|
163
|
+
function sweepOffsets(root, traversalParams, startOffset, limit) {
|
|
164
|
+
traversalParams.offset = startOffset;
|
|
165
|
+
while (root.update(traversalParams)) {
|
|
166
|
+
traversalParams.offset += Math.sign(startOffset);
|
|
167
|
+
if ((startOffset < 0 && traversalParams.offset < limit) ||
|
|
168
|
+
(startOffset > 0 && traversalParams.offset > limit)) {
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=deck-tile-traversal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deck-tile-traversal.js","sourceRoot":"","sources":["../../src/shared-tile-2d-layer/deck-tile-traversal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Viewport } from '@deck.gl/core';
|
|
2
|
+
import { Matrix4 } from '@math.gl/core';
|
|
3
|
+
import type { Bounds, GeoBoundingBox, ZRange } from "../tileset/types.js";
|
|
4
|
+
import type { SharedTileset2DAdapter } from "../tileset/adapter.js";
|
|
5
|
+
/** deck.gl viewport type used by the shared tile layer adapter. */
|
|
6
|
+
export type SharedTile2DDeckViewState = Viewport;
|
|
7
|
+
/** Applies a model transform to an axis-aligned bounding box. */
|
|
8
|
+
export declare function transformBox(bbox: Bounds, modelMatrix: Matrix4): Bounds;
|
|
9
|
+
/** Computes cull bounds in projected/world coordinates for one deck viewport. */
|
|
10
|
+
export declare function getCullBounds({ viewport, z, cullRect }: {
|
|
11
|
+
viewport: Viewport;
|
|
12
|
+
z: ZRange | number | null;
|
|
13
|
+
cullRect: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
};
|
|
19
|
+
}): [number, number, number, number][];
|
|
20
|
+
/** Converts an OSM tile coordinate to longitude/latitude. */
|
|
21
|
+
export declare function osmTile2lngLat(x: number, y: number, z: number): [number, number];
|
|
22
|
+
/** Deck.gl adapter used by {@link SharedTile2DLayer} to drive a generic {@link SharedTileset2D}. */
|
|
23
|
+
export declare const sharedTile2DDeckAdapter: SharedTileset2DAdapter<Viewport>;
|
|
24
|
+
/** Type guard for geographic tile bounds. */
|
|
25
|
+
export declare function isGeoBoundingBox(v: any): v is GeoBoundingBox;
|
|
26
|
+
//# sourceMappingURL=deck-tileset-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deck-tileset-adapter.d.ts","sourceRoot":"","sources":["../../src/shared-tile-2d-layer/deck-tileset-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAC,MAAM,EAAE,cAAc,EAA8B,MAAM,EAAC,4BAAyB;AACjG,OAAO,KAAK,EACV,sBAAsB,EAGvB,8BAA2B;AAM5B,mEAAmE;AACnE,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;AAEjD,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CAavE;AAiCD,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,CAAC,EACD,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CACjE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAGrC;AAoDD,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMhF;AA6GD,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,EAAE,sBAAsB,CAAC,QAAQ,CAGpE,CAAC;AAEF,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,cAAc,CAO5D"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { getOSMTileIndices } from "./deck-tile-traversal.js";
|
|
5
|
+
const TILE_SIZE = 512;
|
|
6
|
+
const DEFAULT_EXTENT = [-Infinity, -Infinity, Infinity, Infinity];
|
|
7
|
+
/** Applies a model transform to an axis-aligned bounding box. */
|
|
8
|
+
export function transformBox(bbox, modelMatrix) {
|
|
9
|
+
const transformedCoords = [
|
|
10
|
+
modelMatrix.transformAsPoint([bbox[0], bbox[1]]),
|
|
11
|
+
modelMatrix.transformAsPoint([bbox[2], bbox[1]]),
|
|
12
|
+
modelMatrix.transformAsPoint([bbox[0], bbox[3]]),
|
|
13
|
+
modelMatrix.transformAsPoint([bbox[2], bbox[3]])
|
|
14
|
+
];
|
|
15
|
+
return [
|
|
16
|
+
Math.min(...transformedCoords.map((i) => i[0])),
|
|
17
|
+
Math.min(...transformedCoords.map((i) => i[1])),
|
|
18
|
+
Math.max(...transformedCoords.map((i) => i[0])),
|
|
19
|
+
Math.max(...transformedCoords.map((i) => i[1]))
|
|
20
|
+
];
|
|
21
|
+
}
|
|
22
|
+
function getBoundingBox(viewport, zRange, extent) {
|
|
23
|
+
let bounds;
|
|
24
|
+
if (zRange && zRange.length === 2) {
|
|
25
|
+
const [minZ, maxZ] = zRange;
|
|
26
|
+
const bounds0 = viewport.getBounds({ z: minZ });
|
|
27
|
+
const bounds1 = viewport.getBounds({ z: maxZ });
|
|
28
|
+
bounds = [
|
|
29
|
+
Math.min(bounds0[0], bounds1[0]),
|
|
30
|
+
Math.min(bounds0[1], bounds1[1]),
|
|
31
|
+
Math.max(bounds0[2], bounds1[2]),
|
|
32
|
+
Math.max(bounds0[3], bounds1[3])
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
bounds = viewport.getBounds();
|
|
37
|
+
}
|
|
38
|
+
if (!viewport.isGeospatial) {
|
|
39
|
+
return [
|
|
40
|
+
Math.max(Math.min(bounds[0], extent[2]), extent[0]),
|
|
41
|
+
Math.max(Math.min(bounds[1], extent[3]), extent[1]),
|
|
42
|
+
Math.min(Math.max(bounds[2], extent[0]), extent[2]),
|
|
43
|
+
Math.min(Math.max(bounds[3], extent[1]), extent[3])
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
return [
|
|
47
|
+
Math.max(bounds[0], extent[0]),
|
|
48
|
+
Math.max(bounds[1], extent[1]),
|
|
49
|
+
Math.min(bounds[2], extent[2]),
|
|
50
|
+
Math.min(bounds[3], extent[3])
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
/** Computes cull bounds in projected/world coordinates for one deck viewport. */
|
|
54
|
+
export function getCullBounds({ viewport, z, cullRect }) {
|
|
55
|
+
const subViewports = viewport.subViewports || [viewport];
|
|
56
|
+
return subViewports.map((v) => getCullBoundsInViewport(v, z || 0, cullRect));
|
|
57
|
+
}
|
|
58
|
+
function getCullBoundsInViewport(viewport, z, cullRect) {
|
|
59
|
+
if (!Array.isArray(z)) {
|
|
60
|
+
const x = cullRect.x - viewport.x;
|
|
61
|
+
const y = cullRect.y - viewport.y;
|
|
62
|
+
const { width, height } = cullRect;
|
|
63
|
+
const unprojectOption = { targetZ: z };
|
|
64
|
+
const topLeft = viewport.unproject([x, y], unprojectOption);
|
|
65
|
+
const topRight = viewport.unproject([x + width, y], unprojectOption);
|
|
66
|
+
const bottomLeft = viewport.unproject([x, y + height], unprojectOption);
|
|
67
|
+
const bottomRight = viewport.unproject([x + width, y + height], unprojectOption);
|
|
68
|
+
return [
|
|
69
|
+
Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]),
|
|
70
|
+
Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]),
|
|
71
|
+
Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]),
|
|
72
|
+
Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1])
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
const bounds0 = getCullBoundsInViewport(viewport, z[0], cullRect);
|
|
76
|
+
const bounds1 = getCullBoundsInViewport(viewport, z[1], cullRect);
|
|
77
|
+
return [
|
|
78
|
+
Math.min(bounds0[0], bounds1[0]),
|
|
79
|
+
Math.min(bounds0[1], bounds1[1]),
|
|
80
|
+
Math.max(bounds0[2], bounds1[2]),
|
|
81
|
+
Math.max(bounds0[3], bounds1[3])
|
|
82
|
+
];
|
|
83
|
+
}
|
|
84
|
+
function getIndexingCoords(bbox, scale, modelMatrixInverse) {
|
|
85
|
+
if (modelMatrixInverse) {
|
|
86
|
+
return transformBox(bbox, modelMatrixInverse).map((i) => (i * scale) / TILE_SIZE);
|
|
87
|
+
}
|
|
88
|
+
return bbox.map((i) => (i * scale) / TILE_SIZE);
|
|
89
|
+
}
|
|
90
|
+
function getScale(z, tileSize) {
|
|
91
|
+
return (Math.pow(2, z) * TILE_SIZE) / tileSize;
|
|
92
|
+
}
|
|
93
|
+
/** Converts an OSM tile coordinate to longitude/latitude. */
|
|
94
|
+
export function osmTile2lngLat(x, y, z) {
|
|
95
|
+
const scale = getScale(z, TILE_SIZE);
|
|
96
|
+
const lng = (x / scale) * 360 - 180;
|
|
97
|
+
const n = Math.PI - (2 * Math.PI * y) / scale;
|
|
98
|
+
const lat = (180 / Math.PI) * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));
|
|
99
|
+
return [lng, lat];
|
|
100
|
+
}
|
|
101
|
+
function tile2XY(x, y, z, tileSize) {
|
|
102
|
+
const scale = getScale(z, tileSize);
|
|
103
|
+
return [(x / scale) * TILE_SIZE, (y / scale) * TILE_SIZE];
|
|
104
|
+
}
|
|
105
|
+
function tileToBoundingBox(viewport, x, y, z, tileSize = TILE_SIZE) {
|
|
106
|
+
if (viewport.isGeospatial) {
|
|
107
|
+
const [west, north] = osmTile2lngLat(x, y, z);
|
|
108
|
+
const [east, south] = osmTile2lngLat(x + 1, y + 1, z);
|
|
109
|
+
return { west, north, east, south };
|
|
110
|
+
}
|
|
111
|
+
const [left, top] = tile2XY(x, y, z, tileSize);
|
|
112
|
+
const [right, bottom] = tile2XY(x + 1, y + 1, z, tileSize);
|
|
113
|
+
return { left, top, right, bottom };
|
|
114
|
+
}
|
|
115
|
+
function getIdentityTileIndices(viewport, z, tileSize, extent, modelMatrixInverse) {
|
|
116
|
+
const bbox = getBoundingBox(viewport, null, extent);
|
|
117
|
+
const scale = getScale(z, tileSize);
|
|
118
|
+
const [minX, minY, maxX, maxY] = getIndexingCoords(bbox, scale, modelMatrixInverse);
|
|
119
|
+
const indices = [];
|
|
120
|
+
for (let x = Math.floor(minX); x < maxX; x++) {
|
|
121
|
+
for (let y = Math.floor(minY); y < maxY; y++) {
|
|
122
|
+
indices.push({ x, y, z });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return indices;
|
|
126
|
+
}
|
|
127
|
+
function getTileZoomForViewport(viewport, tileSize, zoomOffset) {
|
|
128
|
+
return viewport.isGeospatial
|
|
129
|
+
? Math.round(viewport.zoom + Math.log2(TILE_SIZE / tileSize)) + zoomOffset
|
|
130
|
+
: Math.ceil(viewport.zoom) + zoomOffset;
|
|
131
|
+
}
|
|
132
|
+
function applyZoomBounds(z, minZoom, maxZoom, extent) {
|
|
133
|
+
if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {
|
|
134
|
+
if (!extent) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
z = minZoom;
|
|
138
|
+
}
|
|
139
|
+
if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {
|
|
140
|
+
z = maxZoom;
|
|
141
|
+
}
|
|
142
|
+
return z;
|
|
143
|
+
}
|
|
144
|
+
function getDeckTileIndices(context) {
|
|
145
|
+
const { viewState: viewport, maxZoom, minZoom, zRange = null, extent, tileSize = TILE_SIZE, modelMatrix, modelMatrixInverse, zoomOffset = 0 } = context;
|
|
146
|
+
let z = getTileZoomForViewport(viewport, tileSize, zoomOffset);
|
|
147
|
+
z = applyZoomBounds(z, minZoom, maxZoom, extent);
|
|
148
|
+
if (z === null) {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
let transformedExtent = extent || undefined;
|
|
152
|
+
if (modelMatrix && modelMatrixInverse && extent && !viewport.isGeospatial) {
|
|
153
|
+
transformedExtent = transformBox(extent, modelMatrix);
|
|
154
|
+
}
|
|
155
|
+
return viewport.isGeospatial
|
|
156
|
+
? getOSMTileIndices(viewport, z, zRange, extent || undefined)
|
|
157
|
+
: getIdentityTileIndices(viewport, z, tileSize, transformedExtent || DEFAULT_EXTENT, modelMatrixInverse);
|
|
158
|
+
}
|
|
159
|
+
function getDeckTileBoundingBox(context, index) {
|
|
160
|
+
return tileToBoundingBox(context.viewState, index.x, index.y, index.z, context.tileSize);
|
|
161
|
+
}
|
|
162
|
+
/** Deck.gl adapter used by {@link SharedTile2DLayer} to drive a generic {@link SharedTileset2D}. */
|
|
163
|
+
export const sharedTile2DDeckAdapter = {
|
|
164
|
+
getTileIndices: getDeckTileIndices,
|
|
165
|
+
getTileBoundingBox: getDeckTileBoundingBox
|
|
166
|
+
};
|
|
167
|
+
/** Type guard for geographic tile bounds. */
|
|
168
|
+
export function isGeoBoundingBox(v) {
|
|
169
|
+
return (Number.isFinite(v.west) &&
|
|
170
|
+
Number.isFinite(v.north) &&
|
|
171
|
+
Number.isFinite(v.east) &&
|
|
172
|
+
Number.isFinite(v.south));
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=deck-tileset-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deck-tileset-adapter.js","sourceRoot":"","sources":["../../src/shared-tile-2d-layer/deck-tileset-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { SharedTile2DLayer } from "./shared-tile-2d-layer.js";
|
|
2
|
+
export type { SharedTile2DLayerProps, SharedTile2DLayerPickingInfo } from "./shared-tile-2d-layer.js";
|
|
3
|
+
export { sharedTile2DDeckAdapter } from "./deck-tileset-adapter.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared-tile-2d-layer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,iBAAiB,EAAC,kCAA+B;AACzD,YAAY,EAAC,sBAAsB,EAAE,4BAA4B,EAAC,kCAA+B;AACjG,OAAO,EAAC,uBAAuB,EAAC,kCAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared-tile-2d-layer/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,iBAAiB,EAAC,kCAA+B;AAEzD,OAAO,EAAC,uBAAuB,EAAC,kCAA+B"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { CompositeLayer, type CompositeLayerProps, Layer, type LayersList, type LayerProps, type UpdateParameters, type PickingInfo, type GetPickingInfoParams, type DefaultProps, type FilterContext, type Viewport } from '@deck.gl/core';
|
|
2
|
+
import type { TileSource } from '@loaders.gl/loader-utils';
|
|
3
|
+
import { SharedTileset2D, SharedTile2DHeader, type TileLoadProps, type ZRange, type RefinementStrategy } from "../tileset/index.js";
|
|
4
|
+
import { SharedTile2DView } from "./shared-tile-2d-view.js";
|
|
5
|
+
import { type URLTemplate } from "./url-template.js";
|
|
6
|
+
/** Props for {@link SharedTile2DLayer}. */
|
|
7
|
+
export type SharedTile2DLayerProps<DataT = unknown> = CompositeLayerProps & {
|
|
8
|
+
/** URL template, shared tileset, or loaders.gl TileSource backing the layer. */
|
|
9
|
+
data: URLTemplate | SharedTileset2D<DataT, any> | TileSource;
|
|
10
|
+
/** Tileset class used when the layer creates its own internal tileset. */
|
|
11
|
+
TilesetClass?: typeof SharedTileset2D;
|
|
12
|
+
/** Sub-layer factory invoked for each loaded tile. */
|
|
13
|
+
renderSubLayers?: (props: SharedTile2DLayerProps<DataT> & {
|
|
14
|
+
id: string;
|
|
15
|
+
data: DataT;
|
|
16
|
+
_offset: number;
|
|
17
|
+
tile: SharedTile2DHeader<DataT>;
|
|
18
|
+
}) => Layer | null | LayersList;
|
|
19
|
+
/** Optional tile loader used with URL-template data. */
|
|
20
|
+
getTileData?: ((props: TileLoadProps) => Promise<DataT> | DataT) | null;
|
|
21
|
+
/** Callback fired when the current viewport's selected tiles are loaded. */
|
|
22
|
+
onViewportLoad?: ((tiles: SharedTile2DHeader<DataT>[]) => void) | null;
|
|
23
|
+
/** Callback fired when any tile loads. */
|
|
24
|
+
onTileLoad?: (tile: SharedTile2DHeader<DataT>) => void;
|
|
25
|
+
/** Callback fired when any tile is evicted. */
|
|
26
|
+
onTileUnload?: (tile: SharedTile2DHeader<DataT>) => void;
|
|
27
|
+
/** Callback fired when any tile fails to load. */
|
|
28
|
+
onTileError?: (err: any, tile?: SharedTile2DHeader<DataT>) => void;
|
|
29
|
+
/** Bounding box limiting tile generation. */
|
|
30
|
+
extent?: number[] | null;
|
|
31
|
+
/** Tile size in pixels. */
|
|
32
|
+
tileSize?: number;
|
|
33
|
+
/** Maximum zoom level to request. */
|
|
34
|
+
maxZoom?: number | null;
|
|
35
|
+
/** Minimum zoom level to request. */
|
|
36
|
+
minZoom?: number | null;
|
|
37
|
+
/** Maximum tile count kept in cache. */
|
|
38
|
+
maxCacheSize?: number | null;
|
|
39
|
+
/** Maximum byte size kept in cache. */
|
|
40
|
+
maxCacheByteSize?: number | null;
|
|
41
|
+
/** Placeholder refinement strategy. */
|
|
42
|
+
refinementStrategy?: RefinementStrategy;
|
|
43
|
+
/** Elevation bounds used during geospatial tile selection. */
|
|
44
|
+
zRange?: ZRange | null;
|
|
45
|
+
/** Maximum concurrent requests. */
|
|
46
|
+
maxRequests?: number;
|
|
47
|
+
/** Debounce interval before issuing queued requests. */
|
|
48
|
+
debounceTime?: number;
|
|
49
|
+
/** Integer zoom offset applied during tile selection. */
|
|
50
|
+
zoomOffset?: number;
|
|
51
|
+
};
|
|
52
|
+
/** Picking info returned from {@link SharedTile2DLayer}. */
|
|
53
|
+
export type SharedTile2DLayerPickingInfo<DataT = any, SubLayerPickingInfo = PickingInfo> = SubLayerPickingInfo & {
|
|
54
|
+
/** Picked tile when a tile sub-layer is hit. */
|
|
55
|
+
tile?: SharedTile2DHeader<DataT>;
|
|
56
|
+
/** Tile that produced the picked sub-layer. */
|
|
57
|
+
sourceTile: SharedTile2DHeader<DataT>;
|
|
58
|
+
/** Concrete sub-layer instance that handled the pick. */
|
|
59
|
+
sourceTileSubLayer: Layer;
|
|
60
|
+
};
|
|
61
|
+
/** Internal mutable state owned by {@link SharedTile2DLayer}. */
|
|
62
|
+
type SharedTile2DLayerState<DataT> = {
|
|
63
|
+
/** Shared or owned tileset used by the layer. */
|
|
64
|
+
tileset: SharedTileset2D<DataT, any> | null;
|
|
65
|
+
/** Per-viewport traversal state. */
|
|
66
|
+
tilesetViews: Map<string, SharedTile2DView<DataT>>;
|
|
67
|
+
/** Whether the layer owns and should finalize the tileset. */
|
|
68
|
+
ownsTileset: boolean;
|
|
69
|
+
/** Cached aggregate load state. */
|
|
70
|
+
isLoaded: boolean;
|
|
71
|
+
/** Last frame number observed for each viewport. */
|
|
72
|
+
frameNumbers: Map<string, number>;
|
|
73
|
+
/** Cached sub-layers per tile id. */
|
|
74
|
+
tileLayers: Map<string, Layer[]>;
|
|
75
|
+
/** Subscription disposer for tileset events. */
|
|
76
|
+
unsubscribeTilesetEvents: (() => void) | null;
|
|
77
|
+
};
|
|
78
|
+
/** Composite layer that can reuse a shared {@link SharedTileset2D} across layers and views. */
|
|
79
|
+
export declare class SharedTile2DLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<SharedTile2DLayerProps<DataT>>> {
|
|
80
|
+
/** Layer default props consumed by deck.gl prop management. */
|
|
81
|
+
static defaultProps: DefaultProps;
|
|
82
|
+
/** Stable layer name used in logs and devtools. */
|
|
83
|
+
static layerName: string;
|
|
84
|
+
/** Viewports currently known to this layer during multi-view rendering. */
|
|
85
|
+
private _knownViewports;
|
|
86
|
+
/** Internal layer state shared across render passes. */
|
|
87
|
+
state: SharedTile2DLayerState<DataT>;
|
|
88
|
+
/** Initializes layer-owned tileset state. */
|
|
89
|
+
initializeState(): void;
|
|
90
|
+
/** Finalizes owned resources and detaches from any shared tileset. */
|
|
91
|
+
finalizeState(): void;
|
|
92
|
+
/** Returns whether all visible sub-layers for all tracked views are loaded. */
|
|
93
|
+
get isLoaded(): boolean;
|
|
94
|
+
/** Triggers updates whenever props, data, or update triggers change. */
|
|
95
|
+
shouldUpdateState({ changeFlags }: UpdateParameters<this>): boolean;
|
|
96
|
+
/** Creates, reuses, or reconfigures the backing shared tileset and per-view state. */
|
|
97
|
+
updateState({ changeFlags }: UpdateParameters<this>): void;
|
|
98
|
+
/** Resolves whether to reuse a shared tileset, reuse an owned tileset, or create a new one. */
|
|
99
|
+
private _resolveTileset;
|
|
100
|
+
/** Tears down subscriptions and per-view state for the outgoing tileset. */
|
|
101
|
+
private _releaseTileset;
|
|
102
|
+
/** Applies prop updates to an existing tileset without replacing it. */
|
|
103
|
+
private _updateExistingTileset;
|
|
104
|
+
/** Resolves the current tileset configuration from layer props. */
|
|
105
|
+
_getTilesetOptions(): Record<string, unknown>;
|
|
106
|
+
/** Updates per-view traversal state for all known viewports. */
|
|
107
|
+
private _updateTileset;
|
|
108
|
+
/** Emits the viewport-load callback for one view. */
|
|
109
|
+
_onViewportLoad(tilesetView: SharedTile2DView<DataT>): void;
|
|
110
|
+
/** Clears cached sub-layers when a tile loads. */
|
|
111
|
+
_onTileLoad(tile: SharedTile2DHeader<DataT>): void;
|
|
112
|
+
/** Clears cached sub-layers when a tile errors. */
|
|
113
|
+
_onTileError(error: any, tile: SharedTile2DHeader<DataT>): void;
|
|
114
|
+
/** Removes cached sub-layers when a tile is evicted. */
|
|
115
|
+
_onTileUnload(tile: SharedTile2DHeader<DataT>): void;
|
|
116
|
+
/** Calls the URL-template loader path for a tile when the layer owns the tileset. */
|
|
117
|
+
getTileData(tile: TileLoadProps): Promise<DataT> | DataT | null;
|
|
118
|
+
/** Default tile sub-layer renderer, delegating to `renderSubLayers`. */
|
|
119
|
+
renderSubLayers(props: SharedTile2DLayer['props'] & {
|
|
120
|
+
id: string;
|
|
121
|
+
data: DataT;
|
|
122
|
+
_offset: number;
|
|
123
|
+
tile: SharedTile2DHeader<DataT>;
|
|
124
|
+
}): Layer | null | LayersList;
|
|
125
|
+
/** Hook for subclasses to provide extra sub-layer props per tile. */
|
|
126
|
+
getSubLayerPropsByTile(_tile: SharedTile2DHeader<DataT>): Partial<LayerProps> | null;
|
|
127
|
+
/** Adds tile references to picking info returned from sub-layers. */
|
|
128
|
+
getPickingInfo(params: GetPickingInfoParams): SharedTile2DLayerPickingInfo<DataT>;
|
|
129
|
+
/** Forwards auto-highlight updates to the picked sub-layer. */
|
|
130
|
+
protected _updateAutoHighlight(info: SharedTile2DLayerPickingInfo<DataT>): void;
|
|
131
|
+
/** Renders cached or newly generated sub-layers for each loaded tile. */
|
|
132
|
+
renderLayers(): Layer | null | LayersList;
|
|
133
|
+
/** Filters tile sub-layers based on the active view-specific visibility state. */
|
|
134
|
+
filterSubLayer({ layer, cullRect }: FilterContext): boolean;
|
|
135
|
+
/** Returns the active viewport key used to isolate per-view traversal state. */
|
|
136
|
+
private _getViewportKey;
|
|
137
|
+
/** Copies a tileset option only when the layer prop was explicitly set. */
|
|
138
|
+
private _assignTilesetOptionIfExplicit;
|
|
139
|
+
/** Tests whether a layer prop still has its default value. */
|
|
140
|
+
private _isDefaultOptionValue;
|
|
141
|
+
/** Drops the bootstrap placeholder viewport after a real viewport is known. */
|
|
142
|
+
private _prunePlaceholderViewportView;
|
|
143
|
+
/** Returns the per-viewport traversal state, creating it on demand. */
|
|
144
|
+
private _getOrCreateTilesetView;
|
|
145
|
+
/** Registers additional viewports in multi-view rendering scenarios. */
|
|
146
|
+
activateViewport(viewport: Viewport): void;
|
|
147
|
+
/** Normalizes nested render output into a flat tile sub-layer array. */
|
|
148
|
+
private _flattenTileLayers;
|
|
149
|
+
}
|
|
150
|
+
export {};
|
|
151
|
+
//# sourceMappingURL=shared-tile-2d-layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-tile-2d-layer.d.ts","sourceRoot":"","sources":["../../src/shared-tile-2d-layer/shared-tile-2d-layer.ts"],"names":[],"mappings":"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"}
|