@fleet-frontend/mower-maps
Version:
a mower maps in google maps
186 lines • 3.71 kB
TypeScript
import { BaseLayer } from './layers';
/**
* SVG基础MapView
* 使用真正的矢量SVG渲染替代Canvas位图渲染
*/
export declare class SvgMapView {
private svg;
private container;
private viewBox;
private layers;
private layersGroup;
private scale;
private lineScale;
private destroyed;
private isDragging;
private lastMouseX;
private lastMouseY;
constructor(containerElement: HTMLElement, width?: number, height?: number);
/**
* 创建SVG元素
*/
private createSVGElement;
/**
* 设置SVG基本属性
*/
private setupSVG;
/**
* 创建SVG组元素
*/
private createSVGGroup;
/**
* 更新viewBox
*/
private updateViewBox;
addLayers(layers: BaseLayer[]): void;
getLayer<T extends BaseLayer>(type: string): T | null;
/**
* 添加图层
*/
addLayer(layer: BaseLayer): void;
/**
* 移除图层
*/
removeLayer(layer: BaseLayer): void;
/**
* 根据类型移除图层
* @param type 图层类型
*/
removeLayerByType(type: string): void;
/**
* 设置自适应视图变换 - 让SVG刚好包裹住图形
*/
fitToView(bounds: {
minX: number;
minY: number;
maxX: number;
maxY: number;
}): void;
/**
* 获取当前缩放级别
*/
getZoom(): number;
/**
* 获取当前线条缩放系数
*/
getLineScale(): number;
/**
* 绘制特定的图层
*/
renderLayer(type: string): void;
/**
* 主渲染方法
*/
private render;
/**
* 获取图层id
*/
private getLayerId;
/**
* 清空图层组
*/
private clearLayersGroup;
/**
* 获取图层的下一个兄弟元素
* 根据图层的level来获取
*/
private getNextSibling;
/**
* 绘制图层,不传参数则默认绘制所有图层
*/
private onDrawLayers;
/**
* 刷新渲染
*/
refresh(): void;
/**
* 设置拖拽事件处理器
*/
private setupDragHandlers;
/**
* 鼠标按下事件
*/
private handleMouseDown;
/**
* 鼠标移动事件
*/
private handleMouseMove;
/**
* 鼠标释放事件
*/
private handleMouseUp;
/**
* 鼠标离开事件
*/
private handleMouseLeave;
/**
* 触摸开始事件
*/
private handleTouchStart;
/**
* 触摸移动事件
*/
private handleTouchMove;
/**
* 触摸结束事件
*/
private handleTouchEnd;
/**
* 按像素平移视图
*/
private panByPixels;
/**
* 获取layers-group的实际边界
*/
getLayersGroupBounds(): {
x: number;
y: number;
width: number;
height: number;
} | null;
/**
* 获取ViewBox信息
*/
getViewBoxInfo(): {
x: number;
y: number;
width: number;
height: number;
};
/**
* 获取容器的实际尺寸
*/
getContainerSize(): {
width: number;
height: number;
};
/**
* 诊断SVG尺寸信息
*/
diagnosticSizeInfo(): void;
/**
* 获取SVG元素
*/
getSVG(): SVGSVGElement;
/**
* 获取容器元素
*/
getContainer(): HTMLElement;
/**
* 获取所有图层
*/
getLayers(): BaseLayer[];
/**
* 清空所有图层
*/
clear(): void;
/**
* 销毁MapView
*/
destroy(): void;
/**
* 清理拖拽事件处理器
*/
private cleanupDragHandlers;
}
//# sourceMappingURL=SvgMapView.d.ts.map