map-ol-utils 0.0.31 → 0.0.33

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,26 +165,52 @@ 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
- var createVectorStyle = (data, config) => {
174
+ var createVectorStyle = (feature, config) => {
172
175
  const {
173
176
  isLine,
174
177
  colorMap,
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 data = feature.getProperties();
189
+ const activeStyle = new import_style.Style({
182
190
  stroke: new import_style.Stroke({
183
- width: strokeWeight,
191
+ width: activeStrokeWeight || strokeWeight || 4,
192
+ color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
193
+ })
194
+ });
195
+ const unActiveStyle = new import_style.Style({
196
+ stroke: new import_style.Stroke({
197
+ width: strokeWeight || 2,
184
198
  color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
185
199
  })
186
200
  });
187
201
  if (!isLine) {
188
- style.setFill(
202
+ activeStyle.setFill(
203
+ new import_style.Fill({
204
+ color: hexToRgba(
205
+ activeFillColor || fillColor || "",
206
+ activeFillOpacity || 1
207
+ ) || hexToRgba(
208
+ (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
209
+ fillOpacity || 1
210
+ )
211
+ })
212
+ );
213
+ unActiveStyle.setFill(
189
214
  new import_style.Fill({
190
215
  color: hexToRgba(
191
216
  (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
@@ -194,24 +219,36 @@ var createVectorStyle = (data, config) => {
194
219
  })
195
220
  );
196
221
  }
197
- return style;
222
+ feature.setProperties(
223
+ Object.assign(data, {
224
+ activeStyle,
225
+ unActiveStyle
226
+ })
227
+ );
228
+ return unActiveStyle;
198
229
  };
199
230
  var createBusinessLayer = (dataList, config) => {
200
- const { layerName } = config;
231
+ const { layerName, openClick } = config;
201
232
  const geoJson = assembleGeoJson(dataList, config);
202
233
  const vectorLayer = new import_Vector.default({
203
234
  zIndex: 5,
204
235
  className: layerName ? layerName : "ol-layer",
205
236
  source: new import_Vector2.default({
206
237
  features: new import_format.GeoJSON().readFeatures(geoJson).map((feature) => {
207
- feature.setStyle(createVectorStyle(feature.getProperties(), config));
238
+ feature.setStyle(createVectorStyle(feature, config));
208
239
  return feature;
209
240
  })
210
241
  })
211
242
  });
243
+ if (openClick) {
244
+ createSelectByLayer(vectorLayer);
245
+ }
212
246
  vectorLayer.setProperties({
247
+ _isCustom: true,
248
+ _isVectorLayer: true,
213
249
  _layerName: layerName,
214
- _dataList: [...dataList]
250
+ _dataList: [...dataList],
251
+ _uuidSet: new Set(dataList.map((item) => item._uuid) || [])
215
252
  });
216
253
  return vectorLayer;
217
254
  };
@@ -228,10 +265,10 @@ var removeAllLayers = (isClearAll = true) => {
228
265
  });
229
266
  }
230
267
  };
231
- var resetActiveMarker = () => {
268
+ var resetActiveFeature = () => {
232
269
  removeOverlays();
233
- const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
234
- massMarksLayers.forEach((layer) => {
270
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
271
+ targetLayers.forEach((layer) => {
235
272
  const selectInteraction = layer.get("_selectInteraction");
236
273
  if (selectInteraction) {
237
274
  selectInteraction.dispatchEvent({
@@ -244,11 +281,11 @@ var resetActiveMarker = () => {
244
281
  }
245
282
  });
246
283
  };
247
- var activeMarkerByUid = (uid) => {
284
+ var activeFeatureByUid = (uid) => {
248
285
  var _a;
249
- const massMarksLayers = instance.getLayers().getArray().filter((layer) => layer.get("_isMassMarksLayer"));
250
- if (massMarksLayers.length) {
251
- const targetLayer = massMarksLayers.find(
286
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
287
+ if (targetLayers.length) {
288
+ const targetLayer = targetLayers.find(
252
289
  (layer) => layer.get("_uuidSet").has(uid)
253
290
  );
254
291
  if (targetLayer) {
@@ -338,7 +375,7 @@ var createSelectByLayer = (vectorLayer) => {
338
375
  const { activeStyle } = data;
339
376
  feature.setStyle(activeStyle);
340
377
  if (mapBrowserEvent) {
341
- emitter_default.emit("select-marker", data);
378
+ emitter_default.emit("selected-feature", data);
342
379
  }
343
380
  vectorLayer.set("_hasActive", true);
344
381
  if (vectorLayer.get("_isDynamic")) {
@@ -358,8 +395,8 @@ var createSelectByLayer = (vectorLayer) => {
358
395
  const view = instance.getView();
359
396
  view.animate({
360
397
  zoom: 12,
361
- center: [+data.lnglat[0], +data.lnglat[1]],
362
- duration: 1e3
398
+ duration: 1e3,
399
+ center: (0, import_extent.getCenter)(feature.getGeometry().getExtent())
363
400
  });
364
401
  }
365
402
  if (deselected.length) {
@@ -393,6 +430,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
393
430
  });
394
431
  vectorLayer.setProperties({
395
432
  _isCustom: true,
433
+ _isVectorLayer: true,
396
434
  _isMassMarksLayer: true,
397
435
  _statusNum: styleList.length / 2,
398
436
  _dataList: [...dataList],
@@ -429,6 +467,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
429
467
  vectorConfig || {
430
468
  key: "line",
431
469
  isLine: true,
470
+ openClick: false,
432
471
  strokeColor: "rgba(29, 235, 255, 0.8)"
433
472
  }
434
473
  );
@@ -440,8 +479,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
440
479
  vectorConfig || {
441
480
  isLine: false,
442
481
  key: "faceList",
443
- fillColor: "#4247DF",
444
482
  strokeWeight: 1,
483
+ openClick: false,
484
+ fillColor: "#4247DF",
445
485
  strokeStyle: "dashed",
446
486
  strokeColor: "#4247DF"
447
487
  }
@@ -452,6 +492,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
452
492
  _isCustom: true,
453
493
  _hasLine: hasLine,
454
494
  _hasFace: hasFace,
495
+ _isVectorLayer: true,
455
496
  _isDynamic: isDynamic
456
497
  });
457
498
  instance.addLayer(massMarksLayer);
@@ -459,7 +500,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
459
500
  };
460
501
  };
461
502
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
462
- console.log(checkedStatusList);
503
+ const hideStyle = new import_style.Style({});
504
+ const tempList = [];
505
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
506
+ targetLayers.forEach((layer) => {
507
+ const features = layer.getSource().getFeatures();
508
+ features.forEach((feature) => {
509
+ const data = feature.getProperties();
510
+ if (!checkedStatusList.includes(data.status)) {
511
+ feature.setStyle(hideStyle);
512
+ } else {
513
+ tempList.push(data);
514
+ feature.setStyle(data.unActiveStyle);
515
+ }
516
+ });
517
+ });
518
+ return tempList;
463
519
  };
464
520
 
465
521
  // src/create-map.ts
@@ -740,7 +796,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
740
796
  });
741
797
  // Annotate the CommonJS export names for ESM import in node:
742
798
  0 && (module.exports = {
743
- activeMarkerByUid,
799
+ activeFeatureByUid,
744
800
  addMassMarksLayer,
745
801
  buildMassMarksStyles,
746
802
  createAnimationMarker,
@@ -759,7 +815,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
759
815
  getMapInstance,
760
816
  instance,
761
817
  removeAllLayers,
762
- resetActiveMarker,
818
+ resetActiveFeature,
763
819
  resetActiveVector,
764
820
  resetMap,
765
821
  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,26 +109,52 @@ 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
- var createVectorStyle = (data, config) => {
118
+ var createVectorStyle = (feature, config) => {
116
119
  const {
117
120
  isLine,
118
121
  colorMap,
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 data = feature.getProperties();
133
+ const activeStyle = new Style({
126
134
  stroke: new Stroke({
127
- width: strokeWeight,
135
+ width: activeStrokeWeight || strokeWeight || 4,
136
+ color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
137
+ })
138
+ });
139
+ const unActiveStyle = new Style({
140
+ stroke: new Stroke({
141
+ width: strokeWeight || 2,
128
142
  color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
129
143
  })
130
144
  });
131
145
  if (!isLine) {
132
- style.setFill(
146
+ activeStyle.setFill(
147
+ new Fill({
148
+ color: hexToRgba(
149
+ activeFillColor || fillColor || "",
150
+ activeFillOpacity || 1
151
+ ) || hexToRgba(
152
+ (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
153
+ fillOpacity || 1
154
+ )
155
+ })
156
+ );
157
+ unActiveStyle.setFill(
133
158
  new Fill({
134
159
  color: hexToRgba(
135
160
  (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
@@ -138,24 +163,36 @@ var createVectorStyle = (data, config) => {
138
163
  })
139
164
  );
140
165
  }
141
- return style;
166
+ feature.setProperties(
167
+ Object.assign(data, {
168
+ activeStyle,
169
+ unActiveStyle
170
+ })
171
+ );
172
+ return unActiveStyle;
142
173
  };
143
174
  var createBusinessLayer = (dataList, config) => {
144
- const { layerName } = config;
175
+ const { layerName, openClick } = config;
145
176
  const geoJson = assembleGeoJson(dataList, config);
146
177
  const vectorLayer = new VectorLayer({
147
178
  zIndex: 5,
148
179
  className: layerName ? layerName : "ol-layer",
149
180
  source: new VectorSource({
150
181
  features: new GeoJSON().readFeatures(geoJson).map((feature) => {
151
- feature.setStyle(createVectorStyle(feature.getProperties(), config));
182
+ feature.setStyle(createVectorStyle(feature, config));
152
183
  return feature;
153
184
  })
154
185
  })
155
186
  });
187
+ if (openClick) {
188
+ createSelectByLayer(vectorLayer);
189
+ }
156
190
  vectorLayer.setProperties({
191
+ _isCustom: true,
192
+ _isVectorLayer: true,
157
193
  _layerName: layerName,
158
- _dataList: [...dataList]
194
+ _dataList: [...dataList],
195
+ _uuidSet: new Set(dataList.map((item) => item._uuid) || [])
159
196
  });
160
197
  return vectorLayer;
161
198
  };
@@ -172,10 +209,10 @@ var removeAllLayers = (isClearAll = true) => {
172
209
  });
173
210
  }
174
211
  };
175
- var resetActiveMarker = () => {
212
+ var resetActiveFeature = () => {
176
213
  removeOverlays();
177
- const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
178
- massMarksLayers.forEach((layer) => {
214
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
215
+ targetLayers.forEach((layer) => {
179
216
  const selectInteraction = layer.get("_selectInteraction");
180
217
  if (selectInteraction) {
181
218
  selectInteraction.dispatchEvent({
@@ -188,11 +225,11 @@ var resetActiveMarker = () => {
188
225
  }
189
226
  });
190
227
  };
191
- var activeMarkerByUid = (uid) => {
228
+ var activeFeatureByUid = (uid) => {
192
229
  var _a;
193
- const massMarksLayers = instance.getLayers().getArray().filter((layer) => layer.get("_isMassMarksLayer"));
194
- if (massMarksLayers.length) {
195
- const targetLayer = massMarksLayers.find(
230
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
231
+ if (targetLayers.length) {
232
+ const targetLayer = targetLayers.find(
196
233
  (layer) => layer.get("_uuidSet").has(uid)
197
234
  );
198
235
  if (targetLayer) {
@@ -282,7 +319,7 @@ var createSelectByLayer = (vectorLayer) => {
282
319
  const { activeStyle } = data;
283
320
  feature.setStyle(activeStyle);
284
321
  if (mapBrowserEvent) {
285
- emitter_default.emit("select-marker", data);
322
+ emitter_default.emit("selected-feature", data);
286
323
  }
287
324
  vectorLayer.set("_hasActive", true);
288
325
  if (vectorLayer.get("_isDynamic")) {
@@ -302,8 +339,8 @@ var createSelectByLayer = (vectorLayer) => {
302
339
  const view = instance.getView();
303
340
  view.animate({
304
341
  zoom: 12,
305
- center: [+data.lnglat[0], +data.lnglat[1]],
306
- duration: 1e3
342
+ duration: 1e3,
343
+ center: getCenter(feature.getGeometry().getExtent())
307
344
  });
308
345
  }
309
346
  if (deselected.length) {
@@ -337,6 +374,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
337
374
  });
338
375
  vectorLayer.setProperties({
339
376
  _isCustom: true,
377
+ _isVectorLayer: true,
340
378
  _isMassMarksLayer: true,
341
379
  _statusNum: styleList.length / 2,
342
380
  _dataList: [...dataList],
@@ -373,6 +411,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
373
411
  vectorConfig || {
374
412
  key: "line",
375
413
  isLine: true,
414
+ openClick: false,
376
415
  strokeColor: "rgba(29, 235, 255, 0.8)"
377
416
  }
378
417
  );
@@ -384,8 +423,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
384
423
  vectorConfig || {
385
424
  isLine: false,
386
425
  key: "faceList",
387
- fillColor: "#4247DF",
388
426
  strokeWeight: 1,
427
+ openClick: false,
428
+ fillColor: "#4247DF",
389
429
  strokeStyle: "dashed",
390
430
  strokeColor: "#4247DF"
391
431
  }
@@ -396,6 +436,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
396
436
  _isCustom: true,
397
437
  _hasLine: hasLine,
398
438
  _hasFace: hasFace,
439
+ _isVectorLayer: true,
399
440
  _isDynamic: isDynamic
400
441
  });
401
442
  instance.addLayer(massMarksLayer);
@@ -403,7 +444,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
403
444
  };
404
445
  };
405
446
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
406
- console.log(checkedStatusList);
447
+ const hideStyle = new Style({});
448
+ const tempList = [];
449
+ const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
450
+ targetLayers.forEach((layer) => {
451
+ const features = layer.getSource().getFeatures();
452
+ features.forEach((feature) => {
453
+ const data = feature.getProperties();
454
+ if (!checkedStatusList.includes(data.status)) {
455
+ feature.setStyle(hideStyle);
456
+ } else {
457
+ tempList.push(data);
458
+ feature.setStyle(data.unActiveStyle);
459
+ }
460
+ });
461
+ });
462
+ return tempList;
407
463
  };
408
464
 
409
465
  // src/create-map.ts
@@ -683,7 +739,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
683
739
  });
684
740
  });
685
741
  export {
686
- activeMarkerByUid,
742
+ activeFeatureByUid,
687
743
  addMassMarksLayer,
688
744
  buildMassMarksStyles,
689
745
  createAnimationMarker,
@@ -702,7 +758,7 @@ export {
702
758
  getMapInstance,
703
759
  instance,
704
760
  removeAllLayers,
705
- resetActiveMarker,
761
+ resetActiveFeature,
706
762
  resetActiveVector,
707
763
  resetMap,
708
764
  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.33",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [