UNPKG

gisviewer-vue3-arcgis

Version:

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

303 lines (302 loc) 14 kB
import { defineComponent as Bt, ref as G, reactive as It, onMounted as Mt, getCurrentInstance as Pt, onUnmounted as Vt, computed as zt, openBlock as I, createElementBlock as H, createElementVNode as w, withDirectives as _t, vShow as xt, Fragment as Gt, renderList as Ht, createBlock as Nt } from "vue"; import N, { registerStore as Et } from "../stores/index.mjs"; import Wt from "./utils/dbscan-cluster/index.mjs"; import Zt from "./utils/detect-gpu.mjs"; import Qt from "./utils/edpass-device-controller.mjs"; import E from "./utils/green-wave-band-controller/index.mjs"; import jt from "./utils/holo-flow/index.mjs"; import Jt from "./utils/holo-flow/signal-countdown-panel.vue.mjs"; import Ut from "./utils/map-initializer.mjs"; import W from "./utils/open-drive-renderer/index.mjs"; import Z from "./utils/overlay.mjs"; import Ft from "./utils/police-jurisdiction.mjs"; import $t from "./utils/queue-length.mjs"; import Q from "./utils/road-config-tool/index.mjs"; import qt from "./utils/signal-control-area/edit-area.mjs"; import M from "./utils/signal-control-area/signal-area-controller.mjs"; import Kt from "./utils/signal-control-area/signal-cross-controller.mjs"; import j from "./utils/signal-system/signal-system-controller.mjs"; import Xt from "./utils/traffic-flow.mjs"; const Yt = { class: "gis-viewer" }, Rt = { style: { position: "absolute", bottom: "80px", left: "10px", "z-index": "9999" } }, Cn = /* @__PURE__ */ Bt({ __name: "gis-map", props: { config: {}, assetsRoot: {} }, emits: ["mapLoaded", "markerClick", "mapClick", "update:zoom"], setup(J, { expose: U, emit: F }) { const O = G(null); let n, g, c, o, r, s, f, t, l, a, S, p, h, A, y, d; const k = G(!1); Et(); const P = N.useAppDataStore, V = It([]), z = (e) => Math.log2(591657527591555e-6 / e); let C = null, _ = null; const D = (e) => { if (!Number.isFinite(e)) return; const u = Math.round(e); u !== _ && (_ = u, v("update:zoom", u)); }; Zt(), Mt(async () => { if (!O.value) return; document.addEventListener("keydown", (m) => { m.ctrlKey && m.key === "i" && (k.value = !k.value); }); const e = Pt(), { $gisviewerAssetsRoot: u } = e.appContext.config.globalProperties, i = await (await fetch(x.config)).json(); i.assetsRoot = x.assetsRoot || u, P.mapConfig = i, g = new Ut(), P.mapInitializer = g, n = await g.initialize({ container: O.value, mapConfig: i, markerClickCallback: (m, T, B, Tt) => { v("markerClick", m, T, B, Tt); }, mapClickCallback: (m, T, B) => { v("mapClick", m, T, B); } }); const b = n.zoom ?? (n.scale ? z(n.scale) : void 0); typeof b == "number" && D(b); const Lt = n.zoom !== void 0 ? n.watch("zoom", (m) => { D(m); }) : n.watch("scale", (m) => { typeof m == "number" && m > 0 && D(z(m)); }); C = () => Lt.remove(), r = new jt(n, V), await r.init(), v("mapLoaded"); }), Vt(() => { a == null || a.clearSignalControlArea(), t == null || t.clearOpenDrive(), r.clearHoloTrace(), r.clearHoloSignal(), o == null || o.disconnectTrafficFlow(), C == null || C(), C = null; }); const $ = zt(() => n), q = () => { const e = N.useAppDataStore; e.saveTrackLog = !0; }, K = () => { r.downloadTrackLog(); }, X = () => { L("vehicleId"); }, Y = () => { L("plateNumber"); }, R = async (e) => await g.setMapCenter(e), ee = async (e) => await g.setMapCamera(e), te = (e) => g.setMapZoom(e), ne = async (e) => await g.lookAt(e), ae = (e) => g.setLayerVisibility(e), se = (e, u) => g.requestCoordinateTransform(e, u), re = (e) => { g.cancelCoordinateTransform(e); }, oe = (e) => { g.setMapZoomRange(e); }, ie = (e) => (c || (c = new Q(n)), c.showLaneNumber(e)), ce = () => { c == null || c.clearLaneNumber(); }, le = async (e) => (c || (c = new Q(n)), await c.initializeSearch(e)), ue = async () => c == null ? void 0 : c.calCrossIndicatorArea(), me = async () => { }, ge = async (e, u) => { o || (o = new Xt(n)), o.connectTrafficFlow(e, u); }, pe = () => { o == null || o.disconnectTrafficFlow(); }, de = async (e) => { r.handleVehicleTraceData(e); }, Se = () => { r.clearHoloTrace(); }, fe = (e) => { r.setInterpolate(e); }, ye = async (e) => { await r.handleSignalData(e); }, we = async (e) => { await r.initializeLampGroup(e); }, he = (e) => { r.handleUniSignalData(e); }, Ce = () => { r.clearHoloSignal(); }, ve = (e) => { o == null || o.toggleTrafficInfo(e), r == null || r.toggleTrafficInfo(e); }, be = (e) => { r == null || r.togglePause(e); }, Oe = (e) => { o == null || o.toggleTrafficObject(e), r == null || r.toggleTrafficObject(e); }, L = (e) => { r == null || r.updatePanelContent(e); }, Ae = async (e) => (s || (s = new Z(n)), s.addOverlays(e)), ke = async (e) => s ? await s.flashOverlay(e) : { status: -1, message: "未加载覆盖物工具" }, De = async (e) => s ? s.stopFlash(e) : { status: -1, message: "未加载覆盖物工具" }, Le = async (e) => (y || (y = new Wt(n)), y.addClusterPoints(e)), Te = () => { y == null || y.removeAllClusterPoints(); }, Be = (e) => (s || (s = new Z(n)), s.addMask(e)), Ie = () => { s == null || s.removeMask(); }, Me = (e) => s == null ? void 0 : s.removeOverlaysByType(e), Pe = (e) => s == null ? void 0 : s.removeOverlaysById(e), Ve = () => s == null ? void 0 : s.removeAllOverlays(), ze = () => { s == null || s.showAllOverlays(); }, _e = (e) => { f || (f = new $t(n)), f.updateQueueLength(e); }, xe = () => { f == null || f.removeQueueLength(); }, Ge = async (e, u) => (t || (t = new W(n)), await t.showOpenDriveFromServer(e, u)), He = async (e) => (t || (t = new W(n)), await t.clearOpenDrive(), await t.showOpenDriveFromFile(e)), Ne = (e) => t ? t.setOpendriveVisibility(e) : { status: -1, message: "未加载OpenDrive地图" }, Ee = async () => await (t == null ? void 0 : t.clearOpenDrive()), We = async (e) => t ? await (t == null ? void 0 : t.findSumo(e)) : { status: -1, message: "未加载OpenDrive地图" }, Ze = async (e) => t ? t.selectSumo(e) : { status: -1, message: "未加载OpenDrive地图" }, Qe = async (e) => t ? t.unselectSumo(e) : { status: -1, message: "未加载OpenDrive地图" }, je = async (e) => t ? t.selectComputable(e) : { status: -1, message: "未加载OpenDrive地图" }, Je = async (e) => t ? await t.geometrySearch(e) : { status: -1, message: "未加载OpenDrive地图" }, Ue = async (e) => t ? await t.getSumoInfo(e) : { status: -1, message: "未加载OpenDrive地图" }, Fe = async (e) => t ? await (t == null ? void 0 : t.splitLane(e)) : { status: -1, message: "未加载OpenDrive地图" }, $e = async () => t ? t == null ? void 0 : t.clearSplitLane() : { status: -1, message: "未加载OpenDrive地图" }, qe = async (e) => t ? t == null ? void 0 : t.blockLane(e) : { status: -1, message: "未加载OpenDrive地图" }, Ke = (e) => t ? t == null ? void 0 : t.clearBlockLane(e) : { status: -1, message: "未加载OpenDrive地图" }, Xe = async (e) => (a || (a = new M(n)), await a.showSignalControlArea(e)), Ye = async (e) => (a || (a = new M(n)), await a.showDistrict(e)), Re = async (e) => (a || (a = new M(n)), await a.showSubDistrict(e)), et = async () => await (a == null ? void 0 : a.clearSignalControlArea()), tt = (e) => a == null ? void 0 : a.setLayerVisibility(e), nt = async (e) => a ? await (a == null ? void 0 : a.locateSignalControlArea(e)) : { status: -1, message: "未加载信号控制区" }, at = async (e) => a ? await a.highlightSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, st = () => a ? a.resetHighlight() : { status: -1, message: "未加载信号控制区" }, rt = (e) => (l || (l = new qt(n)), l.showSubSignalControlArea(e)), ot = (e) => l ? l.editSubSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, it = () => l ? l.stopEditSubSignalControlArea() : { status: -1, message: "未加载信号控制区" }, ct = (e) => l ? l.selectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, lt = (e) => l ? l.unselectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, ut = (e) => { if (!l) return { status: -1, message: "未加载信号控制区" }; }, mt = (e) => (S || (S = new Kt(n)), S.showSignalCross(e)), gt = () => S ? S.clearSignalCross() : { status: -1, message: "未加载信号路口" }, pt = (e) => S ? S.changeShowName(e) : { status: -1, message: "未加载信号路口" }, dt = (e) => (d || (d = new j(n)), d.showSignalSystems(e)), St = (e) => (d || (d = new j(n)), d.showSubSignalSystems(e)), ft = (e) => d ? d.removeSubSignalSystems(e) : { status: -1, message: "未加载信号系统" }, yt = (e) => d ? d.removeSignalSystems(e) : { status: -1, message: "未加载信号系统" }, wt = (e) => ({ status: -1, message: "未实现该功能" }), ht = () => ({ status: -1, message: "未实现该功能" }), Ct = (e) => (p || (p = new E(n)), p.addGreenWaveBand(e)), vt = () => { if (!p) return { status: -1, message: "未加载绿波带" }; p.stopAddGreenWaveBand(); }, bt = async (e) => (p || (p = new E(n)), await p.showGreenWaveBand(e)), Ot = (e) => { if (!p) return { status: -1, message: "未加载绿波带" }; p.removeGreenWaveBand(e); }, At = async (e) => (h || (h = new Ft(n)), await h.showJurisdiction(e)), kt = () => { if (!h) return { status: -1, message: "未加载警务管辖区" }; h.clearJurisdiction(); }, Dt = async (e) => (A || (A = new Qt(n)), await A.setEdpassLayerVisibility(e)), x = J, v = F; return U({ mapViewer: $, setLayerVisibility: ae, setMapCenter: R, lookAt: ne, setMapCamera: ee, setMapZoom: te, setMapZoomRange: oe, requestCoordinateTransform: se, cancelCoordinateTransform: re, addOverlays: Ae, flashOverlay: ke, stopFlashOverlay: De, addClusterPoints: Le, removeAllClusterPoints: Te, addMask: Be, removeMask: Ie, showAllOverlays: ze, removeOverlaysByType: Me, removeOverlaysById: Pe, removeAllOverlays: Ve, showLaneNumber: ie, clearLaneNumber: ce, initializeAreaTool: le, calCrossIndicatorArea: ue, calRoadIndicatorArea: me, connectCarFlow: ge, disconnectCarFlow: pe, handleHoloVehicleTraceData: de, clearHoloTrace: Se, initializeLampGroup: we, handleUniSignalData: he, handleHoloSignalData: ye, clearHoloSignal: Ce, setInterpolate: fe, toggleTrafficInfo: ve, toggleTrafficObject: Oe, toggleVehicleInfo: L, togglePause: be, updateQueueLength: _e, removeQueueLength: xe, showOpenDriveFromServer: Ge, showOpenDriveFromFile: He, clearOpenDrive: Ee, setOpendriveVisibility: Ne, geometrySearchInOpenDrive: Je, findSumoInOpenDrive: We, selectSumoInOpenDrive: Ze, unselectSumoInOpenDrive: Qe, selectComputableInOpenDrive: je, getSumoInfo: Ue, splitOpenDriveLane: Fe, clearSplitOpenDriveLane: $e, blockOpenDriveLane: qe, clearBlockOpenDriveLane: Ke, showSignalControlArea: Xe, showDistrictArea: Ye, showSubDistrictArea: Re, clearSignalControlArea: et, setSignalControlAreaVisibility: tt, locateSignalControlArea: nt, highlightSignalControlArea: at, resetHighlightSignalControlArea: st, showSubSignalControlArea: rt, editSubSignalControlArea: ot, stopEditSubSignalControlArea: it, selectSubSignalControlAreaCross: ct, unselectSubSignalControlAreaCross: lt, changeSubSignalControlAreaBorderVisibility: ut, showSignalCross: mt, clearSignalCross: gt, changeSignalCrossShowName: pt, showSignalSystem: dt, showSubSignalSystem: St, removeSubSignalSystem: ft, removeSignalSystem: yt, highlightSignalSystem: wt, resetHighlightSignalSystem: ht, addGreenWaveBand: Ct, stopAddGreenWaveBand: vt, showGreenWaveBand: bt, removeGreenWaveBand: Ot, showPoliceArea: At, clearPoliceArea: kt, setEdpassLayerVisibility: Dt }), (e, u) => (I(), H("div", Yt, [ w("div", { class: "gis-viewer-main", ref_key: "mapContainer", ref: O }, [ _t(w("div", Rt, [ w("button", { style: { "margin-right": "10px" }, onClick: q }, " 开始记录 "), w("button", { style: { "margin-right": "10px" }, onClick: K }, " 下载日志 "), w("button", { style: { "margin-right": "10px" }, onClick: X }, " 显示车辆id "), w("button", { onClick: Y }, "显示车辆号牌") ], 512), [ [xt, k.value] ]) ], 512), (I(!0), H(Gt, null, Ht(V, (i, b) => (I(), Nt(Jt, { key: b, "display-mode": i.displayMode, flash: i.flash, "road-id": i.crossId, "cross-id": i.roadId, "map-point": i.mapPoint, "stop-line": i.stopLine, position: i.position, rotation: i.rotation, scale: i.scale, "lamp-status": i.lampStatus }, null, 8, ["display-mode", "flash", "road-id", "cross-id", "map-point", "stop-line", "position", "rotation", "scale", "lamp-status"]))), 128)) ])); } }); export { Cn as default };