gisviewer-vue3-arcgis
Version:
在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:
232 lines (231 loc) • 10.2 kB
JavaScript
import { defineComponent as $e, ref as k, reactive as qe, onMounted as Ke, getCurrentInstance as Je, onUnmounted as Re, computed as Xe, openBlock as O, createElementBlock as L, createElementVNode as f, withDirectives as Ye, vShow as Fe, Fragment as et, renderList as tt, createBlock as at } from "vue";
import D, { registerStore as nt } from "./stores/index.mjs";
import "./style/index.css";
import rt from "./utils/detect-gpu.mjs";
import T from "./utils/green-wave-band-controller/index.mjs";
import st from "./utils/holo-flow/index.mjs";
import ot from "./utils/holo-flow/signal-countdown-panel.vue.mjs";
import it from "./utils/map-initializer.mjs";
import B from "./utils/open-drive-renderer/index.mjs";
import I from "./utils/overlay.mjs";
import ct from "./utils/queue-length.mjs";
import M from "./utils/road-config-tool/index.mjs";
import lt from "./utils/signal-control-area/edit-area.mjs";
import ut from "./utils/signal-control-area/show-area.mjs";
import mt from "./utils/traffic-flow.mjs";
const pt = { class: "gis-viewer" }, gt = { style: { position: "absolute", bottom: "80px", left: "10px", "z-index": "9999" } }, Bt = /* @__PURE__ */ $e({
__name: "gis-map",
props: {
config: {},
assetsRoot: {}
},
emits: ["mapLoaded", "markerClick", "mapClick"],
setup(_, { expose: x, emit: V }) {
const S = k(null);
let s, u, c, o, a, n, d, t, l, r, m;
const y = k(!1);
nt();
const G = D.useAppDataStore, b = qe([]);
rt(), Ke(async () => {
if (!S.value)
return;
document.addEventListener("keydown", (g) => {
g.ctrlKey && g.key === "i" && (y.value = !y.value);
});
const e = Je(), { $gisviewerAssetsRoot: p } = e.appContext.config.globalProperties, i = await (await fetch(A.config)).json();
i.assetsRoot = A.assetsRoot || p, G.mapConfig = i, u = new it(), s = await u.initialize({
container: S.value,
mapConfig: i,
markerClickCallback: (g, w, h, Ze) => {
v("markerClick", g, w, h, Ze);
},
mapClickCallback: (g, w, h) => {
v("mapClick", g, w, h);
}
}), a = new st(s, b), await a.init(), v("mapLoaded");
}), Re(() => {
r == null || r.clearSignalControlArea(), t == null || t.clearOpenDrive(), a.clearHoloTrace(), a.clearHoloSignal(), o == null || o.disconnectTrafficFlow();
});
const H = Xe(() => s), z = () => {
const e = D.useAppDataStore;
e.saveTrackLog = !0;
}, P = () => {
a.downloadTrackLog();
}, W = () => {
C("vehicleId");
}, N = () => {
C("plateNumber");
}, E = async (e) => await u.setMapCenter(e), Q = async (e) => await u.setMapCamera(e), j = async (e) => await u.lookAt(e), U = (e) => u.setLayerVisibility(e), Z = (e, p) => u.requestCoordinateTransform(e, p), $ = (e) => {
u.cancelCoordinateTransform(e);
}, q = (e) => {
u.setMapZoomRange(e);
}, K = (e) => (c || (c = new M(s)), c.showLaneNumber(e)), J = () => {
c == null || c.clearLaneNumber();
}, R = async (e) => (c || (c = new M(s)), await c.initializeSearch(e)), X = async () => c == null ? void 0 : c.calCrossIndicatorArea(), Y = async () => {
}, F = async (e, p) => {
o || (o = new mt(s)), o.connectTrafficFlow(e, p);
}, ee = () => {
o == null || o.disconnectTrafficFlow();
}, te = async (e) => {
a.handleVehicleTraceData(e);
}, ae = () => {
a.clearHoloTrace();
}, ne = (e) => {
a.setInterpolate(e);
}, re = async (e) => {
await a.handleSignalData(e);
}, se = async (e) => {
await a.initializeLampGroup(e);
}, oe = (e) => {
a.handleUniSignalData(e);
}, ie = () => {
a.clearHoloSignal();
}, ce = (e) => {
o == null || o.toggleTrafficInfo(e), a == null || a.toggleTrafficInfo(e);
}, le = (e) => {
a == null || a.togglePause(e);
}, ue = (e) => {
o == null || o.toggleTrafficObject(e), a == null || a.toggleTrafficObject(e);
}, C = (e) => {
a == null || a.updatePanelContent(e);
}, me = async (e) => (n || (n = new I(s)), n.addOverlays(e)), pe = (e) => (n || (n = new I(s)), n.addMask(e)), ge = () => {
n == null || n.removeMask();
}, de = (e) => n == null ? void 0 : n.removeOverlaysByType(e), fe = (e) => n == null ? void 0 : n.removeOverlaysById(e), Se = () => n == null ? void 0 : n.removeAllOverlays(), ye = () => {
n == null || n.showAllOverlays();
}, Ce = (e) => {
d || (d = new ct(s)), d.updateQueueLength(e);
}, ve = () => {
d == null || d.removeQueueLength();
}, we = async (e, p) => (t || (t = new B(s)), await t.showOpenDriveFromServer(e, p)), he = async (e) => (t || (t = new B(s)), await t.clearOpenDrive(), await t.showOpenDriveFromFile(e)), Oe = async () => await (t == null ? void 0 : t.clearOpenDrive()), be = async (e) => t ? await (t == null ? void 0 : t.findSumo(e)) : {
status: -1,
message: "未加载OpenDrive地图"
}, Ae = async (e) => t ? t.selectSumo(e) : {
status: -1,
message: "未加载OpenDrive地图"
}, ke = async (e) => t ? t.unselectSumo(e) : {
status: -1,
message: "未加载OpenDrive地图"
}, Le = async (e) => t ? await t.geometrySearch(e) : {
status: -1,
message: "未加载OpenDrive地图"
}, De = async (e) => t ? await t.getSumoInfo(e) : {
status: -1,
message: "未加载OpenDrive地图"
}, Te = async (e) => t ? await (t == null ? void 0 : t.splitLane(e)) : {
status: -1,
message: "未加载OpenDrive地图"
}, Be = async () => t ? t == null ? void 0 : t.clearSplitLane() : {
status: -1,
message: "未加载OpenDrive地图"
}, Ie = async (e) => (r || (r = new ut(s)), await r.showSignalControlArea(e)), Me = async () => await (r == null ? void 0 : r.clearSignalControlArea()), _e = (e) => r == null ? void 0 : r.setLayerVisibility(e), xe = async (e) => r ? await (r == null ? void 0 : r.locateSignalControlArea(e)) : { status: -1, message: "未加载信号控制区" }, Ve = async (e) => r ? await r.highlightSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, Ge = () => r ? r.resetHighlight() : { status: -1, message: "未加载信号控制区" }, He = (e) => (l || (l = new lt(s)), l.showSubSignalControlArea(e)), ze = (e) => l ? l.editSubSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, Pe = () => l ? l.stopEditSubSignalControlArea() : { status: -1, message: "未加载信号控制区" }, We = (e) => l ? l.selectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, Ne = (e) => l ? l.unselectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, Ee = (e) => {
if (!l)
return { status: -1, message: "未加载信号控制区" };
}, Qe = (e) => (m || (m = new T(s)), m.addGreenWaveBand(e)), je = () => {
if (!m)
return { status: -1, message: "未加载绿波带" };
m.stopAddGreenWaveBand();
}, Ue = async (e) => (m || (m = new T(s)), await m.showGreenWaveBand(e)), A = _, v = V;
return x({
mapViewer: H,
setLayerVisibility: U,
setMapCenter: E,
lookAt: j,
setMapCamera: Q,
setMapZoomRange: q,
requestCoordinateTransform: Z,
cancelCoordinateTransform: $,
addOverlays: me,
addMask: pe,
removeMask: ge,
showAllOverlays: ye,
removeOverlaysByType: de,
removeOverlaysById: fe,
removeAllOverlays: Se,
showLaneNumber: K,
clearLaneNumber: J,
initializeAreaTool: R,
calCrossIndicatorArea: X,
calRoadIndicatorArea: Y,
connectCarFlow: F,
disconnectCarFlow: ee,
handleHoloVehicleTraceData: te,
clearHoloTrace: ae,
initializeLampGroup: se,
handleUniSignalData: oe,
handleHoloSignalData: re,
clearHoloSignal: ie,
setInterpolate: ne,
toggleTrafficInfo: ce,
toggleTrafficObject: ue,
toggleVehicleInfo: C,
togglePause: le,
updateQueueLength: Ce,
removeQueueLength: ve,
showOpenDriveFromServer: we,
showOpenDriveFromFile: he,
clearOpenDrive: Oe,
geometrySearchInOpenDrive: Le,
findSumoInOpenDrive: be,
selectSumoInOpenDrive: Ae,
unselectSumoInOpenDrive: ke,
getSumoInfo: De,
splitOpenDriveLane: Te,
clearSplitOpenDriveLane: Be,
showSignalControlArea: Ie,
clearSignalControlArea: Me,
setSignalControlAreaVisibility: _e,
locateSignalControlArea: xe,
highlightSignalControlArea: Ve,
resetHighlightSignalControlArea: Ge,
showSubSignalControlArea: He,
editSubSignalControlArea: ze,
stopEditSubSignalControlArea: Pe,
selectSubSignalControlAreaCross: We,
unselectSubSignalControlAreaCross: Ne,
changeSubSignalControlAreaBorderVisibility: Ee,
addGreenWaveBand: Qe,
stopAddGreenWaveBand: je,
showGreenWaveBand: Ue
}), (e, p) => (O(), L("div", pt, [
f("div", {
class: "gis-viewer-main",
ref_key: "mapContainer",
ref: S
}, [
Ye(f("div", gt, [
f("button", {
style: { "margin-right": "10px" },
onClick: z
}, " 开始记录 "),
f("button", {
style: { "margin-right": "10px" },
onClick: P
}, " 下载日志 "),
f("button", {
style: { "margin-right": "10px" },
onClick: W
}, " 显示车辆id "),
f("button", { onClick: N }, "显示车辆号牌")
], 512), [
[Fe, y.value]
])
], 512),
(O(!0), L(et, null, tt(b, (i, g) => (O(), at(ot, {
key: g,
"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 {
Bt as default
};