map-ol-utils 0.0.29 → 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 +203 -167
- package/dist/index.d.cts +7 -8
- package/dist/index.d.ts +7 -8
- package/dist/index.js +197 -162
- package/package.json +1 -1
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,62 +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
|
-
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
|
|
152
|
-
var import_source2 = require("ol/source");
|
|
153
|
-
var import_source3 = require("ol/source");
|
|
154
|
-
var import_tilegrid = require("ol/tilegrid");
|
|
155
|
-
var import_layer = require("ol/layer");
|
|
156
|
-
|
|
157
102
|
// src/create-map.ts
|
|
158
103
|
var import_Map = __toESM(require("ol/Map"), 1);
|
|
159
104
|
var import_View = __toESM(require("ol/View"), 1);
|
|
@@ -162,25 +107,7 @@ var import_control = require("ol/control");
|
|
|
162
107
|
// src/layer-utils.ts
|
|
163
108
|
var import_gcoord = __toESM(require("gcoord"), 1);
|
|
164
109
|
var import_geom = require("ol/geom");
|
|
165
|
-
|
|
166
|
-
// src/helper.ts
|
|
167
|
-
var hexToRgba = (hex, alpha) => {
|
|
168
|
-
if (hex.startsWith("#")) {
|
|
169
|
-
let tempHex = hex.replace("#", "");
|
|
170
|
-
if (tempHex.length === 3) {
|
|
171
|
-
tempHex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
|
|
172
|
-
}
|
|
173
|
-
const r = parseInt(tempHex.substring(0, 2), 16);
|
|
174
|
-
const g = parseInt(tempHex.substring(2, 4), 16);
|
|
175
|
-
const b = parseInt(tempHex.substring(4, 6), 16);
|
|
176
|
-
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
|
|
177
|
-
} else {
|
|
178
|
-
return hex;
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
// src/layer-utils.ts
|
|
183
|
-
var import_format2 = require("ol/format");
|
|
110
|
+
var import_format = require("ol/format");
|
|
184
111
|
var import_ol = require("ol");
|
|
185
112
|
var import_interaction = require("ol/interaction");
|
|
186
113
|
var import_Vector = __toESM(require("ol/layer/Vector"), 1);
|
|
@@ -242,7 +169,15 @@ var assembleGeoJson = (dataList, config) => {
|
|
|
242
169
|
return !needTransform ? { type: "FeatureCollection", features: tempList } : import_gcoord.default.transform({ type: "FeatureCollection", features: tempList }, import_gcoord.default.GCJ02, import_gcoord.default.WGS84);
|
|
243
170
|
};
|
|
244
171
|
var createVectorStyle = (data, config) => {
|
|
245
|
-
const {
|
|
172
|
+
const {
|
|
173
|
+
isLine,
|
|
174
|
+
colorMap,
|
|
175
|
+
fillColor,
|
|
176
|
+
colorKey,
|
|
177
|
+
strokeColor,
|
|
178
|
+
strokeWeight,
|
|
179
|
+
fillOpacity
|
|
180
|
+
} = config || {};
|
|
246
181
|
const style = new import_style.Style({
|
|
247
182
|
stroke: new import_style.Stroke({
|
|
248
183
|
width: strokeWeight,
|
|
@@ -252,26 +187,32 @@ var createVectorStyle = (data, config) => {
|
|
|
252
187
|
if (!isLine) {
|
|
253
188
|
style.setFill(
|
|
254
189
|
new import_style.Fill({
|
|
255
|
-
color: hexToRgba(
|
|
190
|
+
color: hexToRgba(
|
|
191
|
+
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
192
|
+
fillOpacity || 1
|
|
193
|
+
)
|
|
256
194
|
})
|
|
257
195
|
);
|
|
258
196
|
}
|
|
259
197
|
return style;
|
|
260
198
|
};
|
|
261
199
|
var createBusinessLayer = (dataList, config) => {
|
|
262
|
-
const { layerName } = config
|
|
200
|
+
const { layerName } = config;
|
|
263
201
|
const geoJson = assembleGeoJson(dataList, config);
|
|
264
202
|
const vectorLayer = new import_Vector.default({
|
|
265
203
|
zIndex: 5,
|
|
266
204
|
className: layerName ? layerName : "ol-layer",
|
|
267
205
|
source: new import_Vector2.default({
|
|
268
|
-
features: new
|
|
206
|
+
features: new import_format.GeoJSON().readFeatures(geoJson).map((feature) => {
|
|
269
207
|
feature.setStyle(createVectorStyle(feature.getProperties(), config));
|
|
270
208
|
return feature;
|
|
271
209
|
})
|
|
272
210
|
})
|
|
273
211
|
});
|
|
274
|
-
vectorLayer.
|
|
212
|
+
vectorLayer.setProperties({
|
|
213
|
+
_layerName: layerName,
|
|
214
|
+
_dataList: [...dataList]
|
|
215
|
+
});
|
|
275
216
|
return vectorLayer;
|
|
276
217
|
};
|
|
277
218
|
var createVectorFaceLayer = (dataList = [], config) => createBusinessLayer(dataList, Object.assign(config, { isLine: false }));
|
|
@@ -289,7 +230,7 @@ var removeAllLayers = (isClearAll = true) => {
|
|
|
289
230
|
};
|
|
290
231
|
var resetActiveMarker = () => {
|
|
291
232
|
removeOverlays();
|
|
292
|
-
const massMarksLayers = instance.
|
|
233
|
+
const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
|
|
293
234
|
massMarksLayers.forEach((layer) => {
|
|
294
235
|
const selectInteraction = layer.get("_selectInteraction");
|
|
295
236
|
if (selectInteraction) {
|
|
@@ -312,11 +253,15 @@ var activeMarkerByUid = (uid) => {
|
|
|
312
253
|
);
|
|
313
254
|
if (targetLayer) {
|
|
314
255
|
const tempList = ((_a = targetLayer.getSource()) == null ? void 0 : _a.getFeatures()) || [];
|
|
315
|
-
const targetFeature = tempList.find(
|
|
256
|
+
const targetFeature = tempList.find(
|
|
257
|
+
(feature) => feature.get("_uuid") === uid
|
|
258
|
+
);
|
|
316
259
|
const selectInteraction = targetLayer.get("_selectInteraction");
|
|
317
260
|
if (selectInteraction) {
|
|
318
261
|
const collection = selectInteraction.getFeatures().getArray();
|
|
319
|
-
const hasFeature = collection.find(
|
|
262
|
+
const hasFeature = collection.find(
|
|
263
|
+
(feature) => feature.get("_uuid") === uid
|
|
264
|
+
);
|
|
320
265
|
if (!hasFeature) {
|
|
321
266
|
selectInteraction.dispatchEvent({
|
|
322
267
|
type: "select",
|
|
@@ -411,7 +356,11 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
411
356
|
}, 1e3);
|
|
412
357
|
}
|
|
413
358
|
const view = instance.getView();
|
|
414
|
-
view.animate({
|
|
359
|
+
view.animate({
|
|
360
|
+
zoom: 12,
|
|
361
|
+
center: [+data.lnglat[0], +data.lnglat[1]],
|
|
362
|
+
duration: 1e3
|
|
363
|
+
});
|
|
415
364
|
}
|
|
416
365
|
if (deselected.length) {
|
|
417
366
|
const feature = deselected[0];
|
|
@@ -475,22 +424,28 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
475
424
|
createSelectByLayer(massMarksLayer);
|
|
476
425
|
}
|
|
477
426
|
if (hasLine) {
|
|
478
|
-
const vectorLayer = createBusinessLayer(
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
427
|
+
const vectorLayer = createBusinessLayer(
|
|
428
|
+
dataList,
|
|
429
|
+
vectorConfig || {
|
|
430
|
+
key: "line",
|
|
431
|
+
isLine: true,
|
|
432
|
+
strokeColor: "rgba(29, 235, 255, 0.8)"
|
|
433
|
+
}
|
|
434
|
+
);
|
|
483
435
|
instance.addLayer(vectorLayer);
|
|
484
436
|
}
|
|
485
437
|
if (hasFace) {
|
|
486
|
-
const vectorLayer = createBusinessLayer(
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
438
|
+
const vectorLayer = createBusinessLayer(
|
|
439
|
+
dataList,
|
|
440
|
+
vectorConfig || {
|
|
441
|
+
isLine: false,
|
|
442
|
+
key: "faceList",
|
|
443
|
+
fillColor: "#4247DF",
|
|
444
|
+
strokeWeight: 1,
|
|
445
|
+
strokeStyle: "dashed",
|
|
446
|
+
strokeColor: "#4247DF"
|
|
447
|
+
}
|
|
448
|
+
);
|
|
494
449
|
instance.addLayer(vectorLayer);
|
|
495
450
|
}
|
|
496
451
|
massMarksLayer.setProperties({
|
|
@@ -509,80 +464,19 @@ var updateMarksLayersByStatus = (checkedStatusList = []) => {
|
|
|
509
464
|
|
|
510
465
|
// src/create-map.ts
|
|
511
466
|
var import_interaction2 = require("ol/interaction");
|
|
512
|
-
var instance;
|
|
513
|
-
var mapCenter = [119.71512016971076, 30.122490541963536];
|
|
514
|
-
var createMapInstance = (config = {}) => {
|
|
515
|
-
const innerConfig = Object.assign(
|
|
516
|
-
{
|
|
517
|
-
zoom: 9.4,
|
|
518
|
-
maxZoom: 18,
|
|
519
|
-
minZoom: 9.4,
|
|
520
|
-
center: mapCenter,
|
|
521
|
-
baseLayer: "vec-layer",
|
|
522
|
-
projection: "EPSG:4326",
|
|
523
|
-
layers: [createBaseLayer()],
|
|
524
|
-
smoothExtentConstraint: false,
|
|
525
|
-
tk: "c77eddc667c5bed016fded560baf93e7"
|
|
526
|
-
},
|
|
527
|
-
config || {}
|
|
528
|
-
);
|
|
529
|
-
if (instance) {
|
|
530
|
-
return instance;
|
|
531
|
-
}
|
|
532
|
-
instance = new import_Map.default({
|
|
533
|
-
view: new import_View.default(innerConfig),
|
|
534
|
-
controls: (0, import_control.defaults)({
|
|
535
|
-
zoom: false,
|
|
536
|
-
rotate: false,
|
|
537
|
-
attribution: false
|
|
538
|
-
}),
|
|
539
|
-
interactions: (0, import_interaction2.defaults)({
|
|
540
|
-
doubleClickZoom: false
|
|
541
|
-
}),
|
|
542
|
-
layers: innerConfig.layers || [createBaseLayer()]
|
|
543
|
-
});
|
|
544
|
-
mapCenter = innerConfig.center || mapCenter;
|
|
545
|
-
instance.activeBaseLayer = innerConfig.baseLayer;
|
|
546
|
-
instance.getLayerByName = getLayerByName;
|
|
547
|
-
instance.removeLayerByName = removeLayerByName;
|
|
548
|
-
instance.changeLayersByNames = changeLayersByNames;
|
|
549
|
-
instance.on("pointermove", (evt) => {
|
|
550
|
-
instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(
|
|
551
|
-
evt.pixel
|
|
552
|
-
) ? "pointer" : "";
|
|
553
|
-
});
|
|
554
|
-
return instance;
|
|
555
|
-
};
|
|
556
|
-
var disposeMap = () => {
|
|
557
|
-
const layers = instance.getAllLayers();
|
|
558
|
-
layers.forEach((layer) => {
|
|
559
|
-
instance.removeLayer(layer);
|
|
560
|
-
});
|
|
561
|
-
instance.setTarget("");
|
|
562
|
-
instance = void 0;
|
|
563
|
-
};
|
|
564
|
-
var getMapInstance = () => instance;
|
|
565
|
-
var resetZoomAndCenter = (center = mapCenter) => {
|
|
566
|
-
const view = instance.getView();
|
|
567
|
-
view.animate({
|
|
568
|
-
zoom: 9.4,
|
|
569
|
-
center,
|
|
570
|
-
duration: 1e3
|
|
571
|
-
});
|
|
572
|
-
};
|
|
573
|
-
var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
|
|
574
|
-
removeAllLayers(config.isClearAll);
|
|
575
|
-
resetZoomAndCenter(config.center || mapCenter);
|
|
576
|
-
};
|
|
577
467
|
|
|
578
468
|
// src/base-layer.ts
|
|
579
|
-
var
|
|
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);
|
|
580
474
|
var createBaseLayer = (isDark = true) => {
|
|
581
475
|
return new import_layer.Tile({
|
|
582
476
|
zIndex: -1,
|
|
583
477
|
minZoom: 8,
|
|
584
478
|
maxZoom: 21,
|
|
585
|
-
source: new
|
|
479
|
+
source: new import_source.XYZ({
|
|
586
480
|
tileGrid: new import_tilegrid.TileGrid({
|
|
587
481
|
tileSize: 256,
|
|
588
482
|
resolutions: [
|
|
@@ -601,7 +495,12 @@ var createBaseLayer = (isDark = true) => {
|
|
|
601
495
|
134089306640625e-20
|
|
602
496
|
],
|
|
603
497
|
origin: [118.125614083886, 31.2857011022836],
|
|
604
|
-
extent: [
|
|
498
|
+
extent: [
|
|
499
|
+
118.340502132662,
|
|
500
|
+
29.2073269598186,
|
|
501
|
+
120.724787992425,
|
|
502
|
+
30.5617943760008
|
|
503
|
+
]
|
|
605
504
|
}),
|
|
606
505
|
projection: "EPSG:4326",
|
|
607
506
|
urls: isDark ? [
|
|
@@ -628,7 +527,7 @@ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") =
|
|
|
628
527
|
return new import_layer.Tile({
|
|
629
528
|
cacheSize: 20240,
|
|
630
529
|
zIndex: -1,
|
|
631
|
-
source: new
|
|
530
|
+
source: new import_source2.WMTS({
|
|
632
531
|
crossOrigin: "anonymous",
|
|
633
532
|
projection: "EPSG:4326",
|
|
634
533
|
wrapX: true,
|
|
@@ -637,7 +536,7 @@ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") =
|
|
|
637
536
|
version: "1.0.0",
|
|
638
537
|
format: "image/png",
|
|
639
538
|
matrixSet,
|
|
640
|
-
tileGrid: new
|
|
539
|
+
tileGrid: new import_WMTS.default({
|
|
641
540
|
origin: [-180, 90],
|
|
642
541
|
matrixIds: [
|
|
643
542
|
"1",
|
|
@@ -703,6 +602,142 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
|
|
|
703
602
|
layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
|
|
704
603
|
});
|
|
705
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
|
+
});
|
|
706
741
|
// Annotate the CommonJS export names for ESM import in node:
|
|
707
742
|
0 && (module.exports = {
|
|
708
743
|
activeMarkerByUid,
|
|
@@ -720,6 +755,7 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
|
|
|
720
755
|
createWmtsLayer,
|
|
721
756
|
disposeMap,
|
|
722
757
|
emitter,
|
|
758
|
+
getLayersDataList,
|
|
723
759
|
getMapInstance,
|
|
724
760
|
instance,
|
|
725
761
|
removeAllLayers,
|
package/dist/index.d.cts
CHANGED
|
@@ -64,13 +64,6 @@ type MassData = {
|
|
|
64
64
|
}[];
|
|
65
65
|
lnglat: [string, string] | [number, number];
|
|
66
66
|
};
|
|
67
|
-
type MassMarkersStyleOptions = {
|
|
68
|
-
url: string;
|
|
69
|
-
zIndex?: number;
|
|
70
|
-
rotation: number;
|
|
71
|
-
size: [number, number];
|
|
72
|
-
anchor?: [number, number];
|
|
73
|
-
};
|
|
74
67
|
type WmtsSourceOptions = {
|
|
75
68
|
style?: string;
|
|
76
69
|
format?: string;
|
|
@@ -81,6 +74,12 @@ type WmtsSourceOptions = {
|
|
|
81
74
|
|
|
82
75
|
declare const emitter: Emitter<Record<EventType, any>>;
|
|
83
76
|
|
|
77
|
+
declare const getLayersDataList: () => any[];
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 创建WMTS图层
|
|
81
|
+
* @param serverUrl
|
|
82
|
+
*/
|
|
84
83
|
declare const createWmtsLayer: (serverUrl: string) => (config: WmtsSourceOptions) => Promise<TileLayer>;
|
|
85
84
|
|
|
86
85
|
/**
|
|
@@ -163,4 +162,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
|
|
|
163
162
|
*/
|
|
164
163
|
declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
|
|
165
164
|
|
|
166
|
-
export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type
|
|
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
|
@@ -64,13 +64,6 @@ type MassData = {
|
|
|
64
64
|
}[];
|
|
65
65
|
lnglat: [string, string] | [number, number];
|
|
66
66
|
};
|
|
67
|
-
type MassMarkersStyleOptions = {
|
|
68
|
-
url: string;
|
|
69
|
-
zIndex?: number;
|
|
70
|
-
rotation: number;
|
|
71
|
-
size: [number, number];
|
|
72
|
-
anchor?: [number, number];
|
|
73
|
-
};
|
|
74
67
|
type WmtsSourceOptions = {
|
|
75
68
|
style?: string;
|
|
76
69
|
format?: string;
|
|
@@ -81,6 +74,12 @@ type WmtsSourceOptions = {
|
|
|
81
74
|
|
|
82
75
|
declare const emitter: Emitter<Record<EventType, any>>;
|
|
83
76
|
|
|
77
|
+
declare const getLayersDataList: () => any[];
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 创建WMTS图层
|
|
81
|
+
* @param serverUrl
|
|
82
|
+
*/
|
|
84
83
|
declare const createWmtsLayer: (serverUrl: string) => (config: WmtsSourceOptions) => Promise<TileLayer>;
|
|
85
84
|
|
|
86
85
|
/**
|
|
@@ -163,4 +162,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
|
|
|
163
162
|
*/
|
|
164
163
|
declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => void;
|
|
165
164
|
|
|
166
|
-
export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type
|
|
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,62 +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
|
-
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
|
-
|
|
96
|
-
// src/base-layer.ts
|
|
97
|
-
import { XYZ } from "ol/source";
|
|
98
|
-
import { WMTS as WMTS2 } from "ol/source";
|
|
99
|
-
import { TileGrid } from "ol/tilegrid";
|
|
100
|
-
import { Tile } from "ol/layer";
|
|
101
|
-
|
|
102
46
|
// src/create-map.ts
|
|
103
47
|
import Map2 from "ol/Map";
|
|
104
48
|
import View from "ol/View";
|
|
@@ -107,24 +51,6 @@ import { defaults } from "ol/control";
|
|
|
107
51
|
// src/layer-utils.ts
|
|
108
52
|
import gcoord from "gcoord";
|
|
109
53
|
import { Point } from "ol/geom";
|
|
110
|
-
|
|
111
|
-
// src/helper.ts
|
|
112
|
-
var hexToRgba = (hex, alpha) => {
|
|
113
|
-
if (hex.startsWith("#")) {
|
|
114
|
-
let tempHex = hex.replace("#", "");
|
|
115
|
-
if (tempHex.length === 3) {
|
|
116
|
-
tempHex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
|
|
117
|
-
}
|
|
118
|
-
const r = parseInt(tempHex.substring(0, 2), 16);
|
|
119
|
-
const g = parseInt(tempHex.substring(2, 4), 16);
|
|
120
|
-
const b = parseInt(tempHex.substring(4, 6), 16);
|
|
121
|
-
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
|
|
122
|
-
} else {
|
|
123
|
-
return hex;
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
// src/layer-utils.ts
|
|
128
54
|
import { GeoJSON } from "ol/format";
|
|
129
55
|
import { Feature, Overlay } from "ol";
|
|
130
56
|
import { Select } from "ol/interaction";
|
|
@@ -187,7 +113,15 @@ var assembleGeoJson = (dataList, config) => {
|
|
|
187
113
|
return !needTransform ? { type: "FeatureCollection", features: tempList } : gcoord.transform({ type: "FeatureCollection", features: tempList }, gcoord.GCJ02, gcoord.WGS84);
|
|
188
114
|
};
|
|
189
115
|
var createVectorStyle = (data, config) => {
|
|
190
|
-
const {
|
|
116
|
+
const {
|
|
117
|
+
isLine,
|
|
118
|
+
colorMap,
|
|
119
|
+
fillColor,
|
|
120
|
+
colorKey,
|
|
121
|
+
strokeColor,
|
|
122
|
+
strokeWeight,
|
|
123
|
+
fillOpacity
|
|
124
|
+
} = config || {};
|
|
191
125
|
const style = new Style({
|
|
192
126
|
stroke: new Stroke({
|
|
193
127
|
width: strokeWeight,
|
|
@@ -197,14 +131,17 @@ var createVectorStyle = (data, config) => {
|
|
|
197
131
|
if (!isLine) {
|
|
198
132
|
style.setFill(
|
|
199
133
|
new Fill({
|
|
200
|
-
color: hexToRgba(
|
|
134
|
+
color: hexToRgba(
|
|
135
|
+
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
136
|
+
fillOpacity || 1
|
|
137
|
+
)
|
|
201
138
|
})
|
|
202
139
|
);
|
|
203
140
|
}
|
|
204
141
|
return style;
|
|
205
142
|
};
|
|
206
143
|
var createBusinessLayer = (dataList, config) => {
|
|
207
|
-
const { layerName } = config
|
|
144
|
+
const { layerName } = config;
|
|
208
145
|
const geoJson = assembleGeoJson(dataList, config);
|
|
209
146
|
const vectorLayer = new VectorLayer({
|
|
210
147
|
zIndex: 5,
|
|
@@ -216,7 +153,10 @@ var createBusinessLayer = (dataList, config) => {
|
|
|
216
153
|
})
|
|
217
154
|
})
|
|
218
155
|
});
|
|
219
|
-
vectorLayer.
|
|
156
|
+
vectorLayer.setProperties({
|
|
157
|
+
_layerName: layerName,
|
|
158
|
+
_dataList: [...dataList]
|
|
159
|
+
});
|
|
220
160
|
return vectorLayer;
|
|
221
161
|
};
|
|
222
162
|
var createVectorFaceLayer = (dataList = [], config) => createBusinessLayer(dataList, Object.assign(config, { isLine: false }));
|
|
@@ -234,7 +174,7 @@ var removeAllLayers = (isClearAll = true) => {
|
|
|
234
174
|
};
|
|
235
175
|
var resetActiveMarker = () => {
|
|
236
176
|
removeOverlays();
|
|
237
|
-
const massMarksLayers = instance.
|
|
177
|
+
const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
|
|
238
178
|
massMarksLayers.forEach((layer) => {
|
|
239
179
|
const selectInteraction = layer.get("_selectInteraction");
|
|
240
180
|
if (selectInteraction) {
|
|
@@ -257,11 +197,15 @@ var activeMarkerByUid = (uid) => {
|
|
|
257
197
|
);
|
|
258
198
|
if (targetLayer) {
|
|
259
199
|
const tempList = ((_a = targetLayer.getSource()) == null ? void 0 : _a.getFeatures()) || [];
|
|
260
|
-
const targetFeature = tempList.find(
|
|
200
|
+
const targetFeature = tempList.find(
|
|
201
|
+
(feature) => feature.get("_uuid") === uid
|
|
202
|
+
);
|
|
261
203
|
const selectInteraction = targetLayer.get("_selectInteraction");
|
|
262
204
|
if (selectInteraction) {
|
|
263
205
|
const collection = selectInteraction.getFeatures().getArray();
|
|
264
|
-
const hasFeature = collection.find(
|
|
206
|
+
const hasFeature = collection.find(
|
|
207
|
+
(feature) => feature.get("_uuid") === uid
|
|
208
|
+
);
|
|
265
209
|
if (!hasFeature) {
|
|
266
210
|
selectInteraction.dispatchEvent({
|
|
267
211
|
type: "select",
|
|
@@ -356,7 +300,11 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
356
300
|
}, 1e3);
|
|
357
301
|
}
|
|
358
302
|
const view = instance.getView();
|
|
359
|
-
view.animate({
|
|
303
|
+
view.animate({
|
|
304
|
+
zoom: 12,
|
|
305
|
+
center: [+data.lnglat[0], +data.lnglat[1]],
|
|
306
|
+
duration: 1e3
|
|
307
|
+
});
|
|
360
308
|
}
|
|
361
309
|
if (deselected.length) {
|
|
362
310
|
const feature = deselected[0];
|
|
@@ -420,22 +368,28 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
420
368
|
createSelectByLayer(massMarksLayer);
|
|
421
369
|
}
|
|
422
370
|
if (hasLine) {
|
|
423
|
-
const vectorLayer = createBusinessLayer(
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
371
|
+
const vectorLayer = createBusinessLayer(
|
|
372
|
+
dataList,
|
|
373
|
+
vectorConfig || {
|
|
374
|
+
key: "line",
|
|
375
|
+
isLine: true,
|
|
376
|
+
strokeColor: "rgba(29, 235, 255, 0.8)"
|
|
377
|
+
}
|
|
378
|
+
);
|
|
428
379
|
instance.addLayer(vectorLayer);
|
|
429
380
|
}
|
|
430
381
|
if (hasFace) {
|
|
431
|
-
const vectorLayer = createBusinessLayer(
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
382
|
+
const vectorLayer = createBusinessLayer(
|
|
383
|
+
dataList,
|
|
384
|
+
vectorConfig || {
|
|
385
|
+
isLine: false,
|
|
386
|
+
key: "faceList",
|
|
387
|
+
fillColor: "#4247DF",
|
|
388
|
+
strokeWeight: 1,
|
|
389
|
+
strokeStyle: "dashed",
|
|
390
|
+
strokeColor: "#4247DF"
|
|
391
|
+
}
|
|
392
|
+
);
|
|
439
393
|
instance.addLayer(vectorLayer);
|
|
440
394
|
}
|
|
441
395
|
massMarksLayer.setProperties({
|
|
@@ -454,73 +408,12 @@ var updateMarksLayersByStatus = (checkedStatusList = []) => {
|
|
|
454
408
|
|
|
455
409
|
// src/create-map.ts
|
|
456
410
|
import { defaults as interactionDefaults } from "ol/interaction";
|
|
457
|
-
var instance;
|
|
458
|
-
var mapCenter = [119.71512016971076, 30.122490541963536];
|
|
459
|
-
var createMapInstance = (config = {}) => {
|
|
460
|
-
const innerConfig = Object.assign(
|
|
461
|
-
{
|
|
462
|
-
zoom: 9.4,
|
|
463
|
-
maxZoom: 18,
|
|
464
|
-
minZoom: 9.4,
|
|
465
|
-
center: mapCenter,
|
|
466
|
-
baseLayer: "vec-layer",
|
|
467
|
-
projection: "EPSG:4326",
|
|
468
|
-
layers: [createBaseLayer()],
|
|
469
|
-
smoothExtentConstraint: false,
|
|
470
|
-
tk: "c77eddc667c5bed016fded560baf93e7"
|
|
471
|
-
},
|
|
472
|
-
config || {}
|
|
473
|
-
);
|
|
474
|
-
if (instance) {
|
|
475
|
-
return instance;
|
|
476
|
-
}
|
|
477
|
-
instance = new Map2({
|
|
478
|
-
view: new View(innerConfig),
|
|
479
|
-
controls: defaults({
|
|
480
|
-
zoom: false,
|
|
481
|
-
rotate: false,
|
|
482
|
-
attribution: false
|
|
483
|
-
}),
|
|
484
|
-
interactions: interactionDefaults({
|
|
485
|
-
doubleClickZoom: false
|
|
486
|
-
}),
|
|
487
|
-
layers: innerConfig.layers || [createBaseLayer()]
|
|
488
|
-
});
|
|
489
|
-
mapCenter = innerConfig.center || mapCenter;
|
|
490
|
-
instance.activeBaseLayer = innerConfig.baseLayer;
|
|
491
|
-
instance.getLayerByName = getLayerByName;
|
|
492
|
-
instance.removeLayerByName = removeLayerByName;
|
|
493
|
-
instance.changeLayersByNames = changeLayersByNames;
|
|
494
|
-
instance.on("pointermove", (evt) => {
|
|
495
|
-
instance.getTargetElement().style.cursor = instance.hasFeatureAtPixel(
|
|
496
|
-
evt.pixel
|
|
497
|
-
) ? "pointer" : "";
|
|
498
|
-
});
|
|
499
|
-
return instance;
|
|
500
|
-
};
|
|
501
|
-
var disposeMap = () => {
|
|
502
|
-
const layers = instance.getAllLayers();
|
|
503
|
-
layers.forEach((layer) => {
|
|
504
|
-
instance.removeLayer(layer);
|
|
505
|
-
});
|
|
506
|
-
instance.setTarget("");
|
|
507
|
-
instance = void 0;
|
|
508
|
-
};
|
|
509
|
-
var getMapInstance = () => instance;
|
|
510
|
-
var resetZoomAndCenter = (center = mapCenter) => {
|
|
511
|
-
const view = instance.getView();
|
|
512
|
-
view.animate({
|
|
513
|
-
zoom: 9.4,
|
|
514
|
-
center,
|
|
515
|
-
duration: 1e3
|
|
516
|
-
});
|
|
517
|
-
};
|
|
518
|
-
var resetMap = (config = { center: mapCenter, isClearAll: true }) => {
|
|
519
|
-
removeAllLayers(config.isClearAll);
|
|
520
|
-
resetZoomAndCenter(config.center || mapCenter);
|
|
521
|
-
};
|
|
522
411
|
|
|
523
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";
|
|
524
417
|
import WMTSTileGrid from "ol/tilegrid/WMTS";
|
|
525
418
|
var createBaseLayer = (isDark = true) => {
|
|
526
419
|
return new Tile({
|
|
@@ -546,7 +439,12 @@ var createBaseLayer = (isDark = true) => {
|
|
|
546
439
|
134089306640625e-20
|
|
547
440
|
],
|
|
548
441
|
origin: [118.125614083886, 31.2857011022836],
|
|
549
|
-
extent: [
|
|
442
|
+
extent: [
|
|
443
|
+
118.340502132662,
|
|
444
|
+
29.2073269598186,
|
|
445
|
+
120.724787992425,
|
|
446
|
+
30.5617943760008
|
|
447
|
+
]
|
|
550
448
|
}),
|
|
551
449
|
projection: "EPSG:4326",
|
|
552
450
|
urls: isDark ? [
|
|
@@ -573,7 +471,7 @@ var createMapWorldLayer = (layerName, tk = "c77eddc667c5bed016fded560baf93e7") =
|
|
|
573
471
|
return new Tile({
|
|
574
472
|
cacheSize: 20240,
|
|
575
473
|
zIndex: -1,
|
|
576
|
-
source: new
|
|
474
|
+
source: new WMTS({
|
|
577
475
|
crossOrigin: "anonymous",
|
|
578
476
|
projection: "EPSG:4326",
|
|
579
477
|
wrapX: true,
|
|
@@ -648,6 +546,142 @@ var changeLayersByNames = (activeNames, allLayerNames) => {
|
|
|
648
546
|
layer.setVisible(activeNames == null ? void 0 : activeNames.includes(layer.getClassName()));
|
|
649
547
|
});
|
|
650
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
|
+
});
|
|
651
685
|
export {
|
|
652
686
|
activeMarkerByUid,
|
|
653
687
|
addMassMarksLayer,
|
|
@@ -664,6 +698,7 @@ export {
|
|
|
664
698
|
createWmtsLayer,
|
|
665
699
|
disposeMap,
|
|
666
700
|
emitter_default as emitter,
|
|
701
|
+
getLayersDataList,
|
|
667
702
|
getMapInstance,
|
|
668
703
|
instance,
|
|
669
704
|
removeAllLayers,
|