map-ol-utils 0.0.19 → 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);
@@ -157,7 +225,7 @@ var createGeoJsonLayer = (dataList, config) => {
157
225
  const vectorLayer = new import_Vector.default({
158
226
  className: layerName ? layerName : "ol-layer",
159
227
  source: new import_Vector2.default({
160
- features: new import_format.GeoJSON().readFeatures(geoJson)
228
+ features: new import_format2.GeoJSON().readFeatures(geoJson)
161
229
  }),
162
230
  style: isLine ? new import_style.Style({
163
231
  stroke: new import_style.Stroke({
@@ -342,6 +410,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
342
410
  return feature;
343
411
  });
344
412
  const vectorLayer = new import_Vector.default({
413
+ zIndex: 2e3,
345
414
  source: new import_Vector2.default({
346
415
  features
347
416
  })
@@ -480,13 +549,13 @@ var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
480
549
  };
481
550
 
482
551
  // src/base-layer.ts
483
- var import_WMTS = __toESM(require("ol/tilegrid/WMTS"), 1);
552
+ var import_WMTS2 = __toESM(require("ol/tilegrid/WMTS"), 1);
484
553
  var createBaseLayer = (isDark = true) => {
485
554
  return new import_layer.Tile({
486
555
  zIndex: -1,
487
556
  minZoom: 8,
488
557
  maxZoom: 21,
489
- source: new import_source.XYZ({
558
+ source: new import_source2.XYZ({
490
559
  tileGrid: new import_tilegrid.TileGrid({
491
560
  tileSize: 256,
492
561
  resolutions: [
@@ -504,13 +573,8 @@ var createBaseLayer = (isDark = true) => {
504
573
  26817861328125e-19,
505
574
  134089306640625e-20
506
575
  ],
507
- origin: [118.122911693886, 31.2869311022836],
508
- extent: [
509
- 118.340502132662,
510
- 29.2073269598186,
511
- 120.724787992425,
512
- 30.5617943760008
513
- ]
576
+ origin: [118.125614083886, 31.2857011022836],
577
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
514
578
  }),
515
579
  projection: "EPSG:4326",
516
580
  urls: isDark ? [
@@ -532,13 +596,12 @@ var createBaseLayer = (isDark = true) => {
532
596
  }
533
597
  });
534
598
  };
535
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
599
+ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") => {
536
600
  const [name, matrixSet] = layerName.split("_");
537
601
  return new import_layer.Tile({
538
- className,
539
602
  cacheSize: 20240,
540
603
  zIndex: -1,
541
- source: new import_source2.WMTS({
604
+ source: new import_source3.WMTS({
542
605
  crossOrigin: "anonymous",
543
606
  projection: "EPSG:4326",
544
607
  wrapX: true,
@@ -547,7 +610,7 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
547
610
  version: "1.0.0",
548
611
  format: "image/png",
549
612
  matrixSet,
550
- tileGrid: new import_WMTS.default({
613
+ tileGrid: new import_WMTS2.default({
551
614
  origin: [-180, 90],
552
615
  matrixIds: [
553
616
  "1",
@@ -595,7 +658,8 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
595
658
  url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
596
659
  }),
597
660
  properties: {
598
- _isBaseLayer: true
661
+ _isBaseLayer: true,
662
+ _layerName: layerName
599
663
  }
600
664
  });
601
665
  };
@@ -626,6 +690,7 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
626
690
  createSelectByLayer,
627
691
  createVectorFaceLayer,
628
692
  createVectorLineLayer,
693
+ createWmtsLayer,
629
694
  disposeMap,
630
695
  emitter,
631
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
 
@@ -288,6 +355,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
288
355
  return feature;
289
356
  });
290
357
  const vectorLayer = new VectorLayer({
358
+ zIndex: 2e3,
291
359
  source: new VectorSource({
292
360
  features
293
361
  })
@@ -379,7 +447,7 @@ var createMapInstance = (config = {}) => {
379
447
  if (instance) {
380
448
  return instance;
381
449
  }
382
- instance = new Map({
450
+ instance = new Map2({
383
451
  view: new View(innerConfig),
384
452
  controls: defaults({
385
453
  zoom: false,
@@ -450,13 +518,8 @@ var createBaseLayer = (isDark = true) => {
450
518
  26817861328125e-19,
451
519
  134089306640625e-20
452
520
  ],
453
- origin: [118.122911693886, 31.2869311022836],
454
- extent: [
455
- 118.340502132662,
456
- 29.2073269598186,
457
- 120.724787992425,
458
- 30.5617943760008
459
- ]
521
+ origin: [118.125614083886, 31.2857011022836],
522
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
460
523
  }),
461
524
  projection: "EPSG:4326",
462
525
  urls: isDark ? [
@@ -478,13 +541,12 @@ var createBaseLayer = (isDark = true) => {
478
541
  }
479
542
  });
480
543
  };
481
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
544
+ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") => {
482
545
  const [name, matrixSet] = layerName.split("_");
483
546
  return new Tile({
484
- className,
485
547
  cacheSize: 20240,
486
548
  zIndex: -1,
487
- source: new WMTS({
549
+ source: new WMTS2({
488
550
  crossOrigin: "anonymous",
489
551
  projection: "EPSG:4326",
490
552
  wrapX: true,
@@ -541,7 +603,8 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
541
603
  url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
542
604
  }),
543
605
  properties: {
544
- _isBaseLayer: true
606
+ _isBaseLayer: true,
607
+ _layerName: layerName
545
608
  }
546
609
  });
547
610
  };
@@ -571,6 +634,7 @@ export {
571
634
  createSelectByLayer,
572
635
  createVectorFaceLayer,
573
636
  createVectorLineLayer,
637
+ createWmtsLayer,
574
638
  disposeMap,
575
639
  emitter_default as emitter,
576
640
  getMapInstance,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.19",
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
  },