gisviewer-vue3-arcgis
Version:
在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:
100 lines (99 loc) • 2.41 kB
JavaScript
import y from "@arcgis/core/layers/GeoJSONLayer";
import l from "@arcgis/core/layers/TileLayer";
import o from "@arcgis/core/layers/WebTileLayer";
class f {
constructor(e) {
this.layerList = /* @__PURE__ */ new Map(), this.viewer = e.viewer;
const i = this.viewer.map.findLayerById("dark-gray-base-layer");
i && this.layerList.set("dark-gray-base-layer", i);
}
getLayerById(e) {
return this.layerList.get(e);
}
getLayers() {
return this.layerList;
}
getTileInfo() {
return {};
}
addLayer(e, i) {
const r = [];
if (Array.isArray(e))
e.map((t) => {
const s = this.createLayer(t);
s && (this.layerList.set(t.id, s), r.push(this.createLayer(t)));
});
else {
const t = this.createLayer(e);
if (!t)
return;
this.layerList.set(e.id, t), r.push(this.createLayer(e));
}
r.map((t) => {
this.viewer.map.add(t, i);
});
}
createLayer(e) {
let i = null;
switch (e.type) {
case "webTile":
i = new o({
urlTemplate: e.url,
...e.options,
title: e.options.id,
visible: e.visible
});
break;
case "hdLayers":
i = new y({
url: e.url,
...e.options,
title: e.options.id,
visible: e.visible
});
break;
case "tile":
i = new l({
url: e.url,
...e.options,
title: e.options.id,
visible: e.visible
});
break;
}
return i;
}
removeLayerById(e) {
if (typeof e == "string") {
const i = this.layerList.get(e);
i && (this.viewer.map.remove(i), this.layerList.delete(e));
}
Array.isArray(e) && e.forEach((i) => {
const r = this.layerList.get(i);
r && (this.viewer.map.remove(r), this.layerList.delete(i));
});
}
hideLayerById(e) {
if (typeof e == "string") {
const i = this.layerList.get(e);
i && (i.visible = !1);
}
Array.isArray(e) && e.forEach((i) => {
const r = this.layerList.get(i);
r && (r.visible = !1);
});
}
showLayerById(e) {
if (typeof e == "string") {
const i = this.layerList.get(e);
i && (i.visible = !0);
}
Array.isArray(e) && e.forEach((i) => {
const r = this.layerList.get(i);
r && (r.visible = !0);
});
}
}
export {
f as default
};