UNPKG

@fleet-frontend/mower-maps

Version:

a mower maps in google maps

97 lines 2.59 kB
import { MowerPositionConfig } from '../types/renderer'; import { SvgMapView } from './SvgMapView'; import { RobotStatus } from '../utils'; export declare class MowerPositionManager { private svgView; private modelType?; private mowerPositionConfig; private container; private overlayDiv; private mowerElement; private hasEdger; private divBox; private animationId; private isAnimating; private startTime; private animationDuration; private lastPosition; private startPosition; private currentPosition; private targetPosition; private deltaPosition; private onlyUpdateTheta; private onAnimationComplete?; private onMowingPositionChange?; constructor(svgView: SvgMapView, mowerPositionConfig: MowerPositionConfig, modelType: string, overlayDiv: HTMLElement, onAnimationComplete?: () => void, onMowingPositionChange?: (positionData: { x: number; y: number; vehicleState: RobotStatus; }) => void); get animationFlag(): boolean; /** * 初始化容器 */ private initializeContainer; /** * 创建割草机元素 */ private createMowerElement; /** * 设置叠加层div引用(用于坐标转换) */ setOverlayDiv(overlayDiv: HTMLElement): void; /** * 获取容器元素 */ getElement(): HTMLElement | null; setEdger(edger: any): void; /** * 根据最后一次有效的位置更新数据 */ updatePositionByLastPosition(divBox: { w: number; h: number; }, chargingPilesPositionConfig?: MowerPositionConfig): void; /** * 更新割草机位置 */ updatePosition(positionConfig: MowerPositionConfig, animationTime?: number): void; /** * 更新割草机图片 */ private updateMowerImage; /** * 直接设置元素位置(无动画) */ private setElementPosition; /** * 停止当前动画 */ private stopAnimation; /** * 开始动画到指定位置 */ private startAnimationToPosition; forceUpdatePosition(divW: number, divH: number): void; /** * 动画步骤 */ private animateStep; /** * 线性插值函数 */ private lerp; /** * 将地图坐标转换为叠加层像素坐标 */ private convertMapCoordinateToOverlayPixel; /** * 显示/隐藏割草机 */ setVisible(visible: boolean): void; /** * 销毁管理器 */ destroy(): void; } //# sourceMappingURL=MowerPositionManager.d.ts.map