vue-openlayers-plugin 1.0.0

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.
Files changed (123) hide show
  1. package/LICENSE +21 -0
  2. package/lib/gifler-c6887506.mjs +415 -0
  3. package/lib/icons.svg +15 -0
  4. package/lib/index-d4f09269.mjs +71705 -0
  5. package/lib/index.es-7486bf92.mjs +5776 -0
  6. package/lib/index.esm.js +51 -0
  7. package/lib/index.umd.js +784 -0
  8. package/lib/purify.es-35a15df8.mjs +480 -0
  9. package/lib/style.css +1 -0
  10. package/package.json +103 -0
  11. package/readme.md +234 -0
  12. package/types/index.d.ts +1 -0
  13. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts +188 -0
  14. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts.map +1 -0
  15. package/types/src/components/CustomDialog/dialogCache.d.ts +87 -0
  16. package/types/src/components/CustomDialog/dialogCache.d.ts.map +1 -0
  17. package/types/src/components/CustomDialog/index.d.ts +4 -0
  18. package/types/src/components/CustomDialog/index.d.ts.map +1 -0
  19. package/types/src/components/CustomOpenlayer/assets/index.d.ts +48 -0
  20. package/types/src/components/CustomOpenlayer/assets/index.d.ts.map +1 -0
  21. package/types/src/components/CustomOpenlayer/components/LegendPanel.vue.d.ts +53 -0
  22. package/types/src/components/CustomOpenlayer/components/LegendPanel.vue.d.ts.map +1 -0
  23. package/types/src/components/CustomOpenlayer/components/MapContainer.vue.d.ts +147 -0
  24. package/types/src/components/CustomOpenlayer/components/MapContainer.vue.d.ts.map +1 -0
  25. package/types/src/components/CustomOpenlayer/components/MapControls/index.vue.d.ts +59 -0
  26. package/types/src/components/CustomOpenlayer/components/MapControls/index.vue.d.ts.map +1 -0
  27. package/types/src/components/CustomOpenlayer/components/MapSearch/MapSearch.vue.d.ts +184 -0
  28. package/types/src/components/CustomOpenlayer/components/MapSearch/MapSearch.vue.d.ts.map +1 -0
  29. package/types/src/components/CustomOpenlayer/components/MapToolbar.vue.d.ts +39 -0
  30. package/types/src/components/CustomOpenlayer/components/MapToolbar.vue.d.ts.map +1 -0
  31. package/types/src/components/CustomOpenlayer/components/MapTooltip/index.vue.d.ts +76 -0
  32. package/types/src/components/CustomOpenlayer/components/MapTooltip/index.vue.d.ts.map +1 -0
  33. package/types/src/components/CustomOpenlayer/components/MapTooltip/types.d.ts +55 -0
  34. package/types/src/components/CustomOpenlayer/components/MapTooltip/types.d.ts.map +1 -0
  35. package/types/src/components/CustomOpenlayer/components/dialogs/BasemapPanel.vue.d.ts +20 -0
  36. package/types/src/components/CustomOpenlayer/components/dialogs/BasemapPanel.vue.d.ts.map +1 -0
  37. package/types/src/components/CustomOpenlayer/components/dialogs/CoordinateLocationDialog.vue.d.ts +21 -0
  38. package/types/src/components/CustomOpenlayer/components/dialogs/CoordinateLocationDialog.vue.d.ts.map +1 -0
  39. package/types/src/components/CustomOpenlayer/components/dialogs/LayerPanel.vue.d.ts +46 -0
  40. package/types/src/components/CustomOpenlayer/components/dialogs/LayerPanel.vue.d.ts.map +1 -0
  41. package/types/src/components/CustomOpenlayer/components/dialogs/MapPrintDialog.vue.d.ts +24 -0
  42. package/types/src/components/CustomOpenlayer/components/dialogs/MapPrintDialog.vue.d.ts.map +1 -0
  43. package/types/src/components/CustomOpenlayer/components/dialogs/MeasurementDialog.vue.d.ts +41 -0
  44. package/types/src/components/CustomOpenlayer/components/dialogs/MeasurementDialog.vue.d.ts.map +1 -0
  45. package/types/src/components/CustomOpenlayer/components/dialogs/MyMarkersDialog.vue.d.ts +21 -0
  46. package/types/src/components/CustomOpenlayer/components/dialogs/MyMarkersDialog.vue.d.ts.map +1 -0
  47. package/types/src/components/CustomOpenlayer/components/dialogs/RegionNavigationDialog.vue.d.ts +25 -0
  48. package/types/src/components/CustomOpenlayer/components/dialogs/RegionNavigationDialog.vue.d.ts.map +1 -0
  49. package/types/src/components/CustomOpenlayer/components/dialogs/ViewBookmarksDialog.vue.d.ts +21 -0
  50. package/types/src/components/CustomOpenlayer/components/dialogs/ViewBookmarksDialog.vue.d.ts.map +1 -0
  51. package/types/src/components/CustomOpenlayer/data/testLayers.d.ts +84 -0
  52. package/types/src/components/CustomOpenlayer/data/testLayers.d.ts.map +1 -0
  53. package/types/src/components/CustomOpenlayer/index.d.ts +7 -0
  54. package/types/src/components/CustomOpenlayer/index.d.ts.map +1 -0
  55. package/types/src/components/CustomOpenlayer/index.vue.d.ts +155 -0
  56. package/types/src/components/CustomOpenlayer/index.vue.d.ts.map +1 -0
  57. package/types/src/components/CustomOpenlayer/services/searchService.d.ts +88 -0
  58. package/types/src/components/CustomOpenlayer/services/searchService.d.ts.map +1 -0
  59. package/types/src/components/CustomOpenlayer/utils/DiffusionAnimationHelper.d.ts +60 -0
  60. package/types/src/components/CustomOpenlayer/utils/DiffusionAnimationHelper.d.ts.map +1 -0
  61. package/types/src/components/CustomOpenlayer/utils/GifAnimationHelper.d.ts +31 -0
  62. package/types/src/components/CustomOpenlayer/utils/GifAnimationHelper.d.ts.map +1 -0
  63. package/types/src/components/CustomOpenlayer/utils/TooltipHelper.d.ts +134 -0
  64. package/types/src/components/CustomOpenlayer/utils/TooltipHelper.d.ts.map +1 -0
  65. package/types/src/components/CustomOpenlayer/utils/amapSearchApi.d.ts +57 -0
  66. package/types/src/components/CustomOpenlayer/utils/amapSearchApi.d.ts.map +1 -0
  67. package/types/src/components/CustomOpenlayer/utils/basemapManager.d.ts +62 -0
  68. package/types/src/components/CustomOpenlayer/utils/basemapManager.d.ts.map +1 -0
  69. package/types/src/components/CustomOpenlayer/utils/configLoader.d.ts +159 -0
  70. package/types/src/components/CustomOpenlayer/utils/configLoader.d.ts.map +1 -0
  71. package/types/src/components/CustomOpenlayer/utils/drawing/BaseDrawing.d.ts +237 -0
  72. package/types/src/components/CustomOpenlayer/utils/drawing/BaseDrawing.d.ts.map +1 -0
  73. package/types/src/components/CustomOpenlayer/utils/drawing/DrawingManager.d.ts +271 -0
  74. package/types/src/components/CustomOpenlayer/utils/drawing/DrawingManager.d.ts.map +1 -0
  75. package/types/src/components/CustomOpenlayer/utils/drawing/IconDrawing.d.ts +187 -0
  76. package/types/src/components/CustomOpenlayer/utils/drawing/IconDrawing.d.ts.map +1 -0
  77. package/types/src/components/CustomOpenlayer/utils/drawing/ImageDrawing.d.ts +193 -0
  78. package/types/src/components/CustomOpenlayer/utils/drawing/ImageDrawing.d.ts.map +1 -0
  79. package/types/src/components/CustomOpenlayer/utils/drawing/LineDrawing.d.ts +193 -0
  80. package/types/src/components/CustomOpenlayer/utils/drawing/LineDrawing.d.ts.map +1 -0
  81. package/types/src/components/CustomOpenlayer/utils/drawing/MilitaryDrawing.d.ts +175 -0
  82. package/types/src/components/CustomOpenlayer/utils/drawing/MilitaryDrawing.d.ts.map +1 -0
  83. package/types/src/components/CustomOpenlayer/utils/drawing/PointDrawing.d.ts +175 -0
  84. package/types/src/components/CustomOpenlayer/utils/drawing/PointDrawing.d.ts.map +1 -0
  85. package/types/src/components/CustomOpenlayer/utils/drawing/PointWithTextDrawing.d.ts +179 -0
  86. package/types/src/components/CustomOpenlayer/utils/drawing/PointWithTextDrawing.d.ts.map +1 -0
  87. package/types/src/components/CustomOpenlayer/utils/drawing/PolygonDrawing.d.ts +236 -0
  88. package/types/src/components/CustomOpenlayer/utils/drawing/PolygonDrawing.d.ts.map +1 -0
  89. package/types/src/components/CustomOpenlayer/utils/drawing/TextDrawing.d.ts +164 -0
  90. package/types/src/components/CustomOpenlayer/utils/drawing/TextDrawing.d.ts.map +1 -0
  91. package/types/src/components/CustomOpenlayer/utils/eventBus.d.ts +34 -0
  92. package/types/src/components/CustomOpenlayer/utils/eventBus.d.ts.map +1 -0
  93. package/types/src/components/CustomOpenlayer/utils/eventManager.d.ts +153 -0
  94. package/types/src/components/CustomOpenlayer/utils/eventManager.d.ts.map +1 -0
  95. package/types/src/components/CustomOpenlayer/utils/index.d.ts +10 -0
  96. package/types/src/components/CustomOpenlayer/utils/index.d.ts.map +1 -0
  97. package/types/src/components/CustomOpenlayer/utils/layerManager.d.ts +173 -0
  98. package/types/src/components/CustomOpenlayer/utils/layerManager.d.ts.map +1 -0
  99. package/types/src/components/CustomOpenlayer/utils/mapOperationTool.d.ts +116 -0
  100. package/types/src/components/CustomOpenlayer/utils/mapOperationTool.d.ts.map +1 -0
  101. package/types/src/components/CustomOpenlayer/utils/measurementTool.d.ts +134 -0
  102. package/types/src/components/CustomOpenlayer/utils/measurementTool.d.ts.map +1 -0
  103. package/types/src/components/CustomOpenlayer/utils/myMarkerManager.d.ts +82 -0
  104. package/types/src/components/CustomOpenlayer/utils/myMarkerManager.d.ts.map +1 -0
  105. package/types/src/components/CustomOpenlayer/utils/overviewMapUtil.d.ts +62 -0
  106. package/types/src/components/CustomOpenlayer/utils/overviewMapUtil.d.ts.map +1 -0
  107. package/types/src/components/CustomOpenlayer/utils/searchMarkerManager.d.ts +96 -0
  108. package/types/src/components/CustomOpenlayer/utils/searchMarkerManager.d.ts.map +1 -0
  109. package/types/src/components/CustomOpenlayer/utils/storage.d.ts +56 -0
  110. package/types/src/components/CustomOpenlayer/utils/storage.d.ts.map +1 -0
  111. package/types/src/components/CustomOpenlayer/utils/tiandituSearchApi.d.ts +45 -0
  112. package/types/src/components/CustomOpenlayer/utils/tiandituSearchApi.d.ts.map +1 -0
  113. package/types/src/components/CustomOpenlayer/utils/unitConverter.d.ts +36 -0
  114. package/types/src/components/CustomOpenlayer/utils/unitConverter.d.ts.map +1 -0
  115. package/types/src/components/SvgIcon/index.vue.d.ts +30 -0
  116. package/types/src/components/SvgIcon/index.vue.d.ts.map +1 -0
  117. package/types/src/types/index.d.ts +12 -0
  118. package/types/src/types/index.d.ts.map +1 -0
  119. package/types/src/utils/html2pdf.d.ts +13 -0
  120. package/types/src/utils/html2pdf.d.ts.map +1 -0
  121. package/types/src/utils/index.d.ts +12 -0
  122. package/types/src/utils/index.d.ts.map +1 -0
  123. package/types/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,237 @@
1
+ import { Map as OLMap, Feature } from 'ol';
2
+ import { default as VectorLayer } from 'ol/layer/Vector';
3
+ import { default as VectorSource } from 'ol/source/Vector';
4
+ import { Geometry } from 'ol/geom';
5
+ import { Style } from 'ol/style';
6
+ import { Coordinate } from 'ol/coordinate';
7
+ import { EventsKey } from 'ol/events';
8
+
9
+ /**
10
+ * 标绘样式配置接口
11
+ */
12
+ export interface DrawingStyleConfig {
13
+ fillColor?: string;
14
+ fillOpacity?: number;
15
+ strokeColor?: string;
16
+ strokeWidth?: number;
17
+ strokeOpacity?: number;
18
+ strokeDashArray?: number[];
19
+ pointColor?: string;
20
+ pointSize?: number;
21
+ pointStyle?: "circle" | "square" | "triangle" | "star";
22
+ textContent?: string;
23
+ fontSize?: number;
24
+ fontFamily?: string;
25
+ textColor?: string;
26
+ textAlign?: "left" | "center" | "right";
27
+ textBaseline?: "top" | "middle" | "bottom";
28
+ textOffsetX?: number;
29
+ textOffsetY?: number;
30
+ imageUrl?: string;
31
+ imageSize?: [number, number];
32
+ imageScale?: number;
33
+ imageRotation?: number;
34
+ selectionColor?: string;
35
+ selectionWidth?: number;
36
+ selectionOpacity?: number;
37
+ showEditHandles?: boolean;
38
+ editHandleSize?: number;
39
+ editHandleColor?: string;
40
+ zIndex?: number;
41
+ opacity?: number;
42
+ }
43
+ /**
44
+ * 标绘配置接口
45
+ */
46
+ export interface DrawingConfig {
47
+ id?: string;
48
+ name?: string;
49
+ type: string;
50
+ coordinates?: Coordinate | Coordinate[] | Coordinate[][];
51
+ properties?: Record<string, any>;
52
+ style?: DrawingStyleConfig;
53
+ visible?: boolean;
54
+ selectable?: boolean;
55
+ editable?: boolean;
56
+ deletable?: boolean;
57
+ }
58
+ /**
59
+ * 标绘事件接口
60
+ */
61
+ export interface DrawingEvents {
62
+ "drawing:created": (drawing: BaseDrawing) => void;
63
+ "drawing:updated": (drawing: BaseDrawing) => void;
64
+ "drawing:deleted": (drawing: BaseDrawing) => void;
65
+ "drawing:selected": (drawing: BaseDrawing) => void;
66
+ "drawing:deselected": (drawing: BaseDrawing) => void;
67
+ "drawing:hover": (drawing: BaseDrawing) => void;
68
+ "drawing:click": (drawing: BaseDrawing, event: any) => void;
69
+ }
70
+ /**
71
+ * 基础标绘类
72
+ * 所有标绘类的基类,提供通用的接口和基础功能
73
+ */
74
+ export declare abstract class BaseDrawing {
75
+ protected map: OLMap | null;
76
+ protected layer: VectorLayer<VectorSource> | null;
77
+ protected source: VectorSource | null;
78
+ protected feature: Feature<Geometry> | null;
79
+ protected eventListeners: EventsKey[];
80
+ protected eventHandlers: Map<string, Function[]>;
81
+ protected _config: DrawingConfig;
82
+ protected _style: DrawingStyleConfig;
83
+ protected _visible: boolean;
84
+ protected _selected: boolean;
85
+ constructor(config: DrawingConfig);
86
+ /**
87
+ * 生成唯一ID
88
+ */
89
+ protected generateId(): string;
90
+ /**
91
+ * 初始化标绘
92
+ */
93
+ initialize(map: OLMap, layer?: VectorLayer<VectorSource>): void;
94
+ /**
95
+ * 创建要素 - 抽象方法,由子类实现
96
+ */
97
+ protected abstract createFeature(): void;
98
+ /**
99
+ * 创建样式 - 抽象方法,由子类实现
100
+ */
101
+ protected abstract createStyle(): Style | Style[];
102
+ /**
103
+ * 更新样式
104
+ */
105
+ updateStyle(styleConfig?: DrawingStyleConfig): void;
106
+ /**
107
+ * 绑定事件
108
+ */
109
+ protected bindEvents(): void;
110
+ /**
111
+ * 要素点击事件处理
112
+ */
113
+ protected onFeatureClick(event: any): void;
114
+ /**
115
+ * 要素悬停事件处理
116
+ */
117
+ protected onFeatureHover(event: any): void;
118
+ /**
119
+ * 设置选中状态
120
+ */
121
+ setSelected(selected: boolean): void;
122
+ /**
123
+ * 更新选中状态的样式
124
+ */
125
+ protected updateSelectionStyle(): void;
126
+ /**
127
+ * 创建选择样式 - 子类可以重写此方法来自定义选中样式
128
+ */
129
+ protected createSelectionStyles(): Style[];
130
+ /**
131
+ * 设置可见性
132
+ */
133
+ setVisible(visible: boolean): void;
134
+ /**
135
+ * 获取可见性
136
+ */
137
+ getVisible(): boolean;
138
+ /**
139
+ * 获取选中状态
140
+ */
141
+ getSelected(): boolean;
142
+ /**
143
+ * 更新坐标
144
+ */
145
+ updateCoordinates(coordinates: Coordinate | Coordinate[] | Coordinate[][]): void;
146
+ /**
147
+ * 更新要素几何 - 抽象方法,由子类实现
148
+ */
149
+ protected abstract updateFeatureGeometry(): void;
150
+ /**
151
+ * 获取配置
152
+ */
153
+ getConfig(): DrawingConfig;
154
+ /**
155
+ * 获取样式配置
156
+ */
157
+ getStyleConfig(): DrawingStyleConfig;
158
+ /**
159
+ * 获取要素
160
+ */
161
+ getFeature(): Feature<Geometry> | null;
162
+ /**
163
+ * 获取图层
164
+ */
165
+ getLayer(): VectorLayer<VectorSource> | null;
166
+ /**
167
+ * 获取ID
168
+ */
169
+ getId(): string;
170
+ /**
171
+ * 获取类型
172
+ */
173
+ getType(): string;
174
+ /**
175
+ * 获取名称
176
+ */
177
+ getName(): string;
178
+ /**
179
+ * 设置名称
180
+ */
181
+ setName(name: string): void;
182
+ /**
183
+ * 获取坐标
184
+ */
185
+ getCoordinates(): Coordinate | Coordinate[] | Coordinate[][] | undefined;
186
+ /**
187
+ * 获取属性
188
+ */
189
+ getProperties(): Record<string, any>;
190
+ /**
191
+ * 设置属性
192
+ */
193
+ setProperties(properties: Record<string, any>): void;
194
+ /**
195
+ * 获取边界框
196
+ */
197
+ getBounds(): [number, number, number, number] | null;
198
+ /**
199
+ * 缩放到标绘
200
+ */
201
+ zoomTo(padding?: number[]): void;
202
+ /**
203
+ * 克隆标绘
204
+ */
205
+ clone(): BaseDrawing;
206
+ /**
207
+ * 创建实例 - 抽象方法,由子类实现
208
+ */
209
+ protected abstract createInstance(config: DrawingConfig): BaseDrawing;
210
+ /**
211
+ * 序列化为JSON
212
+ */
213
+ toJSON(): any;
214
+ /**
215
+ * 从JSON反序列化
216
+ */
217
+ static fromJSON(data: any): BaseDrawing;
218
+ /**
219
+ * 销毁标绘
220
+ */
221
+ destroy(): void;
222
+ /**
223
+ * 事件发射器 - 简单实现
224
+ */
225
+ on(event: string, handler: Function): void;
226
+ off(event: string, handler?: Function): void;
227
+ protected emit(event: string, ...args: any[]): void;
228
+ }
229
+ /**
230
+ * 标绘工厂接口
231
+ */
232
+ export interface DrawingFactory {
233
+ create(config: DrawingConfig): BaseDrawing;
234
+ getType(): string;
235
+ getSupportedTypes(): string[];
236
+ }
237
+ //# sourceMappingURL=BaseDrawing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDrawing.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CustomOpenlayer/utils/drawing/BaseDrawing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,WAAW,MAAM,iBAAiB,CAAA;AACzC,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAEjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAG1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAA;IAGtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACvC,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IAGtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IAGxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,EAAE,CAAA;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACjD,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACjD,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAClD,oBAAoB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACpD,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;CAC5D;AAED;;;GAGG;AACH,8BAAsB,WAAW;IAC/B,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAO;IAClC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI,CAAO;IACxD,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAO;IAC5C,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAO;IAClD,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,CAAK;IAC1C,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAY;IAC5D,SAAS,CAAC,OAAO,EAAE,aAAa,CAAA;IAChC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACpC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAO;IAClC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAQ;gBAExB,MAAM,EAAE,aAAa;IAajC;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B;;OAEG;IACI,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI;IA+BtE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAExC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,KAAK,GAAG,KAAK,EAAE;IAEjD;;OAEG;IACI,WAAW,CAAC,WAAW,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAW1D;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,IAAI;IAsB5B;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAO1C;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAI1C;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAgB3C;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAetC;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,KAAK,EAAE;IAK1C;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOzC;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACI,iBAAiB,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,IAAI;IAQvF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,IAAI;IAEhD;;OAEG;IACI,SAAS,IAAI,aAAa;IAIjC;;OAEG;IACI,cAAc,IAAI,kBAAkB;IAI3C;;OAEG;IACI,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;IAI7C;;OAEG;IACI,QAAQ,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI;IAInD;;OAEG;IACI,KAAK,IAAI,MAAM;IAItB;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACI,cAAc,IAAI,UAAU,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,SAAS;IAI/E;;OAEG;IACI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI3C;;OAEG;IACI,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAK3D;;OAEG;IACI,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAM3D;;OAEG;IACI,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvC;;OAEG;IACI,KAAK,IAAI,WAAW;IAM3B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW;IAErE;;OAEG;IACI,MAAM,IAAI,GAAG;IAapB;;OAEG;WACW,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW;IAI9C;;OAEG;IACI,OAAO,IAAI,IAAI;IAqBtB;;OAEG;IAEI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAO1C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI;IAcnD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAYpD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAAA;IAC1C,OAAO,IAAI,MAAM,CAAA;IACjB,iBAAiB,IAAI,MAAM,EAAE,CAAA;CAC9B"}
@@ -0,0 +1,271 @@
1
+ import { Map as OLMap } from 'ol';
2
+ import { BaseDrawing, DrawingStyleConfig } from './BaseDrawing';
3
+ import { TooltipStyleConfig } from '../TooltipHelper';
4
+
5
+ /**
6
+ * 绘制模式
7
+ */
8
+ export type DrawingMode = "point" | "line" | "polygon" | "circle" | "rectangle" | "star" | "text" | "select" | "modify" | "none";
9
+ /**
10
+ * 绘制事件类型
11
+ */
12
+ export interface DrawingManagerEvents {
13
+ "drawing-start": (drawing: BaseDrawing) => void;
14
+ "drawing-end": (drawing: BaseDrawing) => void;
15
+ "drawing-select": (drawing: BaseDrawing | null) => void;
16
+ "drawing-modify": (drawing: BaseDrawing) => void;
17
+ "drawing-delete": (drawing: BaseDrawing) => void;
18
+ "mode-change": (mode: DrawingMode) => void;
19
+ }
20
+ /**
21
+ * 标绘管理器配置
22
+ */
23
+ export interface DrawingManagerConfig {
24
+ map: OLMap;
25
+ layerName?: string;
26
+ zIndex?: number;
27
+ enableSnap?: boolean;
28
+ snapTolerance?: number;
29
+ enableModify?: boolean;
30
+ enableSelect?: boolean;
31
+ multiSelect?: boolean;
32
+ allowContinuousDrawing?: boolean;
33
+ defaultStyle?: DrawingStyleConfig;
34
+ enableTooltip?: boolean;
35
+ tooltipStyle?: Partial<TooltipStyleConfig>;
36
+ }
37
+ /**
38
+ * 标绘管理器
39
+ * 统一管理所有标绘对象,提供绘制、编辑、选择等功能
40
+ */
41
+ export declare class DrawingManager {
42
+ private _map;
43
+ private _layer;
44
+ private _source;
45
+ private _drawings;
46
+ private _currentMode;
47
+ private _drawInteraction;
48
+ private _selectInteraction;
49
+ private _modifyInteraction;
50
+ private _snapInteraction;
51
+ private _selectedDrawing;
52
+ private _eventListeners;
53
+ private _config;
54
+ private _currentDrawingStyle;
55
+ private _tooltipHelper;
56
+ private _pointerMoveListener;
57
+ constructor(config: DrawingManagerConfig);
58
+ /**
59
+ * 初始化图层
60
+ */
61
+ private initializeLayer;
62
+ /**
63
+ * 初始化交互
64
+ */
65
+ private initializeInteractions;
66
+ /**
67
+ * 初始化鼠标跟随提示
68
+ */
69
+ private initializeTooltip;
70
+ /**
71
+ * 初始化键盘快捷键
72
+ */
73
+ private initializeKeyboardShortcuts;
74
+ /**
75
+ * 处理键盘按下事件
76
+ */
77
+ private handleKeyDown;
78
+ /**
79
+ * 设置绘制模式
80
+ */
81
+ setMode(mode: DrawingMode, options?: DrawingStyleConfig & {
82
+ allowContinuousDrawing?: boolean;
83
+ }): void;
84
+ /**
85
+ * 获取当前模式
86
+ */
87
+ getMode(): DrawingMode;
88
+ /**
89
+ * 设置绘制交互
90
+ */
91
+ private setupDrawInteraction;
92
+ /**
93
+ * 清除绘制交互
94
+ */
95
+ /**
96
+ * 创建绘制样式
97
+ */
98
+ private createDrawStyle;
99
+ private clearDrawInteraction;
100
+ /**
101
+ * 启用/禁用选择和修改交互
102
+ */
103
+ private enableSelectAndModify;
104
+ /**
105
+ * 处理绘制开始
106
+ */
107
+ private handleDrawStart;
108
+ /**
109
+ * 处理绘制结束
110
+ */
111
+ private handleDrawEnd;
112
+ /**
113
+ * 创建点标绘
114
+ */
115
+ private createPointDrawing;
116
+ /**
117
+ * 创建线标绘
118
+ */
119
+ private createLineDrawing;
120
+ /**
121
+ * 创建多边形标绘
122
+ */
123
+ private createPolygonDrawing;
124
+ /**
125
+ * 创建圆形标绘
126
+ */
127
+ private createCircleDrawing;
128
+ /**
129
+ * 创建矩形标绘
130
+ */
131
+ private createRectangleDrawing;
132
+ /**
133
+ * 创建星形几何函数
134
+ */
135
+ private createStarGeometry;
136
+ /**
137
+ * 根据中心点和半径创建星形几何体
138
+ */
139
+ private createStarGeometryFromCenterRadius;
140
+ /**
141
+ * 从星形坐标计算中心点和半径
142
+ */
143
+ private calculateStarCenterAndRadius;
144
+ /**
145
+ * 创建最小星形几何体(用于异常情况)
146
+ */
147
+ private createMinimalStarGeometry;
148
+ /**
149
+ * 创建星形标绘
150
+ */
151
+ private createStarDrawing;
152
+ /**
153
+ * 创建文字标绘
154
+ */
155
+ private createTextDrawing;
156
+ /**
157
+ * 处理选择事件
158
+ */
159
+ private handleSelect;
160
+ /**
161
+ * 处理修改开始事件
162
+ */
163
+ private handleModifyStart;
164
+ /**
165
+ * 处理修改
166
+ */
167
+ private handleModify;
168
+ /**
169
+ * 从要素更新标绘对象
170
+ */
171
+ private updateDrawingFromFeature;
172
+ /**
173
+ * 添加标绘对象
174
+ */
175
+ addDrawing(drawing: BaseDrawing): void;
176
+ /**
177
+ * 移除标绘对象
178
+ */
179
+ removeDrawing(drawing: BaseDrawing | string): boolean;
180
+ /**
181
+ * 获取标绘对象
182
+ */
183
+ getDrawing(id: string): BaseDrawing | undefined;
184
+ /**
185
+ * 获取所有标绘对象
186
+ */
187
+ getAllDrawings(): BaseDrawing[];
188
+ /**
189
+ * 选择标绘对象
190
+ */
191
+ selectDrawing(drawing: BaseDrawing | null): void;
192
+ /**
193
+ * 获取选中的标绘对象
194
+ */
195
+ getSelectedDrawing(): BaseDrawing | null;
196
+ /**
197
+ * 删除选中的标绘对象
198
+ */
199
+ deleteSelectedDrawing(): boolean;
200
+ /**
201
+ * 复制选中的标绘对象
202
+ */
203
+ duplicateSelectedDrawing(): BaseDrawing | null;
204
+ /**
205
+ * 从JSON数据创建标绘对象
206
+ */
207
+ private createDrawingFromJSON;
208
+ /**
209
+ * 清除所有标绘
210
+ */
211
+ clearAll(): void;
212
+ /**
213
+ * 显示/隐藏图层
214
+ */
215
+ setVisible(visible: boolean): void;
216
+ /**
217
+ * 获取图层可见性
218
+ */
219
+ getVisible(): boolean;
220
+ /**
221
+ * 设置图层透明度
222
+ */
223
+ setOpacity(opacity: number): void;
224
+ /**
225
+ * 获取图层透明度
226
+ */
227
+ getOpacity(): number;
228
+ /**
229
+ * 导出为JSON
230
+ */
231
+ toJSON(): any;
232
+ /**
233
+ * 从JSON导入
234
+ */
235
+ fromJSON(data: any): void;
236
+ /**
237
+ * 添加事件监听器
238
+ */
239
+ on<K extends keyof DrawingManagerEvents>(event: K, listener: DrawingManagerEvents[K]): void;
240
+ /**
241
+ * 移除事件监听器
242
+ */
243
+ off<K extends keyof DrawingManagerEvents>(event: K, listener: DrawingManagerEvents[K]): void;
244
+ /**
245
+ * 触发事件
246
+ */
247
+ private emit;
248
+ /**
249
+ * 显示鼠标跟随提示
250
+ */
251
+ private showTooltip;
252
+ /**
253
+ * 隐藏鼠标跟随提示
254
+ */
255
+ private hideTooltip;
256
+ /**
257
+ * 销毁管理器
258
+ */
259
+ destroy(): void;
260
+ }
261
+ /**
262
+ * 标绘管理器工厂
263
+ */
264
+ export declare class DrawingManagerFactory {
265
+ static create(config: DrawingManagerConfig): DrawingManager;
266
+ /**
267
+ * 创建带默认配置的管理器
268
+ */
269
+ static createDefault(map: OLMap): DrawingManager;
270
+ }
271
+ //# sourceMappingURL=DrawingManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawingManager.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CustomOpenlayer/utils/drawing/DrawingManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ import { Style } from 'ol/style';
2
+ import { Coordinate } from 'ol/coordinate';
3
+ import { BaseDrawing, DrawingConfig, DrawingStyleConfig } from './BaseDrawing';
4
+
5
+ /**
6
+ * 图标标绘样式配置
7
+ */
8
+ export interface IconStyleConfig extends DrawingStyleConfig {
9
+ iconUrl: string;
10
+ iconScale?: number;
11
+ iconRotation?: number;
12
+ iconOpacity?: number;
13
+ iconAnchor?: [number, number];
14
+ iconOffset?: [number, number];
15
+ iconSize?: [number, number];
16
+ iconColor?: string;
17
+ iconCrosOrigin?: string;
18
+ iconImgSize?: [number, number];
19
+ iconDisplacement?: [number, number];
20
+ }
21
+ /**
22
+ * 图标标绘配置
23
+ */
24
+ export interface IconDrawingConfig extends DrawingConfig {
25
+ type: "icon";
26
+ coordinates: Coordinate;
27
+ style: IconStyleConfig;
28
+ }
29
+ /**
30
+ * 图标标绘类
31
+ * 专门用于在地图上绘制各种图标,支持PNG、JPG、SVG等格式
32
+ */
33
+ export declare class IconDrawing extends BaseDrawing {
34
+ protected _config: IconDrawingConfig;
35
+ protected _style: IconStyleConfig;
36
+ private _iconCache;
37
+ constructor(config: IconDrawingConfig);
38
+ /**
39
+ * 创建要素
40
+ */
41
+ protected createFeature(): void;
42
+ /**
43
+ * 创建样式
44
+ */
45
+ protected createStyle(): Style;
46
+ /**
47
+ * 更新要素几何
48
+ */
49
+ protected updateFeatureGeometry(): void;
50
+ /**
51
+ * 更新选中样式
52
+ */
53
+ protected updateSelectionStyle(): void;
54
+ /**
55
+ * 设置坐标
56
+ */
57
+ setCoordinates(coordinates: Coordinate): void;
58
+ /**
59
+ * 获取坐标
60
+ */
61
+ getCoordinates(): Coordinate;
62
+ /**
63
+ * 设置图标URL
64
+ */
65
+ setIconUrl(url: string): void;
66
+ /**
67
+ * 获取图标URL
68
+ */
69
+ getIconUrl(): string;
70
+ /**
71
+ * 设置图标缩放
72
+ */
73
+ setIconScale(scale: number): void;
74
+ /**
75
+ * 设置图标旋转
76
+ */
77
+ setIconRotation(rotation: number): void;
78
+ /**
79
+ * 设置图标透明度
80
+ */
81
+ setIconOpacity(opacity: number): void;
82
+ /**
83
+ * 设置图标锚点
84
+ */
85
+ setIconAnchor(anchor: [number, number]): void;
86
+ /**
87
+ * 设置图标偏移
88
+ */
89
+ setIconOffset(offset: [number, number]): void;
90
+ /**
91
+ * 设置图标大小
92
+ */
93
+ setIconSize(size: [number, number]): void;
94
+ /**
95
+ * 设置图标颜色(适用于SVG图标)
96
+ */
97
+ setIconColor(color: string): void;
98
+ /**
99
+ * 设置图标样式
100
+ */
101
+ setIconStyle(options: {
102
+ url?: string;
103
+ scale?: number;
104
+ rotation?: number;
105
+ opacity?: number;
106
+ anchor?: [number, number];
107
+ offset?: [number, number];
108
+ size?: [number, number];
109
+ color?: string;
110
+ }): void;
111
+ /**
112
+ * 预加载图标
113
+ */
114
+ preloadIcon(): Promise<void>;
115
+ /**
116
+ * 获取图标尺寸
117
+ */
118
+ getIconDimensions(): Promise<{
119
+ width: number;
120
+ height: number;
121
+ }>;
122
+ /**
123
+ * 检查图标是否已加载
124
+ */
125
+ isIconLoaded(): boolean;
126
+ /**
127
+ * 清除图标缓存
128
+ */
129
+ clearIconCache(): void;
130
+ /**
131
+ * 创建实例
132
+ */
133
+ protected createInstance(config: DrawingConfig): BaseDrawing;
134
+ /**
135
+ * 从JSON数据创建图标标绘
136
+ */
137
+ static fromJSON(data: any): IconDrawing;
138
+ /**
139
+ * 转换为JSON数据
140
+ */
141
+ toJSON(): any;
142
+ }
143
+ /**
144
+ * 图标标绘工厂类
145
+ */
146
+ export declare class IconDrawingFactory {
147
+ static create(config: IconDrawingConfig): IconDrawing;
148
+ static getType(): string;
149
+ static getSupportedTypes(): string[];
150
+ /**
151
+ * 创建预设图标标绘
152
+ */
153
+ static createPreset(coordinates: Coordinate, iconType: "marker" | "pin" | "flag" | "star" | "heart" | "warning" | "info" | "success" | "danger" | "home" | "office" | "shop" | "hospital" | "school", options?: {
154
+ name?: string;
155
+ scale?: number;
156
+ rotation?: number;
157
+ opacity?: number;
158
+ color?: string;
159
+ }): IconDrawing;
160
+ /**
161
+ * 从URL创建图标标绘
162
+ */
163
+ static createFromUrl(coordinates: Coordinate, iconUrl: string, options?: {
164
+ name?: string;
165
+ scale?: number;
166
+ rotation?: number;
167
+ opacity?: number;
168
+ anchor?: [number, number];
169
+ offset?: [number, number];
170
+ size?: [number, number];
171
+ color?: string;
172
+ }): IconDrawing;
173
+ /**
174
+ * 批量创建图标标绘
175
+ */
176
+ static createBatch(coordinatesList: Coordinate[], iconUrl: string, options?: {
177
+ namePrefix?: string;
178
+ scale?: number;
179
+ rotation?: number;
180
+ opacity?: number;
181
+ anchor?: [number, number];
182
+ offset?: [number, number];
183
+ size?: [number, number];
184
+ color?: string;
185
+ }): IconDrawing[];
186
+ }
187
+ //# sourceMappingURL=IconDrawing.d.ts.map