map-ol-utils 0.0.19 → 0.0.21

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,59 @@ 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) => (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
+ console.log(options);
136
+ if (options) {
137
+ resolve(
138
+ new import_Tile.default({
139
+ zIndex: 3,
140
+ className: layerName,
141
+ source: new import_source.WMTS(options)
142
+ })
143
+ );
144
+ } else {
145
+ reject(new Error("Unable to create TileLayer"));
146
+ }
147
+ });
148
+ });
149
+ });
150
+
151
+ // src/base-layer.ts
82
152
  var import_source2 = require("ol/source");
153
+ var import_source3 = require("ol/source");
83
154
  var import_tilegrid = require("ol/tilegrid");
84
155
  var import_layer = require("ol/layer");
85
156
 
@@ -90,7 +161,7 @@ var import_control = require("ol/control");
90
161
 
91
162
  // src/layer-utils.ts
92
163
  var import_geom = require("ol/geom");
93
- var import_format = require("ol/format");
164
+ var import_format2 = require("ol/format");
94
165
  var import_ol = require("ol");
95
166
  var import_interaction = require("ol/interaction");
96
167
  var import_Vector = __toESM(require("ol/layer/Vector"), 1);
@@ -157,7 +228,7 @@ var createGeoJsonLayer = (dataList, config) => {
157
228
  const vectorLayer = new import_Vector.default({
158
229
  className: layerName ? layerName : "ol-layer",
159
230
  source: new import_Vector2.default({
160
- features: new import_format.GeoJSON().readFeatures(geoJson)
231
+ features: new import_format2.GeoJSON().readFeatures(geoJson)
161
232
  }),
162
233
  style: isLine ? new import_style.Style({
163
234
  stroke: new import_style.Stroke({
@@ -342,6 +413,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
342
413
  return feature;
343
414
  });
344
415
  const vectorLayer = new import_Vector.default({
416
+ zIndex: 2e3,
345
417
  source: new import_Vector2.default({
346
418
  features
347
419
  })
@@ -480,13 +552,13 @@ var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
480
552
  };
481
553
 
482
554
  // src/base-layer.ts
483
- var import_WMTS = __toESM(require("ol/tilegrid/WMTS"), 1);
555
+ var import_WMTS2 = __toESM(require("ol/tilegrid/WMTS"), 1);
484
556
  var createBaseLayer = (isDark = true) => {
485
557
  return new import_layer.Tile({
486
558
  zIndex: -1,
487
559
  minZoom: 8,
488
560
  maxZoom: 21,
489
- source: new import_source.XYZ({
561
+ source: new import_source2.XYZ({
490
562
  tileGrid: new import_tilegrid.TileGrid({
491
563
  tileSize: 256,
492
564
  resolutions: [
@@ -504,13 +576,8 @@ var createBaseLayer = (isDark = true) => {
504
576
  26817861328125e-19,
505
577
  134089306640625e-20
506
578
  ],
507
- origin: [118.122911693886, 31.2869311022836],
508
- extent: [
509
- 118.340502132662,
510
- 29.2073269598186,
511
- 120.724787992425,
512
- 30.5617943760008
513
- ]
579
+ origin: [118.125614083886, 31.2857011022836],
580
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
514
581
  }),
515
582
  projection: "EPSG:4326",
516
583
  urls: isDark ? [
@@ -532,13 +599,12 @@ var createBaseLayer = (isDark = true) => {
532
599
  }
533
600
  });
534
601
  };
535
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
602
+ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") => {
536
603
  const [name, matrixSet] = layerName.split("_");
537
604
  return new import_layer.Tile({
538
- className,
539
605
  cacheSize: 20240,
540
606
  zIndex: -1,
541
- source: new import_source2.WMTS({
607
+ source: new import_source3.WMTS({
542
608
  crossOrigin: "anonymous",
543
609
  projection: "EPSG:4326",
544
610
  wrapX: true,
@@ -547,7 +613,7 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
547
613
  version: "1.0.0",
548
614
  format: "image/png",
549
615
  matrixSet,
550
- tileGrid: new import_WMTS.default({
616
+ tileGrid: new import_WMTS2.default({
551
617
  origin: [-180, 90],
552
618
  matrixIds: [
553
619
  "1",
@@ -595,7 +661,8 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
595
661
  url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
596
662
  }),
597
663
  properties: {
598
- _isBaseLayer: true
664
+ _isBaseLayer: true,
665
+ _layerName: layerName
599
666
  }
600
667
  });
601
668
  };
@@ -626,6 +693,7 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
626
693
  createSelectByLayer,
627
694
  createVectorFaceLayer,
628
695
  createVectorLineLayer,
696
+ createWmtsLayer,
629
697
  disposeMap,
630
698
  emitter,
631
699
  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';
@@ -72,21 +73,29 @@ type MassMarkersStyleOptions = {
72
73
  size: [number, number];
73
74
  anchor?: [number, number];
74
75
  };
76
+ type WmtsSourceOptions = {
77
+ style?: string;
78
+ format?: string;
79
+ version?: string;
80
+ layerName: string;
81
+ matrixSet?: string;
82
+ };
75
83
 
76
84
  declare const emitter: Emitter<Record<EventType, any>>;
77
85
 
86
+ declare const createWmtsLayer: (serverUrl: string) => (config: WmtsSourceOptions) => Promise<TileLayer>;
87
+
78
88
  /**
79
- * 创建杭州规资地图
89
+ * 创建杭州规自地图
80
90
  * @param isDark
81
91
  */
82
92
  declare const createBaseLayer: (isDark?: boolean) => Tile<XYZ>;
83
93
  /**
84
94
  * 创建天地图
85
95
  * @param layerName - 图层名称
86
- * @param className - className
87
96
  * @param tk - 天地图TK
88
97
  */
89
- declare const createMapWorldLayer: (layerName: string, className: string, tk?: string) => Tile<WMTS>;
98
+ declare const createMapWorldLayer: (layerName: string, tk?: string) => Tile<WMTS>;
90
99
 
91
100
  declare let instance: CustomMap;
92
101
  declare const createMapInstance: (config?: {}) => CustomMap;
@@ -156,4 +165,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
156
165
  */
157
166
  declare const updateMarksLayersByStatus: (checkedStatusList?: any[]) => void;
158
167
 
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 };
168
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, type WmtsSourceOptions, 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';
@@ -72,21 +73,29 @@ type MassMarkersStyleOptions = {
72
73
  size: [number, number];
73
74
  anchor?: [number, number];
74
75
  };
76
+ type WmtsSourceOptions = {
77
+ style?: string;
78
+ format?: string;
79
+ version?: string;
80
+ layerName: string;
81
+ matrixSet?: string;
82
+ };
75
83
 
76
84
  declare const emitter: Emitter<Record<EventType, any>>;
77
85
 
86
+ declare const createWmtsLayer: (serverUrl: string) => (config: WmtsSourceOptions) => Promise<TileLayer>;
87
+
78
88
  /**
79
- * 创建杭州规资地图
89
+ * 创建杭州规自地图
80
90
  * @param isDark
81
91
  */
82
92
  declare const createBaseLayer: (isDark?: boolean) => Tile<XYZ>;
83
93
  /**
84
94
  * 创建天地图
85
95
  * @param layerName - 图层名称
86
- * @param className - className
87
96
  * @param tk - 天地图TK
88
97
  */
89
- declare const createMapWorldLayer: (layerName: string, className: string, tk?: string) => Tile<WMTS>;
98
+ declare const createMapWorldLayer: (layerName: string, tk?: string) => Tile<WMTS>;
90
99
 
91
100
  declare let instance: CustomMap;
92
101
  declare const createMapInstance: (config?: {}) => CustomMap;
@@ -156,4 +165,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
156
165
  */
157
166
  declare const updateMarksLayersByStatus: (checkedStatusList?: any[]) => void;
158
167
 
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 };
168
+ export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type LayerConfig, type LineConfig, type MassData, type MassMarkersStyleOptions, type VectorConfig, type WmtsSourceOptions, 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,90 @@ 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) => (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
+ console.log(options);
81
+ if (options) {
82
+ resolve(
83
+ new TileLayer({
84
+ zIndex: 3,
85
+ className: layerName,
86
+ source: new WMTS(options)
87
+ })
88
+ );
89
+ } else {
90
+ reject(new Error("Unable to create TileLayer"));
91
+ }
92
+ });
93
+ });
94
+ });
95
+
26
96
  // src/base-layer.ts
27
97
  import { XYZ } from "ol/source";
28
- import { WMTS } from "ol/source";
98
+ import { WMTS as WMTS2 } from "ol/source";
29
99
  import { TileGrid } from "ol/tilegrid";
30
100
  import { Tile } from "ol/layer";
31
101
 
32
102
  // src/create-map.ts
33
- import Map from "ol/Map";
103
+ import Map2 from "ol/Map";
34
104
  import View from "ol/View";
35
105
  import { defaults } from "ol/control";
36
106
 
@@ -288,6 +358,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
288
358
  return feature;
289
359
  });
290
360
  const vectorLayer = new VectorLayer({
361
+ zIndex: 2e3,
291
362
  source: new VectorSource({
292
363
  features
293
364
  })
@@ -379,7 +450,7 @@ var createMapInstance = (config = {}) => {
379
450
  if (instance) {
380
451
  return instance;
381
452
  }
382
- instance = new Map({
453
+ instance = new Map2({
383
454
  view: new View(innerConfig),
384
455
  controls: defaults({
385
456
  zoom: false,
@@ -450,13 +521,8 @@ var createBaseLayer = (isDark = true) => {
450
521
  26817861328125e-19,
451
522
  134089306640625e-20
452
523
  ],
453
- origin: [118.122911693886, 31.2869311022836],
454
- extent: [
455
- 118.340502132662,
456
- 29.2073269598186,
457
- 120.724787992425,
458
- 30.5617943760008
459
- ]
524
+ origin: [118.125614083886, 31.2857011022836],
525
+ extent: [118.340502132662, 29.2073269598186, 120.724787992425, 30.5617943760008]
460
526
  }),
461
527
  projection: "EPSG:4326",
462
528
  urls: isDark ? [
@@ -478,13 +544,12 @@ var createBaseLayer = (isDark = true) => {
478
544
  }
479
545
  });
480
546
  };
481
- var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560baf93e7") => {
547
+ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") => {
482
548
  const [name, matrixSet] = layerName.split("_");
483
549
  return new Tile({
484
- className,
485
550
  cacheSize: 20240,
486
551
  zIndex: -1,
487
- source: new WMTS({
552
+ source: new WMTS2({
488
553
  crossOrigin: "anonymous",
489
554
  projection: "EPSG:4326",
490
555
  wrapX: true,
@@ -541,7 +606,8 @@ var createMapWorldLayer = (layerName, className, tk = "c77eddc667c5bed016fded560
541
606
  url: `https://t{0-7}.tianditu.gov.cn/${layerName}/wmts?tk=${tk}`
542
607
  }),
543
608
  properties: {
544
- _isBaseLayer: true
609
+ _isBaseLayer: true,
610
+ _layerName: layerName
545
611
  }
546
612
  });
547
613
  };
@@ -571,6 +637,7 @@ export {
571
637
  createSelectByLayer,
572
638
  createVectorFaceLayer,
573
639
  createVectorLineLayer,
640
+ createWmtsLayer,
574
641
  disposeMap,
575
642
  emitter_default as emitter,
576
643
  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.21",
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
  },