gisviewer-vue3-arcgis 1.0.100 → 1.0.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/src/gis-map/gis-map.vue.d.ts +1 -0
- package/es/src/gis-map/gis-map.vue.mjs +57 -54
- package/es/src/gis-map/index.d.ts +1 -0
- package/es/src/gis-map/utils/holo-flow/index.d.ts +2 -0
- package/es/src/gis-map/utils/holo-flow/index.mjs +18 -10
- package/es/src/gis-map/utils/holo-flow/trace-holo-flow.d.ts +7 -1
- package/es/src/gis-map/utils/holo-flow/trace-holo-flow.mjs +50 -43
- package/es/src/gis-map/utils/holo-flow/{trace-layer-renderer.d.ts → trace-renderer-layer.d.ts} +8 -2
- package/es/src/gis-map/utils/holo-flow/{trace-layer-renderer.mjs → trace-renderer-layer.mjs} +39 -32
- package/es/src/gis-map/utils/holo-flow/{trace-external-renderer.d.ts → trace-renderer-webgl.d.ts} +9 -2
- package/es/src/gis-map/utils/holo-flow/trace-renderer-webgl.mjs +343 -0
- package/es/src/types/index.d.ts +3 -0
- package/lib/src/gis-map/gis-map.vue.d.ts +1 -0
- package/lib/src/gis-map/gis-map.vue.js +1 -1
- package/lib/src/gis-map/index.d.ts +1 -0
- package/lib/src/gis-map/utils/holo-flow/index.d.ts +2 -0
- package/lib/src/gis-map/utils/holo-flow/index.js +1 -1
- package/lib/src/gis-map/utils/holo-flow/trace-holo-flow.d.ts +7 -1
- package/lib/src/gis-map/utils/holo-flow/trace-holo-flow.js +1 -1
- package/lib/src/gis-map/utils/holo-flow/{trace-layer-renderer.d.ts → trace-renderer-layer.d.ts} +8 -2
- package/lib/src/gis-map/utils/holo-flow/trace-renderer-layer.js +1 -0
- package/lib/src/gis-map/utils/holo-flow/{trace-external-renderer.d.ts → trace-renderer-webgl.d.ts} +9 -2
- package/lib/src/gis-map/utils/holo-flow/trace-renderer-webgl.js +1 -0
- package/lib/src/types/index.d.ts +3 -0
- package/package.json +1 -1
- package/es/src/gis-map/utils/holo-flow/trace-external-renderer.mjs +0 -320
- package/lib/src/gis-map/utils/holo-flow/trace-external-renderer.js +0 -1
- package/lib/src/gis-map/utils/holo-flow/trace-layer-renderer.js +0 -1
|
@@ -50,6 +50,7 @@ declare const _sfc_main: import("vue").DefineComponent<{
|
|
|
50
50
|
disconnectCarFlow: () => void;
|
|
51
51
|
handleHoloVehicleTraceData: (vehicleTrace: any) => void;
|
|
52
52
|
clearHoloTrace: () => void;
|
|
53
|
+
setInterpolate: (enable: boolean) => void;
|
|
53
54
|
handleHoloSignalData: (signalData: any) => Promise<void>;
|
|
54
55
|
clearHoloSignal: () => void;
|
|
55
56
|
toggleTrafficInfo: (params: IToggleTrafficInfoParams) => void;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
1
|
+
import { defineComponent as ne, ref as ae, onMounted as re, getCurrentInstance as oe, computed as se, openBlock as ce, createElementBlock as ie, createElementVNode as le } from "vue";
|
|
2
|
+
import me, { registerStore as pe } from "./stores/index.mjs";
|
|
3
3
|
import "./style/index.css";
|
|
4
4
|
import g from "./utils/holo-flow/index.mjs";
|
|
5
|
-
import
|
|
5
|
+
import fe from "./utils/map-initializer.mjs";
|
|
6
6
|
import ue from "./utils/open-drive-renderer/index.mjs";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import de from "./utils/overlay.mjs";
|
|
8
|
+
import ge from "./utils/queue-length.mjs";
|
|
9
9
|
import v from "./utils/road-config-tool/index.mjs";
|
|
10
|
-
import
|
|
11
|
-
const
|
|
10
|
+
import ye from "./utils/traffic-flow.mjs";
|
|
11
|
+
const Ce = { class: "gis-viewer" }, De = /* @__PURE__ */ ne({
|
|
12
12
|
__name: "gis-map",
|
|
13
13
|
props: {
|
|
14
14
|
config: {},
|
|
@@ -17,73 +17,75 @@ const ye = { class: "gis-viewer" }, Le = /* @__PURE__ */ te({
|
|
|
17
17
|
emits: ["mapLoaded", "markerClick", "mapClick"],
|
|
18
18
|
setup(w, { expose: O, emit: T }) {
|
|
19
19
|
const m = ae(null);
|
|
20
|
-
let o, s,
|
|
21
|
-
|
|
20
|
+
let o, s, a, r, t, n, i, l;
|
|
21
|
+
pe(), re(async () => {
|
|
22
22
|
if (!m.value)
|
|
23
23
|
return;
|
|
24
|
-
const e =
|
|
24
|
+
const e = oe(), { $gisviewerAssetsRoot: c } = e.appContext.config.globalProperties, C = await (await fetch(y.config)).json();
|
|
25
25
|
C.assetsRoot = y.assetsRoot || c;
|
|
26
|
-
const
|
|
27
|
-
|
|
26
|
+
const ee = me.useAppDataStore;
|
|
27
|
+
ee.mapConfig = C, s = new fe(), o = await s.initialize({
|
|
28
28
|
container: m.value,
|
|
29
|
-
markerClickCallback: (
|
|
30
|
-
p("markerClick",
|
|
29
|
+
markerClickCallback: (f, u, d, te) => {
|
|
30
|
+
p("markerClick", f, u, d, te);
|
|
31
31
|
},
|
|
32
|
-
mapClickCallback: (
|
|
33
|
-
p("mapClick",
|
|
32
|
+
mapClickCallback: (f, u, d) => {
|
|
33
|
+
p("mapClick", f, u, d);
|
|
34
34
|
}
|
|
35
35
|
}), t = new g(o), p("mapLoaded");
|
|
36
36
|
});
|
|
37
|
-
const
|
|
37
|
+
const k = se(() => o), I = async (e) => await s.setMapCenter(e), b = async (e) => await s.setMapCamera(e), h = async (e) => await s.lookAt(e), A = (e) => s.setLayerVisibility(e), L = (e, c) => s.requestCoordinateTransform(e, c), D = (e) => {
|
|
38
38
|
s.cancelCoordinateTransform(e);
|
|
39
39
|
}, S = (e) => {
|
|
40
40
|
s.setMapZoomRange(e);
|
|
41
|
-
}, _ = (e) => (
|
|
42
|
-
|
|
43
|
-
}, R = async (e) => (
|
|
41
|
+
}, _ = (e) => (a || (a = new v(o)), a.showLaneNumber(e)), M = () => {
|
|
42
|
+
a == null || a.clearLaneNumber();
|
|
43
|
+
}, R = async (e) => (a || (a = new v(o)), await a.initializeSearch(e)), V = async () => a == null ? void 0 : a.calCrossIndicatorArea(), x = async () => {
|
|
44
44
|
}, B = async (e, c) => {
|
|
45
|
-
r || (r = new
|
|
45
|
+
r || (r = new ye(o)), r.connectTrafficFlow(e, c);
|
|
46
46
|
}, H = () => {
|
|
47
47
|
r == null || r.disconnectTrafficFlow();
|
|
48
48
|
}, z = (e) => {
|
|
49
49
|
t || (t = new g(o)), t.handleVehicleTraceData(e);
|
|
50
50
|
}, N = () => {
|
|
51
51
|
t == null || t.clearHoloTrace();
|
|
52
|
-
}, Q =
|
|
52
|
+
}, Q = (e) => {
|
|
53
|
+
t == null || t.setInterpolate(e);
|
|
54
|
+
}, j = async (e) => {
|
|
53
55
|
t || (t = new g(o)), await t.handleSignalData(e);
|
|
54
|
-
},
|
|
56
|
+
}, E = () => {
|
|
55
57
|
t == null || t.clearHoloSignal();
|
|
56
|
-
}, E = (e) => {
|
|
57
|
-
r == null || r.toggleTrafficInfo(e);
|
|
58
58
|
}, P = (e) => {
|
|
59
|
-
|
|
59
|
+
r == null || r.toggleTrafficInfo(e), t == null || t.toggleTrafficInfo(e);
|
|
60
60
|
}, Z = (e) => {
|
|
61
|
+
t == null || t.toggleTrafficObject(e), r == null || r.toggleTrafficObject(e);
|
|
62
|
+
}, q = (e) => {
|
|
61
63
|
t == null || t.updatePanelContent(e);
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
},
|
|
65
|
-
i || (i = new
|
|
66
|
-
},
|
|
64
|
+
}, $ = async (e) => (n || (n = new de(o)), n.addOverlays(e)), G = (e) => n == null ? void 0 : n.removeOverlaysByType(e), J = (e) => n == null ? void 0 : n.removeOverlaysById(e), K = () => n == null ? void 0 : n.removeAllOverlays(), U = () => {
|
|
65
|
+
n == null || n.showAllOverlays();
|
|
66
|
+
}, W = (e) => {
|
|
67
|
+
i || (i = new ge(o)), i.updateQueueLength(e);
|
|
68
|
+
}, X = () => {
|
|
67
69
|
i == null || i.removeQueueLength();
|
|
68
|
-
},
|
|
70
|
+
}, Y = async (e, c) => {
|
|
69
71
|
l || (l = new ue(o)), await l.showOpenDrive(e, c);
|
|
70
|
-
},
|
|
72
|
+
}, F = async () => {
|
|
71
73
|
await (l == null ? void 0 : l.hideOpenDrive());
|
|
72
74
|
}, y = w, p = T;
|
|
73
75
|
return O({
|
|
74
|
-
mapViewer:
|
|
75
|
-
setLayerVisibility:
|
|
76
|
-
setMapCenter:
|
|
77
|
-
lookAt:
|
|
76
|
+
mapViewer: k,
|
|
77
|
+
setLayerVisibility: A,
|
|
78
|
+
setMapCenter: I,
|
|
79
|
+
lookAt: h,
|
|
78
80
|
setMapCamera: b,
|
|
79
81
|
setMapZoomRange: S,
|
|
80
82
|
requestCoordinateTransform: L,
|
|
81
83
|
cancelCoordinateTransform: D,
|
|
82
|
-
addOverlays:
|
|
83
|
-
showAllOverlays:
|
|
84
|
-
removeOverlaysByType:
|
|
85
|
-
removeOverlaysById:
|
|
86
|
-
removeAllOverlays:
|
|
84
|
+
addOverlays: $,
|
|
85
|
+
showAllOverlays: U,
|
|
86
|
+
removeOverlaysByType: G,
|
|
87
|
+
removeOverlaysById: J,
|
|
88
|
+
removeAllOverlays: K,
|
|
87
89
|
showLaneNumber: _,
|
|
88
90
|
clearLaneNumber: M,
|
|
89
91
|
initializeAreaTool: R,
|
|
@@ -93,17 +95,18 @@ const ye = { class: "gis-viewer" }, Le = /* @__PURE__ */ te({
|
|
|
93
95
|
disconnectCarFlow: H,
|
|
94
96
|
handleHoloVehicleTraceData: z,
|
|
95
97
|
clearHoloTrace: N,
|
|
96
|
-
handleHoloSignalData:
|
|
97
|
-
clearHoloSignal:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
98
|
+
handleHoloSignalData: j,
|
|
99
|
+
clearHoloSignal: E,
|
|
100
|
+
setInterpolate: Q,
|
|
101
|
+
toggleTrafficInfo: P,
|
|
102
|
+
toggleTrafficObject: Z,
|
|
103
|
+
toggleVehicleInfo: q,
|
|
104
|
+
updateQueueLength: W,
|
|
105
|
+
removeQueueLength: X,
|
|
106
|
+
showOpenDrive: Y,
|
|
107
|
+
hideOpenDrive: F
|
|
108
|
+
}), (e, c) => (ce(), ie("div", Ce, [
|
|
109
|
+
le("div", {
|
|
107
110
|
class: "gis-viewer-main",
|
|
108
111
|
ref_key: "mapContainer",
|
|
109
112
|
ref: m
|
|
@@ -112,5 +115,5 @@ const ye = { class: "gis-viewer" }, Le = /* @__PURE__ */ te({
|
|
|
112
115
|
}
|
|
113
116
|
});
|
|
114
117
|
export {
|
|
115
|
-
|
|
118
|
+
De as default
|
|
116
119
|
};
|
|
@@ -40,6 +40,7 @@ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWi
|
|
|
40
40
|
disconnectCarFlow: () => void;
|
|
41
41
|
handleHoloVehicleTraceData: (vehicleTrace: any) => void;
|
|
42
42
|
clearHoloTrace: () => void;
|
|
43
|
+
setInterpolate: (enable: boolean) => void;
|
|
43
44
|
handleHoloSignalData: (signalData: any) => Promise<void>;
|
|
44
45
|
clearHoloSignal: () => void;
|
|
45
46
|
toggleTrafficInfo: (params: import("../types").IToggleTrafficInfoParams) => void;
|
|
@@ -11,7 +11,9 @@ export default class Index {
|
|
|
11
11
|
handleVehicleTraceData(data: any): void;
|
|
12
12
|
toggleTrafficObject(params: IToggleTrafficInfoParams): void;
|
|
13
13
|
clearHoloTrace(): void;
|
|
14
|
+
toggleTrafficInfo(params: IToggleTrafficInfoParams): void;
|
|
14
15
|
updatePanelContent(contentType: string): void;
|
|
15
16
|
handleSignalData(data: any): Promise<void>;
|
|
16
17
|
clearHoloSignal(): void;
|
|
18
|
+
setInterpolate(enable: boolean): void;
|
|
17
19
|
}
|
|
@@ -12,13 +12,13 @@ class h {
|
|
|
12
12
|
this.traceHoloFlow || (this.traceHoloFlow = new i(this.view)), this.traceHoloFlow.handleVehicleTraceData(e);
|
|
13
13
|
}
|
|
14
14
|
toggleTrafficObject(e) {
|
|
15
|
-
var
|
|
15
|
+
var o, l;
|
|
16
16
|
switch (e.name.toLowerCase()) {
|
|
17
17
|
case "groundVehicle".toLowerCase():
|
|
18
|
-
(
|
|
18
|
+
(o = this.traceHoloFlow) == null || o.toggleGroundVehicle(e.visible);
|
|
19
19
|
break;
|
|
20
20
|
case "elevatedVehicle".toLowerCase():
|
|
21
|
-
(
|
|
21
|
+
(l = this.traceHoloFlow) == null || l.toggleElevatedVehicle(e.visible);
|
|
22
22
|
break;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -29,24 +29,28 @@ class h {
|
|
|
29
29
|
// public toggleVehiclePlate(visible: boolean): void {
|
|
30
30
|
// this.traceHoloFlow?.togglePlateLayer(visible);
|
|
31
31
|
// }
|
|
32
|
-
|
|
32
|
+
toggleTrafficInfo(e) {
|
|
33
33
|
var o;
|
|
34
|
-
|
|
34
|
+
(o = this.traceHoloFlow) == null || o.toggleTrafficInfo(e);
|
|
35
|
+
}
|
|
36
|
+
updatePanelContent(e) {
|
|
37
|
+
var l;
|
|
38
|
+
let o = a.None;
|
|
35
39
|
switch (e) {
|
|
36
40
|
case "none":
|
|
37
|
-
|
|
41
|
+
o = a.None;
|
|
38
42
|
break;
|
|
39
43
|
case "plateNumber":
|
|
40
|
-
|
|
44
|
+
o = a.PlateNumber;
|
|
41
45
|
break;
|
|
42
46
|
case "vehicleId":
|
|
43
|
-
|
|
47
|
+
o = a.Id;
|
|
44
48
|
break;
|
|
45
49
|
case "mix":
|
|
46
|
-
|
|
50
|
+
o = a.Mix;
|
|
47
51
|
break;
|
|
48
52
|
}
|
|
49
|
-
(
|
|
53
|
+
(l = this.traceHoloFlow) == null || l.updatePanelContent(o);
|
|
50
54
|
}
|
|
51
55
|
async handleSignalData(e) {
|
|
52
56
|
this.signalHoloFlow || (this.signalHoloFlow = new t(this.view)), await this.signalHoloFlow.initializeLayer(), await this.signalHoloFlow.handleSignalData(e);
|
|
@@ -55,6 +59,10 @@ class h {
|
|
|
55
59
|
var e;
|
|
56
60
|
(e = this.signalHoloFlow) == null || e.clearSignal();
|
|
57
61
|
}
|
|
62
|
+
setInterpolate(e) {
|
|
63
|
+
var o;
|
|
64
|
+
(o = this.traceHoloFlow) == null || o.setInterpolate(e);
|
|
65
|
+
}
|
|
58
66
|
}
|
|
59
67
|
export {
|
|
60
68
|
h as default
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EVehiclePlateState } from '../../../types';
|
|
1
|
+
import { EVehiclePlateState, IToggleTrafficInfoParams } from '../../../types';
|
|
2
2
|
export default class TraceHoloFlow {
|
|
3
3
|
private mapConfig;
|
|
4
4
|
private view;
|
|
@@ -9,6 +9,11 @@ export default class TraceHoloFlow {
|
|
|
9
9
|
* 处理全息流轨迹数据
|
|
10
10
|
* */
|
|
11
11
|
handleVehicleTraceData(data: any): void;
|
|
12
|
+
/**
|
|
13
|
+
* 切换交通信息可见性
|
|
14
|
+
* @param params
|
|
15
|
+
*/
|
|
16
|
+
toggleTrafficInfo(params: IToggleTrafficInfoParams): void;
|
|
12
17
|
/**
|
|
13
18
|
* 清除轨迹流
|
|
14
19
|
* */
|
|
@@ -16,5 +21,6 @@ export default class TraceHoloFlow {
|
|
|
16
21
|
updatePanelContent(contentType: EVehiclePlateState): void;
|
|
17
22
|
toggleGroundVehicle(visible: boolean): void;
|
|
18
23
|
toggleElevatedVehicle(visible: boolean): void;
|
|
24
|
+
setInterpolate(enable: boolean): void;
|
|
19
25
|
private buildVehicleTrackData;
|
|
20
26
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
class
|
|
1
|
+
import * as m from "@arcgis/core/views/3d/externalRenderers";
|
|
2
|
+
import f from "../../stores/index.mjs";
|
|
3
|
+
import g from "./trace-renderer-layer.mjs";
|
|
4
|
+
import u from "./trace-renderer-webgl.mjs";
|
|
5
|
+
class y {
|
|
6
6
|
constructor(e) {
|
|
7
7
|
this.lastDataTime = 0, this.view = e;
|
|
8
|
-
const
|
|
9
|
-
this.mapConfig = JSON.parse(JSON.stringify(
|
|
8
|
+
const o = f.useAppDataStore;
|
|
9
|
+
this.mapConfig = JSON.parse(JSON.stringify(o.mapConfig)), e.type === "3d" ? (this.traceRenderer = new u(e), m.add(
|
|
10
10
|
e,
|
|
11
11
|
this.traceRenderer
|
|
12
12
|
)) : this.traceRenderer = new g(e);
|
|
@@ -15,33 +15,36 @@ class N {
|
|
|
15
15
|
* 处理全息流轨迹数据
|
|
16
16
|
* */
|
|
17
17
|
handleVehicleTraceData(e) {
|
|
18
|
-
const
|
|
19
|
-
if (i - this.lastDataTime < 100)
|
|
20
|
-
return;
|
|
21
|
-
this.lastDataTime = i;
|
|
22
|
-
const { newVehList: s, updateVehList: n, deleteVehList: o, jgsj: l } = e, a = e.crossId || "", h = [], r = [];
|
|
18
|
+
const o = new Date().getTime(), { newVehList: s, updateVehList: a, deleteVehList: c, jgsj: i } = e, n = e.crossId || "", l = [], h = [];
|
|
23
19
|
if (s && s.length > 0) {
|
|
24
|
-
for (const
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
20
|
+
for (const t of s) {
|
|
21
|
+
t.localTimestamp || (t.localTimestamp = i || o);
|
|
22
|
+
const r = this.buildVehicleTrackData(t, n);
|
|
23
|
+
r && l.push(r);
|
|
28
24
|
}
|
|
29
|
-
this.traceRenderer.addVehicles(
|
|
25
|
+
this.traceRenderer.addVehicles(l);
|
|
30
26
|
}
|
|
31
|
-
if (
|
|
32
|
-
for (const
|
|
33
|
-
const
|
|
34
|
-
|
|
27
|
+
if (a && a.length > 0) {
|
|
28
|
+
for (const t of a) {
|
|
29
|
+
const r = this.buildVehicleTrackData(t, n);
|
|
30
|
+
r && h.push(r);
|
|
35
31
|
}
|
|
36
|
-
this.traceRenderer.updateVehicles(
|
|
32
|
+
this.traceRenderer.updateVehicles(h);
|
|
37
33
|
}
|
|
38
|
-
if (
|
|
39
|
-
const
|
|
40
|
-
(
|
|
34
|
+
if (c && c.length > 0) {
|
|
35
|
+
const t = c.map(
|
|
36
|
+
(r) => n + "-" + (r.ptcId || r.vehno || r.vehNo)
|
|
41
37
|
);
|
|
42
|
-
this.traceRenderer.deleteVehicles(
|
|
38
|
+
this.traceRenderer.deleteVehicles(t);
|
|
43
39
|
}
|
|
44
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* 切换交通信息可见性
|
|
43
|
+
* @param params
|
|
44
|
+
*/
|
|
45
|
+
toggleTrafficInfo(e) {
|
|
46
|
+
this.traceRenderer.toggleTrafficInfo(e);
|
|
47
|
+
}
|
|
45
48
|
/**
|
|
46
49
|
* 清除轨迹流
|
|
47
50
|
* */
|
|
@@ -57,27 +60,31 @@ class N {
|
|
|
57
60
|
toggleElevatedVehicle(e) {
|
|
58
61
|
this.traceRenderer.toggleElevatedVehicle(e);
|
|
59
62
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
setInterpolate(e) {
|
|
64
|
+
this.traceRenderer.setInterpolate(e);
|
|
65
|
+
}
|
|
66
|
+
buildVehicleTrackData(e, o) {
|
|
67
|
+
const s = e.longitude, a = e.latitude, c = e.ptcId, i = Number(e.ptcType), n = e.heading, l = Number(e.vehicleType), h = Number(e.vehicleColor), t = e.plateNo || e.plateno, r = Number(e.plateColor), p = e.timestamp, d = String(e.roadLayer) || "1";
|
|
68
|
+
if (!(i < 0 || i > 8))
|
|
63
69
|
return {
|
|
64
|
-
ptcId:
|
|
65
|
-
crossId:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
ptcId: c,
|
|
71
|
+
crossId: o,
|
|
72
|
+
vehicleId: o + "-" + c,
|
|
73
|
+
x: s,
|
|
74
|
+
y: a,
|
|
75
|
+
ptcType: i,
|
|
76
|
+
vehicleType: l,
|
|
77
|
+
heading: i === 2 ? -n : n,
|
|
71
78
|
vehicleColor: h,
|
|
72
|
-
showName:
|
|
73
|
-
plateNo:
|
|
74
|
-
plateColor:
|
|
75
|
-
timestamp:
|
|
76
|
-
localTimestamp:
|
|
77
|
-
roadLayer:
|
|
79
|
+
showName: t && t !== "" && t !== "0" && t !== "000000" ? t : "",
|
|
80
|
+
plateNo: t,
|
|
81
|
+
plateColor: r,
|
|
82
|
+
timestamp: p,
|
|
83
|
+
localTimestamp: Date.now(),
|
|
84
|
+
roadLayer: d
|
|
78
85
|
};
|
|
79
86
|
}
|
|
80
87
|
}
|
|
81
88
|
export {
|
|
82
|
-
|
|
89
|
+
y as default
|
|
83
90
|
};
|
package/es/src/gis-map/utils/holo-flow/{trace-layer-renderer.d.ts → trace-renderer-layer.d.ts}
RENAMED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { EVehiclePlateState, ITraceRendererInterface, IVehicleTrack } from '../../../types';
|
|
2
|
-
export default class
|
|
2
|
+
export default class TraceRendererLayer implements ITraceRendererInterface {
|
|
3
3
|
private view;
|
|
4
4
|
private readonly vehicleLayer;
|
|
5
5
|
private mapConfig;
|
|
6
6
|
constructor(view: __esri.MapView);
|
|
7
|
+
private needInterpolate;
|
|
7
8
|
private showVehiclePlate;
|
|
8
9
|
private showGroundVehicle;
|
|
9
10
|
private showElevatedVehicle;
|
|
@@ -13,7 +14,6 @@ export default class TraceLayerRenderer implements ITraceRendererInterface {
|
|
|
13
14
|
updateVehicles(objects: IVehicleTrack[]): void;
|
|
14
15
|
deleteVehicles(idList: string[]): void;
|
|
15
16
|
clearVehicles(): void;
|
|
16
|
-
updatePanelContent(contentType: EVehiclePlateState): void;
|
|
17
17
|
/**
|
|
18
18
|
* 设置地面车辆显示隐藏
|
|
19
19
|
* @param visible
|
|
@@ -24,6 +24,12 @@ export default class TraceLayerRenderer implements ITraceRendererInterface {
|
|
|
24
24
|
* @param visible
|
|
25
25
|
*/
|
|
26
26
|
toggleElevatedVehicle(visible: boolean): void;
|
|
27
|
+
toggleTrafficInfo(params: {
|
|
28
|
+
name: string;
|
|
29
|
+
visible: boolean;
|
|
30
|
+
}): void;
|
|
31
|
+
updatePanelContent(contentType: EVehiclePlateState): void;
|
|
32
|
+
setInterpolate(needInterpolate: boolean): void;
|
|
27
33
|
private render;
|
|
28
34
|
private updatePosition;
|
|
29
35
|
/**
|
package/es/src/gis-map/utils/holo-flow/{trace-layer-renderer.mjs → trace-renderer-layer.mjs}
RENAMED
|
@@ -1,49 +1,50 @@
|
|
|
1
1
|
import h from "@arcgis/core/Graphic";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import c from "@arcgis/core/layers/GraphicsLayer";
|
|
3
|
+
import p from "../../stores/index.mjs";
|
|
4
4
|
class u {
|
|
5
5
|
constructor(i) {
|
|
6
|
-
this.showVehiclePlate = !1, this.showGroundVehicle = !0, this.showElevatedVehicle = !0, this.historyPositionMap = /* @__PURE__ */ new Map(), this.vehicleObjectMap = /* @__PURE__ */ new Map(), this.view = i;
|
|
7
|
-
const e =
|
|
8
|
-
this.mapConfig = JSON.parse(JSON.stringify(e.mapConfig)), this.vehicleLayer = new
|
|
6
|
+
this.needInterpolate = !0, this.showVehiclePlate = !1, this.showGroundVehicle = !0, this.showElevatedVehicle = !0, this.historyPositionMap = /* @__PURE__ */ new Map(), this.vehicleObjectMap = /* @__PURE__ */ new Map(), this.view = i;
|
|
7
|
+
const e = p.useAppDataStore;
|
|
8
|
+
this.mapConfig = JSON.parse(JSON.stringify(e.mapConfig)), this.vehicleLayer = new c({
|
|
9
9
|
id: "vehicleLayer"
|
|
10
10
|
}), this.view.map.add(this.vehicleLayer), requestAnimationFrame(() => this.render());
|
|
11
11
|
}
|
|
12
12
|
addVehicles(i) {
|
|
13
13
|
const e = i.map((t) => {
|
|
14
|
-
const {
|
|
14
|
+
const { vehicleId: o, heading: n, localTimestamp: a } = t, r = Number(t.x), l = Number(t.y);
|
|
15
15
|
this.historyPositionMap.set(o, [
|
|
16
|
-
{ pos: [
|
|
16
|
+
{ pos: [r, l, 0], heading: n, time: a }
|
|
17
17
|
]);
|
|
18
|
-
const
|
|
18
|
+
const s = new h({
|
|
19
19
|
geometry: {
|
|
20
20
|
type: "point",
|
|
21
|
-
x:
|
|
22
|
-
y:
|
|
21
|
+
x: r,
|
|
22
|
+
y: l
|
|
23
23
|
},
|
|
24
24
|
attributes: {
|
|
25
25
|
...t
|
|
26
26
|
},
|
|
27
27
|
symbol: this.createCIMSymbol(t)
|
|
28
28
|
});
|
|
29
|
-
return
|
|
30
|
-
graphic:
|
|
29
|
+
return s.visible = !1, this.vehicleObjectMap.set(o, {
|
|
30
|
+
graphic: s,
|
|
31
31
|
data: t,
|
|
32
|
-
waitForDelete: !1
|
|
33
|
-
|
|
32
|
+
waitForDelete: !1,
|
|
33
|
+
isMoving: !1
|
|
34
|
+
}), s;
|
|
34
35
|
});
|
|
35
36
|
this.vehicleLayer.addMany(e);
|
|
36
37
|
}
|
|
37
38
|
updateVehicles(i) {
|
|
38
39
|
const e = [];
|
|
39
40
|
i.forEach((t) => {
|
|
40
|
-
const {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
const { vehicleId: o, heading: n, localTimestamp: a } = t, r = Number(t.x), l = Number(t.y), s = this.vehicleObjectMap.get(o);
|
|
42
|
+
s ? (s.data = t, this.historyPositionMap.get(
|
|
43
|
+
o
|
|
43
44
|
).push({
|
|
44
|
-
pos: [
|
|
45
|
-
heading:
|
|
46
|
-
time:
|
|
45
|
+
pos: [r, l, 0],
|
|
46
|
+
heading: n,
|
|
47
|
+
time: a
|
|
47
48
|
})) : e.push(t);
|
|
48
49
|
}), this.addVehicles(e);
|
|
49
50
|
}
|
|
@@ -56,9 +57,6 @@ class u {
|
|
|
56
57
|
clearVehicles() {
|
|
57
58
|
this.vehicleLayer.removeAll(), this.vehicleObjectMap.clear(), this.historyPositionMap.clear();
|
|
58
59
|
}
|
|
59
|
-
updatePanelContent(i) {
|
|
60
|
-
console.log(i);
|
|
61
|
-
}
|
|
62
60
|
/**
|
|
63
61
|
* 设置地面车辆显示隐藏
|
|
64
62
|
* @param visible
|
|
@@ -73,6 +71,15 @@ class u {
|
|
|
73
71
|
toggleElevatedVehicle(i) {
|
|
74
72
|
this.showElevatedVehicle = i;
|
|
75
73
|
}
|
|
74
|
+
toggleTrafficInfo(i) {
|
|
75
|
+
i.name === "vehiclePlate" && (this.showVehiclePlate = i.visible);
|
|
76
|
+
}
|
|
77
|
+
updatePanelContent(i) {
|
|
78
|
+
console.log(i);
|
|
79
|
+
}
|
|
80
|
+
setInterpolate(i) {
|
|
81
|
+
this.needInterpolate = i;
|
|
82
|
+
}
|
|
76
83
|
render() {
|
|
77
84
|
this.vehicleObjectMap.forEach((i, e) => {
|
|
78
85
|
this.updatePosition(e);
|
|
@@ -80,16 +87,16 @@ class u {
|
|
|
80
87
|
}
|
|
81
88
|
updatePosition(i) {
|
|
82
89
|
const e = this.historyPositionMap.get(i), t = this.vehicleObjectMap.get(i);
|
|
83
|
-
if (!e || !t || e.length <=
|
|
90
|
+
if (!e || !t || !t.isMoving && e.length <= 2)
|
|
84
91
|
return;
|
|
85
|
-
(t.graphic.getAttribute("roadLayer") || "1") === "1" ? t.graphic.visible = this.showGroundVehicle : t.graphic.visible = this.showElevatedVehicle, t.segmentStartTime || (t.segmentStartTime = Date.now(), t.segmentTotalTime = e[1].time - e[0].time);
|
|
86
|
-
const n = Date.now() - t.segmentStartTime,
|
|
92
|
+
t.isMoving = !0, (t.graphic.getAttribute("roadLayer") || "1") === "1" ? t.graphic.visible = this.showGroundVehicle : t.graphic.visible = this.showElevatedVehicle, t.segmentStartTime || (t.segmentStartTime = Date.now(), t.segmentTotalTime = e[1].time - e[0].time);
|
|
93
|
+
const n = Date.now() - t.segmentStartTime, a = Math.min(
|
|
87
94
|
1,
|
|
88
95
|
n / t.segmentTotalTime
|
|
89
96
|
);
|
|
90
|
-
if (
|
|
97
|
+
if (a === 1)
|
|
91
98
|
if (e.shift(), e.length === 1) {
|
|
92
|
-
t.waitForDelete ? (this.vehicleLayer.remove(t.graphic), this.vehicleObjectMap.delete(i), this.historyPositionMap.delete(i)) : (t.segmentStartTime = void 0, t.segmentTotalTime = void 0);
|
|
99
|
+
t.waitForDelete ? (this.vehicleLayer.remove(t.graphic), this.vehicleObjectMap.delete(i), this.historyPositionMap.delete(i)) : (t.segmentStartTime = void 0, t.segmentTotalTime = void 0, t.graphic.visible = !1, t.isMoving = !1);
|
|
93
100
|
return;
|
|
94
101
|
} else
|
|
95
102
|
t.segmentStartTime = Date.now(), t.segmentTotalTime = e[1].time - e[0].time, (e[1].heading >= 270 && e[0].heading <= 90 || e[1].heading <= 90 && e[0].heading >= 270) && (e[1].heading > e[0].heading ? e[0].heading += 360 : e[1].heading += 360), t.graphic.geometry = {
|
|
@@ -98,12 +105,12 @@ class u {
|
|
|
98
105
|
y: e[0].pos[1]
|
|
99
106
|
};
|
|
100
107
|
else {
|
|
101
|
-
const
|
|
108
|
+
const r = e[0].pos[0] + (e[1].pos[0] - e[0].pos[0]) * a, l = e[0].pos[1] + (e[1].pos[1] - e[0].pos[1]) * a, s = e[0].heading + (e[1].heading - e[0].heading) * a;
|
|
102
109
|
t.graphic.geometry = {
|
|
103
110
|
type: "point",
|
|
104
|
-
x:
|
|
105
|
-
y:
|
|
106
|
-
}, t.data.heading =
|
|
111
|
+
x: r,
|
|
112
|
+
y: l
|
|
113
|
+
}, t.data.heading = s, t.graphic.symbol = this.createCIMSymbol(t.data);
|
|
107
114
|
}
|
|
108
115
|
}
|
|
109
116
|
/**
|
package/es/src/gis-map/utils/holo-flow/{trace-external-renderer.d.ts → trace-renderer-webgl.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EVehiclePlateState, ITraceRendererInterface, IVehicleTrack } from '../../../types';
|
|
2
|
-
export default class
|
|
1
|
+
import { EVehiclePlateState, IToggleTrafficInfoParams, ITraceRendererInterface, IVehicleTrack } from '../../../types';
|
|
2
|
+
export default class TraceRendererWebgl implements ITraceRendererInterface {
|
|
3
3
|
private renderer;
|
|
4
4
|
private scene;
|
|
5
5
|
private camera;
|
|
@@ -24,8 +24,12 @@ export default class TraceExternalRenderer implements ITraceRendererInterface {
|
|
|
24
24
|
private currentSpriteContent;
|
|
25
25
|
private historyPositionMap;
|
|
26
26
|
private vehicleObjectMap;
|
|
27
|
+
private needInterpolate;
|
|
27
28
|
constructor(view: __esri.SceneView);
|
|
29
|
+
setInterpolate(needInterpolate: boolean): void;
|
|
30
|
+
private context;
|
|
28
31
|
setup(context: any): Promise<void>;
|
|
32
|
+
private lastRenderTime;
|
|
29
33
|
render(context: any): Promise<void>;
|
|
30
34
|
/**
|
|
31
35
|
* 新增车辆
|
|
@@ -35,10 +39,13 @@ export default class TraceExternalRenderer implements ITraceRendererInterface {
|
|
|
35
39
|
* 更新车辆
|
|
36
40
|
* */
|
|
37
41
|
updateVehicles(objects: IVehicleTrack[]): void;
|
|
42
|
+
private toRenderCoordinates;
|
|
38
43
|
/**
|
|
39
44
|
* 删除车辆
|
|
40
45
|
* */
|
|
41
46
|
deleteVehicles(idList: string[]): void;
|
|
47
|
+
private deleteVehicle;
|
|
48
|
+
toggleTrafficInfo(params: IToggleTrafficInfoParams): void;
|
|
42
49
|
/**
|
|
43
50
|
* 清除全部车辆
|
|
44
51
|
* */
|