map-ol-utils 0.0.30 → 0.0.31

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
@@ -82,6 +82,7 @@ __export(index_exports, {
82
82
  createWmtsLayer: () => createWmtsLayer,
83
83
  disposeMap: () => disposeMap,
84
84
  emitter: () => emitter_default,
85
+ getLayersDataList: () => getLayersDataList,
85
86
  getMapInstance: () => getMapInstance,
86
87
  instance: () => instance,
87
88
  removeAllLayers: () => removeAllLayers,
@@ -98,61 +99,6 @@ var import_mitt = __toESM(require("mitt"), 1);
98
99
  var emitter = (0, import_mitt.default)();
99
100
  var emitter_default = emitter;
100
101
 
101
- // src/ogc-utils.ts
102
- var import_source = require("ol/source");
103
- var import_Tile = __toESM(require("ol/layer/Tile"), 1);
104
- var import_format = require("ol/format");
105
- var import_WMTS = require("ol/source/WMTS");
106
- var parser = new import_format.WMTSCapabilities();
107
- var capabilitiesMap = /* @__PURE__ */ new Map();
108
- var getCapabilities = (url) => {
109
- return new Promise((resolve) => {
110
- const capabilities = capabilitiesMap.get(url);
111
- if (capabilities) {
112
- resolve(capabilities);
113
- } else {
114
- fetch(url).then((data) => data.text()).then((text) => {
115
- const capabilities2 = parser.read(text);
116
- capabilitiesMap.set(url, capabilities2);
117
- resolve(capabilities2);
118
- });
119
- }
120
- });
121
- };
122
- var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function* () {
123
- const { style, format, version, layerName, matrixSet } = config;
124
- const [workspace, datastore] = layerName.split(":");
125
- const capabilitiesUrl = `${serverUrl}/${workspace}/${datastore}/gwc/service/wmts?request=GetCapabilities`;
126
- return new Promise((resolve, reject) => {
127
- getCapabilities(capabilitiesUrl).then((data) => {
128
- const options = (0, import_WMTS.optionsFromCapabilities)(data, {
129
- Style: style || "",
130
- layer: datastore,
131
- version: version || "1.1.0",
132
- format: format || "image/png",
133
- matrixSet: matrixSet || "EPSG:4326"
134
- });
135
- if (options) {
136
- resolve(
137
- new import_Tile.default({
138
- zIndex: 3,
139
- className: layerName,
140
- source: new import_source.WMTS(options)
141
- })
142
- );
143
- } else {
144
- reject(new Error("Unable to create TileLayer"));
145
- }
146
- });
147
- });
148
- });
149
-
150
- // src/base-layer.ts
151
- var import_source2 = require("ol/source");
152
- var import_source3 = require("ol/source");
153
- var import_tilegrid = require("ol/tilegrid");
154
- var import_layer = require("ol/layer");
155
-
156
102
  // src/create-map.ts
157
103
  var import_Map = __toESM(require("ol/Map"), 1);
158
104
  var import_View = __toESM(require("ol/View"), 1);
@@ -161,25 +107,7 @@ var import_control = require("ol/control");
161
107
  // src/layer-utils.ts
162
108
  var import_gcoord = __toESM(require("gcoord"), 1);
163
109
  var import_geom = require("ol/geom");
164
-
165
- // src/helper.ts
166
- var hexToRgba = (hex, alpha) => {
167
- if (hex.startsWith("#")) {
168
- let tempHex = hex.replace("#", "");
169
- if (tempHex.length === 3) {
170
- tempHex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
171
- }
172
- const r = parseInt(tempHex.substring(0, 2), 16);
173
- const g = parseInt(tempHex.substring(2, 4), 16);
174
- const b = parseInt(tempHex.substring(4, 6), 16);
175
- return `rgba(${r}, ${g}, ${b}, ${alpha})`;
176
- } else {
177
- return hex;
178
- }
179
- };
180
-
181
- // src/layer-utils.ts
182
- var import_format2 = require("ol/format");
110
+ var import_format = require("ol/format");
183
111
  var import_ol = require("ol");
184
112
  var import_interaction = require("ol/interaction");
185
113
  var import_Vector = __toESM(require("ol/layer/Vector"), 1);
@@ -275,7 +203,7 @@ var createBusinessLayer = (dataList, config) => {
275
203
  zIndex: 5,
276
204
  className: layerName ? layerName : "ol-layer",
277
205
  source: new import_Vector2.default({
278
- features: new import_format2.GeoJSON().readFeatures(geoJson).map((feature) => {
206
+ features: new import_format.GeoJSON().readFeatures(geoJson).map((feature) => {
279
207
  feature.setStyle(createVectorStyle(feature.getProperties(), config));
280
208
  return feature;
281
209
  })
@@ -536,80 +464,19 @@ var updateMarksLayersByStatus = (checkedStatusList = []) => {
536
464
 
537
465
  // src/create-map.ts
538
466
  var import_interaction2 = require("ol/interaction");
539
- var instance;
540
- var mapCenter = [119.71512016971076, 30.122490541963536];
541
- var createMapInstance = (config = {}) => {
542
- const innerConfig = Object.assign(
543
- {
544
- zoom: 9.4,
545
- maxZoom: 18,
546
- minZoom: 9.4,
547
- center: mapCenter,
548
- baseLayer: "vec-layer",
549
- projection: "EPSG:4326",
550
- layers: [createBaseLayer()],
551
- smoothExtentConstraint: false,
552
- tk: "c77eddc667c5bed016fded560baf93e7"
553
- },
554
- config || {}
555
- );
556
- if (instance) {
557
- return instance;
558
- }
559
- instance = new import_Map.default({
560
- view: new import_View.default(innerConfig),
561
- controls: (0, import_control.defaults)({
562
- zoom: false,
563
- rotate: false,
564
- attribution: false
565
- }),
566
- interactions: (0, import_interaction2.defaults)({
567
- doubleClickZoom: false
568
- }),
569
- layers: innerConfig.layers || [createBaseLayer()]
570
- });
571
- mapCenter = innerConfig.center || mapCenter;
572
- instance.activeBaseLayer = innerConfig.baseLayer;
573
- instance.getLayerByName = getLayerByName;
574
- instance.removeLayerByName = removeLayerByName;
575
- instance.changeLayersByNames = changeLayersByNames;
576
- instance.on("pointermove", (evt) => {
577
- instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(
578
- evt.pixel
579
- ) ? "pointer" : "";
580
- });
581
- return instance;
582
- };
583
- var disposeMap = () => {
584
- const layers = instance.getAllLayers();
585
- layers.forEach((layer) => {
586
- instance.removeLayer(layer);
587
- });
588
- instance.setTarget("");
589
- instance = void 0;
590
- };
591
- var getMapInstance = () => instance;
592
- var resetZoomAndCenter = (center = mapCenter) => {
593
- const view = instance.getView();
594
- view.animate({
595
- zoom: 9.4,
596
- center,
597
- duration: 1e3
598
- });
599
- };
600
- var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
601
- removeAllLayers(config.isClearAll);
602
- resetZoomAndCenter(config.center || mapCenter);
603
- };
604
467
 
605
468
  // src/base-layer.ts
606
- var import_WMTS2 = __toESM(require("ol/tilegrid/WMTS"), 1);
469
+ var import_source = require("ol/source");
470
+ var import_source2 = require("ol/source");
471
+ var import_tilegrid = require("ol/tilegrid");
472
+ var import_layer = require("ol/layer");
473
+ var import_WMTS = __toESM(require("ol/tilegrid/WMTS"), 1);
607
474
  var createBaseLayer = (isDark = true) => {
608
475
  return new import_layer.Tile({
609
476
  zIndex: -1,
610
477
  minZoom: 8,
611
478
  maxZoom: 21,
612
- source: new import_source2.XYZ({
479
+ source: new import_source.XYZ({
613
480
  tileGrid: new import_tilegrid.TileGrid({
614
481
  tileSize: 256,
615
482
  resolutions: [
@@ -660,7 +527,7 @@ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") =
660
527
  return new import_layer.Tile({
661
528
  cacheSize: 20240,
662
529
  zIndex: -1,
663
- source: new import_source3.WMTS({
530
+ source: new import_source2.WMTS({
664
531
  crossOrigin: "anonymous",
665
532
  projection: "EPSG:4326",
666
533
  wrapX: true,
@@ -669,7 +536,7 @@ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") =
669
536
  version: "1.0.0",
670
537
  format: "image/png",
671
538
  matrixSet,
672
- tileGrid: new import_WMTS2.default({
539
+ tileGrid: new import_WMTS.default({
673
540
  origin: [-180, 90],
674
541
  matrixIds: [
675
542
  "1",
@@ -735,6 +602,142 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
735
602
  layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
736
603
  });
737
604
  };
605
+
606
+ // src/create-map.ts
607
+ var instance;
608
+ var mapCenter = [119.71512016971076, 30.122490541963536];
609
+ var createMapInstance = (config = {}) => {
610
+ const innerConfig = Object.assign(
611
+ {
612
+ zoom: 9.4,
613
+ maxZoom: 18,
614
+ minZoom: 9.4,
615
+ center: mapCenter,
616
+ baseLayer: "vec-layer",
617
+ projection: "EPSG:4326",
618
+ layers: [createBaseLayer()],
619
+ smoothExtentConstraint: false,
620
+ tk: "c77eddc667c5bed016fded560baf93e7"
621
+ },
622
+ config || {}
623
+ );
624
+ if (instance) {
625
+ return instance;
626
+ }
627
+ instance = new import_Map.default({
628
+ view: new import_View.default(innerConfig),
629
+ controls: (0, import_control.defaults)({
630
+ zoom: false,
631
+ rotate: false,
632
+ attribution: false
633
+ }),
634
+ interactions: (0, import_interaction2.defaults)({
635
+ doubleClickZoom: false
636
+ }),
637
+ layers: innerConfig.layers || [createBaseLayer()]
638
+ });
639
+ mapCenter = innerConfig.center || mapCenter;
640
+ instance.activeBaseLayer = innerConfig.baseLayer;
641
+ instance.getLayerByName = getLayerByName;
642
+ instance.removeLayerByName = removeLayerByName;
643
+ instance.changeLayersByNames = changeLayersByNames;
644
+ instance.on("pointermove", (evt) => {
645
+ instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(
646
+ evt.pixel
647
+ ) ? "pointer" : "";
648
+ });
649
+ return instance;
650
+ };
651
+ var disposeMap = () => {
652
+ const layers = instance.getAllLayers();
653
+ layers.forEach((layer) => {
654
+ instance.removeLayer(layer);
655
+ });
656
+ instance.setTarget("");
657
+ instance = void 0;
658
+ };
659
+ var getMapInstance = () => instance;
660
+ var resetZoomAndCenter = (center = mapCenter) => {
661
+ const view = instance.getView();
662
+ view.animate({
663
+ zoom: 9.4,
664
+ center,
665
+ duration: 1e3
666
+ });
667
+ };
668
+ var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
669
+ removeAllLayers(config.isClearAll);
670
+ resetZoomAndCenter(config.center || mapCenter);
671
+ };
672
+
673
+ // src/helper.ts
674
+ var hexToRgba = (hex, alpha) => {
675
+ if (hex.startsWith("#")) {
676
+ let tempHex = hex.replace("#", "");
677
+ if (tempHex.length === 3) {
678
+ tempHex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
679
+ }
680
+ const r = parseInt(tempHex.substring(0, 2), 16);
681
+ const g = parseInt(tempHex.substring(2, 4), 16);
682
+ const b = parseInt(tempHex.substring(4, 6), 16);
683
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
684
+ } else {
685
+ return hex;
686
+ }
687
+ };
688
+ var getLayersDataList = () => {
689
+ var _a;
690
+ return ((_a = instance) == null ? void 0 : _a.getAllLayers().map((layer) => layer.get("_dataList") || []).flat(2)) || [];
691
+ };
692
+
693
+ // src/ogc-utils.ts
694
+ var import_source3 = require("ol/source");
695
+ var import_Tile = __toESM(require("ol/layer/Tile"), 1);
696
+ var import_format2 = require("ol/format");
697
+ var import_WMTS2 = require("ol/source/WMTS");
698
+ var parser = new import_format2.WMTSCapabilities();
699
+ var capabilitiesMap = /* @__PURE__ */ new Map();
700
+ var getCapabilities = (url) => {
701
+ return new Promise((resolve) => {
702
+ const capabilities = capabilitiesMap.get(url);
703
+ if (capabilities) {
704
+ resolve(capabilities);
705
+ } else {
706
+ fetch(url).then((data) => data.text()).then((text) => {
707
+ const capabilities2 = parser.read(text);
708
+ capabilitiesMap.set(url, capabilities2);
709
+ resolve(capabilities2);
710
+ });
711
+ }
712
+ });
713
+ };
714
+ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function* () {
715
+ const { style, format, version, layerName, matrixSet } = config;
716
+ const [workspace, datastore] = layerName.split(":");
717
+ const capabilitiesUrl = `${serverUrl}/${workspace}/${datastore}/gwc/service/wmts?request=GetCapabilities`;
718
+ return new Promise((resolve, reject) => {
719
+ getCapabilities(capabilitiesUrl).then((data) => {
720
+ const options = (0, import_WMTS2.optionsFromCapabilities)(data, {
721
+ Style: style || "",
722
+ layer: datastore,
723
+ version: version || "1.1.0",
724
+ format: format || "image/png",
725
+ matrixSet: matrixSet || "EPSG:4326"
726
+ });
727
+ if (options) {
728
+ resolve(
729
+ new import_Tile.default({
730
+ zIndex: 3,
731
+ className: layerName,
732
+ source: new import_source3.WMTS(options)
733
+ })
734
+ );
735
+ } else {
736
+ reject(new Error("Unable to create TileLayer"));
737
+ }
738
+ });
739
+ });
740
+ });
738
741
  // Annotate the CommonJS export names for ESM import in node:
739
742
  0 && (module.exports = {
740
743
  activeMarkerByUid,
@@ -752,6 +755,7 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
752
755
  createWmtsLayer,
753
756
  disposeMap,
754
757
  emitter,
758
+ getLayersDataList,
755
759
  getMapInstance,
756
760
  instance,
757
761
  removeAllLayers,
package/dist/index.d.cts CHANGED
@@ -74,6 +74,8 @@ type WmtsSourceOptions = {
74
74
 
75
75
  declare const emitter: Emitter<Record<EventType, any>>;
76
76
 
77
+ declare const getLayersDataList: () => any[];
78
+
77
79
  /**
78
80
  * 创建WMTS图层
79
81
  * @param serverUrl
@@ -160,4 +162,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
160
162
  */
161
163
  declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
162
164
 
163
- 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, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
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 };
package/dist/index.d.ts CHANGED
@@ -74,6 +74,8 @@ type WmtsSourceOptions = {
74
74
 
75
75
  declare const emitter: Emitter<Record<EventType, any>>;
76
76
 
77
+ declare const getLayersDataList: () => any[];
78
+
77
79
  /**
78
80
  * 创建WMTS图层
79
81
  * @param serverUrl
@@ -160,4 +162,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
160
162
  */
161
163
  declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
162
164
 
163
- 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, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
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 };
package/dist/index.js CHANGED
@@ -43,61 +43,6 @@ import mitt from "mitt";
43
43
  var emitter = mitt();
44
44
  var emitter_default = emitter;
45
45
 
46
- // src/ogc-utils.ts
47
- import { WMTS } from "ol/source";
48
- import TileLayer from "ol/layer/Tile";
49
- import { WMTSCapabilities } from "ol/format";
50
- import { optionsFromCapabilities } from "ol/source/WMTS";
51
- var parser = new WMTSCapabilities();
52
- var capabilitiesMap = /* @__PURE__ */ new Map();
53
- var getCapabilities = (url) => {
54
- return new Promise((resolve) => {
55
- const capabilities = capabilitiesMap.get(url);
56
- if (capabilities) {
57
- resolve(capabilities);
58
- } else {
59
- fetch(url).then((data) => data.text()).then((text) => {
60
- const capabilities2 = parser.read(text);
61
- capabilitiesMap.set(url, capabilities2);
62
- resolve(capabilities2);
63
- });
64
- }
65
- });
66
- };
67
- var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function* () {
68
- const { style, format, version, layerName, matrixSet } = config;
69
- const [workspace, datastore] = layerName.split(":");
70
- const capabilitiesUrl = `${serverUrl}/${workspace}/${datastore}/gwc/service/wmts?request=GetCapabilities`;
71
- return new Promise((resolve, reject) => {
72
- getCapabilities(capabilitiesUrl).then((data) => {
73
- const options = optionsFromCapabilities(data, {
74
- Style: style || "",
75
- layer: datastore,
76
- version: version || "1.1.0",
77
- format: format || "image/png",
78
- matrixSet: matrixSet || "EPSG:4326"
79
- });
80
- if (options) {
81
- resolve(
82
- new TileLayer({
83
- zIndex: 3,
84
- className: layerName,
85
- source: new WMTS(options)
86
- })
87
- );
88
- } else {
89
- reject(new Error("Unable to create TileLayer"));
90
- }
91
- });
92
- });
93
- });
94
-
95
- // src/base-layer.ts
96
- import { XYZ } from "ol/source";
97
- import { WMTS as WMTS2 } from "ol/source";
98
- import { TileGrid } from "ol/tilegrid";
99
- import { Tile } from "ol/layer";
100
-
101
46
  // src/create-map.ts
102
47
  import Map2 from "ol/Map";
103
48
  import View from "ol/View";
@@ -106,24 +51,6 @@ import { defaults } from "ol/control";
106
51
  // src/layer-utils.ts
107
52
  import gcoord from "gcoord";
108
53
  import { Point } from "ol/geom";
109
-
110
- // src/helper.ts
111
- var hexToRgba = (hex, alpha) => {
112
- if (hex.startsWith("#")) {
113
- let tempHex = hex.replace("#", "");
114
- if (tempHex.length === 3) {
115
- tempHex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
116
- }
117
- const r = parseInt(tempHex.substring(0, 2), 16);
118
- const g = parseInt(tempHex.substring(2, 4), 16);
119
- const b = parseInt(tempHex.substring(4, 6), 16);
120
- return `rgba(${r}, ${g}, ${b}, ${alpha})`;
121
- } else {
122
- return hex;
123
- }
124
- };
125
-
126
- // src/layer-utils.ts
127
54
  import { GeoJSON } from "ol/format";
128
55
  import { Feature, Overlay } from "ol";
129
56
  import { Select } from "ol/interaction";
@@ -481,73 +408,12 @@ var updateMarksLayersByStatus = (checkedStatusList = []) => {
481
408
 
482
409
  // src/create-map.ts
483
410
  import { defaults as interactionDefaults } from "ol/interaction";
484
- var instance;
485
- var mapCenter = [119.71512016971076, 30.122490541963536];
486
- var createMapInstance = (config = {}) => {
487
- const innerConfig = Object.assign(
488
- {
489
- zoom: 9.4,
490
- maxZoom: 18,
491
- minZoom: 9.4,
492
- center: mapCenter,
493
- baseLayer: "vec-layer",
494
- projection: "EPSG:4326",
495
- layers: [createBaseLayer()],
496
- smoothExtentConstraint: false,
497
- tk: "c77eddc667c5bed016fded560baf93e7"
498
- },
499
- config || {}
500
- );
501
- if (instance) {
502
- return instance;
503
- }
504
- instance = new Map2({
505
- view: new View(innerConfig),
506
- controls: defaults({
507
- zoom: false,
508
- rotate: false,
509
- attribution: false
510
- }),
511
- interactions: interactionDefaults({
512
- doubleClickZoom: false
513
- }),
514
- layers: innerConfig.layers || [createBaseLayer()]
515
- });
516
- mapCenter = innerConfig.center || mapCenter;
517
- instance.activeBaseLayer = innerConfig.baseLayer;
518
- instance.getLayerByName = getLayerByName;
519
- instance.removeLayerByName = removeLayerByName;
520
- instance.changeLayersByNames = changeLayersByNames;
521
- instance.on("pointermove", (evt) => {
522
- instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(
523
- evt.pixel
524
- ) ? "pointer" : "";
525
- });
526
- return instance;
527
- };
528
- var disposeMap = () => {
529
- const layers = instance.getAllLayers();
530
- layers.forEach((layer) => {
531
- instance.removeLayer(layer);
532
- });
533
- instance.setTarget("");
534
- instance = void 0;
535
- };
536
- var getMapInstance = () => instance;
537
- var resetZoomAndCenter = (center = mapCenter) => {
538
- const view = instance.getView();
539
- view.animate({
540
- zoom: 9.4,
541
- center,
542
- duration: 1e3
543
- });
544
- };
545
- var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
546
- removeAllLayers(config.isClearAll);
547
- resetZoomAndCenter(config.center || mapCenter);
548
- };
549
411
 
550
412
  // src/base-layer.ts
413
+ import { XYZ } from "ol/source";
414
+ import { WMTS } from "ol/source";
415
+ import { TileGrid } from "ol/tilegrid";
416
+ import { Tile } from "ol/layer";
551
417
  import WMTSTileGrid from "ol/tilegrid/WMTS";
552
418
  var createBaseLayer = (isDark = true) => {
553
419
  return new Tile({
@@ -605,7 +471,7 @@ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") =
605
471
  return new Tile({
606
472
  cacheSize: 20240,
607
473
  zIndex: -1,
608
- source: new WMTS2({
474
+ source: new WMTS({
609
475
  crossOrigin: "anonymous",
610
476
  projection: "EPSG:4326",
611
477
  wrapX: true,
@@ -680,6 +546,142 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
680
546
  layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
681
547
  });
682
548
  };
549
+
550
+ // src/create-map.ts
551
+ var instance;
552
+ var mapCenter = [119.71512016971076, 30.122490541963536];
553
+ var createMapInstance = (config = {}) => {
554
+ const innerConfig = Object.assign(
555
+ {
556
+ zoom: 9.4,
557
+ maxZoom: 18,
558
+ minZoom: 9.4,
559
+ center: mapCenter,
560
+ baseLayer: "vec-layer",
561
+ projection: "EPSG:4326",
562
+ layers: [createBaseLayer()],
563
+ smoothExtentConstraint: false,
564
+ tk: "c77eddc667c5bed016fded560baf93e7"
565
+ },
566
+ config || {}
567
+ );
568
+ if (instance) {
569
+ return instance;
570
+ }
571
+ instance = new Map2({
572
+ view: new View(innerConfig),
573
+ controls: defaults({
574
+ zoom: false,
575
+ rotate: false,
576
+ attribution: false
577
+ }),
578
+ interactions: interactionDefaults({
579
+ doubleClickZoom: false
580
+ }),
581
+ layers: innerConfig.layers || [createBaseLayer()]
582
+ });
583
+ mapCenter = innerConfig.center || mapCenter;
584
+ instance.activeBaseLayer = innerConfig.baseLayer;
585
+ instance.getLayerByName = getLayerByName;
586
+ instance.removeLayerByName = removeLayerByName;
587
+ instance.changeLayersByNames = changeLayersByNames;
588
+ instance.on("pointermove", (evt) => {
589
+ instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(
590
+ evt.pixel
591
+ ) ? "pointer" : "";
592
+ });
593
+ return instance;
594
+ };
595
+ var disposeMap = () => {
596
+ const layers = instance.getAllLayers();
597
+ layers.forEach((layer) => {
598
+ instance.removeLayer(layer);
599
+ });
600
+ instance.setTarget("");
601
+ instance = void 0;
602
+ };
603
+ var getMapInstance = () => instance;
604
+ var resetZoomAndCenter = (center = mapCenter) => {
605
+ const view = instance.getView();
606
+ view.animate({
607
+ zoom: 9.4,
608
+ center,
609
+ duration: 1e3
610
+ });
611
+ };
612
+ var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
613
+ removeAllLayers(config.isClearAll);
614
+ resetZoomAndCenter(config.center || mapCenter);
615
+ };
616
+
617
+ // src/helper.ts
618
+ var hexToRgba = (hex, alpha) => {
619
+ if (hex.startsWith("#")) {
620
+ let tempHex = hex.replace("#", "");
621
+ if (tempHex.length === 3) {
622
+ tempHex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
623
+ }
624
+ const r = parseInt(tempHex.substring(0, 2), 16);
625
+ const g = parseInt(tempHex.substring(2, 4), 16);
626
+ const b = parseInt(tempHex.substring(4, 6), 16);
627
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
628
+ } else {
629
+ return hex;
630
+ }
631
+ };
632
+ var getLayersDataList = () => {
633
+ var _a;
634
+ return ((_a = instance) == null ? void 0 : _a.getAllLayers().map((layer) => layer.get("_dataList") || []).flat(2)) || [];
635
+ };
636
+
637
+ // src/ogc-utils.ts
638
+ import { WMTS as WMTS2 } from "ol/source";
639
+ import TileLayer from "ol/layer/Tile";
640
+ import { WMTSCapabilities } from "ol/format";
641
+ import { optionsFromCapabilities } from "ol/source/WMTS";
642
+ var parser = new WMTSCapabilities();
643
+ var capabilitiesMap = /* @__PURE__ */ new Map();
644
+ var getCapabilities = (url) => {
645
+ return new Promise((resolve) => {
646
+ const capabilities = capabilitiesMap.get(url);
647
+ if (capabilities) {
648
+ resolve(capabilities);
649
+ } else {
650
+ fetch(url).then((data) => data.text()).then((text) => {
651
+ const capabilities2 = parser.read(text);
652
+ capabilitiesMap.set(url, capabilities2);
653
+ resolve(capabilities2);
654
+ });
655
+ }
656
+ });
657
+ };
658
+ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function* () {
659
+ const { style, format, version, layerName, matrixSet } = config;
660
+ const [workspace, datastore] = layerName.split(":");
661
+ const capabilitiesUrl = `${serverUrl}/${workspace}/${datastore}/gwc/service/wmts?request=GetCapabilities`;
662
+ return new Promise((resolve, reject) => {
663
+ getCapabilities(capabilitiesUrl).then((data) => {
664
+ const options = optionsFromCapabilities(data, {
665
+ Style: style || "",
666
+ layer: datastore,
667
+ version: version || "1.1.0",
668
+ format: format || "image/png",
669
+ matrixSet: matrixSet || "EPSG:4326"
670
+ });
671
+ if (options) {
672
+ resolve(
673
+ new TileLayer({
674
+ zIndex: 3,
675
+ className: layerName,
676
+ source: new WMTS2(options)
677
+ })
678
+ );
679
+ } else {
680
+ reject(new Error("Unable to create TileLayer"));
681
+ }
682
+ });
683
+ });
684
+ });
683
685
  export {
684
686
  activeMarkerByUid,
685
687
  addMassMarksLayer,
@@ -696,6 +698,7 @@ export {
696
698
  createWmtsLayer,
697
699
  disposeMap,
698
700
  emitter_default as emitter,
701
+ getLayersDataList,
699
702
  getMapInstance,
700
703
  instance,
701
704
  removeAllLayers,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.30",
3
+ "version": "0.0.31",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [