weatherv-patch
Version:
Weather visualization SDK - Enhanced features patch for v0.1.66
72 lines (71 loc) • 2.37 kB
TypeScript
import { Extent } from '../util/util';
import { DecodeResult } from './decode-strategy';
export interface TileSourceOptions {
url: string;
factor: string;
zoom?: number;
onerror?: any;
}
export interface ImageTileChunk {
tileXYZ: number[];
pixelXYS: number[];
image: HTMLImageElement;
isLoaded: boolean;
isDecoded: boolean;
decodeArr: DecodeResult[];
canvas?: HTMLCanvasElement;
texture?: WebGLTexture;
}
/**
* 职责:
* 1. 数据加载
* 2. 数据加载后联动图层重绘
* 3. 视口剔除(这块本来应该在渲染组件中,但是局部加载和局部渲染是一体的,职责转移到这里)
* 4. 像素坐标解析格点值
*
* 加载优化:
* 1. 支持局部加载
* 2. 支持缓存
*
* 代码结构优化:
* 1. 对象重用,减少垃圾回收:tileArray
* 2. 手动垃圾回收。
*
* TODO
* 1. 单点解析气象值,在图层切换时的自动回调解析
*/
export declare class TileGraySource {
private tileArray;
private sourceZoom;
private sourceTileSize;
private copyArray;
private url;
private factor;
private onerror;
private renderCallbackArray;
constructor(options: TileSourceOptions);
setConfig(options: TileSourceOptions): void;
getFactor(): string;
addRenderCallback(callback: (tileChunks: ImageTileChunk[], copyArray: number[]) => void): void;
loadByExtent(pixelExtent: Extent, worldZoom: number): void;
decodeTextByViewPixel(pixel: any, extent: any, worldZoom: any): string;
/**
* ViewPixel 是视口像素坐标的意思,decodeByViewPixel就是根据视口像素坐标反算
* @param pixel 屏幕像素坐标
* @param extent
* @param worldZoom
*/
decodeByViewPixel(pixel: [number, number], extent: any, worldZoom: any): DecodeResult;
decodeTextByWorldPixel(wx: any, wy: any, wz: any): string;
decodeTextByLngLat(lngLat: [number, number], zoom: number): string;
decodeByLngLat(lngLat: [number, number], zoom: number): {
rgba: Uint8ClampedArray;
value: number;
};
decodeByWorldPixel(wx: any, wy: any, worldZoom: any): DecodeResult;
private tileLoadedCallback;
private allLoadedCallback;
private loadTile;
clear(): void;
private static idw;
}