@deepgis/dem-dynamic-terrain
Version:
使用 GDAL 制作地形瓦片,支持 mapbox 和 terrarium 两种编码输出格式
145 lines (133 loc) • 3.16 kB
TypeScript
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 { }