map-ol-utils 0.0.7 → 0.0.8

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,6 +180,7 @@ 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) => {
@@ -429,7 +256,7 @@ var buildMassMarksStyles = (getImgUrlFn) => {
429
256
  };
430
257
  };
431
258
  var createSelectByLayer = (vectorLayer) => {
432
- const interaction = new import_interaction2.Select({
259
+ const interaction = new import_interaction.Select({
433
260
  style: null,
434
261
  layers: [vectorLayer],
435
262
  condition: (evt) => {
@@ -551,6 +378,186 @@ var addMassMarksLayer = (getImgUrlFn) => {
551
378
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
552
379
  console.log(checkedStatusList);
553
380
  };
381
+
382
+ // src/create-map.ts
383
+ var import_interaction2 = require("ol/interaction");
384
+ var instance;
385
+ var createMapInstance = (config = {}) => {
386
+ const innerConfig = Object.assign(
387
+ {
388
+ zoom: 9.4,
389
+ maxZoom: 18,
390
+ minZoom: 9.4,
391
+ baseLayer: "vec-layer",
392
+ projection: "EPSG:4326",
393
+ layers: [createBaseLayer()],
394
+ smoothExtentConstraint: false,
395
+ tk: "c77eddc667c5bed016fded560baf93e7",
396
+ center: [119.5326450625435, 29.8845606679097]
397
+ },
398
+ config || {}
399
+ );
400
+ if (!instance) {
401
+ instance = new import_Map.default({
402
+ view: new import_View.default(innerConfig),
403
+ controls: (0, import_control.defaults)({
404
+ zoom: false,
405
+ rotate: false,
406
+ attribution: false
407
+ }),
408
+ interactions: (0, import_interaction2.defaults)({
409
+ doubleClickZoom: false
410
+ }),
411
+ layers: innerConfig.layers || [createBaseLayer()]
412
+ });
413
+ instance.activeBaseLayer = innerConfig.baseLayer;
414
+ instance.getLayerByName = getLayerByName;
415
+ instance.removeLayerByName = removeLayerByName;
416
+ instance.changeLayersByNames = changeLayersByNames;
417
+ instance.on("pointermove", (evt) => {
418
+ instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(evt.pixel) ? "pointer" : "";
419
+ });
420
+ return instance;
421
+ }
422
+ return instance;
423
+ };
424
+ var disposeMap = () => {
425
+ const layers = instance.getAllLayers();
426
+ layers.forEach((layer) => {
427
+ instance.removeLayer(layer);
428
+ });
429
+ instance.setTarget("");
430
+ instance = void 0;
431
+ };
432
+ var getMapInstance = () => instance;
433
+ var resetMap = () => {
434
+ removeAllLayers();
435
+ };
436
+ var resetZoomAndCenter = () => {
437
+ };
438
+
439
+ // src/base-layer.ts
440
+ var import_WMTS = __toESM(require("ol/tilegrid/WMTS"), 1);
441
+ var createBaseLayer = (isDark = true) => {
442
+ return new import_layer.Tile({
443
+ zIndex: -1,
444
+ minZoom: 8,
445
+ maxZoom: 21,
446
+ source: new import_source.XYZ({
447
+ tileGrid: new import_tilegrid.TileGrid({
448
+ tileSize: 256,
449
+ resolutions: [
450
+ 5492298e-9,
451
+ 2746149e-9,
452
+ 0.0013730745,
453
+ 68653725e-11,
454
+ 343268625e-12,
455
+ 1716343125e-13,
456
+ 8581715625e-14,
457
+ 42908578125e-15,
458
+ 214542890625e-16,
459
+ 1072714453125e-17,
460
+ 5363572265625e-18,
461
+ 26817861328125e-19,
462
+ 134089306640625e-20
463
+ ],
464
+ origin: [118.122911693886, 31.2869311022836],
465
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
466
+ }),
467
+ projection: "EPSG:4326",
468
+ urls: isDark ? [
469
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector_dark/{z}/{y}/{x}",
470
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector_dark/{z}/{y}/{x}",
471
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector_dark/{z}/{y}/{x}",
472
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector_dark/{z}/{y}/{x}",
473
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector_dark/Mapserver/tile/{z}/{y}/{x}"
474
+ ] : [
475
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector/{z}/{y}/{x}",
476
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector/{z}/{y}/{x}",
477
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector/{z}/{y}/{x}",
478
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector/{z}/{y}/{x}",
479
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector/Mapserver/tile/{z}/{y}/{x}"
480
+ ]
481
+ })
482
+ });
483
+ };
484
+ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
485
+ const [name, matrixSet] = layerName.split("_");
486
+ return new import_layer.Tile({
487
+ className,
488
+ cacheSize: 20240,
489
+ zIndex: -1,
490
+ source: new import_source2.WMTS({
491
+ crossOrigin: "anonymous",
492
+ projection: "EPSG:4326",
493
+ wrapX: true,
494
+ layer: name,
495
+ style: "default",
496
+ version: "1.0.0",
497
+ format: "image/png",
498
+ matrixSet,
499
+ tileGrid: new import_WMTS.default({
500
+ origin: [-180, 90],
501
+ matrixIds: [
502
+ "1",
503
+ "2",
504
+ "3",
505
+ "4",
506
+ "5",
507
+ "6",
508
+ "7",
509
+ "8",
510
+ "9",
511
+ "10",
512
+ "11",
513
+ "12",
514
+ "13",
515
+ "14",
516
+ "15",
517
+ "16",
518
+ "17",
519
+ "18",
520
+ "19"
521
+ ],
522
+ resolutions: [
523
+ 0.703125,
524
+ 0.3515625,
525
+ 0.17578125,
526
+ 0.087890625,
527
+ 0.0439453125,
528
+ 0.02197265625,
529
+ 0.010986328125,
530
+ 0.0054931640625,
531
+ 0.00274658203125,
532
+ 0.001373291015625,
533
+ 6866455078125e-16,
534
+ 34332275390625e-17,
535
+ 171661376953125e-18,
536
+ 858306884765625e-19,
537
+ 4291534423828125e-20,
538
+ 21457672119140625e-21,
539
+ 10728836059570312e-21,
540
+ 5364418029785156e-21,
541
+ 2682209014892578e-21
542
+ ]
543
+ }),
544
+ url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
545
+ })
546
+ });
547
+ };
548
+ var getLayerByName = (name) => instance.getAllLayers().find((item) => item.getClassName() === name);
549
+ var removeLayerByName = (name) => {
550
+ const tempLayer = instance.getAllLayers().find((item) => item.getClassName() === name);
551
+ if (tempLayer) {
552
+ instance.removeLayer(tempLayer);
553
+ }
554
+ };
555
+ var changeLayersByNames = (activeNames, allLayerNames) => {
556
+ const changeLayers = instance.getAllLayers().filter((item) => allLayerNames.includes(item.getClassName()));
557
+ changeLayers.forEach((layer) => {
558
+ layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
559
+ });
560
+ };
554
561
  // Annotate the CommonJS export names for ESM import in node:
555
562
  0 && (module.exports = {
556
563
  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,6 +126,7 @@ 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) => {
@@ -497,6 +324,186 @@ var addMassMarksLayer = (getImgUrlFn) => {
497
324
  var updateMarksLayersByStatus = (checkedStatusList = []) => {
498
325
  console.log(checkedStatusList);
499
326
  };
327
+
328
+ // src/create-map.ts
329
+ import { defaults as interactionDefaults } from "ol/interaction";
330
+ var instance;
331
+ var createMapInstance = (config = {}) => {
332
+ const innerConfig = Object.assign(
333
+ {
334
+ zoom: 9.4,
335
+ maxZoom: 18,
336
+ minZoom: 9.4,
337
+ baseLayer: "vec-layer",
338
+ projection: "EPSG:4326",
339
+ layers: [createBaseLayer()],
340
+ smoothExtentConstraint: false,
341
+ tk: "c77eddc667c5bed016fded560baf93e7",
342
+ center: [119.5326450625435, 29.8845606679097]
343
+ },
344
+ config || {}
345
+ );
346
+ if (!instance) {
347
+ instance = new Map({
348
+ view: new View(innerConfig),
349
+ controls: defaults({
350
+ zoom: false,
351
+ rotate: false,
352
+ attribution: false
353
+ }),
354
+ interactions: interactionDefaults({
355
+ doubleClickZoom: false
356
+ }),
357
+ layers: innerConfig.layers || [createBaseLayer()]
358
+ });
359
+ instance.activeBaseLayer = innerConfig.baseLayer;
360
+ instance.getLayerByName = getLayerByName;
361
+ instance.removeLayerByName = removeLayerByName;
362
+ instance.changeLayersByNames = changeLayersByNames;
363
+ instance.on("pointermove", (evt) => {
364
+ instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(evt.pixel) ? "pointer" : "";
365
+ });
366
+ return instance;
367
+ }
368
+ return instance;
369
+ };
370
+ var disposeMap = () => {
371
+ const layers = instance.getAllLayers();
372
+ layers.forEach((layer) => {
373
+ instance.removeLayer(layer);
374
+ });
375
+ instance.setTarget("");
376
+ instance = void 0;
377
+ };
378
+ var getMapInstance = () => instance;
379
+ var resetMap = () => {
380
+ removeAllLayers();
381
+ };
382
+ var resetZoomAndCenter = () => {
383
+ };
384
+
385
+ // src/base-layer.ts
386
+ import WMTSTileGrid from "ol/tilegrid/WMTS";
387
+ var createBaseLayer = (isDark = true) => {
388
+ return new Tile({
389
+ zIndex: -1,
390
+ minZoom: 8,
391
+ maxZoom: 21,
392
+ source: new XYZ({
393
+ tileGrid: new TileGrid({
394
+ tileSize: 256,
395
+ resolutions: [
396
+ 5492298e-9,
397
+ 2746149e-9,
398
+ 0.0013730745,
399
+ 68653725e-11,
400
+ 343268625e-12,
401
+ 1716343125e-13,
402
+ 8581715625e-14,
403
+ 42908578125e-15,
404
+ 214542890625e-16,
405
+ 1072714453125e-17,
406
+ 5363572265625e-18,
407
+ 26817861328125e-19,
408
+ 134089306640625e-20
409
+ ],
410
+ origin: [118.122911693886, 31.2869311022836],
411
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
412
+ }),
413
+ projection: "EPSG:4326",
414
+ urls: isDark ? [
415
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector_dark/{z}/{y}/{x}",
416
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector_dark/{z}/{y}/{x}",
417
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector_dark/{z}/{y}/{x}",
418
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector_dark/{z}/{y}/{x}",
419
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector_dark/Mapserver/tile/{z}/{y}/{x}"
420
+ ] : [
421
+ "https://ywtg.citybrain.hangzhou.gov.cn:9456/hzsyvector/{z}/{y}/{x}",
422
+ "https://ywtg.citybrain.hangzhou.gov.cn:9457/hzsyvector/{z}/{y}/{x}",
423
+ "https://ywtg.citybrain.hangzhou.gov.cn:9458/hzsyvector/{z}/{y}/{x}",
424
+ "https://ywtg.citybrain.hangzhou.gov.cn:9459/hzsyvector/{z}/{y}/{x}",
425
+ "https://cb.hangzhoumap.gov.cn/E36CCEA93443D1495DB9B9F2B2FFE348CB1A367D75176F815040AB19E54CDCA5DAAA25813AF965E2ABD0CC2463DD1223/PBS/rest/services/hzsyvector/Mapserver/tile/{z}/{y}/{x}"
426
+ ]
427
+ })
428
+ });
429
+ };
430
+ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
431
+ const [name, matrixSet] = layerName.split("_");
432
+ return new Tile({
433
+ className,
434
+ cacheSize: 20240,
435
+ zIndex: -1,
436
+ source: new WMTS({
437
+ crossOrigin: "anonymous",
438
+ projection: "EPSG:4326",
439
+ wrapX: true,
440
+ layer: name,
441
+ style: "default",
442
+ version: "1.0.0",
443
+ format: "image/png",
444
+ matrixSet,
445
+ tileGrid: new WMTSTileGrid({
446
+ origin: [-180, 90],
447
+ matrixIds: [
448
+ "1",
449
+ "2",
450
+ "3",
451
+ "4",
452
+ "5",
453
+ "6",
454
+ "7",
455
+ "8",
456
+ "9",
457
+ "10",
458
+ "11",
459
+ "12",
460
+ "13",
461
+ "14",
462
+ "15",
463
+ "16",
464
+ "17",
465
+ "18",
466
+ "19"
467
+ ],
468
+ resolutions: [
469
+ 0.703125,
470
+ 0.3515625,
471
+ 0.17578125,
472
+ 0.087890625,
473
+ 0.0439453125,
474
+ 0.02197265625,
475
+ 0.010986328125,
476
+ 0.0054931640625,
477
+ 0.00274658203125,
478
+ 0.001373291015625,
479
+ 6866455078125e-16,
480
+ 34332275390625e-17,
481
+ 171661376953125e-18,
482
+ 858306884765625e-19,
483
+ 4291534423828125e-20,
484
+ 21457672119140625e-21,
485
+ 10728836059570312e-21,
486
+ 5364418029785156e-21,
487
+ 2682209014892578e-21
488
+ ]
489
+ }),
490
+ url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
491
+ })
492
+ });
493
+ };
494
+ var getLayerByName = (name) => instance.getAllLayers().find((item) => item.getClassName() === name);
495
+ var removeLayerByName = (name) => {
496
+ const tempLayer = instance.getAllLayers().find((item) => item.getClassName() === name);
497
+ if (tempLayer) {
498
+ instance.removeLayer(tempLayer);
499
+ }
500
+ };
501
+ var changeLayersByNames = (activeNames, allLayerNames) => {
502
+ const changeLayers = instance.getAllLayers().filter((item) => allLayerNames.includes(item.getClassName()));
503
+ changeLayers.forEach((layer) => {
504
+ layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
505
+ });
506
+ };
500
507
  export {
501
508
  activeMarkerByUid,
502
509
  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.8",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [