map-ol-utils 0.1.27 → 0.1.28
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 +109 -0
- package/dist/index.cjs +20 -6
- package/dist/index.d.cts +43 -8
- package/dist/index.d.ts +43 -8
- package/dist/index.js +20 -13
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# map-ol-utils
|
|
2
|
+
|
|
3
|
+
OpenLayers 地图工具库,封装常用的图层创建、要素交互与地图管理操作。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add map-ol-utils
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 快速上手
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { createMapInstance, createMassMarksLayer, addMassMarksLayer } from 'map-ol-utils'
|
|
15
|
+
|
|
16
|
+
// 创建地图(单例)
|
|
17
|
+
const map = createMapInstance({ target: 'map-container' })
|
|
18
|
+
|
|
19
|
+
// 添加点位图层
|
|
20
|
+
const layer = createMassMarksLayer(dataList, styles)
|
|
21
|
+
map.addLayer(layer)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 主要 API
|
|
25
|
+
|
|
26
|
+
### 地图管理
|
|
27
|
+
|
|
28
|
+
| 函数 | 说明 |
|
|
29
|
+
|------|------|
|
|
30
|
+
| `createMap(config)` | 创建 OL 地图实例 |
|
|
31
|
+
| `createMapInstance(config)` | 创建地图单例 |
|
|
32
|
+
| `getMapInstance()` | 获取当前单例 |
|
|
33
|
+
| `disposeMap()` | 销毁地图,释放资源 |
|
|
34
|
+
| `resetMap(config)` | 重置地图(清除图层并还原视图) |
|
|
35
|
+
| `resetZoomAndCenter(center)` | 动画还原缩放和中心点 |
|
|
36
|
+
|
|
37
|
+
### 底图图层
|
|
38
|
+
|
|
39
|
+
| 函数 | 说明 |
|
|
40
|
+
|------|------|
|
|
41
|
+
| `createBaseLayer(type?)` | 创建杭州本地切片底图 |
|
|
42
|
+
| `createMapWorldLayer(options)` | 创建天地图图层 |
|
|
43
|
+
| `createZheJiangLayer(type?)` | 创建浙江省切片图层 |
|
|
44
|
+
| `switchBaseLayer(type)` | 切换底图类型 |
|
|
45
|
+
|
|
46
|
+
### 矢量图层
|
|
47
|
+
|
|
48
|
+
| 函数 | 说明 |
|
|
49
|
+
|------|------|
|
|
50
|
+
| `createBusinessLayer(dataList, config)` | 从业务数据创建矢量图层(自动识别线/面类型) |
|
|
51
|
+
| `createVectorLineLayer(dataList, config)` | 创建线状图层 |
|
|
52
|
+
| `createVectorFaceLayer(dataList, config)` | 创建面状图层 |
|
|
53
|
+
| `appendFeaturesByLayer(layer, dataList)` | 向已有图层追加要素 |
|
|
54
|
+
|
|
55
|
+
### 点位与聚合
|
|
56
|
+
|
|
57
|
+
| 函数 | 说明 |
|
|
58
|
+
|------|------|
|
|
59
|
+
| `createMassMarksLayer(dataList, styles)` | 创建大量点位图层 |
|
|
60
|
+
| `addMassMarksLayer(getImgUrlFn)` | 高阶函数,返回添加点位图层的方法 |
|
|
61
|
+
| `buildMassMarksStyles(getImgUrlFn)` | 构建多状态点位样式数组 |
|
|
62
|
+
| `updateMarksLayersByStatus(statusList)` | 按状态控制点位显隐 |
|
|
63
|
+
| `createClusterLayer(dataList, config)` | 创建聚合图层 |
|
|
64
|
+
|
|
65
|
+
### 交互与选择
|
|
66
|
+
|
|
67
|
+
| 函数 | 说明 |
|
|
68
|
+
|------|------|
|
|
69
|
+
| `createSelectByLayer(layer)` | 为图层添加点击选中交互 |
|
|
70
|
+
| `activeFeatureByUid(uid)` | 通过 uid 程序化激活要素 |
|
|
71
|
+
| `resetActiveFeature()` | 清除选中状态 |
|
|
72
|
+
| `resetActiveVector()` | 清除矢量激活状态 |
|
|
73
|
+
|
|
74
|
+
### 视图控制
|
|
75
|
+
|
|
76
|
+
| 函数 | 说明 |
|
|
77
|
+
|------|------|
|
|
78
|
+
| `setFitViewByCoords(coords)` | 缩放至坐标范围 |
|
|
79
|
+
| `setFitViewByGeom(geom)` | 缩放至几何范围 |
|
|
80
|
+
| `setFitViewByLayer(layer)` | 缩放至图层范围 |
|
|
81
|
+
|
|
82
|
+
### OGC
|
|
83
|
+
|
|
84
|
+
| 函数 | 说明 |
|
|
85
|
+
|------|------|
|
|
86
|
+
| `createWmtsLayer(url, options)` | 从 GeoServer GetCapabilities 创建 WMTS 图层 |
|
|
87
|
+
|
|
88
|
+
## 依赖
|
|
89
|
+
|
|
90
|
+
- [ol](https://openlayers.org/) `>=10.5.0`(peer dependency)
|
|
91
|
+
- [gcoord](https://github.com/hujiulong/gcoord) — 坐标系转换
|
|
92
|
+
- [mitt](https://github.com/developit/mitt) — 事件总线
|
|
93
|
+
|
|
94
|
+
## 事件
|
|
95
|
+
|
|
96
|
+
通过导出的 `emitter` 监听图层交互事件:
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
import { emitter } from 'map-ol-utils'
|
|
100
|
+
|
|
101
|
+
emitter.on('selected-feature', (data) => {
|
|
102
|
+
console.log('选中要素:', data)
|
|
103
|
+
})
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
| 事件名 | 触发时机 | 回调参数 |
|
|
107
|
+
|--------|----------|----------|
|
|
108
|
+
| `selected-feature` | 点击选中要素 | feature properties |
|
|
109
|
+
| `dynamic-marker` | 选中动态标注点 | marker data |
|
package/dist/index.cjs
CHANGED
|
@@ -69,6 +69,7 @@ var index_exports = {};
|
|
|
69
69
|
__export(index_exports, {
|
|
70
70
|
GeometryType: () => GeometryType,
|
|
71
71
|
activeFeatureByUid: () => activeFeatureByUid,
|
|
72
|
+
addFeaturesByLayer: () => addFeaturesByLayer,
|
|
72
73
|
addMassMarksLayer: () => addMassMarksLayer,
|
|
73
74
|
appendFeaturesByLayer: () => appendFeaturesByLayer,
|
|
74
75
|
buildMassMarksStyles: () => buildMassMarksStyles,
|
|
@@ -508,8 +509,8 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
508
509
|
vectorLayer.set("_selectInteraction", interaction);
|
|
509
510
|
return interaction;
|
|
510
511
|
};
|
|
511
|
-
var
|
|
512
|
-
|
|
512
|
+
var createFeatures = (dataList, styleList = []) => {
|
|
513
|
+
return dataList.map((item) => {
|
|
513
514
|
const { crsForm } = item;
|
|
514
515
|
const coord = import_gcoord.default.transform(
|
|
515
516
|
[+item.lnglat[0], +item.lnglat[1]],
|
|
@@ -526,10 +527,21 @@ var createMassMarksLayer = (dataList, styleList = []) => {
|
|
|
526
527
|
feature.setStyle(styleList[item.style]);
|
|
527
528
|
return feature;
|
|
528
529
|
});
|
|
530
|
+
};
|
|
531
|
+
var addFeaturesByLayer = (targetLayer, dataList, config) => {
|
|
532
|
+
const massMarksStyles = targetLayer.get("_massMarksStyles");
|
|
533
|
+
const targetSource = targetLayer == null ? void 0 : targetLayer.getSource();
|
|
534
|
+
const { clear } = config;
|
|
535
|
+
if (clear) {
|
|
536
|
+
targetSource == null ? void 0 : targetSource.clear();
|
|
537
|
+
}
|
|
538
|
+
targetSource == null ? void 0 : targetSource.addFeatures(createFeatures(dataList, massMarksStyles));
|
|
539
|
+
};
|
|
540
|
+
var createMassMarksLayer = (dataList, styleList = []) => {
|
|
529
541
|
const vectorLayer = new import_Vector.default({
|
|
530
542
|
zIndex: 2e3,
|
|
531
543
|
source: new import_Vector2.default({
|
|
532
|
-
features
|
|
544
|
+
features: createFeatures(dataList, styleList)
|
|
533
545
|
})
|
|
534
546
|
});
|
|
535
547
|
vectorLayer.setProperties({
|
|
@@ -618,7 +630,8 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
618
630
|
className: layerName,
|
|
619
631
|
_layerName: layerName,
|
|
620
632
|
_isVectorLayer: true,
|
|
621
|
-
_isDynamic: isDynamic
|
|
633
|
+
_isDynamic: isDynamic,
|
|
634
|
+
_massMarksStyles: massMarksStyles
|
|
622
635
|
});
|
|
623
636
|
instance.addLayer(massMarksLayer);
|
|
624
637
|
return massMarksLayer;
|
|
@@ -998,8 +1011,8 @@ var getLayersDataList = () => {
|
|
|
998
1011
|
};
|
|
999
1012
|
var determineGeometryType = (coordinates) => {
|
|
1000
1013
|
const getArrayDepth = (arr) => {
|
|
1001
|
-
if (!Array.isArray(arr)) return 0;
|
|
1002
|
-
return 1 +
|
|
1014
|
+
if (!Array.isArray(arr) || arr.length === 0) return 0;
|
|
1015
|
+
return 1 + getArrayDepth(arr[0]);
|
|
1003
1016
|
};
|
|
1004
1017
|
const isClosedRing = (coords) => {
|
|
1005
1018
|
if (!Array.isArray(coords) || coords.length < 3) return false;
|
|
@@ -1097,6 +1110,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(null, null, function* (
|
|
|
1097
1110
|
0 && (module.exports = {
|
|
1098
1111
|
GeometryType,
|
|
1099
1112
|
activeFeatureByUid,
|
|
1113
|
+
addFeaturesByLayer,
|
|
1100
1114
|
addMassMarksLayer,
|
|
1101
1115
|
appendFeaturesByLayer,
|
|
1102
1116
|
buildMassMarksStyles,
|
package/dist/index.d.cts
CHANGED
|
@@ -147,7 +147,9 @@ declare const createZheJiangLayer: (layerName?: ZheJiangType, tk?: string) => Ti
|
|
|
147
147
|
* 根据图层名称获取图层
|
|
148
148
|
* @param name
|
|
149
149
|
*/
|
|
150
|
-
declare const getLayerByName: (name: string) => Layer<ol_source.Source, ol_renderer_Layer.default<any
|
|
150
|
+
declare const getLayerByName: (name: string) => Layer<ol_source.Source, ol_renderer_Layer.default<any>, {
|
|
151
|
+
[x: string]: any;
|
|
152
|
+
}> | undefined;
|
|
151
153
|
/**
|
|
152
154
|
* 根据图层名称删除图层
|
|
153
155
|
* @param name
|
|
@@ -192,7 +194,11 @@ declare const setFitViewByGeom: (geom: SimpleGeometry, mapInstance?: CustomMap,
|
|
|
192
194
|
* @param fitOptions
|
|
193
195
|
*/
|
|
194
196
|
declare const setFitViewByLayer: (layer: VectorLayer, mapInstance?: CustomMap, fitOptions?: FitOptions) => void;
|
|
195
|
-
declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry
|
|
197
|
+
declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry, {
|
|
198
|
+
[x: string]: any;
|
|
199
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
200
|
+
[x: string]: any;
|
|
201
|
+
}>>;
|
|
196
202
|
/**
|
|
197
203
|
* 追加Features
|
|
198
204
|
* @param targetLayer
|
|
@@ -205,13 +211,21 @@ declare const appendFeaturesByLayer: (targetLayer: VectorLayer, dataList: MassDa
|
|
|
205
211
|
* @param dataList
|
|
206
212
|
* @param config
|
|
207
213
|
*/
|
|
208
|
-
declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry
|
|
214
|
+
declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry, {
|
|
215
|
+
[x: string]: any;
|
|
216
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
217
|
+
[x: string]: any;
|
|
218
|
+
}>>;
|
|
209
219
|
/**
|
|
210
220
|
* 创建矢量线图层
|
|
211
221
|
* @param dataList
|
|
212
222
|
* @param config
|
|
213
223
|
*/
|
|
214
|
-
declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry
|
|
224
|
+
declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry, {
|
|
225
|
+
[x: string]: any;
|
|
226
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
227
|
+
[x: string]: any;
|
|
228
|
+
}>>;
|
|
215
229
|
/**
|
|
216
230
|
* 移除覆盖物以及自定义图层
|
|
217
231
|
*/
|
|
@@ -234,17 +248,34 @@ declare const buildMassMarksStyles: (getImgUrlFn: GetImgUrlFn) => (iconConfig: I
|
|
|
234
248
|
* @param vectorLayer
|
|
235
249
|
*/
|
|
236
250
|
declare const createSelectByLayer: (vectorLayer: VectorLayer) => Select;
|
|
251
|
+
/**
|
|
252
|
+
* 添加Features
|
|
253
|
+
* @param targetLayer
|
|
254
|
+
* @param dataList
|
|
255
|
+
* @param config
|
|
256
|
+
*/
|
|
257
|
+
declare const addFeaturesByLayer: (targetLayer: VectorLayer, dataList: MassData[], config: {
|
|
258
|
+
clear: false;
|
|
259
|
+
}) => void;
|
|
237
260
|
/**
|
|
238
261
|
* 创建massMarksLayer
|
|
239
262
|
* @param dataList
|
|
240
263
|
* @param styleList
|
|
241
264
|
*/
|
|
242
|
-
declare const createMassMarksLayer: (dataList: MassData[], styleList?: StyleLike[]) => VectorLayer<VectorSource<Feature<Point
|
|
265
|
+
declare const createMassMarksLayer: (dataList: MassData[], styleList?: StyleLike[]) => VectorLayer<VectorSource<Feature<Point, {
|
|
266
|
+
[x: string]: any;
|
|
267
|
+
}>>, Feature<Point, {
|
|
268
|
+
[x: string]: any;
|
|
269
|
+
}>>;
|
|
243
270
|
/**
|
|
244
271
|
* 添加massMarksLayer
|
|
245
272
|
* @param getImgUrlFn
|
|
246
273
|
*/
|
|
247
|
-
declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[] | undefined, iconConfig: IconConfig, openClick?: boolean) => VectorLayer<VectorSource<Feature<Point
|
|
274
|
+
declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[] | undefined, iconConfig: IconConfig, openClick?: boolean) => VectorLayer<VectorSource<Feature<Point, {
|
|
275
|
+
[x: string]: any;
|
|
276
|
+
}>>, Feature<Point, {
|
|
277
|
+
[x: string]: any;
|
|
278
|
+
}>>;
|
|
248
279
|
/**
|
|
249
280
|
* 更新图层根据选中状态列表
|
|
250
281
|
* @param checkedStatusList
|
|
@@ -260,6 +291,10 @@ declare const createOverlay: (config?: Options) => Overlay;
|
|
|
260
291
|
* @param dataList
|
|
261
292
|
* @param config
|
|
262
293
|
*/
|
|
263
|
-
declare const createClusterLayer: (dataList: ClusterData[], config: ClusterConfig) => VectorLayer<Cluster<Feature<Point
|
|
294
|
+
declare const createClusterLayer: (dataList: ClusterData[], config: ClusterConfig) => VectorLayer<Cluster<Feature<Point, {
|
|
295
|
+
[x: string]: any;
|
|
296
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
297
|
+
[x: string]: any;
|
|
298
|
+
}>>;
|
|
264
299
|
|
|
265
|
-
export { type ClusterConfig, type ClusterData, type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type HzsyType, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, type WorldLayerType, type ZheJiangType, activeFeatureByUid, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createClusterLayer, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, createZheJiangLayer, disposeMap, emitter, getLayerByName, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, removeOverlays, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByCoords, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
|
|
300
|
+
export { type ClusterConfig, type ClusterData, type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type HzsyType, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, type WorldLayerType, type ZheJiangType, activeFeatureByUid, addFeaturesByLayer, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createClusterLayer, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, createZheJiangLayer, disposeMap, emitter, getLayerByName, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, removeOverlays, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByCoords, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
|
package/dist/index.d.ts
CHANGED
|
@@ -147,7 +147,9 @@ declare const createZheJiangLayer: (layerName?: ZheJiangType, tk?: string) => Ti
|
|
|
147
147
|
* 根据图层名称获取图层
|
|
148
148
|
* @param name
|
|
149
149
|
*/
|
|
150
|
-
declare const getLayerByName: (name: string) => Layer<ol_source.Source, ol_renderer_Layer.default<any
|
|
150
|
+
declare const getLayerByName: (name: string) => Layer<ol_source.Source, ol_renderer_Layer.default<any>, {
|
|
151
|
+
[x: string]: any;
|
|
152
|
+
}> | undefined;
|
|
151
153
|
/**
|
|
152
154
|
* 根据图层名称删除图层
|
|
153
155
|
* @param name
|
|
@@ -192,7 +194,11 @@ declare const setFitViewByGeom: (geom: SimpleGeometry, mapInstance?: CustomMap,
|
|
|
192
194
|
* @param fitOptions
|
|
193
195
|
*/
|
|
194
196
|
declare const setFitViewByLayer: (layer: VectorLayer, mapInstance?: CustomMap, fitOptions?: FitOptions) => void;
|
|
195
|
-
declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry
|
|
197
|
+
declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry, {
|
|
198
|
+
[x: string]: any;
|
|
199
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
200
|
+
[x: string]: any;
|
|
201
|
+
}>>;
|
|
196
202
|
/**
|
|
197
203
|
* 追加Features
|
|
198
204
|
* @param targetLayer
|
|
@@ -205,13 +211,21 @@ declare const appendFeaturesByLayer: (targetLayer: VectorLayer, dataList: MassDa
|
|
|
205
211
|
* @param dataList
|
|
206
212
|
* @param config
|
|
207
213
|
*/
|
|
208
|
-
declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry
|
|
214
|
+
declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry, {
|
|
215
|
+
[x: string]: any;
|
|
216
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
217
|
+
[x: string]: any;
|
|
218
|
+
}>>;
|
|
209
219
|
/**
|
|
210
220
|
* 创建矢量线图层
|
|
211
221
|
* @param dataList
|
|
212
222
|
* @param config
|
|
213
223
|
*/
|
|
214
|
-
declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry
|
|
224
|
+
declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry, {
|
|
225
|
+
[x: string]: any;
|
|
226
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
227
|
+
[x: string]: any;
|
|
228
|
+
}>>;
|
|
215
229
|
/**
|
|
216
230
|
* 移除覆盖物以及自定义图层
|
|
217
231
|
*/
|
|
@@ -234,17 +248,34 @@ declare const buildMassMarksStyles: (getImgUrlFn: GetImgUrlFn) => (iconConfig: I
|
|
|
234
248
|
* @param vectorLayer
|
|
235
249
|
*/
|
|
236
250
|
declare const createSelectByLayer: (vectorLayer: VectorLayer) => Select;
|
|
251
|
+
/**
|
|
252
|
+
* 添加Features
|
|
253
|
+
* @param targetLayer
|
|
254
|
+
* @param dataList
|
|
255
|
+
* @param config
|
|
256
|
+
*/
|
|
257
|
+
declare const addFeaturesByLayer: (targetLayer: VectorLayer, dataList: MassData[], config: {
|
|
258
|
+
clear: false;
|
|
259
|
+
}) => void;
|
|
237
260
|
/**
|
|
238
261
|
* 创建massMarksLayer
|
|
239
262
|
* @param dataList
|
|
240
263
|
* @param styleList
|
|
241
264
|
*/
|
|
242
|
-
declare const createMassMarksLayer: (dataList: MassData[], styleList?: StyleLike[]) => VectorLayer<VectorSource<Feature<Point
|
|
265
|
+
declare const createMassMarksLayer: (dataList: MassData[], styleList?: StyleLike[]) => VectorLayer<VectorSource<Feature<Point, {
|
|
266
|
+
[x: string]: any;
|
|
267
|
+
}>>, Feature<Point, {
|
|
268
|
+
[x: string]: any;
|
|
269
|
+
}>>;
|
|
243
270
|
/**
|
|
244
271
|
* 添加massMarksLayer
|
|
245
272
|
* @param getImgUrlFn
|
|
246
273
|
*/
|
|
247
|
-
declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[] | undefined, iconConfig: IconConfig, openClick?: boolean) => VectorLayer<VectorSource<Feature<Point
|
|
274
|
+
declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[] | undefined, iconConfig: IconConfig, openClick?: boolean) => VectorLayer<VectorSource<Feature<Point, {
|
|
275
|
+
[x: string]: any;
|
|
276
|
+
}>>, Feature<Point, {
|
|
277
|
+
[x: string]: any;
|
|
278
|
+
}>>;
|
|
248
279
|
/**
|
|
249
280
|
* 更新图层根据选中状态列表
|
|
250
281
|
* @param checkedStatusList
|
|
@@ -260,6 +291,10 @@ declare const createOverlay: (config?: Options) => Overlay;
|
|
|
260
291
|
* @param dataList
|
|
261
292
|
* @param config
|
|
262
293
|
*/
|
|
263
|
-
declare const createClusterLayer: (dataList: ClusterData[], config: ClusterConfig) => VectorLayer<Cluster<Feature<Point
|
|
294
|
+
declare const createClusterLayer: (dataList: ClusterData[], config: ClusterConfig) => VectorLayer<Cluster<Feature<Point, {
|
|
295
|
+
[x: string]: any;
|
|
296
|
+
}>>, Feature<ol_geom.Geometry, {
|
|
297
|
+
[x: string]: any;
|
|
298
|
+
}>>;
|
|
264
299
|
|
|
265
|
-
export { type ClusterConfig, type ClusterData, type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type HzsyType, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, type WorldLayerType, type ZheJiangType, activeFeatureByUid, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createClusterLayer, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, createZheJiangLayer, disposeMap, emitter, getLayerByName, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, removeOverlays, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByCoords, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
|
|
300
|
+
export { type ClusterConfig, type ClusterData, type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type HzsyType, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, type WorldLayerType, type ZheJiangType, activeFeatureByUid, addFeaturesByLayer, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createClusterLayer, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, createZheJiangLayer, disposeMap, emitter, getLayerByName, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, removeOverlays, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByCoords, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
|
package/dist/index.js
CHANGED
|
@@ -70,13 +70,7 @@ import VectorSource from "ol/source/Vector";
|
|
|
70
70
|
import { Point } from "ol/geom";
|
|
71
71
|
import { singleClick } from "ol/events/condition";
|
|
72
72
|
import { boundingExtent, getCenter } from "ol/extent";
|
|
73
|
-
import {
|
|
74
|
-
Icon,
|
|
75
|
-
Text,
|
|
76
|
-
Fill,
|
|
77
|
-
Style,
|
|
78
|
-
Stroke
|
|
79
|
-
} from "ol/style";
|
|
73
|
+
import { Icon, Text, Fill, Style, Stroke } from "ol/style";
|
|
80
74
|
var removeOverlays = (key = "") => {
|
|
81
75
|
if (instance) {
|
|
82
76
|
const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
|
|
@@ -446,8 +440,8 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
446
440
|
vectorLayer.set("_selectInteraction", interaction);
|
|
447
441
|
return interaction;
|
|
448
442
|
};
|
|
449
|
-
var
|
|
450
|
-
|
|
443
|
+
var createFeatures = (dataList, styleList = []) => {
|
|
444
|
+
return dataList.map((item) => {
|
|
451
445
|
const { crsForm } = item;
|
|
452
446
|
const coord = gcoord.transform(
|
|
453
447
|
[+item.lnglat[0], +item.lnglat[1]],
|
|
@@ -464,10 +458,21 @@ var createMassMarksLayer = (dataList, styleList = []) => {
|
|
|
464
458
|
feature.setStyle(styleList[item.style]);
|
|
465
459
|
return feature;
|
|
466
460
|
});
|
|
461
|
+
};
|
|
462
|
+
var addFeaturesByLayer = (targetLayer, dataList, config) => {
|
|
463
|
+
const massMarksStyles = targetLayer.get("_massMarksStyles");
|
|
464
|
+
const targetSource = targetLayer == null ? void 0 : targetLayer.getSource();
|
|
465
|
+
const { clear } = config;
|
|
466
|
+
if (clear) {
|
|
467
|
+
targetSource == null ? void 0 : targetSource.clear();
|
|
468
|
+
}
|
|
469
|
+
targetSource == null ? void 0 : targetSource.addFeatures(createFeatures(dataList, massMarksStyles));
|
|
470
|
+
};
|
|
471
|
+
var createMassMarksLayer = (dataList, styleList = []) => {
|
|
467
472
|
const vectorLayer = new VectorLayer({
|
|
468
473
|
zIndex: 2e3,
|
|
469
474
|
source: new VectorSource({
|
|
470
|
-
features
|
|
475
|
+
features: createFeatures(dataList, styleList)
|
|
471
476
|
})
|
|
472
477
|
});
|
|
473
478
|
vectorLayer.setProperties({
|
|
@@ -556,7 +561,8 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
556
561
|
className: layerName,
|
|
557
562
|
_layerName: layerName,
|
|
558
563
|
_isVectorLayer: true,
|
|
559
|
-
_isDynamic: isDynamic
|
|
564
|
+
_isDynamic: isDynamic,
|
|
565
|
+
_massMarksStyles: massMarksStyles
|
|
560
566
|
});
|
|
561
567
|
instance.addLayer(massMarksLayer);
|
|
562
568
|
return massMarksLayer;
|
|
@@ -936,8 +942,8 @@ var getLayersDataList = () => {
|
|
|
936
942
|
};
|
|
937
943
|
var determineGeometryType = (coordinates) => {
|
|
938
944
|
const getArrayDepth = (arr) => {
|
|
939
|
-
if (!Array.isArray(arr)) return 0;
|
|
940
|
-
return 1 +
|
|
945
|
+
if (!Array.isArray(arr) || arr.length === 0) return 0;
|
|
946
|
+
return 1 + getArrayDepth(arr[0]);
|
|
941
947
|
};
|
|
942
948
|
const isClosedRing = (coords) => {
|
|
943
949
|
if (!Array.isArray(coords) || coords.length < 3) return false;
|
|
@@ -1034,6 +1040,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(null, null, function* (
|
|
|
1034
1040
|
export {
|
|
1035
1041
|
GeometryType,
|
|
1036
1042
|
activeFeatureByUid,
|
|
1043
|
+
addFeaturesByLayer,
|
|
1037
1044
|
addMassMarksLayer,
|
|
1038
1045
|
appendFeaturesByLayer,
|
|
1039
1046
|
buildMassMarksStyles,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "map-ol-utils",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.28",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Openlayers utils library",
|
|
6
6
|
"files": [
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"gcoord": "^1.0.7",
|
|
29
29
|
"mitt": "^3.0.1",
|
|
30
|
-
"ol": "^10.
|
|
30
|
+
"ol": "^10.9.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"ol": ">=10.5.0"
|