@gis_victory/gismap 2.0.24 → 2.0.25

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 (109) hide show
  1. package/dist/App.vue.d.ts +2 -0
  2. package/dist/adapters/index.d.ts +13 -0
  3. package/dist/adapters/mapbox/MapboxAdapter.d.ts +44 -0
  4. package/dist/adapters/types.d.ts +216 -0
  5. package/dist/api/BaseController.d.ts +6 -0
  6. package/dist/api/CommonController.d.ts +51 -0
  7. package/dist/components/MapCompass/index.vue.d.ts +2 -0
  8. package/dist/components/MapContainer/index.d.ts +2 -0
  9. package/dist/components/MapContainer/index.vue.d.ts +344 -0
  10. package/dist/components/MapLayer/components/CustomLayerDialog.vue.d.ts +22 -0
  11. package/dist/components/MapLayer/components/LayerTab.vue.d.ts +2179 -0
  12. package/dist/components/MapLayer/index.d.ts +2 -0
  13. package/dist/components/MapLayer/index.vue.d.ts +2287 -0
  14. package/dist/components/MapLegend/index.d.ts +2 -0
  15. package/dist/components/MapLegend/index.vue.d.ts +14 -0
  16. package/dist/components/MapMeasure/index.vue.d.ts +2 -0
  17. package/dist/components/MapPrint/MapPrintPanel.vue.d.ts +21 -0
  18. package/dist/components/MapPrint/MapPrintService.d.ts +155 -0
  19. package/dist/components/MapPrint/index.vue.d.ts +37 -0
  20. package/dist/components/MapQueryResult/index.vue.d.ts +29 -0
  21. package/dist/components/MapQueryResult/popup.vue.d.ts +16 -0
  22. package/dist/components/MapSearch/index.d.ts +2 -0
  23. package/dist/components/MapSearch/index.vue.d.ts +56 -0
  24. package/dist/components/MapSwitch/index.d.ts +2 -0
  25. package/dist/components/MapSwitch/index.vue.d.ts +37 -0
  26. package/dist/components/MapTools/index.d.ts +2 -0
  27. package/dist/components/MapTools/index.vue.d.ts +40 -0
  28. package/dist/components/MobileMapLayer/BaseLayerSwitch.vue.d.ts +16 -0
  29. package/dist/components/MobileMapLayer/index.vue.d.ts +9 -0
  30. package/dist/components/Widgets/PopupBar/BarItem.vue.d.ts +75 -0
  31. package/dist/components/Widgets/PopupBar/index.vue.d.ts +21 -0
  32. package/dist/composables/index.d.ts +13 -0
  33. package/dist/composables/useControl.d.ts +39 -0
  34. package/dist/composables/useDraw.d.ts +49 -0
  35. package/dist/composables/useLayer.d.ts +57 -0
  36. package/dist/composables/useMap.d.ts +111 -0
  37. package/dist/composables/useMarker.d.ts +55 -0
  38. package/dist/composables/useMeasure.d.ts +49 -0
  39. package/dist/composables/useSearch.d.ts +20 -0
  40. package/dist/config/api.config.d.ts +40 -0
  41. package/dist/config/gismap.config.d.ts +156 -0
  42. package/dist/core/ManagerRegistry.d.ts +75 -0
  43. package/dist/core/PluginSystem.d.ts +71 -0
  44. package/dist/core/StateStore.d.ts +96 -0
  45. package/dist/core/TypedEventEmitter.d.ts +67 -0
  46. package/dist/core/di/Container.d.ts +61 -0
  47. package/dist/core/di/decorators.d.ts +32 -0
  48. package/dist/core/di/index.d.ts +7 -0
  49. package/dist/core/di/types.d.ts +59 -0
  50. package/dist/core/event/EventBus.d.ts +101 -0
  51. package/dist/core/event/index.d.ts +5 -0
  52. package/dist/core/event/types.d.ts +215 -0
  53. package/dist/core/index.d.ts +6 -0
  54. package/dist/core/state/Store.d.ts +145 -0
  55. package/dist/core/state/index.d.ts +6 -0
  56. package/dist/core/state/types.d.ts +134 -0
  57. package/dist/domain/index.d.ts +8 -0
  58. package/dist/domain/layer/LayerEntity.d.ts +90 -0
  59. package/dist/domain/layer/LayerService.d.ts +128 -0
  60. package/dist/domain/marker/MarkerEntity.d.ts +77 -0
  61. package/dist/domain/marker/MarkerService.d.ts +105 -0
  62. package/dist/domain/types.d.ts +66 -0
  63. package/dist/examples/DrawDemo.vue.d.ts +2 -0
  64. package/dist/examples/DrawPanel.vue.d.ts +2 -0
  65. package/dist/examples/Map.vue.d.ts +74 -0
  66. package/dist/examples/MapDemoExample.vue.d.ts +2 -0
  67. package/dist/examples/MeasureDemo.vue.d.ts +2 -0
  68. package/dist/examples/MeasurePanel.vue.d.ts +2 -0
  69. package/dist/examples/SplitScreenDrawDemo.vue.d.ts +7 -0
  70. package/dist/examples/SplitScreenDrawPanel.vue.d.ts +12 -0
  71. package/dist/examples/SplitScreenPanel.vue.d.ts +12 -0
  72. package/dist/examples/TdtControlPanel.vue.d.ts +2 -0
  73. package/dist/examples/TiandituDemo.vue.d.ts +2 -0
  74. package/dist/gismap.css +1 -1
  75. package/dist/index.es.js +1 -1
  76. package/dist/main.d.ts +0 -0
  77. package/dist/manager/IconManager.d.ts +18 -0
  78. package/dist/manager/LayerManager.d.ts +50 -0
  79. package/dist/manager/MaskManager.d.ts +52 -0
  80. package/dist/manager/PlaceholderManager.d.ts +28 -0
  81. package/dist/manager/PopupManager.d.ts +13 -0
  82. package/dist/manager/QuickSearchManager.d.ts +24 -0
  83. package/dist/manager/RadarManager.d.ts +46 -0
  84. package/dist/manager/SplitScreenDrawManager.d.ts +75 -0
  85. package/dist/manager/SplitScreenManager.d.ts +81 -0
  86. package/dist/manager/TDTManager.d.ts +33 -0
  87. package/dist/manager/TemplateManager.d.ts +52 -0
  88. package/dist/manager/TerrainManager.d.ts +39 -0
  89. package/dist/manager/layer/MarkerLayer.d.ts +89 -0
  90. package/dist/manager/layer/VectorLayer.d.ts +30 -0
  91. package/dist/manager/mapbox/DrawManager.d.ts +153 -0
  92. package/dist/manager/mapbox/MeasureManager.d.ts +158 -0
  93. package/dist/router/index.d.ts +2 -0
  94. package/dist/services/MapContext.d.ts +171 -0
  95. package/dist/services/index.d.ts +5 -0
  96. package/dist/types/IEvents.d.ts +178 -0
  97. package/dist/types/IGISMap.d.ts +234 -0
  98. package/dist/types/IManager.d.ts +113 -0
  99. package/dist/types/IMapSearch.d.ts +28 -0
  100. package/dist/types/IState.d.ts +259 -0
  101. package/dist/types/ITemplate.d.ts +35 -0
  102. package/dist/types/index.d.ts +7 -0
  103. package/dist/utils/hooks/layout.d.ts +4 -0
  104. package/dist/utils/http/axios.d.ts +3 -0
  105. package/dist/utils/http/config.d.ts +3 -0
  106. package/dist/utils/http/request.d.ts +46 -0
  107. package/dist/utils/index.d.ts +49 -0
  108. package/package.json +1 -1
  109. package/dist/index.umd.js +0 -1
@@ -0,0 +1,234 @@
1
+ import { IManager } from './IManager';
2
+ import { IEventSystem } from './IEvents';
3
+ import { IStateStore, MapState } from './IState';
4
+ /**
5
+ * 地图配置选项
6
+ */
7
+ export interface GISMapOptions extends Omit<mapboxgl.MapboxOptions, 'container'> {
8
+ /** 容器 ID 或元素 */
9
+ container: string | HTMLElement;
10
+ /** 地图样式 */
11
+ style?: string | mapboxgl.StyleSpecification;
12
+ /** 初始中心点 */
13
+ center?: [number, number];
14
+ /** 初始缩放级别 */
15
+ zoom?: number;
16
+ /** 初始俯仰角 */
17
+ pitch?: number;
18
+ /** 初始旋转角度 */
19
+ bearing?: number;
20
+ /** 最小缩放 */
21
+ minZoom?: number;
22
+ /** 最大缩放 */
23
+ maxZoom?: number;
24
+ /** 最小俯仰角 */
25
+ minPitch?: number;
26
+ /** 最大俯仰角 */
27
+ maxPitch?: number;
28
+ /** 交互选项 */
29
+ interactive?: boolean;
30
+ /** 样式加载完成回调 */
31
+ onStyleLoad?: (event: any) => void;
32
+ /** 地图加载完成回调 */
33
+ onLoad?: (map: IGISMap) => void;
34
+ /** 错误回调 */
35
+ onError?: (error: Error) => void;
36
+ }
37
+ /**
38
+ * 地图样式配置
39
+ */
40
+ export interface GISMapStyleConfig {
41
+ /** 基础样式 URL */
42
+ base?: string;
43
+ /** 矢量样式 */
44
+ vector?: string;
45
+ /** 影像样式 */
46
+ satellite?: string;
47
+ /** 地形样式 */
48
+ terrain?: string;
49
+ /** 自定义样式 */
50
+ custom?: mapboxgl.StyleSpecification;
51
+ /** 字体 */
52
+ glyphs?: string;
53
+ /** 图标集 */
54
+ sprites?: string;
55
+ }
56
+ /**
57
+ * GIS 地图核心接口
58
+ * 继承 MapboxGL.Map 并扩展功能
59
+ */
60
+ export interface IGISMap extends mapboxgl.Map {
61
+ /** 地图唯一标识 */
62
+ readonly id: string;
63
+ /** 地图名称 */
64
+ name: string;
65
+ /** 事件系统 */
66
+ readonly events: IEventSystem;
67
+ /** 状态管理 */
68
+ readonly store: IStateStore;
69
+ /** Manager 注册表 */
70
+ readonly managers: IManagerRegistry;
71
+ /** 插件系统 */
72
+ readonly plugins: IPluginRegistry;
73
+ /**
74
+ * 初始化地图
75
+ */
76
+ initialize(): Promise<void>;
77
+ /**
78
+ * 销毁地图
79
+ */
80
+ destroy(): void;
81
+ /**
82
+ * 获取地图状态
83
+ */
84
+ getState(): MapState;
85
+ /**
86
+ * 设置视图状态
87
+ */
88
+ setView(center: [number, number], zoom: number, bearing?: number, pitch?: number): void;
89
+ /**
90
+ * 飞转到指定位置
91
+ */
92
+ flyToCenter(center: [number, number], options?: any): void;
93
+ /**
94
+ * 缩放到指定级别
95
+ */
96
+ zoomTo(zoom: number, options?: mapboxgl.CameraOptions & mapboxgl.AnimationOptions): this;
97
+ /**
98
+ * 适应边界
99
+ */
100
+ fitBounds(bounds: [number, number, number, number], options?: mapboxgl.FitBoundsOptions): this;
101
+ /**
102
+ * 获取视图范围
103
+ */
104
+ getBounds(): mapboxgl.LngLatBounds;
105
+ /**
106
+ * 获取中心点
107
+ */
108
+ getCenter(): mapboxgl.LngLat;
109
+ /**
110
+ * 获取缩放级别
111
+ */
112
+ getZoom(): number;
113
+ /**
114
+ * 导出地图为图片
115
+ */
116
+ toImage(options?: {
117
+ format?: 'png' | 'jpg';
118
+ quality?: number;
119
+ width?: number;
120
+ height?: number;
121
+ }): Promise<string>;
122
+ /**
123
+ * 添加控件
124
+ */
125
+ addControl(control: mapboxgl.IControl, position?: string): this;
126
+ /**
127
+ * 移除控件
128
+ */
129
+ removeControl(control: mapboxgl.IControl): this;
130
+ }
131
+ /**
132
+ * Manager 注册表接口
133
+ */
134
+ export interface IManagerRegistry {
135
+ /**
136
+ * 注册 Manager
137
+ */
138
+ register<T extends IManager>(name: string, factory: () => T, options?: any): void;
139
+ /**
140
+ * 获取 Manager
141
+ */
142
+ get<T extends IManager = any>(name: string): T | undefined;
143
+ /**
144
+ * 获取所有 Manager
145
+ */
146
+ getAll(): Map<string, IManager>;
147
+ /**
148
+ * 检查 Manager 是否存在
149
+ */
150
+ has(name: string): boolean;
151
+ /**
152
+ * 移除 Manager
153
+ */
154
+ unregister(name: string): void;
155
+ /**
156
+ * 初始化所有 Manager
157
+ */
158
+ initializeAll(): void;
159
+ /**
160
+ * 销毁所有 Manager
161
+ */
162
+ disposeAll(): void;
163
+ /**
164
+ * 获取 Manager 名称列表
165
+ */
166
+ getNames(): string[];
167
+ }
168
+ /**
169
+ * 插件接口
170
+ */
171
+ export interface IPlugin {
172
+ /** 插件名称 */
173
+ readonly name: string;
174
+ /** 插件版本 */
175
+ readonly version: string;
176
+ /**
177
+ * 安装插件
178
+ */
179
+ install(context: IGISMap, options?: any): void;
180
+ /**
181
+ * 卸载插件
182
+ */
183
+ uninstall?(context: IGISMap): void;
184
+ }
185
+ /**
186
+ * 插件注册表接口
187
+ */
188
+ export interface IPluginRegistry {
189
+ /**
190
+ * 使用插件
191
+ */
192
+ use(plugin: IPlugin, options?: any): void;
193
+ /**
194
+ * 卸载插件
195
+ */
196
+ unuse(name: string): void;
197
+ /**
198
+ * 获取插件
199
+ */
200
+ get(name: string): IPlugin | undefined;
201
+ /**
202
+ * 检查插件是否已安装
203
+ */
204
+ has(name: string): boolean;
205
+ /**
206
+ * 获取所有插件
207
+ */
208
+ getAll(): Map<string, IPlugin>;
209
+ /**
210
+ * 获取插件依赖
211
+ */
212
+ getDependencies(name: string): string[];
213
+ }
214
+ /**
215
+ * GIS 地图工厂函数
216
+ */
217
+ export interface GISMapFactory {
218
+ /**
219
+ * 创建地图实例
220
+ */
221
+ create(options: GISMapOptions): IGISMap;
222
+ /**
223
+ * 销毁地图实例
224
+ */
225
+ destroy(map: IGISMap): void;
226
+ /**
227
+ * 获取默认配置
228
+ */
229
+ getDefaultOptions(): GISMapOptions;
230
+ }
231
+ /**
232
+ * 全局 GISMap 实例类型
233
+ */
234
+ export type GISMapInstance = IGISMap;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Manager 基础接口
3
+ * 所有 Manager 必须实现此接口
4
+ */
5
+ export interface IManager {
6
+ /** Manager 名称 */
7
+ readonly name: string;
8
+ /** 是否已初始化 */
9
+ readonly isInitialized: boolean;
10
+ /** 是否启用 */
11
+ readonly isEnabled: boolean;
12
+ /**
13
+ * 初始化 Manager
14
+ */
15
+ initialize(): void;
16
+ /**
17
+ * 销毁 Manager
18
+ */
19
+ dispose(): void;
20
+ /**
21
+ * 启用 Manager
22
+ */
23
+ enable(): void;
24
+ /**
25
+ * 禁用 Manager
26
+ */
27
+ disable(): void;
28
+ /**
29
+ * 重置 Manager 状态
30
+ */
31
+ reset(): void;
32
+ }
33
+ /**
34
+ * Manager 抽象基类
35
+ * 提供通用的 Manager 实现
36
+ */
37
+ export declare abstract class BaseManager implements IManager {
38
+ readonly name: string;
39
+ protected _isInitialized: boolean;
40
+ protected _isEnabled: boolean;
41
+ constructor(name: string);
42
+ get isInitialized(): boolean;
43
+ get isEnabled(): boolean;
44
+ initialize(): void;
45
+ dispose(): void;
46
+ enable(): void;
47
+ disable(): void;
48
+ reset(): void;
49
+ /**
50
+ * 子类实现的初始化逻辑
51
+ */
52
+ protected onInitialize(): void;
53
+ /**
54
+ * 子类实现的销毁逻辑
55
+ */
56
+ protected onDispose(): void;
57
+ /**
58
+ * 子类实现的启用逻辑
59
+ */
60
+ protected onEnable(): void;
61
+ /**
62
+ * 子类实现的禁用逻辑
63
+ */
64
+ protected onDisable(): void;
65
+ /**
66
+ * 子类实现的重置逻辑
67
+ */
68
+ protected onReset(): void;
69
+ }
70
+ /**
71
+ * Manager 工厂函数类型
72
+ */
73
+ export type ManagerFactory<T extends IManager = IManager> = (...args: any[]) => T;
74
+ /**
75
+ * Manager 注册项
76
+ */
77
+ export interface ManagerRegistration {
78
+ name: string;
79
+ factory: ManagerFactory;
80
+ options?: ManagerOptions;
81
+ }
82
+ /**
83
+ * Manager 配置选项
84
+ */
85
+ export interface ManagerOptions {
86
+ /** 是否默认启用 */
87
+ enabled?: boolean;
88
+ /** 优先级,数值越大越先初始化 */
89
+ priority?: number;
90
+ /** 依赖的其他 Manager */
91
+ dependencies?: string[];
92
+ }
93
+ /**
94
+ * Manager 错误类
95
+ */
96
+ export declare class ManagerError extends Error {
97
+ readonly managerName: string;
98
+ readonly code: ManagerErrorCode;
99
+ constructor(message: string, managerName: string, code?: ManagerErrorCode);
100
+ }
101
+ /**
102
+ * Manager 错误代码
103
+ */
104
+ export declare const ManagerErrorCode: {
105
+ readonly NOT_INITIALIZED: "NOT_INITIALIZED";
106
+ readonly ALREADY_INITIALIZED: "ALREADY_INITIALIZED";
107
+ readonly DISABLED: "DISABLED";
108
+ readonly NOT_FOUND: "NOT_FOUND";
109
+ readonly INVALID_CONFIG: "INVALID_CONFIG";
110
+ readonly OPERATION_FAILED: "OPERATION_FAILED";
111
+ readonly UNKNOWN: "UNKNOWN";
112
+ };
113
+ export type ManagerErrorCode = typeof ManagerErrorCode[keyof typeof ManagerErrorCode];
@@ -0,0 +1,28 @@
1
+ /**
2
+ * {
3
+ "id": "xzq",
4
+ "name": "xzq",
5
+ "label": "行政村名称",
6
+ "placeholder": "请输入行政村名称",
7
+ "defaultValue": "",
8
+ "serviceUrl": "commonServer/query/quick_xzc",
9
+ "templateId": "quick_xzc"
10
+ }
11
+ */
12
+ export interface MapSearchItem {
13
+ id: string;
14
+ name: string;
15
+ label: string;
16
+ placeholder?: string;
17
+ defaultValue?: string;
18
+ serviceUrl?: string;
19
+ templateId: string;
20
+ }
21
+ export interface TiandituQuery {
22
+ specify?: string;
23
+ queryType?: string;
24
+ start?: string;
25
+ count?: string;
26
+ dataTypes?: string;
27
+ show?: string;
28
+ }
@@ -0,0 +1,259 @@
1
+ import { LngLat, Style } from '@gis_victory/mapbox-gl';
2
+ /**
3
+ * 视图状态
4
+ */
5
+ export interface ViewState {
6
+ center: LngLat;
7
+ zoom: number;
8
+ pitch: number;
9
+ bearing: number;
10
+ padding?: any;
11
+ }
12
+ /**
13
+ * 视图状态变化事件数据
14
+ */
15
+ export interface ViewStateChangeEvent {
16
+ viewState: ViewState;
17
+ animate: boolean;
18
+ }
19
+ /**
20
+ * 图层类型
21
+ */
22
+ export type LayerType = 'background' | 'fill' | 'line' | 'symbol' | 'raster' | 'circle' | 'fill-extrusion' | 'heatmap' | 'hillshade' | 'sky' | 'model' | 'custom' | 'geojson' | 'vector' | 'raster-dem';
23
+ /**
24
+ * 图层可见性
25
+ */
26
+ export type LayerVisibility = 'visible' | 'none' | 'visible';
27
+ /**
28
+ * 图层配置
29
+ */
30
+ export interface LayerConfig {
31
+ id: string;
32
+ type: LayerType;
33
+ source?: string | GeoJSONSource | VectorSource | RasterSource;
34
+ sourceLayer?: string;
35
+ minzoom?: number;
36
+ maxzoom?: number;
37
+ layout?: LayerLayout;
38
+ paint?: LayerPaint;
39
+ metadata?: Record<string, any>;
40
+ /** 是否可交互(点击、悬停) */
41
+ interactive?: boolean;
42
+ /** 是否可查询 */
43
+ queryable?: boolean;
44
+ }
45
+ /**
46
+ * 图层布局属性
47
+ */
48
+ export interface LayerLayout {
49
+ visibility?: LayerVisibility;
50
+ 'symbol-placement'?: 'point' | 'line' | 'line-center';
51
+ 'symbol-spacing'?: number;
52
+ 'symbol-avoid-edges'?: boolean;
53
+ 'text-field'?: any;
54
+ 'text-font'?: string[];
55
+ 'text-size'?: number;
56
+ }
57
+ /**
58
+ * 图层绘制属性
59
+ */
60
+ export interface LayerPaint {
61
+ 'fill-color'?: any;
62
+ 'fill-opacity'?: number;
63
+ 'fill-pattern'?: string;
64
+ 'fill-outline-color'?: any;
65
+ 'line-color'?: any;
66
+ 'line-width'?: number;
67
+ 'line-opacity'?: number;
68
+ 'line-dasharray'?: number[];
69
+ 'text-color'?: any;
70
+ 'text-halo-color'?: any;
71
+ 'text-halo-width'?: number;
72
+ }
73
+ /**
74
+ * 图层状态
75
+ */
76
+ export interface LayerState {
77
+ id: string;
78
+ type: LayerType;
79
+ visible: boolean;
80
+ opacity: number;
81
+ minzoom?: number;
82
+ maxzoom?: number;
83
+ config: LayerConfig;
84
+ }
85
+ /**
86
+ * 图层可见性变化事件数据
87
+ */
88
+ export interface LayerVisibilityChangeEvent {
89
+ layerId: string;
90
+ visible: boolean;
91
+ }
92
+ /**
93
+ * 标记配置
94
+ */
95
+ export interface MarkerConfig {
96
+ id?: string;
97
+ position: LngLat | [number, number];
98
+ element?: HTMLElement;
99
+ html?: string;
100
+ icon?: string;
101
+ iconName?: string;
102
+ offset?: [number, number];
103
+ anchor?: 'center' | 'top' | 'bottom' | 'left' | 'right';
104
+ rotation?: number;
105
+ rotationOrigin?: string;
106
+ draggable?: boolean;
107
+ popup?: PopupConfig;
108
+ }
109
+ /**
110
+ * 标记状态
111
+ */
112
+ export interface MarkerState {
113
+ id: string;
114
+ position: LngLat;
115
+ visible: boolean;
116
+ config: MarkerConfig;
117
+ }
118
+ /**
119
+ * 弹窗配置
120
+ */
121
+ export interface PopupConfig {
122
+ id?: string;
123
+ position: LngLat | [number, number];
124
+ content?: string | HTMLElement;
125
+ html?: string;
126
+ closeButton?: boolean;
127
+ closeOnClick?: boolean;
128
+ closeOnMove?: boolean;
129
+ maxWidth?: string;
130
+ anchor?: 'center' | 'top' | 'bottom' | 'left' | 'right';
131
+ offset?: number | [number, number] | Record<string, [number, number]>;
132
+ }
133
+ /**
134
+ * 弹窗状态
135
+ */
136
+ export interface PopupState {
137
+ id: string;
138
+ position: LngLat;
139
+ visible: boolean;
140
+ config: PopupConfig;
141
+ }
142
+ /**
143
+ * GeoJSON 数据源
144
+ */
145
+ export interface GeoJSONSource {
146
+ type: 'geojson';
147
+ data?: any;
148
+ url?: string;
149
+ cluster?: boolean;
150
+ clusterMaxZoom?: number;
151
+ clusterRadius?: number;
152
+ lineMetrics?: boolean;
153
+ generateId?: boolean;
154
+ }
155
+ /**
156
+ * Vector 数据源
157
+ */
158
+ export interface VectorSource {
159
+ type: 'vector';
160
+ url?: string;
161
+ tiles?: string[];
162
+ bounds?: [number, number, number, number];
163
+ minzoom?: number;
164
+ maxzoom?: number;
165
+ attribution?: string;
166
+ }
167
+ /**
168
+ * Raster 数据源
169
+ */
170
+ export interface RasterSource {
171
+ type: 'raster';
172
+ url?: string;
173
+ tiles?: string[];
174
+ tileSize?: number;
175
+ minzoom?: number;
176
+ maxzoom?: number;
177
+ bounds?: [number, number, number, number];
178
+ }
179
+ /**
180
+ * 地图状态
181
+ */
182
+ export interface MapState {
183
+ /** 视图状态 */
184
+ view: ViewState;
185
+ /** 图层状态 */
186
+ layers: Map<string, LayerState>;
187
+ /** 标记状态 */
188
+ markers: Map<string, MarkerState>;
189
+ /** 弹窗状态 */
190
+ popups: Map<string, PopupState>;
191
+ /** 当前激活的弹窗 */
192
+ activePopup: PopupState | null;
193
+ /** 当前选中的要素 */
194
+ selectedFeatures: any[];
195
+ /** 地图是否加载完成 */
196
+ loaded: boolean;
197
+ /** 地图是否可用 */
198
+ ready: boolean;
199
+ /** 地图样式 */
200
+ style: Style | null;
201
+ /** 地图容器 */
202
+ container: HTMLElement | null;
203
+ }
204
+ /**
205
+ * 状态变更
206
+ */
207
+ export interface StateMutation {
208
+ type: string;
209
+ payload: any;
210
+ timestamp: number;
211
+ }
212
+ /**
213
+ * 状态订阅者
214
+ */
215
+ export type StateSubscriber = (mutation: StateMutation, state: MapState) => void;
216
+ /**
217
+ * 状态管理接口
218
+ */
219
+ export interface IStateStore {
220
+ /** 获取当前状态 */
221
+ getState(): MapState;
222
+ /** 获取特定状态 */
223
+ get<K extends keyof MapState>(key: K): MapState[K];
224
+ /** 更新状态 */
225
+ setState(partial: Partial<MapState>): void;
226
+ /** 设置特定状态 */
227
+ set<K extends keyof MapState>(key: K, value: MapState[K]): void;
228
+ /** 订阅状态变更 */
229
+ subscribe(listener: StateSubscriber): () => void;
230
+ /** 重置状态 */
231
+ reset(): void;
232
+ /** 持久化状态 */
233
+ persist(): void;
234
+ /** 恢复状态 */
235
+ restore(): void;
236
+ }
237
+ /**
238
+ * 状态历史记录
239
+ */
240
+ export interface StateHistory {
241
+ past: MapState[];
242
+ future: MapState[];
243
+ maxSize: number;
244
+ }
245
+ /**
246
+ * 可时间旅行的状态管理
247
+ */
248
+ export interface ITimeTravelStore extends IStateStore {
249
+ /** 撤销 */
250
+ undo(): void;
251
+ /** 重做 */
252
+ redo(): void;
253
+ /** 是否可撤销 */
254
+ canUndo(): boolean;
255
+ /** 是否可重做 */
256
+ canRedo(): boolean;
257
+ /** 清空历史 */
258
+ clearHistory(): void;
259
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 模板字段配置
3
+ */
4
+ export interface TemplateField {
5
+ fieldType: string;
6
+ fieldName: string;
7
+ fieldLabel: string;
8
+ format: string;
9
+ unit: string;
10
+ style: {
11
+ span: number;
12
+ };
13
+ isShowList?: boolean;
14
+ isShowInfo?: boolean;
15
+ isShowMore?: boolean;
16
+ }
17
+ /**
18
+ * 模板按钮配置
19
+ */
20
+ export interface TemplateButton {
21
+ label: string;
22
+ type: string;
23
+ event?: string;
24
+ }
25
+ /**
26
+ * 模板配置
27
+ */
28
+ export interface TemplateItem {
29
+ id: string;
30
+ width?: number;
31
+ labelWidth?: number;
32
+ header: string;
33
+ body: TemplateField[];
34
+ footer: TemplateButton[];
35
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * GIS 地图类型定义入口
3
+ */
4
+ export * from './IManager';
5
+ export * from './IGISMap';
6
+ export * from './IEvents';
7
+ export * from './IState';
@@ -0,0 +1,4 @@
1
+ import { MapAdapter } from '../../adapters';
2
+ export default function useLayout(mapAdapter: MapAdapter | undefined): {
3
+ mapHeight: import('vue').Ref<number, number>;
4
+ };
@@ -0,0 +1,3 @@
1
+ import { AxiosInstance } from 'axios';
2
+ declare const axiosInstance: AxiosInstance;
3
+ export default axiosInstance;
@@ -0,0 +1,3 @@
1
+ export declare const serverDefaultCfg: {
2
+ baseURL: string;
3
+ };