map-ol-utils 0.0.31 → 0.0.32

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/dist/index.cjs CHANGED
@@ -67,7 +67,7 @@ var __async = (__this, __arguments, generator) => {
67
67
  // src/index.ts
68
68
  var index_exports = {};
69
69
  __export(index_exports, {
70
- activeMarkerByUid: () => activeMarkerByUid,
70
+ activeFeatureByUid: () => activeFeatureByUid,
71
71
  addMassMarksLayer: () => addMassMarksLayer,
72
72
  buildMassMarksStyles: () => buildMassMarksStyles,
73
73
  createAnimationMarker: () => createAnimationMarker,
@@ -86,7 +86,7 @@ __export(index_exports, {
86
86
  getMapInstance: () => getMapInstance,
87
87
  instance: () => instance,
88
88
  removeAllLayers: () => removeAllLayers,
89
- resetActiveMarker: () => resetActiveMarker,
89
+ resetActiveFeature: () => resetActiveFeature,
90
90
  resetActiveVector: () => resetActiveVector,
91
91
  resetMap: () => resetMap,
92
92
  resetZoomAndCenter: () => resetZoomAndCenter,
@@ -108,6 +108,7 @@ var import_control = require("ol/control");
108
108
  var import_gcoord = __toESM(require("gcoord"), 1);
109
109
  var import_geom = require("ol/geom");
110
110
  var import_format = require("ol/format");
111
+ var import_extent = require("ol/extent");
111
112
  var import_ol = require("ol");
112
113
  var import_interaction = require("ol/interaction");
113
114
  var import_Vector = __toESM(require("ol/layer/Vector"), 1);
@@ -138,12 +139,10 @@ var createAnimationMarker = (imgUrl, data) => {
138
139
  };
139
140
  var resetActiveVector = () => {
140
141
  removeOverlays();
141
- const layers = instance.getLayers().getArray();
142
+ const layers = instance.getAllLayers();
142
143
  layers.forEach((layer) => {
143
144
  const interaction = layer.get("_selectInteraction");
144
- if (interaction) {
145
- interaction.getFeatures().clear();
146
- }
145
+ interaction == null ? void 0 : interaction.getFeatures().clear();
147
146
  });
148
147
  };
149
148
  var assembleGeoJson = (dataList, config) => {
@@ -166,7 +165,11 @@ var assembleGeoJson = (dataList, config) => {
166
165
  console.error(`\u521B\u5EFA\u7EBF\u72B6\u6570\u636E\u5931\u8D25\uFF1A${e}`);
167
166
  }
168
167
  });
169
- return !needTransform ? { type: "FeatureCollection", features: tempList } : import_gcoord.default.transform({ type: "FeatureCollection", features: tempList }, import_gcoord.default.GCJ02, import_gcoord.default.WGS84);
168
+ return !needTransform ? { type: "FeatureCollection", features: tempList } : import_gcoord.default.transform(
169
+ { type: "FeatureCollection", features: tempList },
170
+ import_gcoord.default.GCJ02,
171
+ import_gcoord.default.WGS84
172
+ );
170
173
  };
171
174
  var createVectorStyle = (data, config) => {
172
175
  const {
@@ -175,17 +178,38 @@ var createVectorStyle = (data, config) => {
175
178
  fillColor,
176
179
  colorKey,
177
180
  strokeColor,
181
+ fillOpacity,
178
182
  strokeWeight,
179
- fillOpacity
183
+ activeFillColor,
184
+ activeFillOpacity,
185
+ activeStrokeColor,
186
+ activeStrokeWeight
180
187
  } = config || {};
181
- const style = new import_style.Style({
188
+ const activeStyle = new import_style.Style({
182
189
  stroke: new import_style.Stroke({
183
- width: strokeWeight,
190
+ width: activeStrokeWeight || strokeWeight || 4,
191
+ color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
192
+ })
193
+ });
194
+ const unActiveStyle = new import_style.Style({
195
+ stroke: new import_style.Stroke({
196
+ width: strokeWeight || 2,
184
197
  color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
185
198
  })
186
199
  });
187
200
  if (!isLine) {
188
- style.setFill(
201
+ activeStyle.setFill(
202
+ new import_style.Fill({
203
+ color: hexToRgba(
204
+ activeFillColor || fillColor || "",
205
+ activeFillOpacity || 1
206
+ ) || hexToRgba(
207
+ (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
208
+ fillOpacity || 1
209
+ )
210
+ })
211
+ );
212
+ unActiveStyle.setFill(
189
213
  new import_style.Fill({
190
214
  color: hexToRgba(
191
215
  (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
@@ -194,10 +218,14 @@ var createVectorStyle = (data, config) => {
194
218
  })
195
219
  );
196
220
  }
197
- return style;
221
+ Object.assign(data, {
222
+ activeStyle,
223
+ unActiveStyle
224
+ });
225
+ return unActiveStyle;
198
226
  };
199
227
  var createBusinessLayer = (dataList, config) => {
200
- const { layerName } = config;
228
+ const { layerName, openClick } = config;
201
229
  const geoJson = assembleGeoJson(dataList, config);
202
230
  const vectorLayer = new import_Vector.default({
203
231
  zIndex: 5,
@@ -209,9 +237,15 @@ var createBusinessLayer = (dataList, config) => {
209
237
  })
210
238
  })
211
239
  });
240
+ if (openClick) {
241
+ createSelectByLayer(vectorLayer);
242
+ }
212
243
  vectorLayer.setProperties({
244
+ _isCustom: true,
245
+ _isVectorLayer: true,
213
246
  _layerName: layerName,
214
- _dataList: [...dataList]
247
+ _dataList: [...dataList],
248
+ _uuidSet: new Set(dataList.map((item) => item._uuid) || [])
215
249
  });
216
250
  return vectorLayer;
217
251
  };
@@ -228,9 +262,9 @@ var removeAllLayers = (isClearAll = true) => {
228
262
  });
229
263
  }
230
264
  };
231
- var resetActiveMarker = () => {
265
+ var resetActiveFeature = () => {
232
266
  removeOverlays();
233
- const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
267
+ const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
234
268
  massMarksLayers.forEach((layer) => {
235
269
  const selectInteraction = layer.get("_selectInteraction");
236
270
  if (selectInteraction) {
@@ -244,11 +278,11 @@ var resetActiveMarker = () => {
244
278
  }
245
279
  });
246
280
  };
247
- var activeMarkerByUid = (uid) => {
281
+ var activeFeatureByUid = (uid) => {
248
282
  var _a;
249
- const massMarksLayers = instance.getLayers().getArray().filter((layer) => layer.get("_isMassMarksLayer"));
250
- if (massMarksLayers.length) {
251
- const targetLayer = massMarksLayers.find(
283
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
284
+ if (targetLayers.length) {
285
+ const targetLayer = targetLayers.find(
252
286
  (layer) => layer.get("_uuidSet").has(uid)
253
287
  );
254
288
  if (targetLayer) {
@@ -338,7 +372,7 @@ var createSelectByLayer = (vectorLayer) => {
338
372
  const { activeStyle } = data;
339
373
  feature.setStyle(activeStyle);
340
374
  if (mapBrowserEvent) {
341
- emitter_default.emit("select-marker", data);
375
+ emitter_default.emit("selected-feature", data);
342
376
  }
343
377
  vectorLayer.set("_hasActive", true);
344
378
  if (vectorLayer.get("_isDynamic")) {
@@ -358,8 +392,8 @@ var createSelectByLayer = (vectorLayer) => {
358
392
  const view = instance.getView();
359
393
  view.animate({
360
394
  zoom: 12,
361
- center: [+data.lnglat[0], +data.lnglat[1]],
362
- duration: 1e3
395
+ duration: 1e3,
396
+ center: (0, import_extent.getCenter)(feature.getGeometry().getExtent())
363
397
  });
364
398
  }
365
399
  if (deselected.length) {
@@ -393,6 +427,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
393
427
  });
394
428
  vectorLayer.setProperties({
395
429
  _isCustom: true,
430
+ _isVectorLayer: true,
396
431
  _isMassMarksLayer: true,
397
432
  _statusNum: styleList.length / 2,
398
433
  _dataList: [...dataList],
@@ -429,6 +464,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
429
464
  vectorConfig || {
430
465
  key: "line",
431
466
  isLine: true,
467
+ openClick: false,
432
468
  strokeColor: "rgba(29, 235, 255, 0.8)"
433
469
  }
434
470
  );
@@ -440,8 +476,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
440
476
  vectorConfig || {
441
477
  isLine: false,
442
478
  key: "faceList",
443
- fillColor: "#4247DF",
444
479
  strokeWeight: 1,
480
+ openClick: false,
481
+ fillColor: "#4247DF",
445
482
  strokeStyle: "dashed",
446
483
  strokeColor: "#4247DF"
447
484
  }
@@ -452,6 +489,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
452
489
  _isCustom: true,
453
490
  _hasLine: hasLine,
454
491
  _hasFace: hasFace,
492
+ _isVectorLayer: true,
455
493
  _isDynamic: isDynamic
456
494
  });
457
495
  instance.addLayer(massMarksLayer);
@@ -459,7 +497,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
459
497
  };
460
498
  };
461
499
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
462
- console.log(checkedStatusList);
500
+ const hideStyle = new import_style.Style({});
501
+ const tempList = [];
502
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
503
+ targetLayers.forEach((layer) => {
504
+ const features = layer.getSource().getFeatures();
505
+ features.forEach((feature) => {
506
+ const data = feature.getProperties();
507
+ if (!checkedStatusList.includes(data.status)) {
508
+ feature.setStyle(hideStyle);
509
+ } else {
510
+ tempList.push(data);
511
+ feature.setStyle(data.unActiveStyle);
512
+ }
513
+ });
514
+ });
515
+ return tempList;
463
516
  };
464
517
 
465
518
  // src/create-map.ts
@@ -740,7 +793,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
740
793
  });
741
794
  // Annotate the CommonJS export names for ESM import in node:
742
795
  0 && (module.exports = {
743
- activeMarkerByUid,
796
+ activeFeatureByUid,
744
797
  addMassMarksLayer,
745
798
  buildMassMarksStyles,
746
799
  createAnimationMarker,
@@ -759,7 +812,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
759
812
  getMapInstance,
760
813
  instance,
761
814
  removeAllLayers,
762
- resetActiveMarker,
815
+ resetActiveFeature,
763
816
  resetActiveVector,
764
817
  resetMap,
765
818
  resetZoomAndCenter,
package/dist/index.d.cts CHANGED
@@ -33,6 +33,10 @@ type VectorConfig = {
33
33
  strokeStyle?: string;
34
34
  strokeWeight?: number;
35
35
  needTransform?: boolean;
36
+ activeFillColor?: string;
37
+ activeStrokeColor?: string;
38
+ activeFillOpacity?: number;
39
+ activeStrokeWeight?: number;
36
40
  colorMap?: Map<string, string>;
37
41
  };
38
42
  type IconConfig = {
@@ -109,33 +113,33 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
109
113
  * 重置激活的矢量数据
110
114
  */
111
115
  declare const resetActiveVector: () => void;
112
- declare const createBusinessLayer: (dataList: any, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
116
+ declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
113
117
  /**
114
118
  * 创建面状数据
115
119
  * @param dataList
116
120
  * @param config
117
121
  */
118
- declare const createVectorFaceLayer: (dataList: never[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
122
+ declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
119
123
  /**
120
124
  * 创建矢量线图层
121
125
  * @param dataList
122
126
  * @param config
123
127
  */
124
- declare const createVectorLineLayer: (dataList: any[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
128
+ declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
125
129
  /**
126
130
  * 移除覆盖物已经自定义图层
127
131
  * @param isClearAll
128
132
  */
129
133
  declare const removeAllLayers: (isClearAll?: boolean) => void;
130
134
  /**
131
- * 重置激活Marker
135
+ * 重置激活Feature
132
136
  */
133
- declare const resetActiveMarker: () => void;
137
+ declare const resetActiveFeature: () => void;
134
138
  /**
135
- * 激活标注点
139
+ * 激活要素
136
140
  * @param uid
137
141
  */
138
- declare const activeMarkerByUid: (uid: string) => void;
142
+ declare const activeFeatureByUid: (uid: string) => void;
139
143
  /**
140
144
  * 构建MassMarks样式数组
141
145
  */
@@ -160,6 +164,6 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
160
164
  * 更新图层根据选中状态列表
161
165
  * @param checkedStatusList
162
166
  */
163
- declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
167
+ declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
164
168
 
165
- export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
169
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
package/dist/index.d.ts CHANGED
@@ -33,6 +33,10 @@ type VectorConfig = {
33
33
  strokeStyle?: string;
34
34
  strokeWeight?: number;
35
35
  needTransform?: boolean;
36
+ activeFillColor?: string;
37
+ activeStrokeColor?: string;
38
+ activeFillOpacity?: number;
39
+ activeStrokeWeight?: number;
36
40
  colorMap?: Map<string, string>;
37
41
  };
38
42
  type IconConfig = {
@@ -109,33 +113,33 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
109
113
  * 重置激活的矢量数据
110
114
  */
111
115
  declare const resetActiveVector: () => void;
112
- declare const createBusinessLayer: (dataList: any, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
116
+ declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
113
117
  /**
114
118
  * 创建面状数据
115
119
  * @param dataList
116
120
  * @param config
117
121
  */
118
- declare const createVectorFaceLayer: (dataList: never[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
122
+ declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
119
123
  /**
120
124
  * 创建矢量线图层
121
125
  * @param dataList
122
126
  * @param config
123
127
  */
124
- declare const createVectorLineLayer: (dataList: any[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
128
+ declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
125
129
  /**
126
130
  * 移除覆盖物已经自定义图层
127
131
  * @param isClearAll
128
132
  */
129
133
  declare const removeAllLayers: (isClearAll?: boolean) => void;
130
134
  /**
131
- * 重置激活Marker
135
+ * 重置激活Feature
132
136
  */
133
- declare const resetActiveMarker: () => void;
137
+ declare const resetActiveFeature: () => void;
134
138
  /**
135
- * 激活标注点
139
+ * 激活要素
136
140
  * @param uid
137
141
  */
138
- declare const activeMarkerByUid: (uid: string) => void;
142
+ declare const activeFeatureByUid: (uid: string) => void;
139
143
  /**
140
144
  * 构建MassMarks样式数组
141
145
  */
@@ -160,6 +164,6 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
160
164
  * 更新图层根据选中状态列表
161
165
  * @param checkedStatusList
162
166
  */
163
- declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
167
+ declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
164
168
 
165
- export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
169
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
package/dist/index.js CHANGED
@@ -52,6 +52,7 @@ import { defaults } from "ol/control";
52
52
  import gcoord from "gcoord";
53
53
  import { Point } from "ol/geom";
54
54
  import { GeoJSON } from "ol/format";
55
+ import { getCenter } from "ol/extent";
55
56
  import { Feature, Overlay } from "ol";
56
57
  import { Select } from "ol/interaction";
57
58
  import VectorLayer from "ol/layer/Vector";
@@ -82,12 +83,10 @@ var createAnimationMarker = (imgUrl, data) => {
82
83
  };
83
84
  var resetActiveVector = () => {
84
85
  removeOverlays();
85
- const layers = instance.getLayers().getArray();
86
+ const layers = instance.getAllLayers();
86
87
  layers.forEach((layer) => {
87
88
  const interaction = layer.get("_selectInteraction");
88
- if (interaction) {
89
- interaction.getFeatures().clear();
90
- }
89
+ interaction == null ? void 0 : interaction.getFeatures().clear();
91
90
  });
92
91
  };
93
92
  var assembleGeoJson = (dataList, config) => {
@@ -110,7 +109,11 @@ var assembleGeoJson = (dataList, config) => {
110
109
  console.error(`\u521B\u5EFA\u7EBF\u72B6\u6570\u636E\u5931\u8D25\uFF1A${e}`);
111
110
  }
112
111
  });
113
- return !needTransform ? { type: "FeatureCollection", features: tempList } : gcoord.transform({ type: "FeatureCollection", features: tempList }, gcoord.GCJ02, gcoord.WGS84);
112
+ return !needTransform ? { type: "FeatureCollection", features: tempList } : gcoord.transform(
113
+ { type: "FeatureCollection", features: tempList },
114
+ gcoord.GCJ02,
115
+ gcoord.WGS84
116
+ );
114
117
  };
115
118
  var createVectorStyle = (data, config) => {
116
119
  const {
@@ -119,17 +122,38 @@ var createVectorStyle = (data, config) => {
119
122
  fillColor,
120
123
  colorKey,
121
124
  strokeColor,
125
+ fillOpacity,
122
126
  strokeWeight,
123
- fillOpacity
127
+ activeFillColor,
128
+ activeFillOpacity,
129
+ activeStrokeColor,
130
+ activeStrokeWeight
124
131
  } = config || {};
125
- const style = new Style({
132
+ const activeStyle = new Style({
126
133
  stroke: new Stroke({
127
- width: strokeWeight,
134
+ width: activeStrokeWeight || strokeWeight || 4,
135
+ color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
136
+ })
137
+ });
138
+ const unActiveStyle = new Style({
139
+ stroke: new Stroke({
140
+ width: strokeWeight || 2,
128
141
  color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
129
142
  })
130
143
  });
131
144
  if (!isLine) {
132
- style.setFill(
145
+ activeStyle.setFill(
146
+ new Fill({
147
+ color: hexToRgba(
148
+ activeFillColor || fillColor || "",
149
+ activeFillOpacity || 1
150
+ ) || hexToRgba(
151
+ (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
152
+ fillOpacity || 1
153
+ )
154
+ })
155
+ );
156
+ unActiveStyle.setFill(
133
157
  new Fill({
134
158
  color: hexToRgba(
135
159
  (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
@@ -138,10 +162,14 @@ var createVectorStyle = (data, config) => {
138
162
  })
139
163
  );
140
164
  }
141
- return style;
165
+ Object.assign(data, {
166
+ activeStyle,
167
+ unActiveStyle
168
+ });
169
+ return unActiveStyle;
142
170
  };
143
171
  var createBusinessLayer = (dataList, config) => {
144
- const { layerName } = config;
172
+ const { layerName, openClick } = config;
145
173
  const geoJson = assembleGeoJson(dataList, config);
146
174
  const vectorLayer = new VectorLayer({
147
175
  zIndex: 5,
@@ -153,9 +181,15 @@ var createBusinessLayer = (dataList, config) => {
153
181
  })
154
182
  })
155
183
  });
184
+ if (openClick) {
185
+ createSelectByLayer(vectorLayer);
186
+ }
156
187
  vectorLayer.setProperties({
188
+ _isCustom: true,
189
+ _isVectorLayer: true,
157
190
  _layerName: layerName,
158
- _dataList: [...dataList]
191
+ _dataList: [...dataList],
192
+ _uuidSet: new Set(dataList.map((item) => item._uuid) || [])
159
193
  });
160
194
  return vectorLayer;
161
195
  };
@@ -172,9 +206,9 @@ var removeAllLayers = (isClearAll = true) => {
172
206
  });
173
207
  }
174
208
  };
175
- var resetActiveMarker = () => {
209
+ var resetActiveFeature = () => {
176
210
  removeOverlays();
177
- const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
211
+ const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
178
212
  massMarksLayers.forEach((layer) => {
179
213
  const selectInteraction = layer.get("_selectInteraction");
180
214
  if (selectInteraction) {
@@ -188,11 +222,11 @@ var resetActiveMarker = () => {
188
222
  }
189
223
  });
190
224
  };
191
- var activeMarkerByUid = (uid) => {
225
+ var activeFeatureByUid = (uid) => {
192
226
  var _a;
193
- const massMarksLayers = instance.getLayers().getArray().filter((layer) => layer.get("_isMassMarksLayer"));
194
- if (massMarksLayers.length) {
195
- const targetLayer = massMarksLayers.find(
227
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
228
+ if (targetLayers.length) {
229
+ const targetLayer = targetLayers.find(
196
230
  (layer) => layer.get("_uuidSet").has(uid)
197
231
  );
198
232
  if (targetLayer) {
@@ -282,7 +316,7 @@ var createSelectByLayer = (vectorLayer) => {
282
316
  const { activeStyle } = data;
283
317
  feature.setStyle(activeStyle);
284
318
  if (mapBrowserEvent) {
285
- emitter_default.emit("select-marker", data);
319
+ emitter_default.emit("selected-feature", data);
286
320
  }
287
321
  vectorLayer.set("_hasActive", true);
288
322
  if (vectorLayer.get("_isDynamic")) {
@@ -302,8 +336,8 @@ var createSelectByLayer = (vectorLayer) => {
302
336
  const view = instance.getView();
303
337
  view.animate({
304
338
  zoom: 12,
305
- center: [+data.lnglat[0], +data.lnglat[1]],
306
- duration: 1e3
339
+ duration: 1e3,
340
+ center: getCenter(feature.getGeometry().getExtent())
307
341
  });
308
342
  }
309
343
  if (deselected.length) {
@@ -337,6 +371,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
337
371
  });
338
372
  vectorLayer.setProperties({
339
373
  _isCustom: true,
374
+ _isVectorLayer: true,
340
375
  _isMassMarksLayer: true,
341
376
  _statusNum: styleList.length / 2,
342
377
  _dataList: [...dataList],
@@ -373,6 +408,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
373
408
  vectorConfig || {
374
409
  key: "line",
375
410
  isLine: true,
411
+ openClick: false,
376
412
  strokeColor: "rgba(29, 235, 255, 0.8)"
377
413
  }
378
414
  );
@@ -384,8 +420,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
384
420
  vectorConfig || {
385
421
  isLine: false,
386
422
  key: "faceList",
387
- fillColor: "#4247DF",
388
423
  strokeWeight: 1,
424
+ openClick: false,
425
+ fillColor: "#4247DF",
389
426
  strokeStyle: "dashed",
390
427
  strokeColor: "#4247DF"
391
428
  }
@@ -396,6 +433,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
396
433
  _isCustom: true,
397
434
  _hasLine: hasLine,
398
435
  _hasFace: hasFace,
436
+ _isVectorLayer: true,
399
437
  _isDynamic: isDynamic
400
438
  });
401
439
  instance.addLayer(massMarksLayer);
@@ -403,7 +441,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
403
441
  };
404
442
  };
405
443
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
406
- console.log(checkedStatusList);
444
+ const hideStyle = new Style({});
445
+ const tempList = [];
446
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
447
+ targetLayers.forEach((layer) => {
448
+ const features = layer.getSource().getFeatures();
449
+ features.forEach((feature) => {
450
+ const data = feature.getProperties();
451
+ if (!checkedStatusList.includes(data.status)) {
452
+ feature.setStyle(hideStyle);
453
+ } else {
454
+ tempList.push(data);
455
+ feature.setStyle(data.unActiveStyle);
456
+ }
457
+ });
458
+ });
459
+ return tempList;
407
460
  };
408
461
 
409
462
  // src/create-map.ts
@@ -683,7 +736,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
683
736
  });
684
737
  });
685
738
  export {
686
- activeMarkerByUid,
739
+ activeFeatureByUid,
687
740
  addMassMarksLayer,
688
741
  buildMassMarksStyles,
689
742
  createAnimationMarker,
@@ -702,7 +755,7 @@ export {
702
755
  getMapInstance,
703
756
  instance,
704
757
  removeAllLayers,
705
- resetActiveMarker,
758
+ resetActiveFeature,
706
759
  resetActiveVector,
707
760
  resetMap,
708
761
  resetZoomAndCenter,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.31",
3
+ "version": "0.0.32",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [