@skzz/components-gis 0.1.4 → 0.1.6

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 (53) hide show
  1. package/dist/assets/twinPreviewWorker-DvpSZYqE.js +3 -0
  2. package/dist/assets/twinTextureMipWorker-BWoFEUdX.js +3 -0
  3. package/dist/color-DVYdxZow.js +359 -0
  4. package/dist/esm-BXiGX6xE.js +86 -0
  5. package/dist/index.css +1 -1
  6. package/dist/index.d.ts +72 -6
  7. package/dist/index.es.js +1164 -9665
  8. package/dist/index.umd.js +209 -5
  9. package/dist/interpolation-Ctw2-y9G.js +211 -0
  10. package/dist/layerStack-CbiVJONn.js +181 -0
  11. package/dist/pako.esm-D6zcBi67.js +1455 -0
  12. package/dist/query-DgSNPfJM.js +239 -0
  13. package/dist/queryPoint-BOi_hkig.js +189 -0
  14. package/dist/tw2Parser-Dxs5xGvB.js +115 -0
  15. package/dist/zz-3dtiles-BzDYB-tW.js +75 -0
  16. package/dist/zz-gltf-BDHxqQjs.js +70 -0
  17. package/dist/zz-layer/zz-layer-shp-zzts/shpZztsBounds.d.ts +19 -0
  18. package/dist/zz-layer/zz-layer-shp-zzts/shpZztsCacheUtils.d.ts +53 -0
  19. package/dist/zz-layer/zz-layer-shp-zzts/shpZztsGeometry.d.ts +27 -0
  20. package/dist/zz-layer/zz-layer-shp-zzts/shpZztsGeometryWorker.d.ts +1 -0
  21. package/dist/zz-layer/zz-layer-shp-zzts/shpZztsPreviewBudget.d.ts +78 -0
  22. package/dist/zz-layer/zz-layer-shp-zzts/shpZztsRenderer.d.ts +281 -16
  23. package/dist/zz-layer/zz-layer-shp-zzts/shpZztsViewState.d.ts +20 -0
  24. package/dist/zz-layer/zz-layer-zzts/zztsRasterCacheUtils.d.ts +35 -0
  25. package/dist/zz-layer/zz-layer-zzts/zztsRasterPreviewPolling.d.ts +10 -0
  26. package/dist/zz-layer/zz-layer-zzts3dv2/entityGridV2.d.ts +277 -0
  27. package/dist/zz-layer/zz-layer-zzts3dv2/index.vue.d.ts +1 -0
  28. package/dist/zz-layer/zz-layer-zzts3dv2/tw2Parser.d.ts +7 -0
  29. package/dist/zz-layer/zz-layer-zzts3dv2/twinAdaptiveMesh.d.ts +3 -0
  30. package/dist/zz-layer/zz-layer-zzts3dv2/twinCoarseLod.d.ts +4 -0
  31. package/dist/zz-layer/zz-layer-zzts3dv2/twinEnvironmentLighting.d.ts +16 -0
  32. package/dist/zz-layer/zz-layer-zzts3dv2/twinImagePixels.d.ts +6 -0
  33. package/dist/zz-layer/zz-layer-zzts3dv2/twinPagedIndex.d.ts +8 -0
  34. package/dist/zz-layer/zz-layer-zzts3dv2/twinParsePool.d.ts +10 -0
  35. package/dist/zz-layer/zz-layer-zzts3dv2/twinPreviewWorker.d.ts +1 -0
  36. package/dist/zz-layer/zz-layer-zzts3dv2/twinRegionalIndex.d.ts +23 -0
  37. package/dist/zz-layer/zz-layer-zzts3dv2/twinResourceBatch.d.ts +34 -0
  38. package/dist/zz-layer/zz-layer-zzts3dv2/twinTextureAppearance.d.ts +89 -0
  39. package/dist/zz-layer/zz-layer-zzts3dv2/twinTextureMipWorker.d.ts +1 -0
  40. package/dist/zz-layer/zz-layer-zzts3dv2/twinVisualRuntime.d.ts +107 -0
  41. package/dist/zz-layer-geojson-CtTpn_f9.js +867 -0
  42. package/dist/zz-layer-mvt-R1-GwSIW.js +609 -0
  43. package/dist/zz-layer-shp-zzts-Dr3Gxeba.js +1881 -0
  44. package/dist/zz-layer-zzts3d-CsIWse3P.js +835 -0
  45. package/dist/zz-layer-zzts3d-grid-CTHFZBpo.js +314 -0
  46. package/dist/zz-layer-zzts3d-las-D3w01aGe.js +561 -0
  47. package/dist/zz-layer-zzts3d-point-BjaTPTqj.js +752 -0
  48. package/dist/zz-layer-zzts3dtype-BRl3mCk9.js +493 -0
  49. package/dist/zz-layer-zzts3dv2-DFXCOaMe.js +4019 -0
  50. package/dist/zz-terrain-excavation-A2NXSQ5P.js +502 -0
  51. package/dist/zz-viewer/index.vue.d.ts +2 -2
  52. package/dist/zzts3dLayerSignature-DzrPeJTd.js +44 -0
  53. package/package.json +5 -4
@@ -0,0 +1,53 @@
1
+ export function shpZztsDbName(layerId: any): string;
2
+ export function tileMemoryKey(level: any, geosot: any): string;
3
+ export function tileIdbKey(level: any, geosot: any): string;
4
+ export function bulkIdbKey(level: any): string;
5
+ export function buildTileSetKey(lodLevel: any, tiles: any): string;
6
+ /**
7
+ * 同 LOD 且瓦片集合未变、场景上已有该层图元时,跳过拆建。
8
+ * 图例显隐走独立双缓冲,不经过这条判定。
9
+ */
10
+ export function shouldSkipShpZztsRebuild({ tileSetKey, lastTileSetKey, currentLod, lodLevel, hasPrimitives, }?: {}): boolean;
11
+ export function touchLru(map: any, key: any): any;
12
+ export function rememberLru(map: any, key: any, value: any, max: any): any;
13
+ export function isRenderableTileBuffer(data: any): boolean;
14
+ /** 中止或非 ArrayBuffer 不当成空瓦持久化,避免瞬时失败把格子写成永久空白 */
15
+ export function shouldPersistTileBuffer(data: any, aborted?: boolean): boolean;
16
+ /**
17
+ * 视窗绘制策略:切 LOD 有未缓存瓦片时也先留旧层拉齐,不再渐进拆旧。
18
+ * skip | lod-keep-old | double-buffer | silod
19
+ */
20
+ export function shpZztsViewPaintMode({ tileSetKey, lastTileSetKey, currentLod, lodLevel, hasPrimitives, pendingCount, }?: {
21
+ pendingCount?: number | undefined;
22
+ }): "skip" | "lod-keep-old" | "double-buffer" | "silod";
23
+ export function collectFeatureIds(geoms?: any[]): string[];
24
+ /**
25
+ * 首屏累计几何换挂:绘制进行中只保留最新快照,避免每块瓦片都重建。
26
+ */
27
+ export function createFirstPaintCoalescer(paintSnapshot: any): {
28
+ schedule: (snapshot: any) => void;
29
+ whenIdle: () => Promise<any>;
30
+ };
31
+ /**
32
+ * 跨瓦合并配色请求:并发瓦片先入队;凑满 800 立即 POST,否则短窗口合并。
33
+ * 未命中的 id 写入 cache=null,避免空结果反复打网。fetchAll 失败时作回退。
34
+ */
35
+ export function createModelColorDrain({ cache, postBatch, batchSize, coalesceMs, postConcurrency, delay, }?: {
36
+ batchSize?: number | undefined;
37
+ coalesceMs?: number | undefined;
38
+ postConcurrency?: number | undefined;
39
+ delay?: ((ms: any) => Promise<any>) | undefined;
40
+ }): {
41
+ ensure: (ids?: any[]) => Promise<void>;
42
+ reset: () => void;
43
+ };
44
+ /**
45
+ * 矢量 ZZTS 缓存键与跳过重建判定(无 Cesium / 无 IO,便于 Node 自测)。
46
+ */
47
+ export const SHP_ZZTS_IDB_VERSION: 6;
48
+ export const SHP_ZZTS_IDB_STORE: "vectorTile";
49
+ export const SHP_ZZTS_FETCH_CONCURRENCY: 12;
50
+ export const SHP_ZZTS_FIRST_PAINT_BATCH: 400;
51
+ export const SHP_ZZTS_COLOR_BATCH: 800;
52
+ export const SHP_ZZTS_COLOR_COALESCE_MS: 48;
53
+ export const SHP_ZZTS_COLOR_POST_CONCURRENCY: 2;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 从三角网索引提取边界折线:被仅 1 个三角形引用的边即边界边,
3
+ * 再按邻接关系连接成折线/闭合环,供面要素边线渲染。
4
+ * 内部边被 2 个三角形共享不会出现;非流形/自交网格退化时贪心连接,视觉仍正确。
5
+ */
6
+ export function extractBoundaryPolylines(indices: any, vertexCount: any): number[][];
7
+ /**
8
+ * 解析矢量瓦片二进制数据。
9
+ *
10
+ * 后端统一使用小端序(LE)组装:
11
+ * 外层: [tileCount(4B LE)][dataLen(4B LE)][rawTileData]
12
+ *
13
+ * rawTileData 存在三种格式(通过 dataLen 自动检测):
14
+ * V2(带 featureId + geometryKind): [fidLen(4B)][fid(UTF-8)][kind:1B][posLen(4B)][idxLen(4B)][positions][indices]
15
+ * 新格式(带 featureId,无 geometryKind): [fidLen(4B)][fid(UTF-8)][posLen(4B)][idxLen(4B)][positions][indices]
16
+ * 旧格式(无 featureId): [posLen(4B)][idxLen(4B)][positions][indices]
17
+ *
18
+ * 前端通过 slice + TypedArray 直接映射 LE 二进制数据,无需逐元素循环做字节序转换。
19
+ */
20
+ export function parseVectorTileData(rawData: any): any[];
21
+ /**
22
+ * 虚拟线样式专用:V2 线由左右成对顶点、每段两个三角形组成。
23
+ * 按明确索引模式还原中心线,MultiLine 的独立段分别返回;无法确认格式时保留原网格。
24
+ */
25
+ export function extractVirtualLinePaths(geometry: any): number[][][];
26
+ export function decodeTile(data: any): any[];
27
+ export function geometryBatches(geometries: any, maxFeatures?: number): any[][];
@@ -0,0 +1,78 @@
1
+ /**
2
+ * One renderer view round: plan 1 + first tile attempts 15 + colors 2 + retries 2.
3
+ * This counts renderer HTTP calls only, excluding upstream metadata/style and base maps.
4
+ * A failed or already dispatched cancelled call stays charged. Each retry is a new call.
5
+ * releaseReserved(kind) donates unused slots to retries after that phase has finished;
6
+ * the plan/color/tile hard caps remain intact. Unused slots never cause extra tile calls.
7
+ */
8
+ export function createPreviewRequestBudget({ maxRequests, reserve }?: {
9
+ maxRequests?: number | undefined;
10
+ reserve?: {} | undefined;
11
+ }): {
12
+ maxRequests: number;
13
+ limits: Readonly<{
14
+ plan: any;
15
+ color: any;
16
+ tile: number;
17
+ retry: number;
18
+ }>;
19
+ signal: AbortSignal;
20
+ readonly used: number;
21
+ readonly remaining: number;
22
+ readonly usedByKind: {
23
+ plan: number;
24
+ tile: number;
25
+ color: number;
26
+ retry: number;
27
+ };
28
+ available(kind?: string): number;
29
+ consume(kind?: string): void;
30
+ releaseReserved(kind: any): void;
31
+ cancel(reason: any): void;
32
+ };
33
+ /**
34
+ * FIFO page-wide HTTP pool. An active abort keeps its permit until the transport
35
+ * settles, even if the task ignores abort: cancellation must not create extra load.
36
+ */
37
+ export function createPreviewRequestPool({ concurrency, maxQueued, }?: {
38
+ concurrency?: number | undefined;
39
+ maxQueued?: number | undefined;
40
+ }): {
41
+ concurrency: number;
42
+ maxQueued: number;
43
+ readonly active: number;
44
+ readonly queued: number;
45
+ run(task: any, { signal }?: {}): Promise<any>;
46
+ };
47
+ /**
48
+ * Await cache lookup before calling. task(signal) dispatches exactly one HTTP call.
49
+ * Charge immediately before dispatch, after obtaining a permit and checking abort.
50
+ * Sync throws remain charged because a transport may have already dispatched.
51
+ */
52
+ export function runBudgetedPreviewRequest({ budget, signal }: {
53
+ budget: any;
54
+ signal: any;
55
+ }, task: any, { kind, pool }?: {
56
+ kind?: string | undefined;
57
+ pool?: {
58
+ concurrency: number;
59
+ maxQueued: number;
60
+ readonly active: number;
61
+ readonly queued: number;
62
+ run(task: any, { signal }?: {}): Promise<any>;
63
+ } | undefined;
64
+ }): Promise<any>;
65
+ /** Legacy empty plans are ambiguous. Only an explicit no-data state can clear a view. */
66
+ export function classifyPreviewPlan(payload: any): "ready" | "failed" | "no-data" | "deferred";
67
+ /** All planned tiles must have succeeded and explicitly decoded to empty geometry. */
68
+ export function areAllPreviewTilesEmpty(results: any): boolean;
69
+ export const SHP_ZZTS_PREVIEW_MAX_REQUESTS: 20;
70
+ export const SHP_ZZTS_PREVIEW_CONCURRENCY: 4;
71
+ export const SHP_ZZTS_PREVIEW_MAX_QUEUED: 128;
72
+ export namespace sharedPreviewRequestPool {
73
+ export { concurrency };
74
+ export { maxQueued };
75
+ export const active: number;
76
+ export const queued: number;
77
+ export function run(task: any, { signal }?: {}): Promise<any>;
78
+ }
@@ -1,10 +1,7 @@
1
+ import { IndexedDBManager } from '@skzz/libs-base';
1
2
  /** 透明度/栈位变化可原地更新;瓦片地址、范围、配色变化需要重建 */
2
3
  export function canReuseShpZztsLayer(layer: any, options?: {}): boolean;
3
- export function initLayer(viewer: any, options: any): Promise<ShpZztsLayer | null>;
4
- export function removeLayer(id: any): void;
5
- export function getLayer(id: any): any;
6
- export function removeAllLayers(): void;
7
- declare class ShpZztsLayer {
4
+ export class ShpZztsLayer {
8
5
  constructor(viewer: any, options?: {});
9
6
  viewer: any;
10
7
  id: any;
@@ -17,6 +14,8 @@ declare class ShpZztsLayer {
17
14
  fetchConcurrency: number;
18
15
  bulkTileThreshold: number;
19
16
  pointSize: number;
17
+ virtualLineStyle: any;
18
+ virtualPointStyle: any;
20
19
  displayRange: {
21
20
  west: number;
22
21
  south: number;
@@ -34,12 +33,56 @@ declare class ShpZztsLayer {
34
33
  enableServiceColor: boolean;
35
34
  modelColorUrl: any;
36
35
  modelColorCache: Map<any, any>;
36
+ _colorDrain: {
37
+ ensure: (ids?: any[]) => Promise<void>;
38
+ reset: () => void;
39
+ } | null;
40
+ _colorAllReady: boolean;
41
+ _colorAllPromise: any;
42
+ hiddenColors: Set<any>;
37
43
  currentLod: number;
38
44
  lodPrimitives: Map<any, any>;
39
45
  transitionAnimId: number | null;
40
46
  tileCache: Map<any, any>;
47
+ geometryWorker: any;
48
+ geometryTasks: Map<any, any>;
49
+ geometryTaskId: number;
41
50
  bulkCache: Map<any, any>;
42
51
  activeAbort: AbortController | null;
52
+ _previewContext: {
53
+ budget: {
54
+ maxRequests: number;
55
+ limits: Readonly<{
56
+ plan: any;
57
+ color: any;
58
+ tile: number;
59
+ retry: number;
60
+ }>;
61
+ signal: AbortSignal;
62
+ readonly used: number;
63
+ readonly remaining: number;
64
+ readonly usedByKind: {
65
+ plan: number;
66
+ tile: number;
67
+ color: number;
68
+ retry: number;
69
+ };
70
+ available(kind?: string): number;
71
+ consume(kind?: string): void;
72
+ releaseReserved(kind: any): void;
73
+ cancel(reason: any): void;
74
+ };
75
+ signal: AbortSignal;
76
+ rawBytes: number;
77
+ bounded: boolean;
78
+ } | null;
79
+ _activePreviewLoad: any;
80
+ previewStatus: {
81
+ state: string;
82
+ requests: number;
83
+ };
84
+ _statusElement: HTMLDivElement | null;
85
+ onPreviewStatus: any;
43
86
  renderRequestToken: number;
44
87
  debounceTimer: number | null;
45
88
  destroyed: boolean;
@@ -48,13 +91,149 @@ declare class ShpZztsLayer {
48
91
  subStackIndex: any;
49
92
  groupKey: any;
50
93
  _moveHandler: (() => void) | null;
94
+ _lastViewData: {
95
+ lodLevel: any;
96
+ geometries: any;
97
+ colorMap: Map<any, any>;
98
+ } | {
99
+ lodLevel: any;
100
+ geometries: any;
101
+ colorMap: Map<any, any>;
102
+ } | null;
103
+ _hiddenRebuildPending: boolean;
104
+ _hiddenRebuildQueued: boolean;
105
+ _lastTileSetKey: string;
106
+ enableIndexedDb: boolean;
107
+ gridDb: IndexedDBManager | null;
51
108
  _normOpacity(val: any): number;
109
+ /** 透明度归一:兼容 0-1、0-100(百分比)与 0-255 三种历史口径 */
110
+ _normAlpha(val: any): number;
52
111
  /** 解析外部传入的颜色,未配置时回退默认淡蓝色 */
53
112
  _resolveColor(): Cesium.Color;
113
+ _setPreviewStatus(state: any, message?: string, context?: {
114
+ budget: {
115
+ maxRequests: number;
116
+ limits: Readonly<{
117
+ plan: any;
118
+ color: any;
119
+ tile: number;
120
+ retry: number;
121
+ }>;
122
+ signal: AbortSignal;
123
+ readonly used: number;
124
+ readonly remaining: number;
125
+ readonly usedByKind: {
126
+ plan: number;
127
+ tile: number;
128
+ color: number;
129
+ retry: number;
130
+ };
131
+ available(kind?: string): number;
132
+ consume(kind?: string): void;
133
+ releaseReserved(kind: any): void;
134
+ cancel(reason: any): void;
135
+ };
136
+ signal: AbortSignal;
137
+ rawBytes: number;
138
+ bounded: boolean;
139
+ } | null): void;
140
+ _previewRequest(config: any, context?: {
141
+ budget: {
142
+ maxRequests: number;
143
+ limits: Readonly<{
144
+ plan: any;
145
+ color: any;
146
+ tile: number;
147
+ retry: number;
148
+ }>;
149
+ signal: AbortSignal;
150
+ readonly used: number;
151
+ readonly remaining: number;
152
+ readonly usedByKind: {
153
+ plan: number;
154
+ tile: number;
155
+ color: number;
156
+ retry: number;
157
+ };
158
+ available(kind?: string): number;
159
+ consume(kind?: string): void;
160
+ releaseReserved(kind: any): void;
161
+ cancel(reason: any): void;
162
+ };
163
+ signal: AbortSignal;
164
+ rawBytes: number;
165
+ bounded: boolean;
166
+ } | null, kind?: string): Promise<any>;
54
167
  isServiceColorEnabled(): boolean;
168
+ _collectFeatureIds(geoms?: any[]): string[];
169
+ /** 只读内存配色缓存,不打网。渐进上屏在瓦片查色之后调用。 */
170
+ _colorMapFromCache(geoms?: any[]): Map<any, any>;
171
+ _ingestModelColorRows(rows?: any[]): number;
172
+ _resetServiceColorIndex(): void;
173
+ _fetchAllServiceColors(context?: {
174
+ budget: {
175
+ maxRequests: number;
176
+ limits: Readonly<{
177
+ plan: any;
178
+ color: any;
179
+ tile: number;
180
+ retry: number;
181
+ }>;
182
+ signal: AbortSignal;
183
+ readonly used: number;
184
+ readonly remaining: number;
185
+ readonly usedByKind: {
186
+ plan: number;
187
+ tile: number;
188
+ color: number;
189
+ retry: number;
190
+ };
191
+ available(kind?: string): number;
192
+ consume(kind?: string): void;
193
+ releaseReserved(kind: any): void;
194
+ cancel(reason: any): void;
195
+ };
196
+ signal: AbortSignal;
197
+ rawBytes: number;
198
+ bounded: boolean;
199
+ } | null): Promise<number>;
200
+ _ensureServiceColorIndex(context?: {
201
+ budget: {
202
+ maxRequests: number;
203
+ limits: Readonly<{
204
+ plan: any;
205
+ color: any;
206
+ tile: number;
207
+ retry: number;
208
+ }>;
209
+ signal: AbortSignal;
210
+ readonly used: number;
211
+ readonly remaining: number;
212
+ readonly usedByKind: {
213
+ plan: number;
214
+ tile: number;
215
+ color: number;
216
+ retry: number;
217
+ };
218
+ available(kind?: string): number;
219
+ consume(kind?: string): void;
220
+ releaseReserved(kind: any): void;
221
+ cancel(reason: any): void;
222
+ };
223
+ signal: AbortSignal;
224
+ rawBytes: number;
225
+ bounded: boolean;
226
+ } | null): any;
227
+ _cssToCesiumColor(css: any): Cesium.Color | null;
228
+ /** 配色到齐后原地改已上屏图元颜色,不拆建 */
229
+ _applyServiceColorsInPlace(): void;
230
+ _getColorDrain(): {
231
+ ensure: (ids?: any[]) => Promise<void>;
232
+ reset: () => void;
233
+ };
234
+ _postModelColorBatch(batch: any): Promise<any>;
55
235
  /**
56
- * 按 feature_id 分批(800/批)查询配色索引,结果写入缓存。
57
- * 返回 featureId -> color(css) 的 Map;未启用服务配色时返回空 Map。
236
+ * 按 feature_id 查询配色。并发调用会合并成一次 POST(最多 800 id)。
58
237
  */
59
238
  loadModelColorsByIds(featureIds?: any[]): Promise<Map<any, any>>;
60
239
  /** 按要素解析颜色:服务配色命中 > 用户统一色 > 默认淡蓝 */
@@ -72,33 +251,115 @@ declare class ShpZztsLayer {
72
251
  width: any;
73
252
  height: any;
74
253
  } | null;
254
+ _waitForScreenBounds(maxMs?: number): Promise<boolean>;
75
255
  _updatePrimitiveAlpha(entries: any, alpha: any): void;
76
256
  /** 把当前图层透明度应用到已渲染 primitive,拖动滑块时原地生效 */
77
257
  _applyLayerOpacity(): void;
78
258
  _destroyLodPrimitives(lod: any): void;
259
+ _discardPrimitiveEntries(entries: any): void;
260
+ /**
261
+ * 第一次勾选:还没有图元时按小批次直接挂场景(先看到线);
262
+ * 之后的累计快照仍 defer 双缓冲换挂,避免重片。
263
+ */
264
+ _swapFirstPaintGeoms(geoms: any, lodLevel: any, isActive: any): Promise<any>;
265
+ /**
266
+ * 同 LOD 双缓冲换挂:新图元分帧隐藏预热,就绪后同帧移除旧图元并显示新图元。
267
+ * 令牌失效时只丢弃半成品,不拆当前画面。
268
+ */
269
+ _swapLodPrimitives(lodLevel: any, newEntries: any, isActive: any): boolean;
79
270
  _clearRenderedPrimitives(): void;
80
- _crossFadeLod(oldLod: any, newLod: any): void;
271
+ _openTileDb(): Promise<void>;
272
+ _readIdbBuffer(id: any): Promise<ArrayBuffer | SharedArrayBuffer | undefined>;
273
+ _writeIdbBuffer(id: any, data: any): void;
274
+ _parseTileBuffer(data: any): any[];
275
+ _decodeTileAsync(data: any, signal: any): Promise<any>;
276
+ _stopGeometryWorker(error: any): void;
277
+ /**
278
+ * 图例显隐变化:用最近一次成功加载的视窗数据(_lastViewData)双缓冲重建——
279
+ * 全程不发 calTiles/瓦片请求;新图元在旧图元保持显示期间构建,就绪后同帧换挂,画面无空白期。
280
+ */
281
+ _rebuildForHiddenColors(): void;
282
+ _finishHiddenRebuild(): void;
283
+ _crossFadeLod(oldLod: any, newLod: any, isActive: any): void;
81
284
  /**
82
285
  * @param entriesSink 渐进渲染时传入本轮共享的 entries 数组:
83
286
  * 多次 flush 的图元累积到同一列表(lodPrimitives 只认这个列表),
84
287
  * 不传则使用本次调用的局部列表(一次性渲染路径)。
288
+ * @param renderOptions {deferScene, onComplete} 双缓冲重建选项:
289
+ * deferScene=true 时逐批隐藏挂载,全部就绪后由 onComplete 统一切换显示。
85
290
  */
86
- _renderBatched(geometries: any, lodLevel: any, initialAlpha: any, onReady: any, colorMap: any, entriesSink: any): any;
87
- _getVectorTileData(geosot: any, level: any, signal: any): Promise<{
291
+ _renderBatched(geometries: any, lodLevel: any, initialAlpha: any, onReady: any, colorMap: any, entriesSink: any, renderOptions?: any): any;
292
+ _getVectorTileData(geosot: any, level: any, signal: any, context?: {
293
+ budget: {
294
+ maxRequests: number;
295
+ limits: Readonly<{
296
+ plan: any;
297
+ color: any;
298
+ tile: number;
299
+ retry: number;
300
+ }>;
301
+ signal: AbortSignal;
302
+ readonly used: number;
303
+ readonly remaining: number;
304
+ readonly usedByKind: {
305
+ plan: number;
306
+ tile: number;
307
+ color: number;
308
+ retry: number;
309
+ };
310
+ available(kind?: string): number;
311
+ consume(kind?: string): void;
312
+ releaseReserved(kind: any): void;
313
+ cancel(reason: any): void;
314
+ };
315
+ signal: AbortSignal;
316
+ rawBytes: number;
317
+ bounded: boolean;
318
+ } | null, kind?: string): Promise<{
88
319
  geosot: any;
89
- data: any;
320
+ data: ArrayBuffer;
90
321
  }>;
91
322
  /**
92
- * 拉取单个瓦片并解析为几何体(带 LRU 缓存)。
93
- * 空瓦片也缓存(空数组):该格网本 LOD 无要素,平移回看时不再重复请求。
323
+ * 拉取单个瓦片并解析为几何体(内存 LRU → IndexedDB → HTTP)。
324
+ * 空瓦片也缓存(空数组 / 空 ArrayBuffer):该格网本 LOD 无要素,回看不再重复请求。
94
325
  */
95
- _fetchTileGeometries(geosot: any, level: any, signal: any): Promise<any>;
326
+ _fetchTileGeometries(geosot: any, level: any, signal: any, context?: {
327
+ budget: {
328
+ maxRequests: number;
329
+ limits: Readonly<{
330
+ plan: any;
331
+ color: any;
332
+ tile: number;
333
+ retry: number;
334
+ }>;
335
+ signal: AbortSignal;
336
+ readonly used: number;
337
+ readonly remaining: number;
338
+ readonly usedByKind: {
339
+ plan: number;
340
+ tile: number;
341
+ color: number;
342
+ retry: number;
343
+ };
344
+ available(kind?: string): number;
345
+ consume(kind?: string): void;
346
+ releaseReserved(kind: any): void;
347
+ cancel(reason: any): void;
348
+ };
349
+ signal: AbortSignal;
350
+ rawBytes: number;
351
+ bounded: boolean;
352
+ } | null, kind?: string): Promise<any>;
353
+ _rememberTileGeometries(key: any, geometries: any): any;
96
354
  /**
97
355
  * 整图层批量拉取:新后端 /layer/3d/getVectorLayerData 一次返回该 LOD 全部要素。
98
356
  * 与逐瓦片响应同一信封格式,复用同一解析器;结果按 LOD 缓存(仅缓存非空结果)。
99
357
  */
100
358
  _getLayerGeometries(level: any, signal: any): Promise<any>;
101
- loadAndRender(): Promise<void>;
359
+ _commitPreviewRecords(records: any, geometries: any, lodLevel: any, isActive: any): Promise<any>;
360
+ _lastTileRecords: any;
361
+ loadAndRender(): any;
362
+ _loadAndRender(bounds: any): Promise<void>;
102
363
  _onCameraMoveEnd(): void;
103
364
  _setupMoveHandler(): void;
104
365
  _teardownMoveHandler(): void;
@@ -107,8 +368,12 @@ declare class ShpZztsLayer {
107
368
  /** 更新图层配置(颜色、透明度、栈位等) */
108
369
  updateOptions(options?: {}): void;
109
370
  }
110
- export const shpZztsManager: ShpZztsManager;
371
+ export function initLayer(viewer: any, options: any): Promise<ShpZztsLayer | null>;
372
+ export function removeLayer(id: any): void;
373
+ export function getLayer(id: any): any;
374
+ export function removeAllLayers(): void;
111
375
  import * as Cesium from 'cesium';
376
+ export const shpZztsManager: ShpZztsManager;
112
377
  declare class ShpZztsManager {
113
378
  layers: Map<any, any>;
114
379
  createLayer(viewer: any, options?: {}): Promise<ShpZztsLayer | null>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Successful new tiles replace their regions, including successful empty tiles.
3
+ * Retain old tiles only where a failed new tile may overlap, regardless of LOD.
4
+ * Missing/invalid bounds conservatively retain old coverage. Fresh trusted feature
5
+ * IDs take precedence; legacy untrusted IDs must not collapse unrelated features.
6
+ */
7
+ export function composePreviewRecords(successRecords: any, failedTiles: any, previousRecords?: any[]): {
8
+ records: any[];
9
+ geometries: any[];
10
+ };
11
+ /** Check the complete composed view before building primitives; never truncate it. */
12
+ export function assertPreviewGeometryBudget(geometries: any, { maxBytes, maxTriangles, }?: {
13
+ maxBytes?: number | undefined;
14
+ maxTriangles?: number | undefined;
15
+ }): {
16
+ bytes: number;
17
+ triangles: number;
18
+ };
19
+ export const SHP_ZZTS_PREVIEW_MAX_GEOMETRY_BYTES: number;
20
+ export const SHP_ZZTS_PREVIEW_MAX_TRIANGLES: 3000000;
@@ -0,0 +1,35 @@
1
+ export function zztsRasterDbName(dictCode: any, layerName: any): string;
2
+ export function parseTileVersion(url: any): string;
3
+ /** elements 用 v=style-0 表示磁盘上还没有预览文件,不能当成功缓存。 */
4
+ export function isPlaceholderTileVersion(version: any): boolean;
5
+ export function tileMemoryKey(geosot: any, version: any): string;
6
+ export function tileIdbKey(geosot: any, version: any): string;
7
+ export function guessRasterMime(url: any, contentType: any): string;
8
+ export function hasValidExtent(extent: any): boolean;
9
+ /** 缓存/贴图用的四至;缺字段返回 null,避免图和坐标拆开走。 */
10
+ export function normalizeTileExtent(extent: any): {
11
+ xmin: number;
12
+ ymin: number;
13
+ xmax: number;
14
+ ymax: number;
15
+ } | null;
16
+ export function shouldPersistRasterTile({ version, httpOk, byteLength, aborted, extent, }?: {
17
+ aborted?: boolean | undefined;
18
+ }): boolean;
19
+ export function touchLru(map: any, key: any): any;
20
+ export function hasValidImageSize(image: any): boolean;
21
+ export function geosotCellSize(level: any): number;
22
+ /** 用 GeoSOT 编码反解格网四至,避免 association bbox / 补边把相邻片拉开或叠上。 */
23
+ export function geosotCellBounds(geosot: any): {
24
+ xmin: number;
25
+ ymin: number;
26
+ xmax: number;
27
+ ymax: number;
28
+ } | null;
29
+ export function rememberLru(map: any, key: any, value: any, max: any): any;
30
+ /**
31
+ * 栅格 ZZTS 预览图缓存键与落盘判定(无 Cesium / 无 IO,便于 Node 自测)。
32
+ */
33
+ export const ZZTS_RASTER_IDB_VERSION: 1;
34
+ export const ZZTS_RASTER_IDB_STORE: "rasterTile";
35
+ export const ZZTS_RASTER_IMAGE_CACHE_MAX: 128;
@@ -0,0 +1,10 @@
1
+ /** 只轮询明确处于生成中的栅格响应;旧接口和正常空视窗保持原行为。 */
2
+ export function createRasterPreviewPolling({ setTimer, clearTimer, now, timeoutMs, }?: {
3
+ setTimer?: typeof setTimeout | undefined;
4
+ clearTimer?: typeof clearTimeout | undefined;
5
+ now?: (() => number) | undefined;
6
+ timeoutMs?: number | undefined;
7
+ }): {
8
+ update: (response: any, startedAt: any, retry: any, fail: any) => void;
9
+ cancel: () => void;
10
+ };