map-ol-utils 0.0.21 → 0.0.22

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
@@ -72,7 +72,7 @@ __export(index_exports, {
72
72
  buildMassMarksStyles: () => buildMassMarksStyles,
73
73
  createAnimationMarker: () => createAnimationMarker,
74
74
  createBaseLayer: () => createBaseLayer,
75
- createGeoJsonLayer: () => createGeoJsonLayer,
75
+ createBusinessLayer: () => createBusinessLayer,
76
76
  createMapInstance: () => createMapInstance,
77
77
  createMapWorldLayer: () => createMapWorldLayer,
78
78
  createMassMarksLayer: () => createMassMarksLayer,
@@ -222,36 +222,40 @@ var assembleGeoJson = (dataList, config) => {
222
222
  });
223
223
  return { type: "FeatureCollection", features: tempList };
224
224
  };
225
- var createGeoJsonLayer = (dataList, config) => {
226
- const { isLine, layerName } = config || {};
225
+ var createVectorStyle = (data, config) => {
226
+ const { isLine, colorMap, fillColor, colorKey, strokeColor, strokeWeight } = config || {};
227
+ const style = new import_style.Style({
228
+ stroke: new import_style.Stroke({
229
+ width: strokeWeight,
230
+ color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
231
+ })
232
+ });
233
+ if (!isLine) {
234
+ style.setFill(
235
+ new import_style.Fill({
236
+ color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor
237
+ })
238
+ );
239
+ }
240
+ return style;
241
+ };
242
+ var createBusinessLayer = (dataList, config) => {
243
+ const { layerName } = config || {};
227
244
  const geoJson = assembleGeoJson(dataList, config);
228
245
  const vectorLayer = new import_Vector.default({
229
246
  className: layerName ? layerName : "ol-layer",
230
247
  source: new import_Vector2.default({
231
- features: new import_format2.GeoJSON().readFeatures(geoJson)
232
- }),
233
- style: isLine ? new import_style.Style({
234
- stroke: new import_style.Stroke({
235
- color: "red",
236
- lineDash: [10],
237
- width: 3
238
- })
239
- }) : new import_style.Style({
240
- stroke: new import_style.Stroke({
241
- color: "red",
242
- lineDash: [10],
243
- width: 3
244
- }),
245
- fill: new import_style.Fill({
246
- color: "rgba(0, 0, 255, 0.1)"
248
+ features: new import_format2.GeoJSON().readFeatures(geoJson).map((feature) => {
249
+ feature.setStyle(createVectorStyle(feature.getProperties(), config));
250
+ return feature;
247
251
  })
248
252
  })
249
253
  });
250
254
  vectorLayer.set("_layerName", layerName);
251
255
  return vectorLayer;
252
256
  };
253
- var createVectorFaceLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: false }));
254
- var createVectorLineLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: true }));
257
+ var createVectorFaceLayer = (dataList = [], config) => createBusinessLayer(dataList, Object.assign(config, { isLine: false }));
258
+ var createVectorLineLayer = (dataList = [], config) => createBusinessLayer(dataList, Object.assign(config, { isLine: true }));
255
259
  var removeAllLayers = (isClearAll = true) => {
256
260
  removeOverlays();
257
261
  console.log(isClearAll);
@@ -422,7 +426,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
422
426
  _isCustom: true,
423
427
  _isMassMarksLayer: true,
424
428
  _statusNum: styleList.length / 2,
425
- _dataList: dataList,
429
+ _dataList: [...dataList],
426
430
  _uuidSet: new Set(dataList.map((item) => item._uuid) || [])
427
431
  });
428
432
  return vectorLayer;
@@ -436,7 +440,8 @@ var addMassMarksLayer = (getImgUrlFn) => {
436
440
  isDynamic,
437
441
  statusNum,
438
442
  markerIcon,
439
- markerSize
443
+ markerSize,
444
+ vectorConfig
440
445
  } = iconConfig;
441
446
  const massMarksStyles = buildMassMarksStyles(getImgUrlFn)({
442
447
  baseUrl,
@@ -450,7 +455,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
450
455
  createSelectByLayer(massMarksLayer);
451
456
  }
452
457
  if (hasLine) {
453
- const vectorLayer = createGeoJsonLayer(dataList, {
458
+ const vectorLayer = createBusinessLayer(dataList, vectorConfig ? vectorConfig : {
454
459
  key: "line",
455
460
  isLine: true,
456
461
  strokeColor: "rgba(29, 235, 255, 0.8)"
@@ -458,10 +463,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
458
463
  instance.addLayer(vectorLayer);
459
464
  }
460
465
  if (hasFace) {
461
- const vectorLayer = createGeoJsonLayer(dataList, {
466
+ const vectorLayer = createBusinessLayer(dataList, vectorConfig ? vectorConfig : {
462
467
  isLine: false,
463
468
  key: "faceList",
464
- fillOpacity: 0.1,
465
469
  fillColor: "#4247DF",
466
470
  strokeWeight: 1,
467
471
  strokeStyle: "dashed",
@@ -686,7 +690,7 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
686
690
  buildMassMarksStyles,
687
691
  createAnimationMarker,
688
692
  createBaseLayer,
689
- createGeoJsonLayer,
693
+ createBusinessLayer,
690
694
  createMapInstance,
691
695
  createMapWorldLayer,
692
696
  createMassMarksLayer,
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { Map, Feature } from 'ol';
2
1
  import { Layer, Tile } from 'ol/layer';
2
+ import { Map as Map$1, Feature } from 'ol';
3
3
  import { Source, XYZ, WMTS } from 'ol/source';
4
4
  import { Emitter, EventType } from 'mitt';
5
5
  import TileLayer from 'ol/layer/Tile';
@@ -10,7 +10,7 @@ import VectorLayer from 'ol/layer/Vector';
10
10
  import { StyleLike } from 'ol/style/Style';
11
11
  import VectorSource from 'ol/source/Vector';
12
12
 
13
- interface CustomMap extends Map {
13
+ interface CustomMap extends Map$1 {
14
14
  activeBaseLayer?: string;
15
15
  changeBaseLayer?: () => void;
16
16
  removeLayerByName?: (name: string) => void;
@@ -19,53 +19,49 @@ interface CustomMap extends Map {
19
19
  }
20
20
  type GetImgUrl = (name: string, ext?: string) => string;
21
21
  type GetImgUrlFn = (baseUrl: string) => GetImgUrl;
22
- type LayerConfig = {
23
- zIndex?: number;
24
- visible?: boolean;
25
- minZoom?: number;
26
- maxZoom?: number;
27
- layerName: string;
28
- };
29
22
  type VectorConfig = {
30
23
  key: string;
31
24
  zIndex?: number;
32
25
  isRaw?: boolean;
33
26
  isLine: boolean;
27
+ colorKey?: string;
34
28
  layerName?: string;
35
29
  openClick?: boolean;
36
30
  fillColor?: string;
37
- fillOpacity?: number;
38
31
  strokeColor?: string;
39
32
  strokeStyle?: string;
40
33
  strokeWeight?: number;
41
- };
42
- type LineConfig = {
43
- key: string;
44
- width?: number;
45
- isRaw?: boolean;
46
- openClick?: boolean;
47
- strokeColor?: string;
48
- strokeStyle?: string;
49
- };
50
- type MassData = {
51
- style: number;
52
- _uuid?: string;
53
- width?: number;
54
- height?: number;
55
- status?: number | string | undefined;
56
- _status?: number | string | undefined;
57
- lnglat: [string, string] | [number, number];
34
+ colorMap?: Map<string, string>;
58
35
  };
59
36
  type IconConfig = {
60
37
  baseUrl: string;
61
38
  hasLine?: boolean;
62
39
  hasFace?: boolean;
63
- statusNum: number;
40
+ statusNum?: number;
64
41
  isDynamic?: boolean;
65
42
  markerIcon: string;
66
43
  activeScale?: number;
44
+ vectorConfig?: VectorConfig;
67
45
  markerSize: [number, number];
68
46
  };
47
+ type MassData = {
48
+ _uuid?: string;
49
+ id: string;
50
+ style: number;
51
+ name: string;
52
+ status: string;
53
+ width?: number;
54
+ height?: number;
55
+ itemName: string;
56
+ rawData: {
57
+ [key: string]: any;
58
+ };
59
+ imgList: {
60
+ text: string;
61
+ icon: string;
62
+ }[];
63
+ lnglat: [string, string] | [number, number];
64
+ };
69
65
  type MassMarkersStyleOptions = {
70
66
  url: string;
71
67
  zIndex?: number;
@@ -112,7 +108,7 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
112
108
  * 重置激活的矢量数据
113
109
  */
114
110
  declare const resetActiveVector: () => void;
115
- declare const createGeoJsonLayer: (dataList: any, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
111
+ declare const createBusinessLayer: (dataList: any, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
116
112
  /**
117
113
  * 创建面状数据
118
114
  * @param dataList
@@ -163,6 +159,6 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
163
159
  * 更新图层根据选中状态列表
164
160
  * @param checkedStatusList
165
161
  */
166
- declare const updateMarksLayersByStatus: (checkedStatusList?: any[]) => void;
162
+ declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
167
163
 
168
- export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, type WmtsSourceOptions, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createGeoJsonLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
164
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, type WmtsSourceOptions, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Map, Feature } from 'ol';
2
1
  import { Layer, Tile } from 'ol/layer';
2
+ import { Map as Map$1, Feature } from 'ol';
3
3
  import { Source, XYZ, WMTS } from 'ol/source';
4
4
  import { Emitter, EventType } from 'mitt';
5
5
  import TileLayer from 'ol/layer/Tile';
@@ -10,7 +10,7 @@ import VectorLayer from 'ol/layer/Vector';
10
10
  import { StyleLike } from 'ol/style/Style';
11
11
  import VectorSource from 'ol/source/Vector';
12
12
 
13
- interface CustomMap extends Map {
13
+ interface CustomMap extends Map$1 {
14
14
  activeBaseLayer?: string;
15
15
  changeBaseLayer?: () => void;
16
16
  removeLayerByName?: (name: string) => void;
@@ -19,53 +19,49 @@ interface CustomMap extends Map {
19
19
  }
20
20
  type GetImgUrl = (name: string, ext?: string) => string;
21
21
  type GetImgUrlFn = (baseUrl: string) => GetImgUrl;
22
- type LayerConfig = {
23
- zIndex?: number;
24
- visible?: boolean;
25
- minZoom?: number;
26
- maxZoom?: number;
27
- layerName: string;
28
- };
29
22
  type VectorConfig = {
30
23
  key: string;
31
24
  zIndex?: number;
32
25
  isRaw?: boolean;
33
26
  isLine: boolean;
27
+ colorKey?: string;
34
28
  layerName?: string;
35
29
  openClick?: boolean;
36
30
  fillColor?: string;
37
- fillOpacity?: number;
38
31
  strokeColor?: string;
39
32
  strokeStyle?: string;
40
33
  strokeWeight?: number;
41
- };
42
- type LineConfig = {
43
- key: string;
44
- width?: number;
45
- isRaw?: boolean;
46
- openClick?: boolean;
47
- strokeColor?: string;
48
- strokeStyle?: string;
49
- };
50
- type MassData = {
51
- style: number;
52
- _uuid?: string;
53
- width?: number;
54
- height?: number;
55
- status?: number | string | undefined;
56
- _status?: number | string | undefined;
57
- lnglat: [string, string] | [number, number];
34
+ colorMap?: Map<string, string>;
58
35
  };
59
36
  type IconConfig = {
60
37
  baseUrl: string;
61
38
  hasLine?: boolean;
62
39
  hasFace?: boolean;
63
- statusNum: number;
40
+ statusNum?: number;
64
41
  isDynamic?: boolean;
65
42
  markerIcon: string;
66
43
  activeScale?: number;
44
+ vectorConfig?: VectorConfig;
67
45
  markerSize: [number, number];
68
46
  };
47
+ type MassData = {
48
+ _uuid?: string;
49
+ id: string;
50
+ style: number;
51
+ name: string;
52
+ status: string;
53
+ width?: number;
54
+ height?: number;
55
+ itemName: string;
56
+ rawData: {
57
+ [key: string]: any;
58
+ };
59
+ imgList: {
60
+ text: string;
61
+ icon: string;
62
+ }[];
63
+ lnglat: [string, string] | [number, number];
64
+ };
69
65
  type MassMarkersStyleOptions = {
70
66
  url: string;
71
67
  zIndex?: number;
@@ -112,7 +108,7 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
112
108
  * 重置激活的矢量数据
113
109
  */
114
110
  declare const resetActiveVector: () => void;
115
- declare const createGeoJsonLayer: (dataList: any, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
111
+ declare const createBusinessLayer: (dataList: any, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
116
112
  /**
117
113
  * 创建面状数据
118
114
  * @param dataList
@@ -163,6 +159,6 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
163
159
  * 更新图层根据选中状态列表
164
160
  * @param checkedStatusList
165
161
  */
166
- declare const updateMarksLayersByStatus: (checkedStatusList?: any[]) => void;
162
+ declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
167
163
 
168
- export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, type WmtsSourceOptions, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createGeoJsonLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
164
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, type WmtsSourceOptions, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
package/dist/index.js CHANGED
@@ -167,36 +167,40 @@ var assembleGeoJson = (dataList, config) => {
167
167
  });
168
168
  return { type: "FeatureCollection", features: tempList };
169
169
  };
170
- var createGeoJsonLayer = (dataList, config) => {
171
- const { isLine, layerName } = config || {};
170
+ var createVectorStyle = (data, config) => {
171
+ const { isLine, colorMap, fillColor, colorKey, strokeColor, strokeWeight } = config || {};
172
+ const style = new Style({
173
+ stroke: new Stroke({
174
+ width: strokeWeight,
175
+ color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
176
+ })
177
+ });
178
+ if (!isLine) {
179
+ style.setFill(
180
+ new Fill({
181
+ color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor
182
+ })
183
+ );
184
+ }
185
+ return style;
186
+ };
187
+ var createBusinessLayer = (dataList, config) => {
188
+ const { layerName } = config || {};
172
189
  const geoJson = assembleGeoJson(dataList, config);
173
190
  const vectorLayer = new VectorLayer({
174
191
  className: layerName ? layerName : "ol-layer",
175
192
  source: new VectorSource({
176
- features: new GeoJSON().readFeatures(geoJson)
177
- }),
178
- style: isLine ? new Style({
179
- stroke: new Stroke({
180
- color: "red",
181
- lineDash: [10],
182
- width: 3
183
- })
184
- }) : new Style({
185
- stroke: new Stroke({
186
- color: "red",
187
- lineDash: [10],
188
- width: 3
189
- }),
190
- fill: new Fill({
191
- color: "rgba(0, 0, 255, 0.1)"
193
+ features: new GeoJSON().readFeatures(geoJson).map((feature) => {
194
+ feature.setStyle(createVectorStyle(feature.getProperties(), config));
195
+ return feature;
192
196
  })
193
197
  })
194
198
  });
195
199
  vectorLayer.set("_layerName", layerName);
196
200
  return vectorLayer;
197
201
  };
198
- var createVectorFaceLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: false }));
199
- var createVectorLineLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: true }));
202
+ var createVectorFaceLayer = (dataList = [], config) => createBusinessLayer(dataList, Object.assign(config, { isLine: false }));
203
+ var createVectorLineLayer = (dataList = [], config) => createBusinessLayer(dataList, Object.assign(config, { isLine: true }));
200
204
  var removeAllLayers = (isClearAll = true) => {
201
205
  removeOverlays();
202
206
  console.log(isClearAll);
@@ -367,7 +371,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
367
371
  _isCustom: true,
368
372
  _isMassMarksLayer: true,
369
373
  _statusNum: styleList.length / 2,
370
- _dataList: dataList,
374
+ _dataList: [...dataList],
371
375
  _uuidSet: new Set(dataList.map((item) => item._uuid) || [])
372
376
  });
373
377
  return vectorLayer;
@@ -381,7 +385,8 @@ var addMassMarksLayer = (getImgUrlFn) => {
381
385
  isDynamic,
382
386
  statusNum,
383
387
  markerIcon,
384
- markerSize
388
+ markerSize,
389
+ vectorConfig
385
390
  } = iconConfig;
386
391
  const massMarksStyles = buildMassMarksStyles(getImgUrlFn)({
387
392
  baseUrl,
@@ -395,7 +400,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
395
400
  createSelectByLayer(massMarksLayer);
396
401
  }
397
402
  if (hasLine) {
398
- const vectorLayer = createGeoJsonLayer(dataList, {
403
+ const vectorLayer = createBusinessLayer(dataList, vectorConfig ? vectorConfig : {
399
404
  key: "line",
400
405
  isLine: true,
401
406
  strokeColor: "rgba(29, 235, 255, 0.8)"
@@ -403,10 +408,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
403
408
  instance.addLayer(vectorLayer);
404
409
  }
405
410
  if (hasFace) {
406
- const vectorLayer = createGeoJsonLayer(dataList, {
411
+ const vectorLayer = createBusinessLayer(dataList, vectorConfig ? vectorConfig : {
407
412
  isLine: false,
408
413
  key: "faceList",
409
- fillOpacity: 0.1,
410
414
  fillColor: "#4247DF",
411
415
  strokeWeight: 1,
412
416
  strokeStyle: "dashed",
@@ -630,7 +634,7 @@ export {
630
634
  buildMassMarksStyles,
631
635
  createAnimationMarker,
632
636
  createBaseLayer,
633
- createGeoJsonLayer,
637
+ createBusinessLayer,
634
638
  createMapInstance,
635
639
  createMapWorldLayer,
636
640
  createMassMarksLayer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [