UNPKG

weatherv-patch

Version:

Weather visualization SDK - Enhanced features patch for v0.1.66

72 lines (71 loc) 2.37 kB
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; }