@vuemap/amap-xyz-layer
Version:
高德地图 JSAPI v2.0 自定义瓦片图层,支持瓦片纠偏,支持海拔
111 lines (110 loc) • 3.39 kB
TypeScript
import { Matrix4 } from "@math.gl/core";
import TransformClassBaidu from '../support/transform-class-baidu';
import type { ResultLngLat } from '../support/coordConver';
type MaskType = number[][] | number[][][] | number[][][][];
export interface XyzLayerOptions {
url: string;
subdomains?: string[];
tileType?: 'xyz' | 'bd09';
proj?: 'wgs84' | 'gcj02' | 'bd09';
zooms?: [number, number];
opacity?: number;
visible?: boolean;
zIndex?: number;
debug?: boolean;
mask?: MaskType;
cacheSize?: number;
tileMaxZoom?: number;
altitude?: number;
}
interface XYZ {
x: number;
y: number;
z: number;
}
interface PosParamType {
size: number;
stride: number;
offset: number;
}
interface TileType {
xyz: XYZ;
xyzKey: string;
buffer?: WebGLBuffer;
PosParam?: PosParamType;
TextCoordParam?: PosParamType;
texture?: WebGLTexture;
isLoad: boolean;
url: string;
image?: HTMLImageElement;
imageCanceled: boolean;
imageError?: boolean;
}
interface MaskCacheType {
FSIZE: number;
vertexBuffer: WebGLBuffer;
indexBuffer: WebGLBuffer;
deviationLength: number;
}
declare class CustomXyzLayer {
options: XyzLayerOptions;
map: any;
gl: any;
layer: any;
customCoords: any;
center: any;
program: any;
showTiles: TileType[];
isReadRender: boolean;
isLayerShow: boolean;
tileCache: TileType[];
gridCache: Record<string, ResultLngLat>;
transformBaidu: TransformClassBaidu;
a_Pos: GLint | undefined;
a_TextCoord: GLint | undefined;
mapCallback: any;
maskCache: MaskCacheType[];
maskProgram: any;
mask_Pos: GLint | undefined;
_projectionMatrix: Matrix4;
_viewMatrix4: Matrix4;
_mvpMatrix4: Matrix4;
isOrtho: boolean;
constructor(map: any, options: XyzLayerOptions);
_renderMask(gl: any): void;
_renderTile(gl: any): void;
validate(options: XyzLayerOptions): void;
getDefaultGlLayerOptions(): XyzLayerOptions;
_createMask(mask?: MaskType): void;
getMaskDeep(mask: any, deepNumber?: number): number;
_convertMaskLnglatToCoords(mask: any): any;
_convertLnglatToCoords(lnglat: [number, number]): any;
update(): void;
_cancelOutViewImage(currentTiles: XYZ[]): void;
getTileCache(key: string): TileType | undefined;
pushTileCache(tile: TileType): void;
addGridCache(xyz: XYZ, xPlus: number, yPlus: number): void;
tileDistance(tile1: XYZ, tile2: [number, number]): number;
createTileKey(xyz: XYZ | number, y?: number, z?: number): string;
deepFormatTileNumber(num: number, maxNum: number): any;
createTile(gl: any, xyz: XYZ): TileType;
setVertex(gl: any, program: any): void;
requestRender(): void;
show(): void;
hide(): void;
getzIndex(): number;
setzIndex(zIndex: number): void;
getOpacity(): number;
setOpacity(opacity: number): void;
getZooms(): [number, number];
setZooms(zooms: [number, number]): void;
setMask(mask?: MaskType): void;
getMask(): MaskType | undefined;
getMap(): any;
_destroyMaskCache(): void;
_destroyTile(tile: TileType): void;
_clearAllCacheTile(): void;
_clearShowTile(): void;
destroy(): void;
}
export { CustomXyzLayer };