my-openlayer 1.0.14 → 1.0.15
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/README.md +271 -48
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# my-openlayer
|
|
2
2
|
|
|
3
|
-
my-openlayer 是一个基于 [OpenLayers](https://openlayers.org/) 的现代地图组件库,专为 Web GIS 应用开发者设计。提供完整的 TypeScript
|
|
3
|
+
my-openlayer 是一个基于 [OpenLayers](https://openlayers.org/) 的现代地图组件库,专为 Web GIS 应用开发者设计。提供完整的 TypeScript 支持、模块化的类型定义、强大的错误处理和事件管理系统,支持天地图底图加载、要素绘制、图层管理、事件监听等丰富功能,极大提升地图开发效率。支持 TypeScript,具备完整的类型定义和模块化设计。
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/my-openlayer)
|
|
6
6
|
[](https://www.typescriptlang.org/)
|
|
@@ -28,32 +28,32 @@ my-openlayer 是一个基于 [OpenLayers](https://openlayers.org/) 的现代地
|
|
|
28
28
|
|
|
29
29
|
## 功能亮点
|
|
30
30
|
|
|
31
|
-
- **🗺️
|
|
32
|
-
-
|
|
33
|
-
-
|
|
31
|
+
- **🗺️ 底图管理 (MapBaseLayers)**
|
|
32
|
+
- 支持天地图矢量、影像、地形底图切换
|
|
33
|
+
- 动态切换底图与注记图层管理
|
|
34
34
|
- 地图裁剪与自定义范围显示
|
|
35
|
-
-
|
|
35
|
+
- 支持自定义底图源和配置
|
|
36
36
|
|
|
37
37
|
- **📍 要素操作**
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
- DOM 点位(支持 Vue
|
|
38
|
+
- **点位管理 (Point)**:点位标注(支持自定义图标、文字、聚合、闪烁)
|
|
39
|
+
- **线要素绘制 (Line)**:线要素绘制(支持样式自定义、河流分级显示)
|
|
40
|
+
- **面要素 (Polygon)**:面要素绘制与分区高亮
|
|
41
|
+
- **Vue组件支持 (VueTemplatePoint)**:DOM 点位(支持 Vue 组件渲染,完整生命周期管理)
|
|
42
42
|
- 热力图、图片图层
|
|
43
43
|
- 动态要素颜色更新
|
|
44
44
|
|
|
45
45
|
- **🛠️ 地图工具**
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
- 配置管理器
|
|
46
|
+
- **测量工具 (MeasureHandler)**:距离和面积测量
|
|
47
|
+
- **地图工具 (MapTools)**:图层管理(获取、移除、显隐控制)
|
|
48
|
+
- **事件管理 (EventManager)**:地图事件监听(点击、悬停、移动等)
|
|
49
|
+
- **配置管理 (ConfigManager)**:坐标转换、视图控制、配置管理器
|
|
51
50
|
|
|
52
51
|
- **⚡ 高级特性**
|
|
53
52
|
- **TypeScript 完全支持**:模块化类型定义,更好的开发体验
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
53
|
+
- **错误处理系统 (ErrorHandler)**:统一的错误处理和日志记录
|
|
54
|
+
- **验证工具 (ValidationUtils)**:参数验证和数据校验
|
|
55
|
+
- **模块化设计**:支持按需加载和懒加载
|
|
56
|
+
- **坐标系支持**:CGCS2000坐标系和投影转换
|
|
57
57
|
- **向后兼容**:保持 API 稳定性
|
|
58
58
|
|
|
59
59
|
- **🔧 开发友好**
|
|
@@ -69,6 +69,47 @@ my-openlayer 是一个基于 [OpenLayers](https://openlayers.org/) 的现代地
|
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
71
|
npm install my-openlayer
|
|
72
|
+
# 或
|
|
73
|
+
yarn add my-openlayer
|
|
74
|
+
# 或
|
|
75
|
+
pnpm add my-openlayer
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 依赖要求
|
|
79
|
+
|
|
80
|
+
- **OpenLayers**: ^7.0.0 或更高版本
|
|
81
|
+
- **proj4**: ^2.8.0 或更高版本
|
|
82
|
+
- **@turf/turf**: ^6.5.0 或更高版本(用于高级几何计算)
|
|
83
|
+
|
|
84
|
+
### 环境配置
|
|
85
|
+
|
|
86
|
+
使用天地图服务需要配置API Token:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 在项目根目录创建 .env 文件
|
|
90
|
+
VUE_APP_TIANDITU_TOKEN=your_tianditu_token_here
|
|
91
|
+
|
|
92
|
+
# 其他可选配置
|
|
93
|
+
VUE_APP_MAP_CENTER_LON=119.81
|
|
94
|
+
VUE_APP_MAP_CENTER_LAT=29.969
|
|
95
|
+
VUE_APP_MAP_ZOOM=10
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 配置选项
|
|
99
|
+
|
|
100
|
+
#### 基础配置
|
|
101
|
+
|
|
102
|
+
```javascript
|
|
103
|
+
const config = {
|
|
104
|
+
target: 'map', // 地图容器ID
|
|
105
|
+
center: [119.81, 29.969], // 地图中心点
|
|
106
|
+
zoom: 10, // 缩放级别
|
|
107
|
+
tiandituToken: process.env.VUE_APP_TIANDITU_TOKEN, // 天地图token(从环境变量获取)
|
|
108
|
+
minZoom: 1, // 最小缩放级别
|
|
109
|
+
maxZoom: 20, // 最大缩放级别
|
|
110
|
+
annotation: true, // 是否显示注记
|
|
111
|
+
coordinateSystem: 'EPSG:4326', // 坐标系(默认WGS84,支持CGCS2000)
|
|
112
|
+
};
|
|
72
113
|
```
|
|
73
114
|
|
|
74
115
|
---
|
|
@@ -90,7 +131,7 @@ const mapConfig: MapInitType = {
|
|
|
90
131
|
zoom: 10,
|
|
91
132
|
minZoom: 8,
|
|
92
133
|
maxZoom: 20,
|
|
93
|
-
token:
|
|
134
|
+
token: process.env.VUE_APP_TIANDITU_TOKEN, // 从环境变量获取天地图token
|
|
94
135
|
annotation: true,
|
|
95
136
|
layers: {
|
|
96
137
|
vec_c: [],
|
|
@@ -511,6 +552,20 @@ measure.destory();
|
|
|
511
552
|
new MyOl(id: string, options: MapInitType)
|
|
512
553
|
```
|
|
513
554
|
|
|
555
|
+
**参数说明:**
|
|
556
|
+
|
|
557
|
+
- `id`: 地图容器的 DOM 元素 ID
|
|
558
|
+
- `options`: 地图初始化配置对象
|
|
559
|
+
- `center`: 地图中心点坐标 `[longitude, latitude]`
|
|
560
|
+
- `zoom`: 初始缩放级别
|
|
561
|
+
- `token`: 天地图 API Token(建议从环境变量获取)
|
|
562
|
+
- `minZoom`: 最小缩放级别(可选,默认:1)
|
|
563
|
+
- `maxZoom`: 最大缩放级别(可选,默认:20)
|
|
564
|
+
- `annotation`: 是否显示注记图层(可选,默认:true)
|
|
565
|
+
- `layers`: 图层配置(可选)
|
|
566
|
+
- `extent`: 地图范围限制(可选)
|
|
567
|
+
- `mapClipData`: 地图裁剪数据(可选)
|
|
568
|
+
|
|
514
569
|
#### 方法
|
|
515
570
|
|
|
516
571
|
- **getPoint()**
|
|
@@ -532,17 +587,35 @@ new MyOl(id: string, options: MapInitType)
|
|
|
532
587
|
```
|
|
533
588
|
|
|
534
589
|
- **getTools()**
|
|
535
|
-
>
|
|
590
|
+
> 获取地图工具实例,提供图层管理、事件监听等功能。
|
|
536
591
|
```javascript
|
|
537
592
|
const tools = map.getTools();
|
|
538
593
|
```
|
|
539
594
|
|
|
540
595
|
- **getMapBaseLayers()**
|
|
541
|
-
>
|
|
596
|
+
> 获取底图图层管理实例,用于底图切换和管理。
|
|
542
597
|
```javascript
|
|
543
598
|
const baseLayers = map.getMapBaseLayers();
|
|
544
599
|
```
|
|
545
600
|
|
|
601
|
+
- **getEventManager()**
|
|
602
|
+
> 获取事件管理器实例,用于统一的事件监听和管理。
|
|
603
|
+
```javascript
|
|
604
|
+
const eventManager = map.getEventManager();
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
- **getConfigManager()**
|
|
608
|
+
> 获取配置管理器实例,用于配置验证和管理。
|
|
609
|
+
```javascript
|
|
610
|
+
const configManager = map.getConfigManager();
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
- **getMap()**
|
|
614
|
+
> 获取原生 OpenLayers 地图实例。
|
|
615
|
+
```javascript
|
|
616
|
+
const olMap = map.getMap();
|
|
617
|
+
```
|
|
618
|
+
|
|
546
619
|
- **resetPosition(duration?: number)**
|
|
547
620
|
> 重置地图位置。
|
|
548
621
|
```javascript
|
|
@@ -568,7 +641,7 @@ new MyOl(id: string, options: MapInitType)
|
|
|
568
641
|
### MapBaseLayers
|
|
569
642
|
|
|
570
643
|
- **switchBaseLayer(type: TiandituType)**
|
|
571
|
-
>
|
|
644
|
+
> 切换底图类型,自动处理注记图层。
|
|
572
645
|
```javascript
|
|
573
646
|
baseLayers.switchBaseLayer('img_c');
|
|
574
647
|
```
|
|
@@ -583,6 +656,19 @@ new MyOl(id: string, options: MapInitType)
|
|
|
583
656
|
});
|
|
584
657
|
```
|
|
585
658
|
|
|
659
|
+
- **toggleAnnotation(show?: boolean)**
|
|
660
|
+
> 切换注记图层显示状态。
|
|
661
|
+
```javascript
|
|
662
|
+
baseLayers.toggleAnnotation(true); // 显示注记
|
|
663
|
+
baseLayers.toggleAnnotation(false); // 隐藏注记
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
- **getCurrentBaseLayer()**
|
|
667
|
+
> 获取当前底图类型。
|
|
668
|
+
```javascript
|
|
669
|
+
const currentType = baseLayers.getCurrentBaseLayer();
|
|
670
|
+
```
|
|
671
|
+
|
|
586
672
|
- **initLayer()**
|
|
587
673
|
> 初始化底图图层。
|
|
588
674
|
```javascript
|
|
@@ -594,7 +680,7 @@ new MyOl(id: string, options: MapInitType)
|
|
|
594
680
|
### Point
|
|
595
681
|
|
|
596
682
|
- **addPoint(pointData: PointData[], options: OptionsType)**
|
|
597
|
-
>
|
|
683
|
+
> 添加普通点位到指定图层,支持自定义样式和图标。
|
|
598
684
|
```javascript
|
|
599
685
|
point.addPoint([
|
|
600
686
|
{ lgtd: 119.81, lttd: 29.969, name: '测试点位' }
|
|
@@ -607,7 +693,7 @@ new MyOl(id: string, options: MapInitType)
|
|
|
607
693
|
```
|
|
608
694
|
|
|
609
695
|
- **addClusterPoint(pointData: PointData[], options: OptionsType)**
|
|
610
|
-
>
|
|
696
|
+
> 添加聚合点位,自动根据缩放级别聚合显示。
|
|
611
697
|
```javascript
|
|
612
698
|
point.addClusterPoint([
|
|
613
699
|
{ lgtd: 119.81, lttd: 29.969, name: 'A' },
|
|
@@ -620,6 +706,19 @@ new MyOl(id: string, options: MapInitType)
|
|
|
620
706
|
});
|
|
621
707
|
```
|
|
622
708
|
|
|
709
|
+
- **addTwinklePoint(pointData: PointData[], options: OptionsType)**
|
|
710
|
+
> 添加闪烁点位,具有动画效果。
|
|
711
|
+
```javascript
|
|
712
|
+
point.addTwinklePoint([
|
|
713
|
+
{ lgtd: 119.81, lttd: 29.969, name: '闪烁点位' }
|
|
714
|
+
], {
|
|
715
|
+
layerName: 'twinkle-point',
|
|
716
|
+
nameKey: 'name',
|
|
717
|
+
img: 'twinkle.png',
|
|
718
|
+
hasImg: true
|
|
719
|
+
});
|
|
720
|
+
```
|
|
721
|
+
|
|
623
722
|
- **setDomPointVue(pointInfoList: any[], template: any, Vue: any)**
|
|
624
723
|
> 添加 Vue 组件点位。
|
|
625
724
|
```javascript
|
|
@@ -776,31 +875,77 @@ new MyOl(id: string, options: MapInitType)
|
|
|
776
875
|
|
|
777
876
|
### MeasureHandler
|
|
778
877
|
|
|
878
|
+
测量工具类,提供距离和面积测量功能,支持实时测量显示。
|
|
879
|
+
|
|
779
880
|
- **start(type: 'Polygon' | 'LineString')**
|
|
780
|
-
>
|
|
881
|
+
> 开始测量,支持距离和面积测量。
|
|
781
882
|
```javascript
|
|
782
|
-
measure.start('Polygon');
|
|
783
|
-
measure.start('LineString');
|
|
883
|
+
measure.start('Polygon'); // 面积测量
|
|
884
|
+
measure.start('LineString'); // 距离测量
|
|
784
885
|
```
|
|
785
886
|
|
|
786
887
|
- **end()**
|
|
787
|
-
>
|
|
888
|
+
> 结束当前测量操作。
|
|
788
889
|
```javascript
|
|
789
890
|
measure.end();
|
|
790
891
|
```
|
|
791
892
|
|
|
792
893
|
- **clean()**
|
|
793
|
-
>
|
|
894
|
+
> 清除所有测量结果和图形。
|
|
794
895
|
```javascript
|
|
795
896
|
measure.clean();
|
|
796
897
|
```
|
|
797
898
|
|
|
798
899
|
- **destory()**
|
|
799
|
-
>
|
|
900
|
+
> 销毁测量工具,释放资源。
|
|
800
901
|
```javascript
|
|
801
902
|
measure.destory();
|
|
802
903
|
```
|
|
803
904
|
|
|
905
|
+
### ErrorHandler
|
|
906
|
+
|
|
907
|
+
错误处理工具类,提供统一的错误处理和日志记录。
|
|
908
|
+
|
|
909
|
+
- **getInstance()**
|
|
910
|
+
> 获取错误处理器单例实例。
|
|
911
|
+
```javascript
|
|
912
|
+
const errorHandler = ErrorHandler.getInstance();
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
- **handleError(error: MyOpenLayersError)**
|
|
916
|
+
> 处理错误,记录日志并触发回调。
|
|
917
|
+
```javascript
|
|
918
|
+
errorHandler.handleError(error);
|
|
919
|
+
```
|
|
920
|
+
|
|
921
|
+
- **validate(condition: boolean, message: string, context?: any)**
|
|
922
|
+
> 验证条件,失败时抛出错误。
|
|
923
|
+
```javascript
|
|
924
|
+
ErrorHandler.validate(isValid, '验证失败', { data });
|
|
925
|
+
```
|
|
926
|
+
|
|
927
|
+
### ValidationUtils
|
|
928
|
+
|
|
929
|
+
验证工具类,提供各种数据验证方法。
|
|
930
|
+
|
|
931
|
+
- **isValidCoordinate(longitude: number, latitude: number)**
|
|
932
|
+
> 验证坐标是否有效。
|
|
933
|
+
```javascript
|
|
934
|
+
const isValid = ValidationUtils.isValidCoordinate(119.81, 29.969);
|
|
935
|
+
```
|
|
936
|
+
|
|
937
|
+
- **validateMapInstance(map: any)**
|
|
938
|
+
> 验证地图实例。
|
|
939
|
+
```javascript
|
|
940
|
+
ValidationUtils.validateMapInstance(map);
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
- **validateLayerName(layerName: string)**
|
|
944
|
+
> 验证图层名称。
|
|
945
|
+
```javascript
|
|
946
|
+
ValidationUtils.validateLayerName('myLayer');
|
|
947
|
+
```
|
|
948
|
+
|
|
804
949
|
---
|
|
805
950
|
|
|
806
951
|
## 类型定义
|
|
@@ -820,7 +965,8 @@ interface MapInitType {
|
|
|
820
965
|
extent?: number[],
|
|
821
966
|
mapClipData?: MapJSONData,
|
|
822
967
|
token?: string,
|
|
823
|
-
annotation?: boolean
|
|
968
|
+
annotation?: boolean,
|
|
969
|
+
coordinateSystem?: string // 坐标系(支持CGCS2000)
|
|
824
970
|
}
|
|
825
971
|
|
|
826
972
|
// 点位数据
|
|
@@ -937,6 +1083,50 @@ interface HeatMapOptions {
|
|
|
937
1083
|
}
|
|
938
1084
|
```
|
|
939
1085
|
|
|
1086
|
+
### VueTemplatePointOptions
|
|
1087
|
+
|
|
1088
|
+
Vue 组件点位配置类型,支持 Vue 2 和 Vue 3。
|
|
1089
|
+
|
|
1090
|
+
```typescript
|
|
1091
|
+
interface VueTemplatePointOptions {
|
|
1092
|
+
coordinate: [number, number]; // 点位坐标
|
|
1093
|
+
template: any; // Vue 组件模板
|
|
1094
|
+
data?: any; // 传递给组件的数据
|
|
1095
|
+
vue: VueInstance | VueApp; // Vue 实例(Vue 2/3)
|
|
1096
|
+
layerName?: string; // 图层名称
|
|
1097
|
+
id?: string; // 点位唯一标识
|
|
1098
|
+
className?: string; // CSS 类名
|
|
1099
|
+
stopEvent?: boolean; // 是否阻止事件冒泡
|
|
1100
|
+
}
|
|
1101
|
+
```
|
|
1102
|
+
|
|
1103
|
+
### ErrorType
|
|
1104
|
+
|
|
1105
|
+
错误类型枚举。
|
|
1106
|
+
|
|
1107
|
+
```typescript
|
|
1108
|
+
enum ErrorType {
|
|
1109
|
+
VALIDATION_ERROR = 'VALIDATION_ERROR',
|
|
1110
|
+
MAP_ERROR = 'MAP_ERROR',
|
|
1111
|
+
LAYER_ERROR = 'LAYER_ERROR',
|
|
1112
|
+
COORDINATE_ERROR = 'COORDINATE_ERROR',
|
|
1113
|
+
DATA_ERROR = 'DATA_ERROR',
|
|
1114
|
+
COMPONENT_ERROR = 'COMPONENT_ERROR'
|
|
1115
|
+
}
|
|
1116
|
+
```
|
|
1117
|
+
|
|
1118
|
+
### MyOpenLayersError
|
|
1119
|
+
|
|
1120
|
+
自定义错误类。
|
|
1121
|
+
|
|
1122
|
+
```typescript
|
|
1123
|
+
class MyOpenLayersError extends Error {
|
|
1124
|
+
public readonly type: ErrorType;
|
|
1125
|
+
public readonly timestamp: Date;
|
|
1126
|
+
public readonly context?: any;
|
|
1127
|
+
}
|
|
1128
|
+
```
|
|
1129
|
+
|
|
940
1130
|
### 兼容性类型
|
|
941
1131
|
|
|
942
1132
|
```typescript
|
|
@@ -957,8 +1147,6 @@ type OptionsType = BaseOptions & StyleOptions & TextOptions & {
|
|
|
957
1147
|
|
|
958
1148
|
## 迁移指南
|
|
959
1149
|
|
|
960
|
-
如果您正在从旧版本的 `OptionsType` 迁移到新的模块化类型接口,请参考详细的 [迁移指南](MIGRATION_GUIDE.md)。
|
|
961
|
-
|
|
962
1150
|
### 快速迁移示例
|
|
963
1151
|
|
|
964
1152
|
```typescript
|
|
@@ -992,20 +1180,23 @@ const options: PointOptions = {
|
|
|
992
1180
|
|
|
993
1181
|
### 运行时依赖
|
|
994
1182
|
|
|
995
|
-
- **
|
|
996
|
-
- **
|
|
997
|
-
-
|
|
1183
|
+
- **ol**: ^7.5.2 - OpenLayers 地图库
|
|
1184
|
+
- **proj4**: ^2.9.2 - 坐标系转换库
|
|
1185
|
+
- **@turf/turf**: ^6.5.0 - 地理空间分析库
|
|
998
1186
|
|
|
999
1187
|
### 开发依赖
|
|
1000
1188
|
|
|
1001
|
-
-
|
|
1002
|
-
- **
|
|
1003
|
-
- **
|
|
1004
|
-
-
|
|
1189
|
+
- **@types/ol**: ^6.5.3 - OpenLayers TypeScript 类型定义
|
|
1190
|
+
- **typescript**: ^5.0.0 - TypeScript 编译器
|
|
1191
|
+
- **vite**: ^4.4.5 - 构建工具
|
|
1192
|
+
- **@vitejs/plugin-vue**: ^4.2.3 - Vue 插件支持
|
|
1193
|
+
- **vue-tsc**: ^1.8.5 - Vue TypeScript 编译器
|
|
1005
1194
|
|
|
1006
1195
|
### 对等依赖
|
|
1007
1196
|
|
|
1008
|
-
- **
|
|
1197
|
+
- **vue**: ^2.6.0 || ^3.0.0 - Vue.js 框架(可选,用于 Vue 组件支持)
|
|
1198
|
+
- **element-ui**: ^2.15.0 - Element UI 组件库(Vue 2)
|
|
1199
|
+
- **element-plus**: ^2.0.0 - Element Plus 组件库(Vue 3)
|
|
1009
1200
|
|
|
1010
1201
|
> **注意**:本库与 OpenLayers 6.15.1 完全兼容,建议使用相同版本以获得最佳体验。
|
|
1011
1202
|
|
|
@@ -1206,14 +1397,46 @@ A:
|
|
|
1206
1397
|
|
|
1207
1398
|
## 更新日志
|
|
1208
1399
|
|
|
1209
|
-
### v1.0.
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
-
|
|
1213
|
-
-
|
|
1214
|
-
-
|
|
1215
|
-
-
|
|
1216
|
-
-
|
|
1400
|
+
### v1.0.15 (2025-08-20)
|
|
1401
|
+
|
|
1402
|
+
#### 新增功能
|
|
1403
|
+
- ✨ 完整的 TypeScript 支持和类型定义
|
|
1404
|
+
- ✨ 模块化架构设计,支持按需引入
|
|
1405
|
+
- ✨ 天地图底图支持(矢量、影像、地形)
|
|
1406
|
+
- ✨ 点要素操作(普通点位、聚合点位、闪烁点位)
|
|
1407
|
+
- ✨ Vue 组件集成支持(Vue 2/3 兼容)
|
|
1408
|
+
- ✨ 线要素和面要素绘制
|
|
1409
|
+
- ✨ 热力图和图片图层支持
|
|
1410
|
+
- ✨ 测量工具(距离、面积)
|
|
1411
|
+
- ✨ 事件管理和配置管理系统
|
|
1412
|
+
- ✨ 错误处理和验证工具
|
|
1413
|
+
- ✨ CGCS2000 坐标系支持
|
|
1414
|
+
|
|
1415
|
+
#### 技术特性
|
|
1416
|
+
- 🔧 支持 Vue 2 和 Vue 3
|
|
1417
|
+
- 🔧 完整的 TypeScript 类型定义
|
|
1418
|
+
- 🔧 模块化设计,懒加载支持
|
|
1419
|
+
- 🔧 统一的错误处理机制
|
|
1420
|
+
- 🔧 向后兼容性保证
|
|
1421
|
+
- 🔧 环境变量配置支持
|
|
1422
|
+
|
|
1423
|
+
#### 核心类库
|
|
1424
|
+
- 📦 MyOl - 地图核心管理类
|
|
1425
|
+
- 📦 MapBaseLayers - 底图管理
|
|
1426
|
+
- 📦 Point/Line/Polygon - 要素操作
|
|
1427
|
+
- 📦 VueTemplatePoint - Vue 组件支持
|
|
1428
|
+
- 📦 MapTools - 地图工具集
|
|
1429
|
+
- 📦 MeasureHandler - 测量工具
|
|
1430
|
+
- 📦 EventManager - 事件管理
|
|
1431
|
+
- 📦 ConfigManager - 配置管理
|
|
1432
|
+
- 📦 ErrorHandler - 错误处理
|
|
1433
|
+
- 📦 ValidationUtils - 验证工具
|
|
1434
|
+
|
|
1435
|
+
#### 文档
|
|
1436
|
+
- 📚 完整的 API 文档和类型定义
|
|
1437
|
+
- 📚 详细的使用示例和最佳实践
|
|
1438
|
+
- 📚 环境配置和部署指南
|
|
1439
|
+
- 📚 FAQ 和常见问题解决方案
|
|
1217
1440
|
|
|
1218
1441
|
查看完整的 [更新日志](CHANGELOG.md)
|
|
1219
1442
|
|