UNPKG

gisviewer-vue3-arcgis

Version:

在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:

141 lines (140 loc) 5.09 kB
import c from "../../../stores/index.mjs"; import o from "./cross-renderer.mjs"; import r from "./district-controller.mjs"; import a from "./district-renderer.mjs"; import l from "./signal-renderer.mjs"; import d from "./subdistrict.mjs"; class f { // private roadLines!: IRoadLine[]; constructor(t) { this.view = t; const s = c.useAppDataStore; this.mapConfig = JSON.parse(JSON.stringify(s.mapConfig)), this.districtRenderer = new a(t), this.subDistrictRenderer = new d(t), this.signalRenderer = new l(t), this.crossRenderer = new o(t); } /** * 显示所有区控、子区、信号机 * @param params * @returns */ async showSignalControlArea(t) { await this.clearSignalControlArea(), this.districtRenderer.setVisible(!1), this.subDistrictRenderer.setVisible(!1), this.signalRenderer.setClusterVisible(!1), this.signalRenderer.setPointVisible(!1); const s = [], e = []; for (const i of t.areaList) { const n = new r( i, t.style || "" ); s.push(n), e.push(...n.subDistricts); } return this.districtRenderer.style = t.style || "", await this.districtRenderer.showDistricts(s), await this.subDistrictRenderer.showSubDistricts(e), this.crossRenderer.addCrosses(s), { status: 0, message: "ok" }; } /** * 显示单个区控 * @param params */ async showDistrict(t) { this.setLayerVisibility({ id: "district", visible: !0 }), this.setLayerVisibility({ id: "subDistrict", visible: !0 }); const s = new r( t.areaList, t.style || "" ); await this.districtRenderer.showDistricts([s]), await this.subDistrictRenderer.showSubDistricts( s.subDistricts ), await this.subDistrictRenderer.showRoads({ id: s.id, type: "district" }); } /** * 显示单个子区 * @param params */ async showSubDistrict(t) { this.setLayerVisibility({ id: "subDistrict", visible: !0 }); const s = new r( t.areaList, t.style || "" ); await this.subDistrictRenderer.showSubDistricts([s]), await this.subDistrictRenderer.showRoads({ id: s.id, type: "subDistrict" }); } /** * 清空区控、子区、信号机 * @returns */ async clearSignalControlArea() { return this.crossRenderer.clearCrosses(), await this.districtRenderer.clearDistricts(), await this.subDistrictRenderer.clearSubDistricts(), this.crossRenderer.clearCrosses(), { status: 0, message: "ok" }; } /** * 设置区控、子区、信号机图层可见性 * @param layerName * @param visible */ setLayerVisibility(t) { switch (t.visible === !1 && this.view.closePopup(), t.id) { case "district": this.districtRenderer.setVisible(t.visible); break; case "subDistrict": this.subDistrictRenderer.setVisible(t.visible); break; case "signal": t.visible === !1 ? this.crossRenderer.hideCrosses() : this.crossRenderer.showScatter(); break; case "signalCluster": t.visible === !1 ? this.crossRenderer.hideCrosses() : this.crossRenderer.showCluster(); break; } return { status: 0, message: "ok" }; } /** * 定位区控、子区、信号机 * @param params * @returns */ async locateSignalControlArea(t) { switch (t.type) { case "district": return await this.districtRenderer.locateDistrict(t.id); case "subDistrict": return await this.subDistrictRenderer.locateSubDistrict(t.id); case "signal": return await this.signalRenderer.locateSignal(t.id); default: return { status: 1, message: "未知类型" }; } } /** * 高亮指定的区控、子区、信号机,其他隐藏 * @param params * @returns */ async highlightSignalControlArea(t) { switch (this.view.closePopup(), t.type) { case "district": return await this.districtRenderer.highlightDistrict(t) ? (this.subDistrictRenderer.filter(t), this.crossRenderer.filter(t), await this.subDistrictRenderer.showRoads(t), { status: 0, message: "ok" }) : { status: 1, message: "未找到区控" }; case "subDistrict": { const { count: s, parentId: e } = await this.subDistrictRenderer.highlightSubDistrict(t); return s > 0 ? (this.districtRenderer.filter(e), this.crossRenderer.filter(t), { status: 0, message: "ok" }) : { status: 1, message: "未找到子区" }; } case "signal": { const { districtId: s, subDistrictId: e, count: i } = await this.signalRenderer.highlightSignal(t.id); return i > 0 ? (this.districtRenderer.filter(s), this.subDistrictRenderer.filter(t), { status: 0, message: "ok" }) : { status: 1, message: "未找到信号机" }; } default: return { status: 1, message: "未知类型" }; } } /** * 重置高亮,恢复全图视角 * @returns */ async resetHighlight() { return this.districtRenderer.resetFilter(), this.subDistrictRenderer.resetFilter(), this.crossRenderer.resetFilter(), { status: 0, message: "ok" }; } } export { f as default };