grid-webgl-openlayers 1.0.0
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/LICENSE +201 -0
- package/README.md +127 -0
- package/dist/assets/gridData.worker-z5TRvtQ2.js +2 -0
- package/dist/assets/gridData.worker-z5TRvtQ2.js.map +1 -0
- package/dist/grid-webgl-openlayers.css +1 -0
- package/dist/index.d.ts +525 -0
- package/dist/index.js +99 -0
- package/dist/index.js.map +1 -0
- package/dist/layerControlHelpers-BSZqa4fP.js +1208 -0
- package/dist/layerControlHelpers-BSZqa4fP.js.map +1 -0
- package/dist/vue.d.ts +602 -0
- package/dist/vue.js +321 -0
- package/dist/vue.js.map +1 -0
- package/package.json +63 -0
package/dist/vue.d.ts
ADDED
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
import { ComponentOptionsMixin } from 'vue';
|
|
2
|
+
import { ComponentProvideOptions } from 'vue';
|
|
3
|
+
import { ComputedRef } from 'vue';
|
|
4
|
+
import { default as default_2 } from 'ol/Map';
|
|
5
|
+
import { default as default_3 } from 'ol/layer/Image';
|
|
6
|
+
import { default as default_4 } from 'ol/source/ImageCanvas';
|
|
7
|
+
import { DefineComponent } from 'vue';
|
|
8
|
+
import { PublicProps } from 'vue';
|
|
9
|
+
|
|
10
|
+
declare const __VLS_component: DefineComponent<__VLS_Props_2, {
|
|
11
|
+
getSlider: () => LegendRangeSlider | null;
|
|
12
|
+
setDisplayRange: (min: number, max: number) => void | undefined;
|
|
13
|
+
getDisplayRange: () => {
|
|
14
|
+
displayMin: number;
|
|
15
|
+
displayMax: number;
|
|
16
|
+
} | null;
|
|
17
|
+
setLegendMode: (mode: "gradient" | "blocks") => void | undefined;
|
|
18
|
+
layer: ComputedRef<LayerControlApi>;
|
|
19
|
+
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
20
|
+
change: (range: {
|
|
21
|
+
displayMin: number;
|
|
22
|
+
displayMax: number;
|
|
23
|
+
}) => any;
|
|
24
|
+
}, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{
|
|
25
|
+
onChange?: ((range: {
|
|
26
|
+
displayMin: number;
|
|
27
|
+
displayMax: number;
|
|
28
|
+
}) => any) | undefined;
|
|
29
|
+
}>, {
|
|
30
|
+
precision: number;
|
|
31
|
+
title: string;
|
|
32
|
+
legendMode: "gradient" | "blocks";
|
|
33
|
+
showTitle: boolean;
|
|
34
|
+
placement: LegendPanelPlacement;
|
|
35
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
36
|
+
sliderHost: HTMLDivElement;
|
|
37
|
+
}, HTMLDivElement>;
|
|
38
|
+
|
|
39
|
+
declare type __VLS_Props = {
|
|
40
|
+
map: default_2 | null | undefined;
|
|
41
|
+
dataUrl?: string;
|
|
42
|
+
data?: ArrayDataJson;
|
|
43
|
+
showChoropleth?: boolean;
|
|
44
|
+
showGrid?: boolean;
|
|
45
|
+
showLabels?: boolean;
|
|
46
|
+
choroplethOpacity?: number;
|
|
47
|
+
choroplethZIndex?: number;
|
|
48
|
+
labelsZIndex?: number;
|
|
49
|
+
labelDistance?: number;
|
|
50
|
+
labelPrecision?: number;
|
|
51
|
+
labelFontSize?: number;
|
|
52
|
+
colorRamp?: ColorRampItem[];
|
|
53
|
+
legendMin?: number;
|
|
54
|
+
legendMax?: number;
|
|
55
|
+
displayMin?: number;
|
|
56
|
+
displayMax?: number;
|
|
57
|
+
autoFit?: boolean;
|
|
58
|
+
fitPadding?: number | [number, number, number, number];
|
|
59
|
+
fitMaxZoom?: number;
|
|
60
|
+
/** 创建时绑定鼠标拾取,等价于 onPointerMove 回调 */
|
|
61
|
+
onPointerMove?: (event: GridMapPointerEvent) => void;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
declare type __VLS_Props_2 = {
|
|
65
|
+
overlay?: GridMapView | null;
|
|
66
|
+
colorRamp?: ColorRampItem[];
|
|
67
|
+
legendTicks?: number[];
|
|
68
|
+
/** 直接传入:gradient | blocks,默认 blocks */
|
|
69
|
+
legendMode?: "gradient" | "blocks";
|
|
70
|
+
displayMin?: number;
|
|
71
|
+
displayMax?: number;
|
|
72
|
+
precision?: number;
|
|
73
|
+
title?: string;
|
|
74
|
+
showTitle?: boolean;
|
|
75
|
+
placement?: LegendPanelPlacement;
|
|
76
|
+
background?: string;
|
|
77
|
+
width?: string | number;
|
|
78
|
+
padding?: string;
|
|
79
|
+
borderRadius?: string;
|
|
80
|
+
boxShadow?: string;
|
|
81
|
+
zIndex?: number;
|
|
82
|
+
bottom?: string | number;
|
|
83
|
+
right?: string | number;
|
|
84
|
+
left?: string | number;
|
|
85
|
+
top?: string | number;
|
|
86
|
+
font?: string;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
declare type __VLS_Props_3 = {
|
|
90
|
+
overlay?: GridMapView | null;
|
|
91
|
+
/** 外部色带(数值间隔可不规则) */
|
|
92
|
+
colorRamp?: ColorRampItem[];
|
|
93
|
+
/** 图例刻度;不传则从 colorRamp 提取 */
|
|
94
|
+
legendTicks?: number[];
|
|
95
|
+
/** gradient 连续色带 | blocks 离散色块 */
|
|
96
|
+
legendMode?: "gradient" | "blocks";
|
|
97
|
+
displayMin?: number;
|
|
98
|
+
displayMax?: number;
|
|
99
|
+
precision?: number;
|
|
100
|
+
title?: string;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
declare function __VLS_template(): {
|
|
104
|
+
attrs: Partial<{}>;
|
|
105
|
+
slots: {
|
|
106
|
+
controls?(_: {
|
|
107
|
+
overlay: GridMapView | null | undefined;
|
|
108
|
+
layer: LayerControlApi;
|
|
109
|
+
}): any;
|
|
110
|
+
};
|
|
111
|
+
refs: {
|
|
112
|
+
sliderHost: HTMLDivElement;
|
|
113
|
+
};
|
|
114
|
+
rootEl: HTMLDivElement;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
118
|
+
|
|
119
|
+
declare type __VLS_WithTemplateSlots<T, S> = T & {
|
|
120
|
+
new (): {
|
|
121
|
+
$slots: S;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/** 与 arrayData.json 一致的网格数据格式 */
|
|
126
|
+
declare interface ArrayDataJson {
|
|
127
|
+
startLat: number;
|
|
128
|
+
endLat: number;
|
|
129
|
+
startLon: number;
|
|
130
|
+
endLon: number;
|
|
131
|
+
latStep: number;
|
|
132
|
+
lonStep: number;
|
|
133
|
+
latCount: number;
|
|
134
|
+
lonCount: number;
|
|
135
|
+
ds: number[][];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* 网格数据加载器:主线程保留 flat 副本供同步拾取,LOD/标注计算走 Worker。
|
|
140
|
+
*/
|
|
141
|
+
declare class ArrayDataLoader {
|
|
142
|
+
private meta;
|
|
143
|
+
private flat;
|
|
144
|
+
private loaded;
|
|
145
|
+
private worker;
|
|
146
|
+
private lastExtent;
|
|
147
|
+
private lastZoom;
|
|
148
|
+
private cachedTile;
|
|
149
|
+
private tileRequestId;
|
|
150
|
+
get bbox(): [number, number, number, number];
|
|
151
|
+
get metadata(): {
|
|
152
|
+
nodata: number;
|
|
153
|
+
bbox: [number, number, number, number];
|
|
154
|
+
startLat: number;
|
|
155
|
+
endLat: number;
|
|
156
|
+
startLon: number;
|
|
157
|
+
endLon: number;
|
|
158
|
+
latStep: number;
|
|
159
|
+
lonStep: number;
|
|
160
|
+
latCount: number;
|
|
161
|
+
lonCount: number;
|
|
162
|
+
};
|
|
163
|
+
get isLoaded(): boolean;
|
|
164
|
+
load(url: string): Promise<void>;
|
|
165
|
+
/** 直接加载 JSON 对象(Vue / Node 传入内存数据时使用) */
|
|
166
|
+
loadData(json: ArrayDataJson): Promise<void>;
|
|
167
|
+
getLodStep(zoom: number): number;
|
|
168
|
+
getLabelStep(zoom: number, resolution: number, distancePx: number, projCode?: string): number;
|
|
169
|
+
/** 异步 readWindow(Worker) */
|
|
170
|
+
readWindowAsync(extent4326: number[], zoom: number): Promise<GridTile | null>;
|
|
171
|
+
/** 同步 readWindow(Worker 未就绪时 fallback) */
|
|
172
|
+
readWindow(extent4326: number[], zoom: number): GridTile | null;
|
|
173
|
+
computeLabelsAsync(extent4326: number[], zoom: number, resolution: number, distancePx: number, precision: number, projCode?: string): Promise<GridLabel[]>;
|
|
174
|
+
computeLabelsSync(extent4326: number[], zoom: number, resolution: number, distancePx: number, precision: number, projCode?: string): GridLabel[];
|
|
175
|
+
getValueAt(lon: number, lat: number, tile?: GridTile | null): number | null;
|
|
176
|
+
getNativeValueAt(lon: number, lat: number): number | null;
|
|
177
|
+
computeStats(): {
|
|
178
|
+
min: number;
|
|
179
|
+
max: number;
|
|
180
|
+
};
|
|
181
|
+
get nativeResolution(): [number, number];
|
|
182
|
+
get gridOrigin(): [number, number];
|
|
183
|
+
invalidateCache(): void;
|
|
184
|
+
dispose(): void;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
declare class ChoroplethLayer extends default_3<default_4> {
|
|
188
|
+
private loader;
|
|
189
|
+
private glCanvas;
|
|
190
|
+
private displayCanvas;
|
|
191
|
+
private renderer;
|
|
192
|
+
private legend;
|
|
193
|
+
private currentTile;
|
|
194
|
+
private showGridLines;
|
|
195
|
+
private colorRamp;
|
|
196
|
+
private displayMin;
|
|
197
|
+
private displayMax;
|
|
198
|
+
private mapRef;
|
|
199
|
+
private fetchVersion;
|
|
200
|
+
private viewUnbind;
|
|
201
|
+
private readonly onMapChange;
|
|
202
|
+
constructor(options: ChoroplethLayerOptions);
|
|
203
|
+
/** 当前图例数值范围 */
|
|
204
|
+
getLegendRange(): {
|
|
205
|
+
min: number;
|
|
206
|
+
max: number;
|
|
207
|
+
};
|
|
208
|
+
getColorRamp(): ColorRampItem[];
|
|
209
|
+
/** 设置完整色带并刷新渲染 */
|
|
210
|
+
setColorRamp(colorRamp: ColorRampItem[]): void;
|
|
211
|
+
/** 仅调整图例 min/max(保留当前色带样式) */
|
|
212
|
+
setLegendRange(min: number, max: number): void;
|
|
213
|
+
/** 色斑图实际显示的数值区间(滑块控制) */
|
|
214
|
+
getDisplayRange(): {
|
|
215
|
+
min: number;
|
|
216
|
+
max: number;
|
|
217
|
+
};
|
|
218
|
+
setDisplayRange(min: number, max: number): void;
|
|
219
|
+
private clampDisplayRange;
|
|
220
|
+
private refreshRender;
|
|
221
|
+
getShowGrid(): boolean;
|
|
222
|
+
private rebuildLegend;
|
|
223
|
+
setShowGrid(show: boolean): void;
|
|
224
|
+
refreshData(): void;
|
|
225
|
+
private scheduleFetch;
|
|
226
|
+
private renderFrame;
|
|
227
|
+
attachMap(map: default_2): void;
|
|
228
|
+
reattachView(map: default_2): void;
|
|
229
|
+
private bindView;
|
|
230
|
+
getDataValue(lon: number, lat: number): number | null;
|
|
231
|
+
dispose(): void;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
declare interface ChoroplethLayerOptions {
|
|
235
|
+
loader: ArrayDataLoader;
|
|
236
|
+
colorRamp?: ColorRampItem[];
|
|
237
|
+
opacity?: number;
|
|
238
|
+
showGrid?: boolean;
|
|
239
|
+
zIndex?: number;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
declare type ColorRampItem = [number, [number, number, number, number]];
|
|
243
|
+
|
|
244
|
+
export declare interface DisplayRange {
|
|
245
|
+
min: number;
|
|
246
|
+
max: number;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export declare const GredGridMap: DefineComponent<__VLS_Props, {
|
|
250
|
+
getOverlay: () => GridMapView | null;
|
|
251
|
+
fitToData: () => void | undefined;
|
|
252
|
+
refreshView: () => void | undefined;
|
|
253
|
+
getValueAt: (lon: number, lat: number) => number | null;
|
|
254
|
+
getLayerVisibility: () => GridLayerVisibility | null;
|
|
255
|
+
setLayerVisibility: (v: Partial<GridLayerVisibility>) => void | undefined;
|
|
256
|
+
setShowChoropleth: (visible: boolean) => void | undefined;
|
|
257
|
+
setShowGrid: (visible: boolean) => void | undefined;
|
|
258
|
+
setShowLabels: (visible: boolean) => void | undefined;
|
|
259
|
+
getLegendRange: () => LegendRange_2 | null;
|
|
260
|
+
setLegendRange: (min: number, max: number) => void;
|
|
261
|
+
getDisplayRange: () => DisplayRange | null;
|
|
262
|
+
setDisplayRange: (min: number, max: number) => void;
|
|
263
|
+
setColorRamp: (ramp: ColorRampItem[]) => void;
|
|
264
|
+
onPointerMove: (handler: (ev: GridMapPointerEvent) => void) => () => void;
|
|
265
|
+
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
266
|
+
error: (message: string) => any;
|
|
267
|
+
pointermove: (event: GridMapPointerEvent) => any;
|
|
268
|
+
ready: (view: GridMapView) => any;
|
|
269
|
+
load: (stats: GridMapStats) => any;
|
|
270
|
+
"legend-change": (range: DisplayRange) => any;
|
|
271
|
+
"display-change": (range: DisplayRange) => any;
|
|
272
|
+
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
273
|
+
onError?: ((message: string) => any) | undefined;
|
|
274
|
+
onPointermove?: ((event: GridMapPointerEvent) => any) | undefined;
|
|
275
|
+
onReady?: ((view: GridMapView) => any) | undefined;
|
|
276
|
+
onLoad?: ((stats: GridMapStats) => any) | undefined;
|
|
277
|
+
"onLegend-change"?: ((range: DisplayRange) => any) | undefined;
|
|
278
|
+
"onDisplay-change"?: ((range: DisplayRange) => any) | undefined;
|
|
279
|
+
}>, {
|
|
280
|
+
showChoropleth: boolean;
|
|
281
|
+
showGrid: boolean;
|
|
282
|
+
showLabels: boolean;
|
|
283
|
+
choroplethOpacity: number;
|
|
284
|
+
choroplethZIndex: number;
|
|
285
|
+
labelsZIndex: number;
|
|
286
|
+
labelDistance: number;
|
|
287
|
+
labelPrecision: number;
|
|
288
|
+
labelFontSize: number;
|
|
289
|
+
autoFit: boolean;
|
|
290
|
+
fitPadding: number | [number, number, number, number];
|
|
291
|
+
fitMaxZoom: number;
|
|
292
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
293
|
+
|
|
294
|
+
export declare const GredLegendPanel: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
295
|
+
|
|
296
|
+
export declare const GredLegendSlider: DefineComponent<__VLS_Props_3, {
|
|
297
|
+
setDisplayRange: (min: number, max: number) => void | undefined;
|
|
298
|
+
getDisplayRange: () => {
|
|
299
|
+
displayMin: number;
|
|
300
|
+
displayMax: number;
|
|
301
|
+
} | null;
|
|
302
|
+
getLegendTicks: () => number[];
|
|
303
|
+
setLegendMode: (mode: "gradient" | "blocks") => void | undefined;
|
|
304
|
+
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
305
|
+
change: (range: {
|
|
306
|
+
displayMin: number;
|
|
307
|
+
displayMax: number;
|
|
308
|
+
}) => any;
|
|
309
|
+
}, string, PublicProps, Readonly<__VLS_Props_3> & Readonly<{
|
|
310
|
+
onChange?: ((range: {
|
|
311
|
+
displayMin: number;
|
|
312
|
+
displayMax: number;
|
|
313
|
+
}) => any) | undefined;
|
|
314
|
+
}>, {
|
|
315
|
+
precision: number;
|
|
316
|
+
title: string;
|
|
317
|
+
legendMode: "gradient" | "blocks";
|
|
318
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
319
|
+
host: HTMLDivElement;
|
|
320
|
+
}, HTMLDivElement>;
|
|
321
|
+
|
|
322
|
+
declare interface GridLabel {
|
|
323
|
+
lon: number;
|
|
324
|
+
lat: number;
|
|
325
|
+
text: string;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export declare interface GridLayerVisibility {
|
|
329
|
+
choropleth: boolean;
|
|
330
|
+
grid: boolean;
|
|
331
|
+
labels: boolean;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export declare interface GridMapOptions {
|
|
335
|
+
/** 外部 OpenLayers Map,色斑图与标注图层叠加其上 */
|
|
336
|
+
map: default_2;
|
|
337
|
+
/** 网格 JSON 地址(与 data 二选一) */
|
|
338
|
+
dataUrl?: string;
|
|
339
|
+
/** 内存中的网格 JSON(与 dataUrl 二选一) */
|
|
340
|
+
data?: ArrayDataJson;
|
|
341
|
+
showChoropleth?: boolean;
|
|
342
|
+
showGrid?: boolean;
|
|
343
|
+
showLabels?: boolean;
|
|
344
|
+
choroplethOpacity?: number;
|
|
345
|
+
choroplethZIndex?: number;
|
|
346
|
+
labelsZIndex?: number;
|
|
347
|
+
labelDistance?: number;
|
|
348
|
+
labelPrecision?: number;
|
|
349
|
+
labelFontSize?: number;
|
|
350
|
+
colorRamp?: ColorRampItem[];
|
|
351
|
+
/** 图例刻度数值(不规则间隔);不传则从 colorRamp 提取 */
|
|
352
|
+
legendTicks?: number[];
|
|
353
|
+
/** 图例 min(默认取数据统计 min) */
|
|
354
|
+
legendMin?: number;
|
|
355
|
+
/** 图例 max(默认取数据统计 max) */
|
|
356
|
+
legendMax?: number;
|
|
357
|
+
/** 色斑显示区间 min(默认等于 legendMin) */
|
|
358
|
+
displayMin?: number;
|
|
359
|
+
/** 色斑显示区间 max(默认等于 legendMax) */
|
|
360
|
+
displayMax?: number;
|
|
361
|
+
/** 挂载后自动 fit 到数据范围,默认 true */
|
|
362
|
+
autoFit?: boolean;
|
|
363
|
+
fitPadding?: number | [number, number, number, number];
|
|
364
|
+
fitMaxZoom?: number;
|
|
365
|
+
/** 鼠标移动拾取回调;传入则在 create 时自动绑定 pointermove */
|
|
366
|
+
onPointerMove?: (event: GridMapPointerEvent) => void;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
export declare interface GridMapPointerEvent {
|
|
370
|
+
lon: number;
|
|
371
|
+
lat: number;
|
|
372
|
+
value: number | null;
|
|
373
|
+
zoom: number;
|
|
374
|
+
lod: number;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
export declare interface GridMapStats {
|
|
378
|
+
min: number;
|
|
379
|
+
max: number;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* 网格图层控制器:叠加在外部 ol/Map 上,不创建 Map / 底图。
|
|
384
|
+
*/
|
|
385
|
+
declare class GridMapView implements GridMapViewApi {
|
|
386
|
+
private fitOpts;
|
|
387
|
+
readonly map: default_2;
|
|
388
|
+
readonly loader: ArrayDataLoader;
|
|
389
|
+
readonly choroplethLayer: ChoroplethLayer;
|
|
390
|
+
readonly gridValueLayer: GridValueLayer;
|
|
391
|
+
readonly stats: {
|
|
392
|
+
min: number;
|
|
393
|
+
max: number;
|
|
394
|
+
};
|
|
395
|
+
private pointerHandler;
|
|
396
|
+
private pointerUnbind;
|
|
397
|
+
private destroyed;
|
|
398
|
+
private constructor();
|
|
399
|
+
get projection(): ProjCode;
|
|
400
|
+
static create(options: GridMapOptions): Promise<GridMapView>;
|
|
401
|
+
/** 拾取 lon/lat 处格点值;超出数据范围或 displayRange 时返回 null */
|
|
402
|
+
getValueAt(lon: number, lat: number): number | null;
|
|
403
|
+
private pickValue;
|
|
404
|
+
onPointerMove(handler: (ev: GridMapPointerEvent) => void): () => void;
|
|
405
|
+
refreshView(): void;
|
|
406
|
+
getLayerVisibility(): GridLayerVisibility;
|
|
407
|
+
setLayerVisibility(visibility: Partial<GridLayerVisibility>): void;
|
|
408
|
+
setShowChoropleth(visible: boolean): void;
|
|
409
|
+
setShowGrid(visible: boolean): void;
|
|
410
|
+
setShowLabels(visible: boolean): void;
|
|
411
|
+
getLegendRange(): LegendRange;
|
|
412
|
+
setLegendRange(min: number, max: number): void;
|
|
413
|
+
setColorRamp(colorRamp: ColorRampItem[]): void;
|
|
414
|
+
getColorRamp(): ColorRampItem[];
|
|
415
|
+
getDisplayRange(): DisplayRange;
|
|
416
|
+
setDisplayRange(min: number, max: number): void;
|
|
417
|
+
fitToData(): void;
|
|
418
|
+
getLodStep(): number;
|
|
419
|
+
destroy(): void;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
export declare interface GridMapViewApi {
|
|
423
|
+
readonly map: default_2;
|
|
424
|
+
readonly loader: ArrayDataLoader;
|
|
425
|
+
readonly choroplethLayer: ChoroplethLayer;
|
|
426
|
+
readonly gridValueLayer: GridValueLayer;
|
|
427
|
+
readonly projection: ProjCode;
|
|
428
|
+
readonly stats: GridMapStats;
|
|
429
|
+
getLayerVisibility(): GridLayerVisibility;
|
|
430
|
+
setLayerVisibility(visibility: Partial<GridLayerVisibility>): void;
|
|
431
|
+
setShowChoropleth(visible: boolean): void;
|
|
432
|
+
setShowGrid(visible: boolean): void;
|
|
433
|
+
setShowLabels(visible: boolean): void;
|
|
434
|
+
getLegendRange(): LegendRange;
|
|
435
|
+
setLegendRange(min: number, max: number): void;
|
|
436
|
+
setColorRamp(colorRamp: ColorRampItem[]): void;
|
|
437
|
+
getColorRamp(): ColorRampItem[];
|
|
438
|
+
getDisplayRange(): DisplayRange;
|
|
439
|
+
setDisplayRange(min: number, max: number): void;
|
|
440
|
+
refreshView(): void;
|
|
441
|
+
fitToData(): void;
|
|
442
|
+
getValueAt(lon: number, lat: number): number | null;
|
|
443
|
+
getLodStep(): number;
|
|
444
|
+
/** 绑定 map pointermove,返回当前鼠标位置格点值 */
|
|
445
|
+
onPointerMove(handler: (ev: GridMapPointerEvent) => void): () => void;
|
|
446
|
+
destroy(): void;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
declare interface GridTile {
|
|
450
|
+
data: Float32Array;
|
|
451
|
+
width: number;
|
|
452
|
+
height: number;
|
|
453
|
+
bbox: [number, number, number, number];
|
|
454
|
+
resolution: [number, number];
|
|
455
|
+
lodLevel: number;
|
|
456
|
+
lodStep: number;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Canvas2D 格点数值标注
|
|
461
|
+
* computeLabels → extent 转屏幕像素 → fillText(稳定可读)
|
|
462
|
+
*/
|
|
463
|
+
declare class GridValueLayer extends default_3<default_4> {
|
|
464
|
+
private loader;
|
|
465
|
+
private mapRef;
|
|
466
|
+
private canvas;
|
|
467
|
+
private labels;
|
|
468
|
+
private fetchVersion;
|
|
469
|
+
private viewUnbind;
|
|
470
|
+
private readonly onMapChange;
|
|
471
|
+
private opts;
|
|
472
|
+
constructor(options: GridValueLayerOptions);
|
|
473
|
+
attachMap(map: default_2): void;
|
|
474
|
+
/** 切换投影后重新绑定 View 监听 */
|
|
475
|
+
reattachView(map: default_2): void;
|
|
476
|
+
private bindView;
|
|
477
|
+
refreshData(): void;
|
|
478
|
+
private scheduleFetch;
|
|
479
|
+
private renderFrame;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
declare interface GridValueLayerOptions {
|
|
483
|
+
loader: ArrayDataLoader;
|
|
484
|
+
distance?: number;
|
|
485
|
+
precision?: number;
|
|
486
|
+
fontSize?: number;
|
|
487
|
+
color?: string;
|
|
488
|
+
zIndex?: number;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/** 插槽内控制色斑 / 网格 / 标注显隐的 API */
|
|
492
|
+
export declare interface LayerControlApi {
|
|
493
|
+
getVisibility: () => GridLayerVisibility | null;
|
|
494
|
+
setLayerVisibility: (visibility: Partial<GridLayerVisibility>) => void;
|
|
495
|
+
setShowChoropleth: (visible: boolean) => void;
|
|
496
|
+
setShowGrid: (visible: boolean) => void;
|
|
497
|
+
setShowLabels: (visible: boolean) => void;
|
|
498
|
+
toggleChoropleth: () => void;
|
|
499
|
+
toggleGrid: () => void;
|
|
500
|
+
toggleLabels: () => void;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
declare type LegendDisplayMode = "gradient" | "blocks";
|
|
504
|
+
|
|
505
|
+
export declare type LegendPanelPlacement = "bottom-right" | "bottom-left" | "top-right" | "top-left" | "custom";
|
|
506
|
+
|
|
507
|
+
export declare interface LegendPanelStyle {
|
|
508
|
+
background?: string;
|
|
509
|
+
width?: string | number;
|
|
510
|
+
padding?: string;
|
|
511
|
+
borderRadius?: string;
|
|
512
|
+
boxShadow?: string;
|
|
513
|
+
zIndex?: number;
|
|
514
|
+
bottom?: string | number;
|
|
515
|
+
right?: string | number;
|
|
516
|
+
left?: string | number;
|
|
517
|
+
top?: string | number;
|
|
518
|
+
font?: string;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
export declare interface LegendRange {
|
|
522
|
+
min: number;
|
|
523
|
+
max: number;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
declare interface LegendRange_2 {
|
|
527
|
+
min: number;
|
|
528
|
+
max: number;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
/**
|
|
532
|
+
* 图例双滑块:色带/色块均匀分布,数值标注紧贴色带下方。
|
|
533
|
+
*/
|
|
534
|
+
declare class LegendRangeSlider {
|
|
535
|
+
private root;
|
|
536
|
+
private body;
|
|
537
|
+
private track;
|
|
538
|
+
private bar;
|
|
539
|
+
private blocks;
|
|
540
|
+
private labelsRow;
|
|
541
|
+
private maskLeft;
|
|
542
|
+
private maskRight;
|
|
543
|
+
private thumbMin;
|
|
544
|
+
private thumbMax;
|
|
545
|
+
private legendMin;
|
|
546
|
+
private legendMax;
|
|
547
|
+
private displayMin;
|
|
548
|
+
private displayMax;
|
|
549
|
+
private colorRamp;
|
|
550
|
+
private legendTicks;
|
|
551
|
+
private legendMode;
|
|
552
|
+
private precision;
|
|
553
|
+
private showTitle;
|
|
554
|
+
private onChange?;
|
|
555
|
+
private dragging;
|
|
556
|
+
private onPointerMove;
|
|
557
|
+
private onPointerUp;
|
|
558
|
+
constructor(options: LegendRangeSliderOptions);
|
|
559
|
+
private createThumb;
|
|
560
|
+
/** 均匀布局位置 */
|
|
561
|
+
private evenPct;
|
|
562
|
+
private evenPctByIndex;
|
|
563
|
+
private fmt;
|
|
564
|
+
private updateBar;
|
|
565
|
+
private rebuildLabels;
|
|
566
|
+
private applyDisplayRange;
|
|
567
|
+
setLegendMode(mode: LegendDisplayMode): void;
|
|
568
|
+
getLegendMode(): LegendDisplayMode;
|
|
569
|
+
setColorRamp(colorRamp: ColorRampItem[], legendTicks?: number[]): void;
|
|
570
|
+
setLegendTicks(ticks: number[]): void;
|
|
571
|
+
getLegendTicks(): number[];
|
|
572
|
+
setDisplayRange(min: number, max: number, silent?: boolean): void;
|
|
573
|
+
getDisplayRange(): {
|
|
574
|
+
displayMin: number;
|
|
575
|
+
displayMax: number;
|
|
576
|
+
};
|
|
577
|
+
getLegendRange(): {
|
|
578
|
+
min: number;
|
|
579
|
+
max: number;
|
|
580
|
+
};
|
|
581
|
+
destroy(): void;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
declare interface LegendRangeSliderOptions {
|
|
585
|
+
container: HTMLElement;
|
|
586
|
+
colorRamp: ColorRampItem[];
|
|
587
|
+
legendTicks?: number[];
|
|
588
|
+
legendMode?: LegendDisplayMode;
|
|
589
|
+
displayMin?: number;
|
|
590
|
+
displayMax?: number;
|
|
591
|
+
precision?: number;
|
|
592
|
+
/** 是否显示内置标题(面板模式下由外部控制) */
|
|
593
|
+
showTitle?: boolean;
|
|
594
|
+
onChange?: (range: {
|
|
595
|
+
displayMin: number;
|
|
596
|
+
displayMax: number;
|
|
597
|
+
}) => void;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
declare type ProjCode = "EPSG:4326" | "EPSG:3857";
|
|
601
|
+
|
|
602
|
+
export { }
|