UNPKG

@deepgis/dem-dynamic-terrain

Version:

使用 GDAL 制作地形瓦片,支持 mapbox 和 terrarium 两种编码输出格式

145 lines (133 loc) 3.16 kB
import type { Dataset } from 'gdal-async'; import Emittery from 'emittery'; import gdal from 'gdal-async'; import { OmnipresentEventData } from 'emittery'; export declare interface CreateInfo { outTileSize: number; overviewInfo: OverviewInfo; rb: { rx: number; ry: number; rxsize: number; rysize: number; ds?: Dataset; }; wb: { wx: number; wy: number; wxsize: number; wysize: number; ds?: Dataset; }; encoding: 'mapbox' | 'terrarium'; dsPath: string; x: number; y: number; z: number; outputTile: string; type: 'terrain' | 'dom'; } export declare interface DsInfo { ds: Dataset; path: string; } export declare interface EventMap { completed: { id: string; tileCount: number; createTileCount: number; }; idle: { id: string; tileCount: number; createTileCount: number; }; } export declare interface LevelInfo { tminx: number; tminy: number; tmaxx: number; tmaxy: number; } export declare interface LevelInfoDict { [key: number]: LevelInfo; } export declare interface Options { minZoom: number; maxZoom: number; epsg: number; encoding: 'mapbox' | 'terrarium'; isClean: boolean; resampling: number; baseHeight: number; type: 'terrain' | 'dom'; log: boolean; } export declare interface OverviewInfo { index?: number; startX: number; startY: number; width: number; height: number; resX: number; resY: number; endX?: number; endY?: number; path?: string; } export declare interface OverviewInfoDict { [key: number]: OverviewInfo; } export declare interface StatisticsInfo { tileCount: number; completeCount: number; levelInfo: LevelInfoDict; } /** * tif切片 */ export declare class TIF2Tiles { private input; private output; private options; private queue; private pool; private log; private sourceDs; private projectDs; private projectPath; private encodePath; private tileBoundTool; statistics: StatisticsInfo; id: `${string}-${string}-${string}-${string}-${string}`; emitter: Emittery<EventMap, EventMap & OmnipresentEventData, never>; constructor(input: string, output: string, options: Options); getWorkerPath(): string; /** * 清理临时文件 */ recycle(): Promise<void>; /** * 重投影数据集 */ reproject(ds: Dataset, epsg: number, resampling: number): Promise<string>; /** * 构建影像金字塔 * @param ds * @param minZoom * @returns adjustZoom */ buildPyramid(ds: gdal.Dataset, minZoom: number, resampling: number): { maxOverViewsZ: number; minOverViewsZ: number; }; /** * 生成切片 */ generateTile(): Promise<void>; /** * 重置统计信息 */ resetStats(): void; } export { }