@fleet-frontend/mower-maps 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/3900c861790f0a9d.png +0 -0
- package/dist/config/constants.d.ts +122 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/edit.d.ts +48 -0
- package/dist/config/edit.d.ts.map +1 -0
- package/dist/config/index.d.ts +21 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/styles.d.ts +25 -0
- package/dist/config/styles.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +6837 -0
- package/dist/index.js +6842 -0
- package/dist/processor/MapDataProcessor.d.ts +31 -0
- package/dist/processor/MapDataProcessor.d.ts.map +1 -0
- package/dist/processor/PathDataProcessor.d.ts +28 -0
- package/dist/processor/PathDataProcessor.d.ts.map +1 -0
- package/dist/processor/builder/AntennaDataBuilder.d.ts +18 -0
- package/dist/processor/builder/AntennaDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/BoundaryDataBuilder.d.ts +17 -0
- package/dist/processor/builder/BoundaryDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/ChannelDataBuilder.d.ts +48 -0
- package/dist/processor/builder/ChannelDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/ChargingPileDataBuilder.d.ts +16 -0
- package/dist/processor/builder/ChargingPileDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/ObstacleDataBuilder.d.ts +20 -0
- package/dist/processor/builder/ObstacleDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/PathDataBuilder.d.ts +35 -0
- package/dist/processor/builder/PathDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/PointDataBuilder.d.ts +11 -0
- package/dist/processor/builder/PointDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/SvgElementDataBuilder.d.ts +16 -0
- package/dist/processor/builder/SvgElementDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/VisionOffDataBuilder.d.ts +20 -0
- package/dist/processor/builder/VisionOffDataBuilder.d.ts.map +1 -0
- package/dist/processor/builder/index.d.ts +10 -0
- package/dist/processor/builder/index.d.ts.map +1 -0
- package/dist/processor/index.d.ts +4 -0
- package/dist/processor/index.d.ts.map +1 -0
- package/dist/render/AntennaManager.d.ts +118 -0
- package/dist/render/AntennaManager.d.ts.map +1 -0
- package/dist/render/BoundaryLabelsManager.d.ts +145 -0
- package/dist/render/BoundaryLabelsManager.d.ts.map +1 -0
- package/dist/render/ChargingPileManager.d.ts +77 -0
- package/dist/render/ChargingPileManager.d.ts.map +1 -0
- package/dist/render/MowerMapOverlay.d.ts +105 -0
- package/dist/render/MowerMapOverlay.d.ts.map +1 -0
- package/dist/render/MowerMapRenderer.d.ts +11 -0
- package/dist/render/MowerMapRenderer.d.ts.map +1 -0
- package/dist/render/MowerPostionManager.d.ts +91 -0
- package/dist/render/MowerPostionManager.d.ts.map +1 -0
- package/dist/render/SvgMapView.d.ts +196 -0
- package/dist/render/SvgMapView.d.ts.map +1 -0
- package/dist/render/layers/AntennaLayer.d.ts +21 -0
- package/dist/render/layers/AntennaLayer.d.ts.map +1 -0
- package/dist/render/layers/BaseLayer.d.ts +56 -0
- package/dist/render/layers/BaseLayer.d.ts.map +1 -0
- package/dist/render/layers/BoundaryBorderLayer.d.ts +34 -0
- package/dist/render/layers/BoundaryBorderLayer.d.ts.map +1 -0
- package/dist/render/layers/BoundaryLayer.d.ts +21 -0
- package/dist/render/layers/BoundaryLayer.d.ts.map +1 -0
- package/dist/render/layers/ChannelLayer.d.ts +23 -0
- package/dist/render/layers/ChannelLayer.d.ts.map +1 -0
- package/dist/render/layers/ChargingPileLayer.d.ts +21 -0
- package/dist/render/layers/ChargingPileLayer.d.ts.map +1 -0
- package/dist/render/layers/DrawLayer.d.ts +39 -0
- package/dist/render/layers/DrawLayer.d.ts.map +1 -0
- package/dist/render/layers/ObstacleLayer.d.ts +18 -0
- package/dist/render/layers/ObstacleLayer.d.ts.map +1 -0
- package/dist/render/layers/PathLayer.d.ts +24 -0
- package/dist/render/layers/PathLayer.d.ts.map +1 -0
- package/dist/render/layers/PointLayer.d.ts +18 -0
- package/dist/render/layers/PointLayer.d.ts.map +1 -0
- package/dist/render/layers/SvgElementLayer.d.ts +23 -0
- package/dist/render/layers/SvgElementLayer.d.ts.map +1 -0
- package/dist/render/layers/VisionOffLayer.d.ts +17 -0
- package/dist/render/layers/VisionOffLayer.d.ts.map +1 -0
- package/dist/render/layers/index.d.ts +5 -0
- package/dist/render/layers/index.d.ts.map +1 -0
- package/dist/render/layers/types.d.ts +79 -0
- package/dist/render/layers/types.d.ts.map +1 -0
- package/dist/store/useSubBoundaryBorderStore.d.ts +11 -0
- package/dist/store/useSubBoundaryBorderStore.d.ts.map +1 -0
- package/dist/types/antenna.d.ts +15 -0
- package/dist/types/antenna.d.ts.map +1 -0
- package/dist/types/common.d.ts +26 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/edit.d.ts +34 -0
- package/dist/types/edit.d.ts.map +1 -0
- package/dist/types/elements.d.ts +67 -0
- package/dist/types/elements.d.ts.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/map.d.ts +41 -0
- package/dist/types/map.d.ts.map +1 -0
- package/dist/types/path.d.ts +43 -0
- package/dist/types/path.d.ts.map +1 -0
- package/dist/types/realTime.d.ts +20 -0
- package/dist/types/realTime.d.ts.map +1 -0
- package/dist/types/renderer.d.ts +94 -0
- package/dist/types/renderer.d.ts.map +1 -0
- package/dist/types/ui.d.ts +35 -0
- package/dist/types/ui.d.ts.map +1 -0
- package/dist/utils/boundaryUtils.d.ts +85 -0
- package/dist/utils/boundaryUtils.d.ts.map +1 -0
- package/dist/utils/coordinates.d.ts +23 -0
- package/dist/utils/coordinates.d.ts.map +1 -0
- package/dist/utils/display.d.ts +2 -0
- package/dist/utils/display.d.ts.map +1 -0
- package/dist/utils/formatUtils.d.ts +62 -0
- package/dist/utils/formatUtils.d.ts.map +1 -0
- package/dist/utils/handleRealTime.d.ts +16 -0
- package/dist/utils/handleRealTime.d.ts.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/mapBounds.d.ts +41 -0
- package/dist/utils/mapBounds.d.ts.map +1 -0
- package/dist/utils/math.d.ts +11 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/mower.d.ts +9 -0
- package/dist/utils/mower.d.ts.map +1 -0
- package/dist/utils/pathSegments.d.ts +21 -0
- package/dist/utils/pathSegments.d.ts.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { SvgMapView } from './SvgMapView';
|
|
2
|
+
import { DrawElement } from './layers/types';
|
|
3
|
+
/**
|
|
4
|
+
* 充电桩管理器
|
|
5
|
+
* 专门处理充电桩元素的创建、定位和管理
|
|
6
|
+
*/
|
|
7
|
+
export declare class ChargingPileManager {
|
|
8
|
+
private svgView;
|
|
9
|
+
private chargingPileElements;
|
|
10
|
+
private container;
|
|
11
|
+
private overlayDiv;
|
|
12
|
+
private pileElements;
|
|
13
|
+
private static readonly Z_INDEX;
|
|
14
|
+
constructor(svgView: SvgMapView);
|
|
15
|
+
/**
|
|
16
|
+
* 初始化容器
|
|
17
|
+
*/
|
|
18
|
+
private initializeContainer;
|
|
19
|
+
/**
|
|
20
|
+
* 设置叠加层div引用(用于坐标转换)
|
|
21
|
+
*/
|
|
22
|
+
setOverlayDiv(overlayDiv: HTMLElement): void;
|
|
23
|
+
/**
|
|
24
|
+
* 添加单个充电桩元素
|
|
25
|
+
*/
|
|
26
|
+
addElement(element: DrawElement): HTMLElement | null;
|
|
27
|
+
/**
|
|
28
|
+
* 添加充电桩动画
|
|
29
|
+
*/
|
|
30
|
+
private addChargingPileAnimation;
|
|
31
|
+
/**
|
|
32
|
+
* 添加所有充电桩元素
|
|
33
|
+
*/
|
|
34
|
+
addAllElements(elements: DrawElement[]): void;
|
|
35
|
+
/**
|
|
36
|
+
* 获取容器元素
|
|
37
|
+
*/
|
|
38
|
+
getElement(): HTMLElement | null;
|
|
39
|
+
/**
|
|
40
|
+
* 更新位置
|
|
41
|
+
*/
|
|
42
|
+
updatePositions(): void;
|
|
43
|
+
/**
|
|
44
|
+
* 使用预计算数据更新位置
|
|
45
|
+
*/
|
|
46
|
+
updatePositionsWithPrecomputedData(divWidth: number, divHeight: number, viewBox: {
|
|
47
|
+
x: number;
|
|
48
|
+
y: number;
|
|
49
|
+
width: number;
|
|
50
|
+
height: number;
|
|
51
|
+
}): void;
|
|
52
|
+
/**
|
|
53
|
+
* 使用预计算数据进行坐标转换
|
|
54
|
+
*/
|
|
55
|
+
private convertMapCoordinateToPixelWithPrecomputedData;
|
|
56
|
+
/**
|
|
57
|
+
* 清空所有充电桩
|
|
58
|
+
*/
|
|
59
|
+
clear(): void;
|
|
60
|
+
/**
|
|
61
|
+
* 设置可见性
|
|
62
|
+
*/
|
|
63
|
+
setVisible(visible: boolean): void;
|
|
64
|
+
/**
|
|
65
|
+
* 获取充电桩数量
|
|
66
|
+
*/
|
|
67
|
+
getElementCount(): number;
|
|
68
|
+
/**
|
|
69
|
+
* 充电桩不需要动态层级调整(为了接口统一而保留)
|
|
70
|
+
*/
|
|
71
|
+
resetZIndex(): void;
|
|
72
|
+
/**
|
|
73
|
+
* 销毁管理器
|
|
74
|
+
*/
|
|
75
|
+
destroy(): void;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=ChargingPileManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChargingPileManager.d.ts","sourceRoot":"","sources":["../../src/render/ChargingPileManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAAuC;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAE7B;gBAEU,OAAO,EAAE,UAAU;IAK/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,WAAW;IAIrC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IA+CpD;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE;IAQtC;;OAEG;IACH,UAAU,IAAI,WAAW,GAAG,IAAI;IAIhC;;OAEG;IACH,eAAe;IAsBf;;OAEG;IACH,kCAAkC,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAwBlE;;OAEG;IACH,OAAO,CAAC,8CAA8C;IA+BtD;;OAEG;IACH,KAAK;IAQL;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO;IAM3B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,WAAW;IAKX;;OAEG;IACH,OAAO;CAQR"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { PathData } from '../types/path';
|
|
2
|
+
import { DragState, DragCallbacks, MowerPositonConfig } from '../types/renderer';
|
|
3
|
+
declare global {
|
|
4
|
+
interface Window {
|
|
5
|
+
google: any;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export declare class MowerMapOverlay {
|
|
9
|
+
private bounds;
|
|
10
|
+
private mapData;
|
|
11
|
+
private pathData;
|
|
12
|
+
private mowerPositonConfig;
|
|
13
|
+
private div;
|
|
14
|
+
private svgMapView;
|
|
15
|
+
private offscreenContainer;
|
|
16
|
+
private overlayView;
|
|
17
|
+
private isEditMode;
|
|
18
|
+
private mapConfig;
|
|
19
|
+
private pathConfig;
|
|
20
|
+
private antennaConfig;
|
|
21
|
+
private onMapLoad?;
|
|
22
|
+
private onPathLoad?;
|
|
23
|
+
private dragCallbacks?;
|
|
24
|
+
private boundaryData;
|
|
25
|
+
private boundaryLabelsManager;
|
|
26
|
+
private chargingPileManager;
|
|
27
|
+
private antennaManager;
|
|
28
|
+
private mowerPostionManager;
|
|
29
|
+
private currentAnimationTime;
|
|
30
|
+
private isUserAnimation;
|
|
31
|
+
private editContainer;
|
|
32
|
+
private borderElement;
|
|
33
|
+
private rotateHandle;
|
|
34
|
+
private dragHandle;
|
|
35
|
+
private isDragging;
|
|
36
|
+
private isRotating;
|
|
37
|
+
private startPos;
|
|
38
|
+
private currentRotation;
|
|
39
|
+
private lastRotationTime;
|
|
40
|
+
private latLngOffset;
|
|
41
|
+
private tempPixelOffset;
|
|
42
|
+
private initialOffset;
|
|
43
|
+
private initialRotation;
|
|
44
|
+
private cleanupListeners?;
|
|
45
|
+
constructor(bounds: any, mapData: any, mowerPositonConfig: MowerPositonConfig, pathData: PathData, isEditMode?: boolean, mapConfig?: any, pathConfig?: any, antennaConfig?: any, onMapLoad?: (elementCount: number) => void, onPathLoad?: (elementCount: number) => void, dragCallbacks?: DragCallbacks);
|
|
46
|
+
updatePosition(positonConfig: MowerPositonConfig, animationTime?: number): void;
|
|
47
|
+
updatePostionByLastPosition(chargingPilesPositonConfig: MowerPositonConfig, animationTime?: number): void;
|
|
48
|
+
setMap(map: any): void;
|
|
49
|
+
getMap(): any;
|
|
50
|
+
getProjection(): any;
|
|
51
|
+
getPanes(): any;
|
|
52
|
+
onAdd(): void;
|
|
53
|
+
private setupZoomListener;
|
|
54
|
+
private onMapZoomChanged;
|
|
55
|
+
private createBoundaryLabelsManager;
|
|
56
|
+
private createChargingPileManager;
|
|
57
|
+
private createAntennaManager;
|
|
58
|
+
private createMowerPositionManager;
|
|
59
|
+
private updateBoundaryLabelsPosition;
|
|
60
|
+
private updateBoundaryLabelsPositionOptimized;
|
|
61
|
+
private updateManagerPositions;
|
|
62
|
+
createEditInterface(): void;
|
|
63
|
+
resetInitialState(): void;
|
|
64
|
+
getCurrentDragState(): DragState;
|
|
65
|
+
addEditEventListeners(): void;
|
|
66
|
+
handleDrag(e: any): void;
|
|
67
|
+
handleRotation(e: any): void;
|
|
68
|
+
convertPixelOffsetToLatLng(): void;
|
|
69
|
+
getEditData(): {
|
|
70
|
+
originalBounds: any;
|
|
71
|
+
finalBounds: any;
|
|
72
|
+
latLngOffset: {
|
|
73
|
+
lat: number;
|
|
74
|
+
lng: number;
|
|
75
|
+
};
|
|
76
|
+
rotation: number;
|
|
77
|
+
};
|
|
78
|
+
calculateFinalBounds(): any;
|
|
79
|
+
setCustomIcons(rotateIcon?: string, dragIcon?: string): void;
|
|
80
|
+
handleSave(): {
|
|
81
|
+
mapData: any;
|
|
82
|
+
editData: {
|
|
83
|
+
originalBounds: any;
|
|
84
|
+
finalBounds: any;
|
|
85
|
+
latLngOffset: {
|
|
86
|
+
lat: number;
|
|
87
|
+
lng: number;
|
|
88
|
+
};
|
|
89
|
+
rotation: number;
|
|
90
|
+
};
|
|
91
|
+
timestamp: string;
|
|
92
|
+
};
|
|
93
|
+
showSaveSuccess(): void;
|
|
94
|
+
setEditMode(enabled: boolean): void;
|
|
95
|
+
removeEditInterface(): void;
|
|
96
|
+
initializeSvgMapView(): void;
|
|
97
|
+
loadMapData(): void;
|
|
98
|
+
loadPathData(): void;
|
|
99
|
+
draw(): void;
|
|
100
|
+
onRemove(): void;
|
|
101
|
+
hide(): void;
|
|
102
|
+
show(): void;
|
|
103
|
+
setMowerPositionVisible(visible: boolean): void;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=MowerMapOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MowerMapOverlay.d.ts","sourceRoot":"","sources":["../../src/render/MowerMapOverlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MowerMapRendererProps, MowerMapRendererRef } from '../types/renderer';
|
|
3
|
+
declare global {
|
|
4
|
+
interface Window {
|
|
5
|
+
google: any;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export declare const MowerMapRenderer: React.ForwardRefExoticComponent<MowerMapRendererProps & React.RefAttributes<MowerMapRendererRef>>;
|
|
9
|
+
export default MowerMapRenderer;
|
|
10
|
+
export type { MowerMapRendererProps, MowerMapRendererRef };
|
|
11
|
+
//# sourceMappingURL=MowerMapRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MowerMapRenderer.d.ts","sourceRoot":"","sources":["../../src/render/MowerMapRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAuBf,OAAO,EAGL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,GAAG,CAAC;KACb;CACF;AAqED,eAAO,MAAM,gBAAgB,mGAmc5B,CAAC;AAIF,eAAe,gBAAgB,CAAC;AAChC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { MowerPositonConfig } from '../types/renderer';
|
|
2
|
+
import { SvgMapView } from './SvgMapView';
|
|
3
|
+
export declare class MowerPostionManager {
|
|
4
|
+
private svgView;
|
|
5
|
+
private mowerPositonConfig;
|
|
6
|
+
private container;
|
|
7
|
+
private overlayDiv;
|
|
8
|
+
private mowerElement;
|
|
9
|
+
private isFirstUpdate;
|
|
10
|
+
private animationId;
|
|
11
|
+
private isAnimating;
|
|
12
|
+
private startTime;
|
|
13
|
+
private animationDuration;
|
|
14
|
+
private lastPosition;
|
|
15
|
+
private startPosition;
|
|
16
|
+
private currentPosition;
|
|
17
|
+
private targetPosition;
|
|
18
|
+
private onAnimationComplete?;
|
|
19
|
+
constructor(svgView: SvgMapView, mowerPositonConfig: MowerPositonConfig, overlayDiv: HTMLElement, onAnimationComplete?: () => void);
|
|
20
|
+
get animationFlag(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 初始化容器
|
|
23
|
+
*/
|
|
24
|
+
private initializeContainer;
|
|
25
|
+
/**
|
|
26
|
+
* 创建割草机元素
|
|
27
|
+
*/
|
|
28
|
+
private createMowerElement;
|
|
29
|
+
/**
|
|
30
|
+
* 设置叠加层div引用(用于坐标转换)
|
|
31
|
+
*/
|
|
32
|
+
setOverlayDiv(overlayDiv: HTMLElement): void;
|
|
33
|
+
/**
|
|
34
|
+
* 获取容器元素
|
|
35
|
+
*/
|
|
36
|
+
getElement(): HTMLElement | null;
|
|
37
|
+
/**
|
|
38
|
+
* 根据最后一次有效的位置更新数据
|
|
39
|
+
*/
|
|
40
|
+
updatePostionByLastPosition(chargingPilesPositonConfig: MowerPositonConfig, animationTime?: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* 更新割草机位置
|
|
43
|
+
*/
|
|
44
|
+
updatePosition(positonConfig: MowerPositonConfig, animationTime?: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* 更新割草机图片
|
|
47
|
+
*/
|
|
48
|
+
private updateMowerImage;
|
|
49
|
+
/**
|
|
50
|
+
* 直接设置元素位置(无动画)
|
|
51
|
+
*/
|
|
52
|
+
private setElementPosition;
|
|
53
|
+
/**
|
|
54
|
+
* 停止当前动画
|
|
55
|
+
*/
|
|
56
|
+
private stopAnimation;
|
|
57
|
+
/**
|
|
58
|
+
* 开始动画到指定位置
|
|
59
|
+
*/
|
|
60
|
+
private startAnimationToPosition;
|
|
61
|
+
forceUpdatePosition(): void;
|
|
62
|
+
/**
|
|
63
|
+
* 动画步骤
|
|
64
|
+
*/
|
|
65
|
+
private animateStep;
|
|
66
|
+
/**
|
|
67
|
+
* 线性插值函数
|
|
68
|
+
*/
|
|
69
|
+
private lerp;
|
|
70
|
+
/**
|
|
71
|
+
* 将地图坐标转换为叠加层像素坐标
|
|
72
|
+
*/
|
|
73
|
+
private convertMapCoordinateToOverlayPixel;
|
|
74
|
+
/**
|
|
75
|
+
* 使用预计算数据将地图坐标转换为叠加层像素坐标(优化版本)
|
|
76
|
+
*/
|
|
77
|
+
private convertMapCoordinateToPixelWithPrecomputedData;
|
|
78
|
+
/**
|
|
79
|
+
* 显示/隐藏割草机
|
|
80
|
+
*/
|
|
81
|
+
setVisible(visible: boolean): void;
|
|
82
|
+
/**
|
|
83
|
+
* 检查是否正在动画中
|
|
84
|
+
*/
|
|
85
|
+
getIsAnimating(): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* 销毁管理器
|
|
88
|
+
*/
|
|
89
|
+
destroy(): void;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=MowerPostionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MowerPostionManager.d.ts","sourceRoot":"","sources":["../../src/render/MowerPostionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAEhD,OAAO,CAAC,aAAa,CAAiB;IAGtC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,YAAY,CAA2D;IAC/E,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,eAAe,CAA2D;IAClF,OAAO,CAAC,cAAc,CAA2D;IACjF,OAAO,CAAC,mBAAmB,CAAC,CAAa;gBAGvC,OAAO,EAAE,UAAU,EACnB,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,WAAW,EACvB,mBAAmB,CAAC,EAAE,MAAM,IAAI;IASlC,IAAI,aAAa,YAEhB;IAED;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,WAAW;IAIrC;;OAEG;IACH,UAAU,IAAI,WAAW,GAAG,IAAI;IAIhC;;OAEG;IACH,2BAA2B,CACzB,0BAA0B,EAAE,kBAAkB,EAC9C,aAAa,GAAE,MAAU;IAkB3B;;OAEG;IACH,cAAc,CAAC,aAAa,EAAE,kBAAkB,EAAE,aAAa,GAAE,MAAU;IA0C3E;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgChC,mBAAmB;IAInB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkDnB;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;IACH,OAAO,CAAC,kCAAkC;IA6B1C;;OAEG;IACH,OAAO,CAAC,8CAA8C;IAkBtD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO;IAM3B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,OAAO;CAWR"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { BaseLayer } from './layers';
|
|
2
|
+
/**
|
|
3
|
+
* SVG基础MapView
|
|
4
|
+
* 使用真正的矢量SVG渲染替代Canvas位图渲染
|
|
5
|
+
*/
|
|
6
|
+
export declare class SvgMapView {
|
|
7
|
+
private svg;
|
|
8
|
+
private container;
|
|
9
|
+
private viewBox;
|
|
10
|
+
private layers;
|
|
11
|
+
private layersGroup;
|
|
12
|
+
private scale;
|
|
13
|
+
private lineScale;
|
|
14
|
+
private destroyed;
|
|
15
|
+
private showScale;
|
|
16
|
+
private isDragging;
|
|
17
|
+
private lastMouseX;
|
|
18
|
+
private lastMouseY;
|
|
19
|
+
constructor(containerElement: HTMLElement, width?: number, height?: number);
|
|
20
|
+
/**
|
|
21
|
+
* 创建SVG元素
|
|
22
|
+
*/
|
|
23
|
+
private createSVGElement;
|
|
24
|
+
/**
|
|
25
|
+
* 设置SVG基本属性
|
|
26
|
+
*/
|
|
27
|
+
private setupSVG;
|
|
28
|
+
/**
|
|
29
|
+
* 创建SVG组元素
|
|
30
|
+
*/
|
|
31
|
+
private createSVGGroup;
|
|
32
|
+
/**
|
|
33
|
+
* 更新viewBox
|
|
34
|
+
*/
|
|
35
|
+
private updateViewBox;
|
|
36
|
+
addLayers(layers: BaseLayer[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* 添加图层
|
|
39
|
+
*/
|
|
40
|
+
addLayer(layer: BaseLayer): void;
|
|
41
|
+
/**
|
|
42
|
+
* 移除图层
|
|
43
|
+
*/
|
|
44
|
+
removeLayer(layer: BaseLayer): void;
|
|
45
|
+
/**
|
|
46
|
+
* 设置自适应视图变换 - 让SVG刚好包裹住图形
|
|
47
|
+
*/
|
|
48
|
+
fitToView(bounds: {
|
|
49
|
+
minX: number;
|
|
50
|
+
minY: number;
|
|
51
|
+
maxX: number;
|
|
52
|
+
maxY: number;
|
|
53
|
+
}): void;
|
|
54
|
+
/**
|
|
55
|
+
* 重置变换
|
|
56
|
+
*/
|
|
57
|
+
resetTransform(): void;
|
|
58
|
+
/**
|
|
59
|
+
* 设置缩放级别
|
|
60
|
+
*/
|
|
61
|
+
setZoom(zoomLevel: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* 获取当前缩放级别
|
|
64
|
+
*/
|
|
65
|
+
getZoom(): number;
|
|
66
|
+
/**
|
|
67
|
+
* 设置线条缩放系数
|
|
68
|
+
*/
|
|
69
|
+
setLineScale(lineScale: number): void;
|
|
70
|
+
/**
|
|
71
|
+
* 获取当前线条缩放系数
|
|
72
|
+
*/
|
|
73
|
+
getLineScale(): number;
|
|
74
|
+
/**
|
|
75
|
+
* 主渲染方法
|
|
76
|
+
*/
|
|
77
|
+
private render;
|
|
78
|
+
/**
|
|
79
|
+
* 清空图层组
|
|
80
|
+
*/
|
|
81
|
+
private clearLayersGroup;
|
|
82
|
+
/**
|
|
83
|
+
* 绘制所有图层
|
|
84
|
+
*/
|
|
85
|
+
private onDrawLayers;
|
|
86
|
+
/**
|
|
87
|
+
* 刷新渲染
|
|
88
|
+
*/
|
|
89
|
+
refresh(): void;
|
|
90
|
+
/**
|
|
91
|
+
* 重新初始化SVG(用于容器大小变化)
|
|
92
|
+
*/
|
|
93
|
+
reinitializeSVG(): void;
|
|
94
|
+
/**
|
|
95
|
+
* 绘制比例尺
|
|
96
|
+
*/
|
|
97
|
+
private drawScale;
|
|
98
|
+
/**
|
|
99
|
+
* 设置拖拽事件处理器
|
|
100
|
+
*/
|
|
101
|
+
private setupDragHandlers;
|
|
102
|
+
/**
|
|
103
|
+
* 鼠标按下事件
|
|
104
|
+
*/
|
|
105
|
+
private handleMouseDown;
|
|
106
|
+
/**
|
|
107
|
+
* 鼠标移动事件
|
|
108
|
+
*/
|
|
109
|
+
private handleMouseMove;
|
|
110
|
+
/**
|
|
111
|
+
* 鼠标释放事件
|
|
112
|
+
*/
|
|
113
|
+
private handleMouseUp;
|
|
114
|
+
/**
|
|
115
|
+
* 鼠标离开事件
|
|
116
|
+
*/
|
|
117
|
+
private handleMouseLeave;
|
|
118
|
+
/**
|
|
119
|
+
* 触摸开始事件
|
|
120
|
+
*/
|
|
121
|
+
private handleTouchStart;
|
|
122
|
+
/**
|
|
123
|
+
* 触摸移动事件
|
|
124
|
+
*/
|
|
125
|
+
private handleTouchMove;
|
|
126
|
+
/**
|
|
127
|
+
* 触摸结束事件
|
|
128
|
+
*/
|
|
129
|
+
private handleTouchEnd;
|
|
130
|
+
/**
|
|
131
|
+
* 按像素平移视图
|
|
132
|
+
*/
|
|
133
|
+
private panByPixels;
|
|
134
|
+
/**
|
|
135
|
+
* 获取layers-group的实际边界
|
|
136
|
+
*/
|
|
137
|
+
getLayersGroupBounds(): {
|
|
138
|
+
x: number;
|
|
139
|
+
y: number;
|
|
140
|
+
width: number;
|
|
141
|
+
height: number;
|
|
142
|
+
} | null;
|
|
143
|
+
/**
|
|
144
|
+
* 自动适配viewBox到实际内容
|
|
145
|
+
*/
|
|
146
|
+
autoFitToContent(): void;
|
|
147
|
+
/**
|
|
148
|
+
* 获取ViewBox信息
|
|
149
|
+
*/
|
|
150
|
+
getViewBoxInfo(): {
|
|
151
|
+
x: number;
|
|
152
|
+
y: number;
|
|
153
|
+
width: number;
|
|
154
|
+
height: number;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* 获取容器的实际尺寸
|
|
158
|
+
*/
|
|
159
|
+
getContainerSize(): {
|
|
160
|
+
width: number;
|
|
161
|
+
height: number;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* 诊断SVG尺寸信息
|
|
165
|
+
*/
|
|
166
|
+
diagnosticSizeInfo(): void;
|
|
167
|
+
/**
|
|
168
|
+
* 设置是否显示比例尺
|
|
169
|
+
*/
|
|
170
|
+
setShowScale(show: boolean): void;
|
|
171
|
+
/**
|
|
172
|
+
* 获取SVG元素
|
|
173
|
+
*/
|
|
174
|
+
getSVG(): SVGSVGElement;
|
|
175
|
+
/**
|
|
176
|
+
* 获取容器元素
|
|
177
|
+
*/
|
|
178
|
+
getContainer(): HTMLElement;
|
|
179
|
+
/**
|
|
180
|
+
* 获取所有图层
|
|
181
|
+
*/
|
|
182
|
+
getLayers(): BaseLayer[];
|
|
183
|
+
/**
|
|
184
|
+
* 清空所有图层
|
|
185
|
+
*/
|
|
186
|
+
clear(): void;
|
|
187
|
+
/**
|
|
188
|
+
* 销毁MapView
|
|
189
|
+
*/
|
|
190
|
+
destroy(): void;
|
|
191
|
+
/**
|
|
192
|
+
* 清理拖拽事件处理器
|
|
193
|
+
*/
|
|
194
|
+
private cleanupDragHandlers;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=SvgMapView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SvgMapView.d.ts","sourceRoot":"","sources":["../../src/render/SvgMapView.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseLayer } from './BaseLayer';
|
|
2
|
+
/**
|
|
3
|
+
* 天线图层
|
|
4
|
+
* 专门处理天线元素的渲染
|
|
5
|
+
*/
|
|
6
|
+
export declare class AntennaLayer extends BaseLayer {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* SVG渲染方法
|
|
10
|
+
*/
|
|
11
|
+
drawSVG(svgGroup: SVGGElement): void;
|
|
12
|
+
/**
|
|
13
|
+
* 渲染天线元素
|
|
14
|
+
*/
|
|
15
|
+
private renderAntenna;
|
|
16
|
+
/**
|
|
17
|
+
* 添加天线SVG动画
|
|
18
|
+
*/
|
|
19
|
+
private addAntennaAnimation;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=AntennaLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AntennaLayer.d.ts","sourceRoot":"","sources":["../../../src/render/layers/AntennaLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,SAAS;;IAMzC;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAY3C;;OAEG;IACH,OAAO,CAAC,aAAa;IA0CrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAS5B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { DrawElement, ILayer } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 基础图层类
|
|
4
|
+
* 提供图层的基本属性和元素管理功能
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class BaseLayer implements ILayer {
|
|
7
|
+
protected elements: DrawElement[];
|
|
8
|
+
protected level: number;
|
|
9
|
+
protected visible: boolean;
|
|
10
|
+
protected needsRedraw: boolean;
|
|
11
|
+
protected mapView: any;
|
|
12
|
+
protected type: string;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* 设置图层层级
|
|
16
|
+
*/
|
|
17
|
+
setLevel(level: number): void;
|
|
18
|
+
/**
|
|
19
|
+
* 获取图层层级
|
|
20
|
+
*/
|
|
21
|
+
getLevel(): number;
|
|
22
|
+
getType(): string;
|
|
23
|
+
/**
|
|
24
|
+
* 设置图层可见性
|
|
25
|
+
*/
|
|
26
|
+
setVisible(visible: boolean): void;
|
|
27
|
+
/**
|
|
28
|
+
* 获取图层可见性
|
|
29
|
+
*/
|
|
30
|
+
isVisible(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 添加绘制元素
|
|
33
|
+
*/
|
|
34
|
+
addElement(element: DrawElement): void;
|
|
35
|
+
/**
|
|
36
|
+
* 添加多个绘制元素
|
|
37
|
+
*/
|
|
38
|
+
addElements(elements: DrawElement[]): void;
|
|
39
|
+
/**
|
|
40
|
+
* 移除绘制元素
|
|
41
|
+
*/
|
|
42
|
+
removeElement(element: DrawElement): void;
|
|
43
|
+
/**
|
|
44
|
+
* 清空所有元素
|
|
45
|
+
*/
|
|
46
|
+
clearElements(): void;
|
|
47
|
+
/**
|
|
48
|
+
* 获取所有元素
|
|
49
|
+
*/
|
|
50
|
+
getElements(): DrawElement[];
|
|
51
|
+
/**
|
|
52
|
+
* 抽象方法:SVG渲染
|
|
53
|
+
*/
|
|
54
|
+
abstract drawSVG(svgGroup: SVGGElement, scale: number, lineScale?: number): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=BaseLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseLayer.d.ts","sourceRoot":"","sources":["../../../src/render/layers/BaseLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE9C;;;GAGG;AACH,8BAAsB,SAAU,YAAW,MAAM;IAC/C,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAM;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAO;IAC9B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAQ;IAClC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAQ;IACtC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAQ;IAC9B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAM;;IAQ5B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQlC;;OAEG;IACH,SAAS,IAAI,OAAO;IAMpB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAStC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAS1C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAYzC;;OAEG;IACH,aAAa,IAAI,IAAI;IASrB;;OAEG;IACH,WAAW,IAAI,WAAW,EAAE;IAI5B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;CACjF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BaseLayer } from './BaseLayer';
|
|
2
|
+
/**
|
|
3
|
+
* 边界边框图层
|
|
4
|
+
* 专门处理边界边框线条的渲染
|
|
5
|
+
*/
|
|
6
|
+
export declare class BoundaryBorderLayer extends BaseLayer {
|
|
7
|
+
scale: number;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* SVG渲染方法
|
|
11
|
+
*/
|
|
12
|
+
drawSVG(svgGroup: SVGGElement, scale: number): void;
|
|
13
|
+
/**
|
|
14
|
+
* 渲染边界边框
|
|
15
|
+
*/
|
|
16
|
+
private renderBoundaryBorder;
|
|
17
|
+
/**
|
|
18
|
+
* 创建直接路径(type=2)
|
|
19
|
+
*/
|
|
20
|
+
private createDirectPath;
|
|
21
|
+
/**
|
|
22
|
+
* 使用PathMeasure逻辑创建平行路径(type=1)
|
|
23
|
+
*/
|
|
24
|
+
private createParallelPathsWithMeasure;
|
|
25
|
+
/**
|
|
26
|
+
* 生成直线平行路径(每个线段分别处理)
|
|
27
|
+
*/
|
|
28
|
+
private generateStraightParallelPaths;
|
|
29
|
+
/**
|
|
30
|
+
* 将坐标点按type分组
|
|
31
|
+
*/
|
|
32
|
+
private groupCoordinatesByType;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=BoundaryBorderLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundaryBorderLayer.d.ts","sourceRoot":"","sources":["../../../src/render/layers/BoundaryBorderLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,KAAK,EAAE,MAAM,CAAK;;IAOlB;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAc1D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAsCtC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAqDrC;;OAEG;IACH,OAAO,CAAC,sBAAsB;CA0C/B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseLayer } from './BaseLayer';
|
|
2
|
+
/**
|
|
3
|
+
* 边界背景图层
|
|
4
|
+
* 专门处理边界背景填充的渲染
|
|
5
|
+
*/
|
|
6
|
+
export declare class BoundaryLayer extends BaseLayer {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* SVG渲染方法
|
|
10
|
+
*/
|
|
11
|
+
drawSVG(svgGroup: SVGGElement): void;
|
|
12
|
+
/**
|
|
13
|
+
* 渲染边界背景
|
|
14
|
+
*/
|
|
15
|
+
private renderBoundaryBackground;
|
|
16
|
+
/**
|
|
17
|
+
* 创建边界填充区域
|
|
18
|
+
*/
|
|
19
|
+
private createBoundaryFill;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=BoundaryLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundaryLayer.d.ts","sourceRoot":"","sources":["../../../src/render/layers/BoundaryLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;;IAM1C;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAa3C;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAkB3B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseLayer } from './BaseLayer';
|
|
2
|
+
/**
|
|
3
|
+
* 路径图层
|
|
4
|
+
* 专门处理路径元素的渲染
|
|
5
|
+
*/
|
|
6
|
+
export declare class ChannelLayer extends BaseLayer {
|
|
7
|
+
level: number;
|
|
8
|
+
scale: number;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* SVG渲染方法
|
|
12
|
+
*/
|
|
13
|
+
drawSVG(svgGroup: SVGGElement, scale: number): void;
|
|
14
|
+
/**
|
|
15
|
+
* 创建排除分区内部的 clipPath 定义
|
|
16
|
+
*/
|
|
17
|
+
private createExclusionClipPathDefinitions;
|
|
18
|
+
/**
|
|
19
|
+
* 渲染路径元素
|
|
20
|
+
*/
|
|
21
|
+
private renderPath;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ChannelLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelLayer.d.ts","sourceRoot":"","sources":["../../../src/render/layers/ChannelLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACzC,KAAK,EAAE,MAAM,CAAK;IAClB,KAAK,EAAE,MAAM,CAAK;;IAOlB;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAe1D;;OAEG;IACH,OAAO,CAAC,kCAAkC;IA+E1C;;OAEG;IACH,OAAO,CAAC,UAAU;CAgEnB"}
|