map-ol-utils 0.0.7 → 0.0.9

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
@@ -87,198 +87,23 @@ var import_layer = require("ol/layer");
87
87
  var import_Map = __toESM(require("ol/Map"), 1);
88
88
  var import_View = __toESM(require("ol/View"), 1);
89
89
  var import_control = require("ol/control");
90
- var import_interaction = require("ol/interaction");
91
- var instance;
92
- var createMapInstance = (config = {}) => {
93
- const innerConfig = Object.assign(
94
- {
95
- zoom: 9.4,
96
- maxZoom: 18,
97
- minZoom: 9.4,
98
- baseLayer: "vec-layer",
99
- projection: "EPSG:4326",
100
- layers: [createBaseLayer()],
101
- smoothExtentConstraint: false,
102
- tk: "c77eddc667c5bed016fded560baf93e7",
103
- center: [119.5326450625435, 29.8845606679097]
104
- },
105
- config || {}
106
- );
107
- if (!instance) {
108
- instance = new import_Map.default({
109
- view: new import_View.default(innerConfig),
110
- controls: (0, import_control.defaults)({
111
- zoom: false,
112
- rotate: false,
113
- attribution: false
114
- }),
115
- interactions: (0, import_interaction.defaults)({
116
- doubleClickZoom: false
117
- }),
118
- layers: innerConfig.layers || [createBaseLayer()]
119
- });
120
- instance.activeBaseLayer = innerConfig.baseLayer;
121
- instance.getLayerByName = getLayerByName;
122
- instance.removeLayerByName = removeLayerByName;
123
- instance.changeLayersByNames = changeLayersByNames;
124
- instance.on("pointermove", (evt) => {
125
- instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(evt.pixel) ? "pointer" : "";
126
- });
127
- return instance;
128
- }
129
- return instance;
130
- };
131
- var disposeMap = () => {
132
- const layers = instance.getAllLayers();
133
- layers.forEach((layer) => {
134
- instance.removeLayer(layer);
135
- });
136
- instance.setTarget("");
137
- instance = void 0;
138
- };
139
- var getMapInstance = () => {
140
- };
141
- var resetMap = () => {
142
- };
143
- var resetZoomAndCenter = () => {
144
- };
145
-
146
- // src/base-layer.ts
147
- var import_WMTS = __toESM(require("ol/tilegrid/WMTS"), 1);
148
- var createBaseLayer = (isDark = true) => {
149
- return new import_layer.Tile({
150
- zIndex: -1,
151
- minZoom: 8,
152
- maxZoom: 21,
153
- source: new import_source.XYZ({
154
- tileGrid: new import_tilegrid.TileGrid({
155
- tileSize: 256,
156
- resolutions: [
157
- 5492298e-9,
158
- 2746149e-9,
159
- 0.0013730745,
160
- 68653725e-11,
161
- 343268625e-12,
162
- 1716343125e-13,
163
- 8581715625e-14,
164
- 42908578125e-15,
165
- 214542890625e-16,
166
- 1072714453125e-17,
167
- 5363572265625e-18,
168
- 26817861328125e-19,
169
- 134089306640625e-20
170
- ],
171
- origin: [118.122911693886, 31.2869311022836],
172
- extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
173
- }),
174
- projection: "EPSG:4326",
175
- urls: isDark ? [
176
- "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector_dark/{z}/{y}/{x}",
177
- "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector_dark/{z}/{y}/{x}",
178
- "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector_dark/{z}/{y}/{x}",
179
- "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector_dark/{z}/{y}/{x}",
180
- "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector_dark/Mapserver/tile/{z}/{y}/{x}"
181
- ] : [
182
- "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector/{z}/{y}/{x}",
183
- "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector/{z}/{y}/{x}",
184
- "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector/{z}/{y}/{x}",
185
- "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector/{z}/{y}/{x}",
186
- "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector/Mapserver/tile/{z}/{y}/{x}"
187
- ]
188
- })
189
- });
190
- };
191
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
192
- const [name, matrixSet] = layerName.split("_");
193
- return new import_layer.Tile({
194
- className,
195
- cacheSize: 20240,
196
- zIndex: -1,
197
- source: new import_source2.WMTS({
198
- crossOrigin: "anonymous",
199
- projection: "EPSG:4326",
200
- wrapX: true,
201
- layer: name,
202
- style: "default",
203
- version: "1.0.0",
204
- format: "image/png",
205
- matrixSet,
206
- tileGrid: new import_WMTS.default({
207
- origin: [-180, 90],
208
- matrixIds: [
209
- "1",
210
- "2",
211
- "3",
212
- "4",
213
- "5",
214
- "6",
215
- "7",
216
- "8",
217
- "9",
218
- "10",
219
- "11",
220
- "12",
221
- "13",
222
- "14",
223
- "15",
224
- "16",
225
- "17",
226
- "18",
227
- "19"
228
- ],
229
- resolutions: [
230
- 0.703125,
231
- 0.3515625,
232
- 0.17578125,
233
- 0.087890625,
234
- 0.0439453125,
235
- 0.02197265625,
236
- 0.010986328125,
237
- 0.0054931640625,
238
- 0.00274658203125,
239
- 0.001373291015625,
240
- 6866455078125e-16,
241
- 34332275390625e-17,
242
- 171661376953125e-18,
243
- 858306884765625e-19,
244
- 4291534423828125e-20,
245
- 21457672119140625e-21,
246
- 10728836059570312e-21,
247
- 5364418029785156e-21,
248
- 2682209014892578e-21
249
- ]
250
- }),
251
- url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
252
- })
253
- });
254
- };
255
- var getLayerByName = (name) => instance.getAllLayers().find((item) => item.getClassName() === name);
256
- var removeLayerByName = (name) => {
257
- const tempLayer = instance.getAllLayers().find((item) => item.getClassName() === name);
258
- if (tempLayer) {
259
- instance.removeLayer(tempLayer);
260
- }
261
- };
262
- var changeLayersByNames = (activeNames, allLayerNames) => {
263
- const changeLayers = instance.getAllLayers().filter((item) => allLayerNames.includes(item.getClassName()));
264
- changeLayers.forEach((layer) => {
265
- layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
266
- });
267
- };
268
90
 
269
91
  // src/layer-utils.ts
270
92
  var import_geom = require("ol/geom");
271
93
  var import_format = require("ol/format");
272
94
  var import_ol = require("ol");
273
- var import_interaction2 = require("ol/interaction");
95
+ var import_interaction = require("ol/interaction");
274
96
  var import_Vector = __toESM(require("ol/layer/Vector"), 1);
275
97
  var import_Vector2 = __toESM(require("ol/source/Vector"), 1);
276
98
  var import_condition = require("ol/events/condition");
277
99
  var import_style = require("ol/style");
278
- var removeAnimationMarker = () => {
279
- const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get("_isAnimationMarker"));
100
+ var removeOverlays = (key = "") => {
101
+ const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
280
102
  overlays.forEach((overlay) => instance.removeOverlay(overlay));
281
103
  };
104
+ var removeAnimationMarker = () => {
105
+ removeOverlays("_isAnimationMarker");
106
+ };
282
107
  var createAnimationMarker = (imgUrl, data) => {
283
108
  removeAnimationMarker();
284
109
  const element = document.createElement("div");
@@ -293,6 +118,7 @@ var createAnimationMarker = (imgUrl, data) => {
293
118
  instance.addOverlay(overlay);
294
119
  };
295
120
  var resetActiveVector = () => {
121
+ removeOverlays();
296
122
  const layers = instance.getLayers();
297
123
  layers.forEach((layer) => {
298
124
  const interaction = layer.get("_selectInteraction");
@@ -354,10 +180,13 @@ var createGeoJsonLayer = (dataList, config) => {
354
180
  var createVectorFaceLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: false }));
355
181
  var createVectorLineLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: true }));
356
182
  var removeAllLayers = (isClearAll = true) => {
183
+ removeOverlays();
357
184
  console.log(isClearAll);
358
185
  if (instance) {
359
186
  instance.getLayers().forEach((layer) => {
360
- instance.removeLayer(layer);
187
+ if (!layer.get("_isBaseLayer")) {
188
+ instance.removeLayer(layer);
189
+ }
361
190
  });
362
191
  }
363
192
  };
@@ -429,7 +258,7 @@ var buildMassMarksStyles = (getImgUrlFn) => {
429
258
  };
430
259
  };
431
260
  var createSelectByLayer = (vectorLayer) => {
432
- const interaction = new import_interaction2.Select({
261
+ const interaction = new import_interaction.Select({
433
262
  style: null,
434
263
  layers: [vectorLayer],
435
264
  condition: (evt) => {
@@ -551,6 +380,192 @@ var addMassMarksLayer = (getImgUrlFn) => {
551
380
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
552
381
  console.log(checkedStatusList);
553
382
  };
383
+
384
+ // src/create-map.ts
385
+ var import_interaction2 = require("ol/interaction");
386
+ var instance;
387
+ var createMapInstance = (config = {}) => {
388
+ const innerConfig = Object.assign(
389
+ {
390
+ zoom: 9.4,
391
+ maxZoom: 18,
392
+ minZoom: 9.4,
393
+ baseLayer: "vec-layer",
394
+ projection: "EPSG:4326",
395
+ layers: [createBaseLayer()],
396
+ smoothExtentConstraint: false,
397
+ tk: "c77eddc667c5bed016fded560baf93e7",
398
+ center: [119.5326450625435, 29.8845606679097]
399
+ },
400
+ config || {}
401
+ );
402
+ if (!instance) {
403
+ instance = new import_Map.default({
404
+ view: new import_View.default(innerConfig),
405
+ controls: (0, import_control.defaults)({
406
+ zoom: false,
407
+ rotate: false,
408
+ attribution: false
409
+ }),
410
+ interactions: (0, import_interaction2.defaults)({
411
+ doubleClickZoom: false
412
+ }),
413
+ layers: innerConfig.layers || [createBaseLayer()]
414
+ });
415
+ instance.activeBaseLayer = innerConfig.baseLayer;
416
+ instance.getLayerByName = getLayerByName;
417
+ instance.removeLayerByName = removeLayerByName;
418
+ instance.changeLayersByNames = changeLayersByNames;
419
+ instance.on("pointermove", (evt) => {
420
+ instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(evt.pixel) ? "pointer" : "";
421
+ });
422
+ return instance;
423
+ }
424
+ return instance;
425
+ };
426
+ var disposeMap = () => {
427
+ const layers = instance.getAllLayers();
428
+ layers.forEach((layer) => {
429
+ instance.removeLayer(layer);
430
+ });
431
+ instance.setTarget("");
432
+ instance = void 0;
433
+ };
434
+ var getMapInstance = () => instance;
435
+ var resetMap = () => {
436
+ removeAllLayers();
437
+ };
438
+ var resetZoomAndCenter = () => {
439
+ };
440
+
441
+ // src/base-layer.ts
442
+ var import_WMTS = __toESM(require("ol/tilegrid/WMTS"), 1);
443
+ var createBaseLayer = (isDark = true) => {
444
+ return new import_layer.Tile({
445
+ zIndex: -1,
446
+ minZoom: 8,
447
+ maxZoom: 21,
448
+ source: new import_source.XYZ({
449
+ tileGrid: new import_tilegrid.TileGrid({
450
+ tileSize: 256,
451
+ resolutions: [
452
+ 5492298e-9,
453
+ 2746149e-9,
454
+ 0.0013730745,
455
+ 68653725e-11,
456
+ 343268625e-12,
457
+ 1716343125e-13,
458
+ 8581715625e-14,
459
+ 42908578125e-15,
460
+ 214542890625e-16,
461
+ 1072714453125e-17,
462
+ 5363572265625e-18,
463
+ 26817861328125e-19,
464
+ 134089306640625e-20
465
+ ],
466
+ origin: [118.122911693886, 31.2869311022836],
467
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
468
+ }),
469
+ projection: "EPSG:4326",
470
+ urls: isDark ? [
471
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector_dark/{z}/{y}/{x}",
472
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector_dark/{z}/{y}/{x}",
473
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector_dark/{z}/{y}/{x}",
474
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector_dark/{z}/{y}/{x}",
475
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector_dark/Mapserver/tile/{z}/{y}/{x}"
476
+ ] : [
477
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector/{z}/{y}/{x}",
478
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector/{z}/{y}/{x}",
479
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector/{z}/{y}/{x}",
480
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector/{z}/{y}/{x}",
481
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector/Mapserver/tile/{z}/{y}/{x}"
482
+ ]
483
+ }),
484
+ properties: {
485
+ _isBaseLayer: true
486
+ }
487
+ });
488
+ };
489
+ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
490
+ const [name, matrixSet] = layerName.split("_");
491
+ return new import_layer.Tile({
492
+ className,
493
+ cacheSize: 20240,
494
+ zIndex: -1,
495
+ source: new import_source2.WMTS({
496
+ crossOrigin: "anonymous",
497
+ projection: "EPSG:4326",
498
+ wrapX: true,
499
+ layer: name,
500
+ style: "default",
501
+ version: "1.0.0",
502
+ format: "image/png",
503
+ matrixSet,
504
+ tileGrid: new import_WMTS.default({
505
+ origin: [-180, 90],
506
+ matrixIds: [
507
+ "1",
508
+ "2",
509
+ "3",
510
+ "4",
511
+ "5",
512
+ "6",
513
+ "7",
514
+ "8",
515
+ "9",
516
+ "10",
517
+ "11",
518
+ "12",
519
+ "13",
520
+ "14",
521
+ "15",
522
+ "16",
523
+ "17",
524
+ "18",
525
+ "19"
526
+ ],
527
+ resolutions: [
528
+ 0.703125,
529
+ 0.3515625,
530
+ 0.17578125,
531
+ 0.087890625,
532
+ 0.0439453125,
533
+ 0.02197265625,
534
+ 0.010986328125,
535
+ 0.0054931640625,
536
+ 0.00274658203125,
537
+ 0.001373291015625,
538
+ 6866455078125e-16,
539
+ 34332275390625e-17,
540
+ 171661376953125e-18,
541
+ 858306884765625e-19,
542
+ 4291534423828125e-20,
543
+ 21457672119140625e-21,
544
+ 10728836059570312e-21,
545
+ 5364418029785156e-21,
546
+ 2682209014892578e-21
547
+ ]
548
+ }),
549
+ url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
550
+ }),
551
+ properties: {
552
+ _isBaseLayer: true
553
+ }
554
+ });
555
+ };
556
+ var getLayerByName = (name) => instance.getAllLayers().find((item) => item.getClassName() === name);
557
+ var removeLayerByName = (name) => {
558
+ const tempLayer = instance.getAllLayers().find((item) => item.getClassName() === name);
559
+ if (tempLayer) {
560
+ instance.removeLayer(tempLayer);
561
+ }
562
+ };
563
+ var changeLayersByNames = (activeNames, allLayerNames) => {
564
+ const changeLayers = instance.getAllLayers().filter((item) => allLayerNames.includes(item.getClassName()));
565
+ changeLayers.forEach((layer) => {
566
+ layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
567
+ });
568
+ };
554
569
  // Annotate the CommonJS export names for ESM import in node:
555
570
  0 && (module.exports = {
556
571
  activeMarkerByUid,
package/dist/index.d.cts CHANGED
@@ -91,7 +91,7 @@ declare const createMapWorldLayer: (layerName: string, className: string, tk?: s
91
91
  declare let instance: CustomMap;
92
92
  declare const createMapInstance: (config?: {}) => CustomMap;
93
93
  declare const disposeMap: () => void;
94
- declare const getMapInstance: () => void;
94
+ declare const getMapInstance: () => CustomMap;
95
95
  declare const resetMap: () => void;
96
96
  declare const resetZoomAndCenter: () => void;
97
97
 
package/dist/index.d.ts CHANGED
@@ -91,7 +91,7 @@ declare const createMapWorldLayer: (layerName: string, className: string, tk?: s
91
91
  declare let instance: CustomMap;
92
92
  declare const createMapInstance: (config?: {}) => CustomMap;
93
93
  declare const disposeMap: () => void;
94
- declare const getMapInstance: () => void;
94
+ declare const getMapInstance: () => CustomMap;
95
95
  declare const resetMap: () => void;
96
96
  declare const resetZoomAndCenter: () => void;
97
97
 
package/dist/index.js CHANGED
@@ -33,184 +33,6 @@ import { Tile } from "ol/layer";
33
33
  import Map from "ol/Map";
34
34
  import View from "ol/View";
35
35
  import { defaults } from "ol/control";
36
- import { defaults as interactionDefaults } from "ol/interaction";
37
- var instance;
38
- var createMapInstance = (config = {}) => {
39
- const innerConfig = Object.assign(
40
- {
41
- zoom: 9.4,
42
- maxZoom: 18,
43
- minZoom: 9.4,
44
- baseLayer: "vec-layer",
45
- projection: "EPSG:4326",
46
- layers: [createBaseLayer()],
47
- smoothExtentConstraint: false,
48
- tk: "c77eddc667c5bed016fded560baf93e7",
49
- center: [119.5326450625435, 29.8845606679097]
50
- },
51
- config || {}
52
- );
53
- if (!instance) {
54
- instance = new Map({
55
- view: new View(innerConfig),
56
- controls: defaults({
57
- zoom: false,
58
- rotate: false,
59
- attribution: false
60
- }),
61
- interactions: interactionDefaults({
62
- doubleClickZoom: false
63
- }),
64
- layers: innerConfig.layers || [createBaseLayer()]
65
- });
66
- instance.activeBaseLayer = innerConfig.baseLayer;
67
- instance.getLayerByName = getLayerByName;
68
- instance.removeLayerByName = removeLayerByName;
69
- instance.changeLayersByNames = changeLayersByNames;
70
- instance.on("pointermove", (evt) => {
71
- instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(evt.pixel) ? "pointer" : "";
72
- });
73
- return instance;
74
- }
75
- return instance;
76
- };
77
- var disposeMap = () => {
78
- const layers = instance.getAllLayers();
79
- layers.forEach((layer) => {
80
- instance.removeLayer(layer);
81
- });
82
- instance.setTarget("");
83
- instance = void 0;
84
- };
85
- var getMapInstance = () => {
86
- };
87
- var resetMap = () => {
88
- };
89
- var resetZoomAndCenter = () => {
90
- };
91
-
92
- // src/base-layer.ts
93
- import WMTSTileGrid from "ol/tilegrid/WMTS";
94
- var createBaseLayer = (isDark = true) => {
95
- return new Tile({
96
- zIndex: -1,
97
- minZoom: 8,
98
- maxZoom: 21,
99
- source: new XYZ({
100
- tileGrid: new TileGrid({
101
- tileSize: 256,
102
- resolutions: [
103
- 5492298e-9,
104
- 2746149e-9,
105
- 0.0013730745,
106
- 68653725e-11,
107
- 343268625e-12,
108
- 1716343125e-13,
109
- 8581715625e-14,
110
- 42908578125e-15,
111
- 214542890625e-16,
112
- 1072714453125e-17,
113
- 5363572265625e-18,
114
- 26817861328125e-19,
115
- 134089306640625e-20
116
- ],
117
- origin: [118.122911693886, 31.2869311022836],
118
- extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
119
- }),
120
- projection: "EPSG:4326",
121
- urls: isDark ? [
122
- "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector_dark/{z}/{y}/{x}",
123
- "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector_dark/{z}/{y}/{x}",
124
- "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector_dark/{z}/{y}/{x}",
125
- "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector_dark/{z}/{y}/{x}",
126
- "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector_dark/Mapserver/tile/{z}/{y}/{x}"
127
- ] : [
128
- "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector/{z}/{y}/{x}",
129
- "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector/{z}/{y}/{x}",
130
- "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector/{z}/{y}/{x}",
131
- "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector/{z}/{y}/{x}",
132
- "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector/Mapserver/tile/{z}/{y}/{x}"
133
- ]
134
- })
135
- });
136
- };
137
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
138
- const [name, matrixSet] = layerName.split("_");
139
- return new Tile({
140
- className,
141
- cacheSize: 20240,
142
- zIndex: -1,
143
- source: new WMTS({
144
- crossOrigin: "anonymous",
145
- projection: "EPSG:4326",
146
- wrapX: true,
147
- layer: name,
148
- style: "default",
149
- version: "1.0.0",
150
- format: "image/png",
151
- matrixSet,
152
- tileGrid: new WMTSTileGrid({
153
- origin: [-180, 90],
154
- matrixIds: [
155
- "1",
156
- "2",
157
- "3",
158
- "4",
159
- "5",
160
- "6",
161
- "7",
162
- "8",
163
- "9",
164
- "10",
165
- "11",
166
- "12",
167
- "13",
168
- "14",
169
- "15",
170
- "16",
171
- "17",
172
- "18",
173
- "19"
174
- ],
175
- resolutions: [
176
- 0.703125,
177
- 0.3515625,
178
- 0.17578125,
179
- 0.087890625,
180
- 0.0439453125,
181
- 0.02197265625,
182
- 0.010986328125,
183
- 0.0054931640625,
184
- 0.00274658203125,
185
- 0.001373291015625,
186
- 6866455078125e-16,
187
- 34332275390625e-17,
188
- 171661376953125e-18,
189
- 858306884765625e-19,
190
- 4291534423828125e-20,
191
- 21457672119140625e-21,
192
- 10728836059570312e-21,
193
- 5364418029785156e-21,
194
- 2682209014892578e-21
195
- ]
196
- }),
197
- url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
198
- })
199
- });
200
- };
201
- var getLayerByName = (name) => instance.getAllLayers().find((item) => item.getClassName() === name);
202
- var removeLayerByName = (name) => {
203
- const tempLayer = instance.getAllLayers().find((item) => item.getClassName() === name);
204
- if (tempLayer) {
205
- instance.removeLayer(tempLayer);
206
- }
207
- };
208
- var changeLayersByNames = (activeNames, allLayerNames) => {
209
- const changeLayers = instance.getAllLayers().filter((item) => allLayerNames.includes(item.getClassName()));
210
- changeLayers.forEach((layer) => {
211
- layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
212
- });
213
- };
214
36
 
215
37
  // src/layer-utils.ts
216
38
  import { Point } from "ol/geom";
@@ -221,10 +43,13 @@ import VectorLayer from "ol/layer/Vector";
221
43
  import VectorSource from "ol/source/Vector";
222
44
  import { click } from "ol/events/condition";
223
45
  import { Fill, Icon, Stroke, Style } from "ol/style";
224
- var removeAnimationMarker = () => {
225
- const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get("_isAnimationMarker"));
46
+ var removeOverlays = (key = "") => {
47
+ const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
226
48
  overlays.forEach((overlay) => instance.removeOverlay(overlay));
227
49
  };
50
+ var removeAnimationMarker = () => {
51
+ removeOverlays("_isAnimationMarker");
52
+ };
228
53
  var createAnimationMarker = (imgUrl, data) => {
229
54
  removeAnimationMarker();
230
55
  const element = document.createElement("div");
@@ -239,6 +64,7 @@ var createAnimationMarker = (imgUrl, data) => {
239
64
  instance.addOverlay(overlay);
240
65
  };
241
66
  var resetActiveVector = () => {
67
+ removeOverlays();
242
68
  const layers = instance.getLayers();
243
69
  layers.forEach((layer) => {
244
70
  const interaction = layer.get("_selectInteraction");
@@ -300,10 +126,13 @@ var createGeoJsonLayer = (dataList, config) => {
300
126
  var createVectorFaceLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: false }));
301
127
  var createVectorLineLayer = (dataList = [], config) => createGeoJsonLayer(dataList, Object.assign(config, { isLine: true }));
302
128
  var removeAllLayers = (isClearAll = true) => {
129
+ removeOverlays();
303
130
  console.log(isClearAll);
304
131
  if (instance) {
305
132
  instance.getLayers().forEach((layer) => {
306
- instance.removeLayer(layer);
133
+ if (!layer.get("_isBaseLayer")) {
134
+ instance.removeLayer(layer);
135
+ }
307
136
  });
308
137
  }
309
138
  };
@@ -497,6 +326,192 @@ var addMassMarksLayer = (getImgUrlFn) => {
497
326
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
498
327
  console.log(checkedStatusList);
499
328
  };
329
+
330
+ // src/create-map.ts
331
+ import { defaults as interactionDefaults } from "ol/interaction";
332
+ var instance;
333
+ var createMapInstance = (config = {}) => {
334
+ const innerConfig = Object.assign(
335
+ {
336
+ zoom: 9.4,
337
+ maxZoom: 18,
338
+ minZoom: 9.4,
339
+ baseLayer: "vec-layer",
340
+ projection: "EPSG:4326",
341
+ layers: [createBaseLayer()],
342
+ smoothExtentConstraint: false,
343
+ tk: "c77eddc667c5bed016fded560baf93e7",
344
+ center: [119.5326450625435, 29.8845606679097]
345
+ },
346
+ config || {}
347
+ );
348
+ if (!instance) {
349
+ instance = new Map({
350
+ view: new View(innerConfig),
351
+ controls: defaults({
352
+ zoom: false,
353
+ rotate: false,
354
+ attribution: false
355
+ }),
356
+ interactions: interactionDefaults({
357
+ doubleClickZoom: false
358
+ }),
359
+ layers: innerConfig.layers || [createBaseLayer()]
360
+ });
361
+ instance.activeBaseLayer = innerConfig.baseLayer;
362
+ instance.getLayerByName = getLayerByName;
363
+ instance.removeLayerByName = removeLayerByName;
364
+ instance.changeLayersByNames = changeLayersByNames;
365
+ instance.on("pointermove", (evt) => {
366
+ instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(evt.pixel) ? "pointer" : "";
367
+ });
368
+ return instance;
369
+ }
370
+ return instance;
371
+ };
372
+ var disposeMap = () => {
373
+ const layers = instance.getAllLayers();
374
+ layers.forEach((layer) => {
375
+ instance.removeLayer(layer);
376
+ });
377
+ instance.setTarget("");
378
+ instance = void 0;
379
+ };
380
+ var getMapInstance = () => instance;
381
+ var resetMap = () => {
382
+ removeAllLayers();
383
+ };
384
+ var resetZoomAndCenter = () => {
385
+ };
386
+
387
+ // src/base-layer.ts
388
+ import WMTSTileGrid from "ol/tilegrid/WMTS";
389
+ var createBaseLayer = (isDark = true) => {
390
+ return new Tile({
391
+ zIndex: -1,
392
+ minZoom: 8,
393
+ maxZoom: 21,
394
+ source: new XYZ({
395
+ tileGrid: new TileGrid({
396
+ tileSize: 256,
397
+ resolutions: [
398
+ 5492298e-9,
399
+ 2746149e-9,
400
+ 0.0013730745,
401
+ 68653725e-11,
402
+ 343268625e-12,
403
+ 1716343125e-13,
404
+ 8581715625e-14,
405
+ 42908578125e-15,
406
+ 214542890625e-16,
407
+ 1072714453125e-17,
408
+ 5363572265625e-18,
409
+ 26817861328125e-19,
410
+ 134089306640625e-20
411
+ ],
412
+ origin: [118.122911693886, 31.2869311022836],
413
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
414
+ }),
415
+ projection: "EPSG:4326",
416
+ urls: isDark ? [
417
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector_dark/{z}/{y}/{x}",
418
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector_dark/{z}/{y}/{x}",
419
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector_dark/{z}/{y}/{x}",
420
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector_dark/{z}/{y}/{x}",
421
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector_dark/Mapserver/tile/{z}/{y}/{x}"
422
+ ] : [
423
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector/{z}/{y}/{x}",
424
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector/{z}/{y}/{x}",
425
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector/{z}/{y}/{x}",
426
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector/{z}/{y}/{x}",
427
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector/Mapserver/tile/{z}/{y}/{x}"
428
+ ]
429
+ }),
430
+ properties: {
431
+ _isBaseLayer: true
432
+ }
433
+ });
434
+ };
435
+ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
436
+ const [name, matrixSet] = layerName.split("_");
437
+ return new Tile({
438
+ className,
439
+ cacheSize: 20240,
440
+ zIndex: -1,
441
+ source: new WMTS({
442
+ crossOrigin: "anonymous",
443
+ projection: "EPSG:4326",
444
+ wrapX: true,
445
+ layer: name,
446
+ style: "default",
447
+ version: "1.0.0",
448
+ format: "image/png",
449
+ matrixSet,
450
+ tileGrid: new WMTSTileGrid({
451
+ origin: [-180, 90],
452
+ matrixIds: [
453
+ "1",
454
+ "2",
455
+ "3",
456
+ "4",
457
+ "5",
458
+ "6",
459
+ "7",
460
+ "8",
461
+ "9",
462
+ "10",
463
+ "11",
464
+ "12",
465
+ "13",
466
+ "14",
467
+ "15",
468
+ "16",
469
+ "17",
470
+ "18",
471
+ "19"
472
+ ],
473
+ resolutions: [
474
+ 0.703125,
475
+ 0.3515625,
476
+ 0.17578125,
477
+ 0.087890625,
478
+ 0.0439453125,
479
+ 0.02197265625,
480
+ 0.010986328125,
481
+ 0.0054931640625,
482
+ 0.00274658203125,
483
+ 0.001373291015625,
484
+ 6866455078125e-16,
485
+ 34332275390625e-17,
486
+ 171661376953125e-18,
487
+ 858306884765625e-19,
488
+ 4291534423828125e-20,
489
+ 21457672119140625e-21,
490
+ 10728836059570312e-21,
491
+ 5364418029785156e-21,
492
+ 2682209014892578e-21
493
+ ]
494
+ }),
495
+ url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
496
+ }),
497
+ properties: {
498
+ _isBaseLayer: true
499
+ }
500
+ });
501
+ };
502
+ var getLayerByName = (name) => instance.getAllLayers().find((item) => item.getClassName() === name);
503
+ var removeLayerByName = (name) => {
504
+ const tempLayer = instance.getAllLayers().find((item) => item.getClassName() === name);
505
+ if (tempLayer) {
506
+ instance.removeLayer(tempLayer);
507
+ }
508
+ };
509
+ var changeLayersByNames = (activeNames, allLayerNames) => {
510
+ const changeLayers = instance.getAllLayers().filter((item) => allLayerNames.includes(item.getClassName()));
511
+ changeLayers.forEach((layer) => {
512
+ layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
513
+ });
514
+ };
500
515
  export {
501
516
  activeMarkerByUid,
502
517
  addMassMarksLayer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [