map-ol-utils 0.0.18 → 0.0.20

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
@@ -43,6 +43,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
43
  mod
44
44
  ));
45
45
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
+ var __async = (__this, __arguments, generator) => {
47
+ return new Promise((resolve, reject) => {
48
+ var fulfilled = (value) => {
49
+ try {
50
+ step(generator.next(value));
51
+ } catch (e) {
52
+ reject(e);
53
+ }
54
+ };
55
+ var rejected = (value) => {
56
+ try {
57
+ step(generator.throw(value));
58
+ } catch (e) {
59
+ reject(e);
60
+ }
61
+ };
62
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
63
+ step((generator = generator.apply(__this, __arguments)).next());
64
+ });
65
+ };
46
66
 
47
67
  // src/index.ts
48
68
  var index_exports = {};
@@ -59,6 +79,7 @@ __export(index_exports, {
59
79
  createSelectByLayer: () => createSelectByLayer,
60
80
  createVectorFaceLayer: () => createVectorFaceLayer,
61
81
  createVectorLineLayer: () => createVectorLineLayer,
82
+ createWmtsLayer: () => createWmtsLayer,
62
83
  disposeMap: () => disposeMap,
63
84
  emitter: () => emitter_default,
64
85
  getMapInstance: () => getMapInstance,
@@ -77,9 +98,56 @@ var import_mitt = __toESM(require("mitt"), 1);
77
98
  var emitter = (0, import_mitt.default)();
78
99
  var emitter_default = emitter;
79
100
 
80
- // src/base-layer.ts
101
+ // src/ogc-utils.ts
81
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) => (layerName) => __async(void 0, null, function* () {
123
+ const [workspace, datastore] = layerName.split(":");
124
+ const capabilitiesUrl = `${serverUrl}/${workspace}/${datastore}/gwc/service/wmts?request=GetCapabilities`;
125
+ return new Promise((resolve, reject) => {
126
+ getCapabilities(capabilitiesUrl).then((data) => {
127
+ const options = (0, import_WMTS.optionsFromCapabilities)(data, {
128
+ layer: datastore,
129
+ format: "image/png",
130
+ matrixSet: "EPSG:4326"
131
+ });
132
+ console.log(options);
133
+ if (options) {
134
+ resolve(
135
+ new import_Tile.default({
136
+ zIndex: 3,
137
+ className: layerName,
138
+ source: new import_source.WMTS(options)
139
+ })
140
+ );
141
+ } else {
142
+ reject(new Error("Unable to create TileLayer"));
143
+ }
144
+ });
145
+ });
146
+ });
147
+
148
+ // src/base-layer.ts
82
149
  var import_source2 = require("ol/source");
150
+ var import_source3 = require("ol/source");
83
151
  var import_tilegrid = require("ol/tilegrid");
84
152
  var import_layer = require("ol/layer");
85
153
 
@@ -90,7 +158,7 @@ var import_control = require("ol/control");
90
158
 
91
159
  // src/layer-utils.ts
92
160
  var import_geom = require("ol/geom");
93
- var import_format = require("ol/format");
161
+ var import_format2 = require("ol/format");
94
162
  var import_ol = require("ol");
95
163
  var import_interaction = require("ol/interaction");
96
164
  var import_Vector = __toESM(require("ol/layer/Vector"), 1);
@@ -98,8 +166,10 @@ var import_Vector2 = __toESM(require("ol/source/Vector"), 1);
98
166
  var import_condition = require("ol/events/condition");
99
167
  var import_style = require("ol/style");
100
168
  var removeOverlays = (key = "") => {
101
- const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
102
- overlays.forEach((overlay) => instance.removeOverlay(overlay));
169
+ if (instance) {
170
+ const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
171
+ overlays.forEach((overlay) => instance.removeOverlay(overlay));
172
+ }
103
173
  };
104
174
  var removeAnimationMarker = () => {
105
175
  removeOverlays("_isAnimationMarker");
@@ -155,7 +225,7 @@ var createGeoJsonLayer = (dataList, config) => {
155
225
  const vectorLayer = new import_Vector.default({
156
226
  className: layerName ? layerName : "ol-layer",
157
227
  source: new import_Vector2.default({
158
- features: new import_format.GeoJSON().readFeatures(geoJson)
228
+ features: new import_format2.GeoJSON().readFeatures(geoJson)
159
229
  }),
160
230
  style: isLine ? new import_style.Style({
161
231
  stroke: new import_style.Stroke({
@@ -340,6 +410,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
340
410
  return feature;
341
411
  });
342
412
  const vectorLayer = new import_Vector.default({
413
+ zIndex: 2e3,
343
414
  source: new import_Vector2.default({
344
415
  features
345
416
  })
@@ -478,13 +549,13 @@ var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
478
549
  };
479
550
 
480
551
  // src/base-layer.ts
481
- var import_WMTS = __toESM(require("ol/tilegrid/WMTS"), 1);
552
+ var import_WMTS2 = __toESM(require("ol/tilegrid/WMTS"), 1);
482
553
  var createBaseLayer = (isDark = true) => {
483
554
  return new import_layer.Tile({
484
555
  zIndex: -1,
485
556
  minZoom: 8,
486
557
  maxZoom: 21,
487
- source: new import_source.XYZ({
558
+ source: new import_source2.XYZ({
488
559
  tileGrid: new import_tilegrid.TileGrid({
489
560
  tileSize: 256,
490
561
  resolutions: [
@@ -502,13 +573,8 @@ var createBaseLayer = (isDark = true) => {
502
573
  26817861328125e-19,
503
574
  134089306640625e-20
504
575
  ],
505
- origin: [118.122911693886, 31.2869311022836],
506
- extent: [
507
- 118.340502132662,
508
- 29.2073269598186,
509
- 120.724787992425,
510
- 30.5617943760008
511
- ]
576
+ origin: [118.125614083886, 31.2857011022836],
577
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
512
578
  }),
513
579
  projection: "EPSG:4326",
514
580
  urls: isDark ? [
@@ -530,13 +596,12 @@ var createBaseLayer = (isDark = true) => {
530
596
  }
531
597
  });
532
598
  };
533
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
599
+ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") => {
534
600
  const [name, matrixSet] = layerName.split("_");
535
601
  return new import_layer.Tile({
536
- className,
537
602
  cacheSize: 20240,
538
603
  zIndex: -1,
539
- source: new import_source2.WMTS({
604
+ source: new import_source3.WMTS({
540
605
  crossOrigin: "anonymous",
541
606
  projection: "EPSG:4326",
542
607
  wrapX: true,
@@ -545,7 +610,7 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
545
610
  version: "1.0.0",
546
611
  format: "image/png",
547
612
  matrixSet,
548
- tileGrid: new import_WMTS.default({
613
+ tileGrid: new import_WMTS2.default({
549
614
  origin: [-180, 90],
550
615
  matrixIds: [
551
616
  "1",
@@ -593,7 +658,8 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
593
658
  url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
594
659
  }),
595
660
  properties: {
596
- _isBaseLayer: true
661
+ _isBaseLayer: true,
662
+ _layerName: layerName
597
663
  }
598
664
  });
599
665
  };
@@ -624,6 +690,7 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
624
690
  createSelectByLayer,
625
691
  createVectorFaceLayer,
626
692
  createVectorLineLayer,
693
+ createWmtsLayer,
627
694
  disposeMap,
628
695
  emitter,
629
696
  getMapInstance,
package/dist/index.d.cts CHANGED
@@ -2,6 +2,7 @@ import { Map, Feature } from 'ol';
2
2
  import { Layer, Tile } from 'ol/layer';
3
3
  import { Source, XYZ, WMTS } from 'ol/source';
4
4
  import { Emitter, EventType } from 'mitt';
5
+ import TileLayer from 'ol/layer/Tile';
5
6
  import * as ol_geom from 'ol/geom';
6
7
  import { Point } from 'ol/geom';
7
8
  import { Select } from 'ol/interaction';
@@ -75,18 +76,19 @@ type MassMarkersStyleOptions = {
75
76
 
76
77
  declare const emitter: Emitter<Record<EventType, any>>;
77
78
 
79
+ declare const createWmtsLayer: (serverUrl: string) => (layerName: string) => Promise<TileLayer>;
80
+
78
81
  /**
79
- * 创建杭州规资地图
82
+ * 创建杭州规自地图
80
83
  * @param isDark
81
84
  */
82
85
  declare const createBaseLayer: (isDark?: boolean) => Tile<XYZ>;
83
86
  /**
84
87
  * 创建天地图
85
88
  * @param layerName - 图层名称
86
- * @param className - className
87
89
  * @param tk - 天地图TK
88
90
  */
89
- declare const createMapWorldLayer: (layerName: string, className: string, tk?: string) => Tile<WMTS>;
91
+ declare const createMapWorldLayer: (layerName: string, tk?: string) => Tile<WMTS>;
90
92
 
91
93
  declare let instance: CustomMap;
92
94
  declare const createMapInstance: (config?: {}) => CustomMap;
@@ -156,4 +158,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
156
158
  */
157
159
  declare const updateMarksLayersByStatus: (checkedStatusList?: any[]) => void;
158
160
 
159
- export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createGeoJsonLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
161
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createGeoJsonLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { Map, Feature } from 'ol';
2
2
  import { Layer, Tile } from 'ol/layer';
3
3
  import { Source, XYZ, WMTS } from 'ol/source';
4
4
  import { Emitter, EventType } from 'mitt';
5
+ import TileLayer from 'ol/layer/Tile';
5
6
  import * as ol_geom from 'ol/geom';
6
7
  import { Point } from 'ol/geom';
7
8
  import { Select } from 'ol/interaction';
@@ -75,18 +76,19 @@ type MassMarkersStyleOptions = {
75
76
 
76
77
  declare const emitter: Emitter<Record<EventType, any>>;
77
78
 
79
+ declare const createWmtsLayer: (serverUrl: string) => (layerName: string) => Promise<TileLayer>;
80
+
78
81
  /**
79
- * 创建杭州规资地图
82
+ * 创建杭州规自地图
80
83
  * @param isDark
81
84
  */
82
85
  declare const createBaseLayer: (isDark?: boolean) => Tile<XYZ>;
83
86
  /**
84
87
  * 创建天地图
85
88
  * @param layerName - 图层名称
86
- * @param className - className
87
89
  * @param tk - 天地图TK
88
90
  */
89
- declare const createMapWorldLayer: (layerName: string, className: string, tk?: string) => Tile<WMTS>;
91
+ declare const createMapWorldLayer: (layerName: string, tk?: string) => Tile<WMTS>;
90
92
 
91
93
  declare let instance: CustomMap;
92
94
  declare const createMapInstance: (config?: {}) => CustomMap;
@@ -156,4 +158,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
156
158
  */
157
159
  declare const updateMarksLayersByStatus: (checkedStatusList?: any[]) => void;
158
160
 
159
- export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createGeoJsonLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
161
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, activeMarkerByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createGeoJsonLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getMapInstance, instance, removeAllLayers, resetActiveMarker, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
package/dist/index.js CHANGED
@@ -17,20 +17,87 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
20
40
 
21
41
  // src/emitter.ts
22
42
  import mitt from "mitt";
23
43
  var emitter = mitt();
24
44
  var emitter_default = emitter;
25
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) => (layerName) => __async(void 0, null, function* () {
68
+ const [workspace, datastore] = layerName.split(":");
69
+ const capabilitiesUrl = `${serverUrl}/${workspace}/${datastore}/gwc/service/wmts?request=GetCapabilities`;
70
+ return new Promise((resolve, reject) => {
71
+ getCapabilities(capabilitiesUrl).then((data) => {
72
+ const options = optionsFromCapabilities(data, {
73
+ layer: datastore,
74
+ format: "image/png",
75
+ matrixSet: "EPSG:4326"
76
+ });
77
+ console.log(options);
78
+ if (options) {
79
+ resolve(
80
+ new TileLayer({
81
+ zIndex: 3,
82
+ className: layerName,
83
+ source: new WMTS(options)
84
+ })
85
+ );
86
+ } else {
87
+ reject(new Error("Unable to create TileLayer"));
88
+ }
89
+ });
90
+ });
91
+ });
92
+
26
93
  // src/base-layer.ts
27
94
  import { XYZ } from "ol/source";
28
- import { WMTS } from "ol/source";
95
+ import { WMTS as WMTS2 } from "ol/source";
29
96
  import { TileGrid } from "ol/tilegrid";
30
97
  import { Tile } from "ol/layer";
31
98
 
32
99
  // src/create-map.ts
33
- import Map from "ol/Map";
100
+ import Map2 from "ol/Map";
34
101
  import View from "ol/View";
35
102
  import { defaults } from "ol/control";
36
103
 
@@ -44,8 +111,10 @@ import VectorSource from "ol/source/Vector";
44
111
  import { click } from "ol/events/condition";
45
112
  import { Fill, Icon, Stroke, Style } from "ol/style";
46
113
  var removeOverlays = (key = "") => {
47
- const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
48
- overlays.forEach((overlay) => instance.removeOverlay(overlay));
114
+ if (instance) {
115
+ const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
116
+ overlays.forEach((overlay) => instance.removeOverlay(overlay));
117
+ }
49
118
  };
50
119
  var removeAnimationMarker = () => {
51
120
  removeOverlays("_isAnimationMarker");
@@ -286,6 +355,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
286
355
  return feature;
287
356
  });
288
357
  const vectorLayer = new VectorLayer({
358
+ zIndex: 2e3,
289
359
  source: new VectorSource({
290
360
  features
291
361
  })
@@ -377,7 +447,7 @@ var createMapInstance = (config = {}) => {
377
447
  if (instance) {
378
448
  return instance;
379
449
  }
380
- instance = new Map({
450
+ instance = new Map2({
381
451
  view: new View(innerConfig),
382
452
  controls: defaults({
383
453
  zoom: false,
@@ -448,13 +518,8 @@ var createBaseLayer = (isDark = true) => {
448
518
  26817861328125e-19,
449
519
  134089306640625e-20
450
520
  ],
451
- origin: [118.122911693886, 31.2869311022836],
452
- extent: [
453
- 118.340502132662,
454
- 29.2073269598186,
455
- 120.724787992425,
456
- 30.5617943760008
457
- ]
521
+ origin: [118.125614083886, 31.2857011022836],
522
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
458
523
  }),
459
524
  projection: "EPSG:4326",
460
525
  urls: isDark ? [
@@ -476,13 +541,12 @@ var createBaseLayer = (isDark = true) => {
476
541
  }
477
542
  });
478
543
  };
479
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
544
+ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") => {
480
545
  const [name, matrixSet] = layerName.split("_");
481
546
  return new Tile({
482
- className,
483
547
  cacheSize: 20240,
484
548
  zIndex: -1,
485
- source: new WMTS({
549
+ source: new WMTS2({
486
550
  crossOrigin: "anonymous",
487
551
  projection: "EPSG:4326",
488
552
  wrapX: true,
@@ -539,7 +603,8 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
539
603
  url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
540
604
  }),
541
605
  properties: {
542
- _isBaseLayer: true
606
+ _isBaseLayer: true,
607
+ _layerName: layerName
543
608
  }
544
609
  });
545
610
  };
@@ -569,6 +634,7 @@ export {
569
634
  createSelectByLayer,
570
635
  createVectorFaceLayer,
571
636
  createVectorLineLayer,
637
+ createWmtsLayer,
572
638
  disposeMap,
573
639
  emitter_default as emitter,
574
640
  getMapInstance,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [
@@ -26,9 +26,12 @@
26
26
  ],
27
27
  "dependencies": {
28
28
  "ol": "^10.5.0",
29
- "mitt": "^3.0.1"
29
+ "mitt": "^3.0.1",
30
+ "proj4": "^2.15.0"
31
+ },
32
+ "devDependencies": {
33
+ "@types/proj4": "^2.5.6"
30
34
  },
31
- "devDependencies": {},
32
35
  "peerDependencies": {
33
36
  "ol": ">=10.5.0"
34
37
  },