map-sdk-lite
Version:
地图SDK - 基于Mapbox的定制开发,支持区域标绘、数据展示、3D地形等功能
1,035 lines (983 loc) • 28.1 kB
TypeScript
import * as turf from '@turf/turf';
/**
* 底图配置接口
*/
export declare interface BaseMapConfig {
/** 底图名称 */
name: string;
/** 瓦片服务URL,支持单个URL或URL数组(用于负载均衡) */
tiles: string | string[];
/** 瓦片大小 */
tileSize?: number;
/** 最小缩放级别 */
minzoom?: number;
/** 最大缩放级别 */
maxzoom?: number;
/** 属性信息 */
attribution?: string;
}
/**
* BD09 转 GCJ02
*/
export declare function bd09ToGcj02(lng: number, lat: number): [number, number];
/**
* BD09 转 WGS84
*/
export declare function bd09ToWgs84(lng: number, lat: number): [number, number];
/**
* 计算两点间的方位角(度)
* @param lng1 起点经度
* @param lat1 起点纬度
* @param lng2 终点经度
* @param lat2 终点纬度
* @returns 方位角(0-360度)
*/
export declare function calculateBearing(lng1: number, lat1: number, lng2: number, lat2: number): number;
/**
* 计算两点之间的距离(米)
* @param coord1 点1 [经度, 纬度]
* @param coord2 点2 [经度, 纬度]
* @returns 距离(米)
*/
export declare function calculateDistance(coord1: [number, number], coord2: [number, number]): number;
/**
* 计算两点间的距离(米)
* 使用 Haversine 公式
* @param lng1 第一点经度
* @param lat1 第一点纬度
* @param lng2 第二点经度
* @param lat2 第二点纬度
* @returns 距离(米)
*/
declare function calculateDistance_2(lng1: number, lat1: number, lng2: number, lat2: number): number;
/**
* 计算线段长度(米)
* @param coordinates 坐标数组 [[lng, lat], ...]
* @returns 总长度(米)
*/
export declare function calculateLineLength(coordinates: [number, number][]): number;
/**
* 计算多边形面积(平方米)
* 使用 Shoelace 公式
* @param coordinates 坐标数组 [[lng, lat], ...]
* @returns 面积(平方米)
*/
export declare function calculatePolygonArea(coordinates: [number, number][]): number;
/**
* 计算多边形的中心点
* @param coordinates 坐标数组 [[lng, lat], ...]
* @returns 中心点 [lng, lat]
*/
export declare function calculatePolygonCenter(coordinates: [number, number][]): [number, number];
/**
* 坐标转换选项
*/
export declare interface CoordinateOptions {
/** 源坐标系 */
from: CoordinateSystem;
/** 目标坐标系 */
to: CoordinateSystem;
}
/**
* 坐标系类型
*/
export declare type CoordinateSystem = 'WGS84' | 'GCJ02' | 'BD09';
/**
* 数学计算工具类
* 提供地图相关的几何计算功能
*/
/**
* 角度转弧度
*/
export declare function degToRad(deg: number): number;
/**
* 绘制模式枚举 - 只包含面绘制相关模式
*/
export declare enum DrawMode {
/** 简单选择模式 */
SIMPLE_SELECT = "simple_select",
/** 直接选择模式 */
DIRECT_SELECT = "direct_select",
/** 绘制多边形模式 */
DRAW_POLYGON = "draw_polygon",
/** 静态模式 */
STATIC = "static"
}
/**
* 面绘制控件选项接口 - 专用于面绘制功能
*/
export declare interface DrawOptions {
/** 默认绘制模式 */
defaultMode?: DrawMode;
/** 是否启用键盘快捷键 */
keybindings?: boolean;
/** 是否启用触摸操作 */
touchEnabled?: boolean;
/** 是否启用框选 */
boxSelect?: boolean;
/** 点击缓冲区像素大小 */
clickBuffer?: number;
/** 触摸缓冲区像素大小 */
touchBuffer?: number;
/** 控制工具配置 */
controls?: DrawToolsConfig;
/** 是否显示测量信息 */
displayControlsDefault?: boolean;
/** 用户自定义属性 */
userProperties?: boolean;
}
/**
* 面绘制工具配置接口 - 只包含面绘制相关配置
*/
export declare interface DrawToolsConfig {
/** 是否显示多边形绘制工具 */
polygon?: boolean;
/** 是否显示删除工具 */
trash?: boolean;
}
/**
* 缓动动画选项接口
*/
export declare interface EaseToOptions {
/** 目标中心点 */
center?: [number, number];
/** 目标缩放级别 */
zoom?: number;
/** 目标方位角 */
bearing?: number;
/** 目标倾斜角 */
pitch?: number;
/** 动画持续时间(毫秒) */
duration?: number;
/** 缓动函数 */
easing?: (t: number) => number;
/** 是否必要时进行缩放 */
essential?: boolean;
}
/**
* 事件总线类 - 统一管理所有事件监听和触发
* 支持 UniApp WebView 与 App 之间的通信
*/
export declare class EventBus {
private events;
private isUniApp;
constructor();
/**
* 检测是否在 UniApp WebView 环境中
*/
private checkUniAppEnvironment;
/**
* 添加事件监听器
* @param eventName 事件名称
* @param handler 事件处理函数
*/
on(eventName: string, handler: MapEventHandler): void;
/**
* 移除事件监听器
* @param eventName 事件名称
* @param handler 事件处理函数,如果不传则移除所有该事件的监听器
*/
off(eventName: string, handler?: MapEventHandler): void;
/**
* 触发事件
* @param eventName 事件名称
* @param data 事件数据
*/
emit(eventName: string, data?: any): void;
/**
* 向 UniApp 发送消息
* @param eventName 事件名称
* @param data 事件数据
*/
private postToApp;
/**
* 监听来自 App 的消息
* @param handler 消息处理函数
*/
onAppMessage(handler: (message: any) => void): void;
/**
* 销毁事件总线,清除所有监听器
*/
destroy(): void;
/**
* 获取所有事件名称
*/
getEventNames(): string[];
/**
* 获取指定事件的监听器数量
*/
getListenerCount(eventName: string): number;
}
/**
* 飞行动画选项接口
*/
export declare interface FlyToOptions {
/** 目标中心点 */
center?: [number, number];
/** 目标缩放级别 */
zoom?: number;
/** 目标方位角 */
bearing?: number;
/** 目标倾斜角 */
pitch?: number;
/** 动画持续时间(毫秒) */
duration?: number;
/** 是否必要时进行缩放 */
essential?: boolean;
}
/**
* 格式化面积显示
* @param area 面积(平方米)
* @returns 格式化的面积字符串
*/
export declare function formatArea(area: number): string;
/**
* 格式化距离显示
* @param distance 距离(米)
* @returns 格式化的距离字符串
*/
export declare function formatDistance(distance: number): string;
/**
* GCJ02 转 BD09
*/
export declare function gcj02ToBd09(lng: number, lat: number): [number, number];
/**
* GCJ02 转 WGS84
*/
export declare function gcj02ToWgs84(lng: number, lat: number): [number, number];
/**
* GeoJSON Feature 接口 - 主要用于面要素
*/
export declare interface GeoJSONFeature {
/** 要素类型 */
type: 'Feature';
/** 要素ID */
id?: string | number;
/** 几何对象 */
geometry: {
type: 'Polygon' | 'MultiPolygon' | 'Point' | 'LineString' | 'MultiPoint' | 'MultiLineString';
coordinates: any[];
};
/** 属性信息 */
properties: Record<string, any>;
}
/**
* GeoJSON FeatureCollection 接口
*/
export declare interface GeoJSONFeatureCollection {
/** 集合类型 */
type: 'FeatureCollection';
/** 要素数组 */
features: GeoJSONFeature[];
}
/**
* 判断点是否在多边形内(射线法)
* @param point 点坐标 [经度, 纬度]
* @param polygon 多边形顶点数组
* @returns 是否在多边形内
*/
export declare function isPointInPolygon(point: [number, number], polygon: [number, number][]): boolean;
/**
* 跳转选项接口
*/
export declare interface JumpToOptions {
/** 目标中心点 */
center?: [number, number];
/** 目标缩放级别 */
zoom?: number;
/** 目标方位角 */
bearing?: number;
/** 目标倾斜角 */
pitch?: number;
}
/**
* 日志管理类
*/
declare class Logger {
private currentLevel;
private prefix;
/**
* 设置日志级别
*/
setLevel(level: 'error' | 'warn' | 'info' | 'debug'): void;
/**
* 错误日志
*/
error(message: string, ...args: any[]): void;
/**
* 警告日志
*/
warn(message: string, ...args: any[]): void;
/**
* 信息日志
*/
info(message: string, ...args: any[]): void;
/**
* 调试日志
*/
debug(message: string, ...args: any[]): void;
}
export declare const logger: Logger;
/**
* 地图事件处理函数接口
*/
export declare interface MapEventHandler {
(event: any): void;
}
/**
* 地图实例接口 - 基于mapbox-gl.js的核心API
*/
export declare interface MapInstance {
/** 获取地图中心点 */
getCenter(): [number, number];
/** 获取当前缩放级别 */
getZoom(): number;
/** 获取当前方位角 */
getBearing(): number;
/** 获取当前倾斜角 */
getPitch(): number;
/** 设置地图中心点 */
setCenter(center: [number, number], eventData?: any): MapInstance;
/** 设置缩放级别 */
setZoom(zoom: number, eventData?: any): MapInstance;
/** 设置方位角 */
setBearing(bearing: number, eventData?: any): MapInstance;
/** 设置倾斜角 */
setPitch(pitch: number, eventData?: any): MapInstance;
/** 飞行到指定位置 */
flyTo(options: FlyToOptions): MapInstance;
/** 缓动到指定位置 */
easeTo(options: EaseToOptions): MapInstance;
/** 跳转到指定位置 */
jumpTo(options: JumpToOptions): MapInstance;
/** 平移到指定位置 */
panTo(center: [number, number], options?: PanToOptions): MapInstance;
/** 缩放到指定级别 */
zoomTo(zoom: number, options?: ZoomToOptions): MapInstance;
/** 旋转到指定角度 */
rotateTo(bearing: number, options?: RotateToOptions): MapInstance;
/** 设置底图 */
setBaseMap(config: BaseMapConfig): MapInstance;
/** 添加地形 */
addTerrain(config: TerrainConfig): MapInstance;
/** 移除地形 */
removeTerrain(): MapInstance;
/** 检查是否启用地形 */
hasTerrain(): boolean;
/** 开始绘制多边形 */
drawPolygon(): MapInstance;
/** 进入选择模式 */
selectMode(): MapInstance;
/** 完成当前绘制 */
finishDrawing(): MapInstance;
/** 删除选中的要素或顶点 */
deleteSelected(): MapInstance;
/** 获取所有绘制的要素 */
getAllFeatures(): GeoJSONFeatureCollection;
/** 获取选中的要素 */
getSelectedFeatures(): GeoJSONFeatureCollection;
/** 添加要素 */
addFeatures(features: GeoJSONFeatureCollection | GeoJSONFeature[] | SimplePolygonData[]): string[];
/** 删除要素 */
deleteFeatures(featureIds: string[]): MapInstance;
/** 清空所有要素 */
clearAllFeatures(): MapInstance;
/** 设置绘制模式 */
changeDrawMode(mode: DrawMode): MapInstance;
/** 获取当前绘制模式 */
getDrawMode(): DrawMode;
/** 计算指定要素的面积(平方米) */
calculateFeatureArea(feature: GeoJSONFeature): number;
/** 计算指定要素的周长(米) */
calculateFeaturePerimeter(feature: GeoJSONFeature): number;
/** 获取指定要素的详细信息(包含面积、周长、中心点等) */
getFeatureInfo(featureId: string): {
area: number;
perimeter: number;
center: [number, number];
feature: GeoJSONFeature;
} | null;
/** 启用编辑模式(移动端专用) */
enableEditMode(): boolean;
/** 禁用编辑模式(移动端专用) */
disableEditMode(): boolean;
/** 切换编辑模式(移动端专用) */
toggleEditMode(): boolean;
/** 获取当前编辑模式状态 */
getEditModeEnabled(): boolean;
/** 检测是否为移动设备 */
isMobileDevice(): boolean;
/** 创建Popup实例 */
createPopup(options?: PopupOptions): PopupInstance;
/** 在指定位置显示Popup */
showPopup(lngLat: [number, number], html: string, options?: PopupOptions): PopupInstance;
/** 关闭所有Popup */
closeAllPopups(): MapInstance;
/** 获取当前打开的Popup */
getCurrentPopup(): PopupInstance | null;
/** 添加事件监听 */
on(type: string, handler: MapEventHandler): MapInstance;
/** 移除事件监听 */
off(type: string, handler?: MapEventHandler): MapInstance;
/** 销毁地图实例 */
remove(): void;
/** 重新调整地图大小 */
resize(): MapInstance;
/** 设置地图样式 */
setStyle(style: string | object): MapInstance;
/** 获取地图容器 */
getContainer(): HTMLElement;
/** 获取地图画布 */
getCanvas(): HTMLCanvasElement;
}
/**
* 地图管理类 - 核心地图实例管理
* 负责地图的创建、配置、生命周期管理
*/
export declare class MapManager {
private mapInstance;
private polygonDrawManager;
private popupManager;
private eventBus;
private container;
private options;
private isDestroyed;
constructor(options: MapOptions, eventBus: EventBus);
/**
* 验证初始化选项
*/
private validateOptions;
/**
* 获取容器元素
*/
private getContainerElement;
/**
* 初始化地图实例
*/
initializeMap(): Promise<MapInstance>;
/**
* 设置Popup管理器
*/
private setupPopupManager;
/**
* 设置面绘制功能
*/
private setupPolygonDraw;
/**
* 设置3D地形
*/
private setupTerrain;
/**
* 设置事件代理
*/
private setupEventProxy;
/**
* 创建地图实例包装器
*/
private createMapInstanceWrapper;
/**
* 内部添加地形方法
*/
private addTerrainInternal;
/**
* 内部移除地形方法
*/
private removeTerrainInternal;
/**
* 内部检查地形方法
*/
private hasTerrainInternal;
/**
* 内部设置底图方法
*/
private setBaseMapInternal;
/**
* 设置地图样式
*/
setStyle(style: string | object): void;
/**
* 获取原始地图实例(用于高级操作)
*/
getRawMapInstance(): any;
/**
* 获取地图实例包装器
*/
getMapInstance(): MapInstance | null;
/**
* 销毁地图实例
*/
private destroyMap;
/**
* 销毁MapManager
*/
destroy(): void;
/**
* 检查是否已销毁
*/
isMapDestroyed(): boolean;
}
/**
* 地图初始化选项接口
*/
export declare interface MapOptions {
/** 地图容器元素ID或HTML元素 */
container: string | HTMLElement;
/** 地图样式URL或样式对象 */
style?: string | object;
/** 地图中心点坐标 [经度, 纬度] */
center?: [number, number];
/** 初始缩放级别 */
zoom?: number;
/** 地图方位角 */
bearing?: number;
/** 地图倾斜角 */
pitch?: number;
/** 最小缩放级别 */
minZoom?: number;
/** 最大缩放级别 */
maxZoom?: number;
/** 是否允许交互 */
interactive?: boolean;
/** 是否显示属性控件 */
attributionControl?: boolean;
/** 是否显示Logo */
logoControl?: boolean;
/** 是否显示导航控件 */
navigationControl?: boolean;
/** 是否启用3D地形 */
terrain?: boolean;
/** 是否启用抗锯齿 */
antialias?: boolean;
/** 是否启用绘制功能 */
draw?: boolean;
}
/**
* 地图 SDK 主类
* 提供地图创建、管理和销毁的完整生命周期管理
* 支持 UniApp WebView 与 App 的通信
*/
declare class MapSDK {
private mapManager;
private eventBus;
private options;
private isInitialized;
/**
* 构造函数
* @param options 地图初始化选项
*/
constructor(options: MapOptions);
/**
* 设置与 App 的通信
*/
private setupAppCommunication;
/**
* 初始化地图
* @returns Promise<MapInstance> 地图实例
*/
initialize(): Promise<MapInstance>;
/**
* 设置地图样式
* @param style 地图样式 URL 或样式对象
*/
setStyle(style: string | object): void;
/**
* 获取地图实例
* @returns MapInstance | null 地图实例
*/
getMapInstance(): MapInstance | null;
/**
* 获取原始地图实例(用于高级操作)
* @returns any 原始 mapbox-gl 地图实例
*/
getRawMapInstance(): any;
/**
* 获取事件总线实例
* @returns EventBus 事件总线实例
*/
getEventBus(): EventBus;
/**
* 监听 SDK 事件
* @param eventName 事件名称
* @param handler 事件处理函数
*/
on(eventName: string, handler: (data?: any) => void): void;
/**
* 移除 SDK 事件监听
* @param eventName 事件名称
* @param handler 事件处理函数
*/
off(eventName: string, handler?: (data?: any) => void): void;
/**
* 向 App 发送消息
* @param action 动作名称
* @param data 数据
*/
postToApp(action: string, data?: any): void;
/**
* 检查是否已初始化
* @returns boolean 是否已初始化
*/
isMapInitialized(): boolean;
/**
* 销毁地图 SDK
*/
destroy(): void;
/**
* 获取turf.js库(用于地理计算)
* @returns turf.js库对象
*/
static getTurf(): typeof turf;
/**
* 获取 SDK 版本信息
* @returns string 版本号
*/
static getVersion(): string;
/**
* 获取 SDK 信息
* @returns object SDK 信息
*/
static getInfo(): object;
}
export { MapSDK }
export default MapSDK;
/**
* 数学工具集合
*/
export declare const mathUtils: {
degToRad: typeof degToRad;
radToDeg: typeof radToDeg;
calculateDistance: typeof calculateDistance_2;
calculateBearing: typeof calculateBearing;
calculatePolygonArea: typeof calculatePolygonArea;
calculateLineLength: typeof calculateLineLength;
pointInPolygon: typeof pointInPolygon;
calculatePolygonCenter: typeof calculatePolygonCenter;
formatArea: typeof formatArea;
formatDistance: typeof formatDistance;
EARTH_RADIUS: number;
};
/**
* 平移选项接口
*/
export declare interface PanToOptions {
/** 动画持续时间(毫秒) */
duration?: number;
/** 缓动函数 */
easing?: (t: number) => number;
/** 是否启用动画 */
animate?: boolean;
}
/**
* 判断点是否在多边形内
* 使用射线投射算法
* @param point 测试点 [lng, lat]
* @param polygon 多边形坐标数组 [[lng, lat], ...]
* @returns 是否在多边形内
*/
export declare function pointInPolygon(point: [number, number], polygon: [number, number][]): boolean;
/**
* 计算点到线的距离
* @param point 点坐标 [经度, 纬度]
* @param lineStart 线起点 [经度, 纬度]
* @param lineEnd 线终点 [经度, 纬度]
* @returns 距离(米)
*/
export declare function pointToLineDistance(point: [number, number], lineStart: [number, number], lineEnd: [number, number]): number;
/**
* 专用于面绘制的管理器
* 只包含polygon相关的绘制功能,不包含点和线
*/
export declare class PolygonDrawManager {
private drawInstance;
private mapInstance;
private eventBus;
private isEnabled;
private isEditModeEnabled;
private isMobileDevice;
private selectedFeatureId;
private previousSelectedFeatureId;
private lastCreatedFeatureId;
private customModes;
constructor(mapInstance: any, eventBus: EventBus);
/**
* 检测是否为移动设备
*/
private detectMobileDevice;
/**
* 初始化面绘制功能
*/
initialize(): Promise<void>;
/**
* 将GeoJSON要素转换为简化格式
*/
private convertGeoJSONToSimple;
/**
* 设置事件监听器
*/
private setupEventListeners;
/**
* 开始绘制面
*/
startDrawPolygon(): void;
/**
* 切换到选择模式
*/
selectMode(): void;
/**
* 完成当前绘制
* 当处于绘制模式时,完成当前正在绘制的多边形
*/
finishDrawing(): void;
/**
* 删除选中的要素或顶点(统一删除方法)
*/
deleteSelected(): void;
/**
* 获取所有面要素
*/
getAllPolygons(): GeoJSONFeatureCollection;
/**
* 获取选中的面要素
*/
getSelectedPolygons(): GeoJSONFeatureCollection;
/**
* 将简化格式转换为GeoJSON格式
*/
private convertSimpleToGeoJSON;
/**
* 检查输入数据是否为简化格式
*/
private isSimplePolygonData;
/**
* 添加面要素
*/
addPolygons(features: GeoJSONFeatureCollection | GeoJSONFeature[] | SimplePolygonData[]): string[];
/**
* 删除指定的面要素
*/
deletePolygons(featureIds: string[]): void;
/**
* 清除所有面要素
*/
clearAllPolygons(): void;
/**
* 获取当前绘制模式
*/
getCurrentMode(): string;
/**
* 更改绘制模式
*/
changeMode(mode: DrawMode): void;
/**
* 计算面积(使用turf.js)
*/
calculateArea(feature: GeoJSONFeature): number;
/**
* 计算周长(使用turf.js)
*/
calculatePerimeter(feature: GeoJSONFeature): number;
/**
* 验证并输出详细的面积计算信息(用于调试)
*/
debugAreaCalculation(feature: GeoJSONFeature): void;
/**
* 获取面的中心点坐标(使用turf.js)
*/
getCenterPoint(feature: GeoJSONFeature): [number, number];
/**
* 获取面的中心点(使用turf.js)
*/
getCentroid(feature: GeoJSONFeature): GeoJSONFeature;
/**
* 简化面要素(减少顶点数量)
*/
simplifyPolygon(feature: GeoJSONFeature, tolerance?: number): GeoJSONFeature;
/**
* 获取指定要素的详细信息(包含面积、周长、中心点等)
*/
getFeatureInfo(featureId: string): {
area: number;
perimeter: number;
center: [number, number];
feature: GeoJSONFeature;
} | null;
/**
* 检查是否已启用
*/
isDrawEnabled(): boolean;
/**
* 暴露turf.js给外部使用(用于面积和周长计算)
*/
static getTurf(): typeof turf;
/**
* 检查多边形是否自相交(简化版本)
*/
checkSelfIntersection(feature: GeoJSONFeature): boolean;
/**
* 验证多边形是否可以创建/更新
*/
private validatePolygon;
/**
* 启用编辑模式(移动端专用)
*/
enableEditMode(): boolean;
/**
* 禁用编辑模式(移动端专用)
*/
disableEditMode(): boolean;
/**
* 切换编辑模式(移动端专用)
*/
toggleEditMode(): boolean;
/**
* 获取当前编辑模式状态
*/
getEditModeEnabled(): boolean;
/**
* 获取是否为移动设备
*/
isMobile(): boolean;
/**
* 更新选中要素的样式(移动端高亮显示)
*/
private updateSelectedFeatureStyle;
/**
* 清除选中要素的样式
*/
private clearSelectedFeatureStyle;
/**
* 获取选中的要素ID(移动端专用)
*/
getSelectedFeatureId(): string | null;
/**
* 清除移动端选中状态(移动端专用)
*/
clearMobileSelection(): void;
/**
* 设置移动端选中状态(移动端专用)
*/
setMobileSelection(featureId: string): void;
/**
* 销毁面绘制管理器
*/
destroy(): void;
}
/**
* Popup实例接口
*/
export declare interface PopupInstance {
/** 设置经纬度位置 */
setLngLat(lngLat: [number, number]): PopupInstance;
/** 设置HTML内容 */
setHTML(html: string): PopupInstance;
/** 设置文本内容 */
setText(text: string): PopupInstance;
/** 添加到地图 */
addTo(map: any): PopupInstance;
/** 移除popup */
remove(): PopupInstance;
/** 是否已添加到地图 */
isOpen(): boolean;
/** 获取经纬度位置 */
getLngLat(): [number, number];
}
/**
* Popup配置选项
*/
export declare interface PopupOptions {
/** 是否在地图点击其他地方时关闭popup */
closeOnClick?: boolean;
/** 是否在地图移动时关闭popup */
closeOnMove?: boolean;
/** 是否显示关闭按钮 */
closeButton?: boolean;
/** 偏移量 [x, y] */
offset?: [number, number];
/** CSS类名 */
className?: string;
/** 最大宽度 */
maxWidth?: string;
/** 锚点位置 */
anchor?: 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
}
/**
* 弧度转角度
*/
export declare function radToDeg(rad: number): number;
/**
* 旋转选项接口
*/
export declare interface RotateToOptions {
/** 动画持续时间(毫秒) */
duration?: number;
/** 缓动函数 */
easing?: (t: number) => number;
/** 是否启用动画 */
animate?: boolean;
}
/**
* 简化的多边形数据格式(用户输入格式)
*/
export declare interface SimplePolygonData {
/** 后端ID */
id?: string | number;
/** 几何类型 */
type: 'Polygon';
/** 属性信息 */
properties?: Record<string, any>;
/** 坐标数组 */
coordinates: number[][];
}
/**
* 地形配置接口
*/
export declare interface TerrainConfig {
/** 地形名称 */
name: string;
/** DEM 瓦片服务 URL */
tiles: string[];
/** 瓦片大小 */
tileSize?: number;
/** 最小缩放级别 */
minzoom?: number;
/** 最大缩放级别 */
maxzoom?: number;
/** 地形夸张系数 */
exaggeration?: number;
}
/**
* 通用坐标转换函数
* @param lng 经度
* @param lat 纬度
* @param options 转换选项
* @returns 转换后的坐标 [经度, 纬度]
*/
export declare function transformCoordinate(lng: number, lat: number, options: CoordinateOptions): [number, number];
/**
* 批量坐标转换
* @param coordinates 坐标数组
* @param options 转换选项
* @returns 转换后的坐标数组
*/
export declare function transformCoordinates(coordinates: [number, number][], options: CoordinateOptions): [number, number][];
export { turf }
/**
* WGS84 转 BD09
*/
export declare function wgs84ToBd09(lng: number, lat: number): [number, number];
/**
* WGS84 转 GCJ02
*/
export declare function wgs84ToGcj02(lng: number, lat: number): [number, number];
/**
* 缩放选项接口
*/
export declare interface ZoomToOptions {
/** 动画持续时间(毫秒) */
duration?: number;
/** 缓动函数 */
easing?: (t: number) => number;
/** 是否启用动画 */
animate?: boolean;
}
export { }