gisviewer-vue3-arcgis
Version:
在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:
84 lines (83 loc) • 3.21 kB
JavaScript
import r from "../../../gis-map/utils/signal-control-area/district-controller.mjs";
import n from "./renderer/cross-renderer.mjs";
import h from "./renderer/district-renderer.mjs";
import d from "./renderer/sdr.mjs";
import o from "./signal-cross-controller.mjs";
class f {
constructor(i) {
this.map = i, this.districtRenderer = new h(this.map), this.subDistrictRenderer = new d(this.map), this.crossRenderer = new n(new o(this.map));
}
show(i) {
const t = [];
for (const s of i.areaList) {
const e = new r(
s,
i.style || ""
);
t.push(e);
}
return this.districtRenderer.addDistricts(t), this.subDistrictRenderer.addSubDistricts(t), this.crossRenderer.addCrosses(t), { status: 0, message: "success" };
}
/**
* 显示单个区控
* @param params
*/
showDistrict(i) {
this.setLayerVisibility({ id: "district", visible: !0 }), this.setLayerVisibility({ id: "subDistrict", visible: !0 });
const t = i.areaList, s = new r(t, i.style || ""), e = this.districtRenderer.addDistricts([s]);
this.subDistrictRenderer.addSubDistricts([s]), this.crossRenderer.addCrosses([s]), this.setLayerVisibility({ id: "signal", visible: !0 }), e && this.map.getView().fit(e, {
padding: [50, 50, 50, 50],
duration: 500
});
}
showSubDistrict(i) {
this.setLayerVisibility({ id: "subDistrict", visible: !0 });
const t = i.areaList, s = new r(t, i.style || "");
this.subDistrictRenderer.addSubDistricts([s]), this.crossRenderer.addCrosses([s]), this.setLayerVisibility({ id: "signal", visible: !0 });
}
setLayerVisibility(i) {
switch (i.id) {
case "district":
this.districtRenderer.setVisible(i.visible);
break;
case "subDistrict":
this.subDistrictRenderer.setVisible(i.visible);
break;
case "signal":
i.visible ? this.crossRenderer.showScatter() : this.crossRenderer.setVisible(!1);
break;
case "signalCluster":
i.visible ? this.crossRenderer.showCluster() : this.crossRenderer.setVisible(!1);
break;
}
return { status: 0, message: "ok" };
}
highlight(i) {
const t = [];
if (i.type === "district") {
const s = this.districtRenderer.highlight(i), e = this.subDistrictRenderer.highlight(i), c = this.crossRenderer.highlight(i);
s && t.push(s), e && t.push(e), c && t.push(c);
} else if (i.type === "subDistrict") {
const s = this.subDistrictRenderer.highlight(i), e = this.crossRenderer.highlight(i);
s && t.push(s), e && t.push(e);
}
if (t.length > 0 && i.needZoom !== !1) {
const s = [...t[0]];
t.slice(1).forEach((e) => {
s[0] = Math.min(s[0], e[0]), s[1] = Math.min(s[1], e[1]), s[2] = Math.max(s[2], e[2]), s[3] = Math.max(s[3], e[3]);
}), this.map.getView().fit(s, {
padding: [50, 50, 50, 50],
duration: 500
});
}
}
resetHighlight() {
this.districtRenderer.clearHighlight(), this.subDistrictRenderer.clearHighlight(), this.crossRenderer.clearHighlight();
}
clear() {
this.districtRenderer.clear(), this.subDistrictRenderer.clear(), this.crossRenderer.clear();
}
}
export {
f as default
};