UNPKG

gisviewer-vue3-arcgis

Version:

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

107 lines (106 loc) 3.49 kB
import * as g from "@arcgis/core/views/3d/externalRenderers"; import f from "./trace-renderer-external.mjs"; import R from "./trace-renderer-layer.mjs"; class V { constructor(e) { this.nullDataCount = 0, this.clearTraceTimer = null, e.type === "3d" ? (this.traceRenderer = new f(e), g.add( e, this.traceRenderer )) : this.traceRenderer = new R(e); } async init() { await this.traceRenderer.init(); } downloadLog() { const e = this.traceRenderer.getLog().map((o) => o.join(",")).join(` `).replace(/null/g, ""), n = new Blob([e], { type: "text/csv;charset=utf-8;" }), i = URL.createObjectURL(n), r = document.createElement("a"); r.setAttribute("href", i), r.setAttribute("download", "trace-log.csv"), r.style.visibility = "hidden", document.body.appendChild(r), r.click(), document.body.removeChild(r); } /** * 处理全息流轨迹数据 * */ async handleVehicleTraceData(e) { this.clearTraceTimer || (this.clearTraceTimer = setInterval(() => { this.nullDataCount++, this.nullDataCount >= 5 && (console.log("clear trace data"), this.clearTrace(), this.nullDataCount = 0); }, 1e3)), this.nullDataCount = 0; const { newVehList: n, updateVehList: i, deleteVehList: r, jgsj: o } = e, l = e.crossId || "", a = [], s = []; if (n && n.length > 0) { for (const c of n) { c.localTimestamp || (c.localTimestamp = o || Date.now()); const t = this.buildVehicleTrackData(c, l); t && a.push(t); } await this.traceRenderer.addVehicles(a); } if (i && i.length > 0) { for (const c of i) { const t = this.buildVehicleTrackData(c, l); t && s.push(t); } await this.traceRenderer.updateVehicles(s); } if (r && r.length > 0) { const c = r.map( (t) => l + "-" + (t.ptcId || t.vehno || t.vehNo) ); this.traceRenderer.deleteVehicles(c); } } /** * 切换交通信息可见性 * @param params */ toggleTrafficInfo(e) { this.traceRenderer.toggleTrafficInfo(e); } /** * 清除轨迹流 * */ clearTrace() { this.clearTraceTimer && (clearInterval(this.clearTraceTimer), this.clearTraceTimer = null), this.traceRenderer.clearVehicles(); } /** * 切换暂停 * */ togglePause(e) { this.traceRenderer.togglePause(e); } updatePanelContent(e) { this.traceRenderer.updatePanelContent(e); } toggleGroundVehicle(e) { this.traceRenderer.toggleGroundVehicle(e); } toggleElevatedVehicle(e) { this.traceRenderer.toggleElevatedVehicle(e); } setInterpolate(e) { this.traceRenderer.setInterpolate(e); } buildVehicleTrackData(e, n) { const i = e.longitude, r = e.latitude, o = e.ptcId, l = Number(e.ptcType), a = e.heading, s = Number(e.vehicleType), c = Number(e.vehicleColor), t = e.plateNo || e.plateno, h = Number(e.plateColor), d = e.timestamp, u = e.localTimestamp, p = e.roadLayer ? String(e.roadLayer) : "1", m = e.step, T = e.speed; if (!(l < 0 || l > 8)) return { ptcId: o, crossId: n, vehicleId: n + "-" + o, x: i, y: r, ptcType: l, vehicleType: s, heading: l === 2 ? -a : a, vehicleColor: c, showName: t && t !== "" && t !== "0" && t !== "000000" ? t : "", plateNo: t, plateColor: h, timestamp: d, localTimestamp: u, roadLayer: p, step: m, speed: T }; } } export { V as default };