gisviewer-vue3-arcgis 1.0.279 → 1.0.281

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.
@@ -1,6 +1,6 @@
1
1
  import MapView from '@arcgis/core/views/MapView';
2
2
  import SceneView from '@arcgis/core/views/SceneView';
3
- import { IBlockOpenDriveLaneParams, IClusterPointParams, IEditSignalControlAreaParams, IFindSignalControlAreaParams, IFindSumoParams, ILaneNumberParams, ILayerVisibleParams, ILookAtParams, IMaskParam, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IShowEdpassDeviceParams, IShowGreenWaveBandParams, IShowJurisdictionParams, IShowOpenDriveFromFileParams, IShowSignalControlAreaParams, ISignalCountdownProps, ISplitOpenDriveLaneParams, IStartCrossBufferParam, IToggleTrafficInfoParams, IUnselectSumoParams } from '../types';
3
+ import { IBlockOpenDriveLaneParams, IClusterPointParams, IEditSignalControlAreaParams, IFindSignalControlAreaParams, IFindSumoParams, ILaneNumberParams, ILayerVisibleParams, ILookAtParams, IMaskParam, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IShowEdpassDeviceParams, IShowGreenWaveBandParams, IShowJurisdictionParams, IShowOpenDriveFromFileParams, IShowSignalControlAreaParams, IShowSignalSystemParams, IShowSubSignalSystemParams, ISignalCountdownProps, ISplitOpenDriveLaneParams, IStartCrossBufferParam, IToggleTrafficInfoParams, IUnselectSumoParams } from '../types';
4
4
  import DbscanCluster from './utils/dbscan-cluster';
5
5
  import EdpassDeviceController from './utils/edpass-device-controller';
6
6
  import GreenWaveBandController from './utils/green-wave-band-controller';
@@ -14,6 +14,7 @@ import RoadConfigTool from './utils/road-config-tool';
14
14
  import EditSignalArea from './utils/signal-control-area/edit-area';
15
15
  import SignalAreaController from './utils/signal-control-area/signal-area-controller';
16
16
  import SignalCrossController from './utils/signal-control-area/signal-cross-controller';
17
+ import SignalSystemController from './utils/signal-system/signal-system-controller';
17
18
  import TrafficFlow from './utils/traffic-flow';
18
19
  declare const _sfc_main: import("vue").DefineComponent<{
19
20
  config: {
@@ -41,6 +42,7 @@ declare const _sfc_main: import("vue").DefineComponent<{
41
42
  policeJurisdictionController: PoliceJurisdiction;
42
43
  edpassDeviceController: EdpassDeviceController;
43
44
  dbscanCluster: DbscanCluster;
45
+ signalSystemController: SignalSystemController;
44
46
  showLogDiv: import("vue").Ref<boolean>;
45
47
  appDataStore: import("pinia").Store<"appData", {
46
48
  mapConfig: {};
@@ -197,6 +199,10 @@ declare const _sfc_main: import("vue").DefineComponent<{
197
199
  status: number;
198
200
  message: string;
199
201
  };
202
+ showSignalSystem: (params: IShowSignalSystemParams) => Promise<import("../types").IResult>;
203
+ showSubSignalSystem: (params: IShowSubSignalSystemParams) => Promise<import("../types").IResult>;
204
+ removeSubSignalSystem: (code?: string | undefined) => import("../types").IResult;
205
+ removeSignalSystem: (areaCode: string) => import("../types").IResult;
200
206
  addGreenWaveBand: (params: IEditSignalControlAreaParams) => void;
201
207
  stopAddGreenWaveBand: () => {
202
208
  status: number;
@@ -1,269 +1,274 @@
1
- import { defineComponent as Ct, ref as x, reactive as yt, onMounted as ht, getCurrentInstance as vt, onUnmounted as bt, computed as Ot, openBlock as I, createElementBlock as G, createElementVNode as w, withDirectives as At, vShow as kt, Fragment as Dt, renderList as Lt, createBlock as Tt } from "vue";
2
- import H, { registerStore as It } from "./stores/index.mjs";
1
+ import { defineComponent as At, ref as G, reactive as kt, onMounted as Dt, getCurrentInstance as Lt, onUnmounted as Tt, computed as It, openBlock as B, createElementBlock as H, createElementVNode as y, withDirectives as Bt, vShow as Mt, Fragment as Pt, renderList as Vt, createBlock as zt } from "vue";
2
+ import N, { registerStore as _t } from "./stores/index.mjs";
3
3
  import "./style/index.css";
4
- import Bt from "./utils/dbscan-cluster/index.mjs";
5
- import Mt from "./utils/detect-gpu.mjs";
6
- import Pt from "./utils/edpass-device-controller.mjs";
7
- import N from "./utils/green-wave-band-controller/index.mjs";
8
- import Vt from "./utils/holo-flow/index.mjs";
9
- import zt from "./utils/holo-flow/signal-countdown-panel.vue.mjs";
10
- import _t from "./utils/map-initializer.mjs";
11
- import E from "./utils/open-drive-renderer/index.mjs";
12
- import W from "./utils/overlay.mjs";
13
- import xt from "./utils/police-jurisdiction.mjs";
14
- import Gt from "./utils/queue-length.mjs";
15
- import Z from "./utils/road-config-tool/index.mjs";
16
- import Ht from "./utils/signal-control-area/edit-area.mjs";
17
- import B from "./utils/signal-control-area/signal-area-controller.mjs";
18
- import Nt from "./utils/signal-control-area/signal-cross-controller.mjs";
19
- import Et from "./utils/traffic-flow.mjs";
20
- const Wt = { class: "gis-viewer" }, Zt = { style: { position: "absolute", bottom: "80px", left: "10px", "z-index": "9999" } }, ln = /* @__PURE__ */ Ct({
4
+ import xt from "./utils/dbscan-cluster/index.mjs";
5
+ import Gt from "./utils/detect-gpu.mjs";
6
+ import Ht from "./utils/edpass-device-controller.mjs";
7
+ import E from "./utils/green-wave-band-controller/index.mjs";
8
+ import Nt from "./utils/holo-flow/index.mjs";
9
+ import Et from "./utils/holo-flow/signal-countdown-panel.vue.mjs";
10
+ import Wt from "./utils/map-initializer.mjs";
11
+ import W from "./utils/open-drive-renderer/index.mjs";
12
+ import Z from "./utils/overlay.mjs";
13
+ import Zt from "./utils/police-jurisdiction.mjs";
14
+ import Qt from "./utils/queue-length.mjs";
15
+ import Q from "./utils/road-config-tool/index.mjs";
16
+ import jt from "./utils/signal-control-area/edit-area.mjs";
17
+ import M from "./utils/signal-control-area/signal-area-controller.mjs";
18
+ import Jt from "./utils/signal-control-area/signal-cross-controller.mjs";
19
+ import j from "./utils/signal-system/signal-system-controller.mjs";
20
+ import Ut from "./utils/traffic-flow.mjs";
21
+ const $t = { class: "gis-viewer" }, qt = { style: { position: "absolute", bottom: "80px", left: "10px", "z-index": "9999" } }, fn = /* @__PURE__ */ At({
21
22
  __name: "gis-map",
22
23
  props: {
23
24
  config: {},
24
25
  assetsRoot: {}
25
26
  },
26
27
  emits: ["mapLoaded", "markerClick", "mapClick", "update:zoom"],
27
- setup(Q, { expose: j, emit: J }) {
28
- const b = x(null);
29
- let n, p, c, o, r, s, f, t, l, a, d, g, C, O, S;
30
- const A = x(!1);
31
- It();
32
- const M = H.useAppDataStore, P = yt([]), V = (e) => Math.log2(591657527591555e-6 / e);
33
- let y = null, z = null;
34
- const k = (e) => {
28
+ setup(J, { expose: U, emit: $ }) {
29
+ const O = G(null);
30
+ let n, g, c, o, s, r, f, t, l, a, S, d, C, A, w, p;
31
+ const k = G(!1);
32
+ _t();
33
+ const P = N.useAppDataStore, V = kt([]), z = (e) => Math.log2(591657527591555e-6 / e);
34
+ let h = null, _ = null;
35
+ const D = (e) => {
35
36
  if (!Number.isFinite(e))
36
37
  return;
37
38
  const u = Math.round(e);
38
- u !== z && (z = u, h("update:zoom", u));
39
+ u !== _ && (_ = u, v("update:zoom", u));
39
40
  };
40
- Mt(), ht(async () => {
41
- if (!b.value)
41
+ Gt(), Dt(async () => {
42
+ if (!O.value)
42
43
  return;
43
44
  document.addEventListener("keydown", (m) => {
44
- m.ctrlKey && m.key === "i" && (A.value = !A.value);
45
+ m.ctrlKey && m.key === "i" && (k.value = !k.value);
45
46
  });
46
- const e = vt(), { $gisviewerAssetsRoot: u } = e.appContext.config.globalProperties, i = await (await fetch(_.config)).json();
47
- i.assetsRoot = _.assetsRoot || u, M.mapConfig = i, p = new _t(), M.mapInitializer = p, n = await p.initialize({
48
- container: b.value,
47
+ const e = Lt(), { $gisviewerAssetsRoot: u } = e.appContext.config.globalProperties, i = await (await fetch(x.config)).json();
48
+ i.assetsRoot = x.assetsRoot || u, P.mapConfig = i, g = new Wt(), P.mapInitializer = g, n = await g.initialize({
49
+ container: O.value,
49
50
  mapConfig: i,
50
- markerClickCallback: (m, L, T, wt) => {
51
- h("markerClick", m, L, T, wt);
51
+ markerClickCallback: (m, T, I, Ot) => {
52
+ v("markerClick", m, T, I, Ot);
52
53
  },
53
- mapClickCallback: (m, L, T) => {
54
- h("mapClick", m, L, T);
54
+ mapClickCallback: (m, T, I) => {
55
+ v("mapClick", m, T, I);
55
56
  }
56
57
  });
57
- const v = n.zoom ?? (n.scale ? V(n.scale) : void 0);
58
- typeof v == "number" && k(v);
59
- const St = n.zoom !== void 0 ? n.watch("zoom", (m) => {
60
- k(m);
58
+ const b = n.zoom ?? (n.scale ? z(n.scale) : void 0);
59
+ typeof b == "number" && D(b);
60
+ const bt = n.zoom !== void 0 ? n.watch("zoom", (m) => {
61
+ D(m);
61
62
  }) : n.watch("scale", (m) => {
62
- typeof m == "number" && m > 0 && k(V(m));
63
+ typeof m == "number" && m > 0 && D(z(m));
63
64
  });
64
- y = () => St.remove(), r = new Vt(n, P), await r.init(), h("mapLoaded");
65
- }), bt(() => {
66
- a == null || a.clearSignalControlArea(), t == null || t.clearOpenDrive(), r.clearHoloTrace(), r.clearHoloSignal(), o == null || o.disconnectTrafficFlow(), y == null || y(), y = null;
65
+ h = () => bt.remove(), s = new Nt(n, V), await s.init(), v("mapLoaded");
66
+ }), Tt(() => {
67
+ a == null || a.clearSignalControlArea(), t == null || t.clearOpenDrive(), s.clearHoloTrace(), s.clearHoloSignal(), o == null || o.disconnectTrafficFlow(), h == null || h(), h = null;
67
68
  });
68
- const U = Ot(() => n), $ = () => {
69
- const e = H.useAppDataStore;
69
+ const q = It(() => n), K = () => {
70
+ const e = N.useAppDataStore;
70
71
  e.saveTrackLog = !0;
71
- }, q = () => {
72
- r.downloadTrackLog();
73
- }, K = () => {
74
- D("vehicleId");
75
72
  }, F = () => {
76
- D("plateNumber");
77
- }, X = async (e) => await p.setMapCenter(e), Y = async (e) => await p.setMapCamera(e), R = (e) => p.setMapZoom(e), ee = async (e) => await p.lookAt(e), te = (e) => p.setLayerVisibility(e), ne = (e, u) => p.requestCoordinateTransform(e, u), ae = (e) => {
78
- p.cancelCoordinateTransform(e);
79
- }, re = (e) => {
80
- p.setMapZoomRange(e);
81
- }, se = (e) => (c || (c = new Z(n)), c.showLaneNumber(e)), oe = () => {
73
+ s.downloadTrackLog();
74
+ }, X = () => {
75
+ L("vehicleId");
76
+ }, Y = () => {
77
+ L("plateNumber");
78
+ }, 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) => {
79
+ g.cancelCoordinateTransform(e);
80
+ }, oe = (e) => {
81
+ g.setMapZoomRange(e);
82
+ }, ie = (e) => (c || (c = new Q(n)), c.showLaneNumber(e)), ce = () => {
82
83
  c == null || c.clearLaneNumber();
83
- }, ie = async (e) => (c || (c = new Z(n)), await c.initializeSearch(e)), ce = async () => c == null ? void 0 : c.calCrossIndicatorArea(), le = async () => {
84
- }, ue = async (e, u) => {
85
- o || (o = new Et(n)), o.connectTrafficFlow(e, u);
86
- }, me = () => {
84
+ }, le = async (e) => (c || (c = new Q(n)), await c.initializeSearch(e)), ue = async () => c == null ? void 0 : c.calCrossIndicatorArea(), me = async () => {
85
+ }, ge = async (e, u) => {
86
+ o || (o = new Ut(n)), o.connectTrafficFlow(e, u);
87
+ }, pe = () => {
87
88
  o == null || o.disconnectTrafficFlow();
88
- }, pe = async (e) => {
89
- r.handleVehicleTraceData(e);
90
- }, ge = () => {
91
- r.clearHoloTrace();
92
- }, de = (e) => {
93
- r.setInterpolate(e);
94
- }, fe = async (e) => {
95
- await r.handleSignalData(e);
96
- }, Se = async (e) => {
97
- await r.initializeLampGroup(e);
98
- }, we = (e) => {
99
- r.handleUniSignalData(e);
100
- }, Ce = () => {
101
- r.clearHoloSignal();
102
- }, ye = (e) => {
103
- o == null || o.toggleTrafficInfo(e), r == null || r.toggleTrafficInfo(e);
104
- }, he = (e) => {
105
- r == null || r.togglePause(e);
89
+ }, de = async (e) => {
90
+ s.handleVehicleTraceData(e);
91
+ }, Se = () => {
92
+ s.clearHoloTrace();
93
+ }, fe = (e) => {
94
+ s.setInterpolate(e);
95
+ }, we = async (e) => {
96
+ await s.handleSignalData(e);
97
+ }, ye = async (e) => {
98
+ await s.initializeLampGroup(e);
99
+ }, Ce = (e) => {
100
+ s.handleUniSignalData(e);
101
+ }, he = () => {
102
+ s.clearHoloSignal();
106
103
  }, ve = (e) => {
107
- o == null || o.toggleTrafficObject(e), r == null || r.toggleTrafficObject(e);
108
- }, D = (e) => {
109
- r == null || r.updatePanelContent(e);
110
- }, be = async (e) => (s || (s = new W(n)), s.addOverlays(e)), Oe = async (e) => (S || (S = new Bt(n)), S.addClusterPoints(e)), Ae = () => {
111
- S == null || S.removeAllClusterPoints();
112
- }, ke = (e) => (s || (s = new W(n)), s.addMask(e)), De = () => {
113
- s == null || s.removeMask();
114
- }, Le = (e) => s == null ? void 0 : s.removeOverlaysByType(e), Te = (e) => s == null ? void 0 : s.removeOverlaysById(e), Ie = () => s == null ? void 0 : s.removeAllOverlays(), Be = () => {
115
- s == null || s.showAllOverlays();
116
- }, Me = (e) => {
117
- f || (f = new Gt(n)), f.updateQueueLength(e);
118
- }, Pe = () => {
104
+ o == null || o.toggleTrafficInfo(e), s == null || s.toggleTrafficInfo(e);
105
+ }, be = (e) => {
106
+ s == null || s.togglePause(e);
107
+ }, Oe = (e) => {
108
+ o == null || o.toggleTrafficObject(e), s == null || s.toggleTrafficObject(e);
109
+ }, L = (e) => {
110
+ s == null || s.updatePanelContent(e);
111
+ }, Ae = async (e) => (r || (r = new Z(n)), r.addOverlays(e)), ke = async (e) => (w || (w = new xt(n)), w.addClusterPoints(e)), De = () => {
112
+ w == null || w.removeAllClusterPoints();
113
+ }, Le = (e) => (r || (r = new Z(n)), r.addMask(e)), Te = () => {
114
+ r == null || r.removeMask();
115
+ }, Ie = (e) => r == null ? void 0 : r.removeOverlaysByType(e), Be = (e) => r == null ? void 0 : r.removeOverlaysById(e), Me = () => r == null ? void 0 : r.removeAllOverlays(), Pe = () => {
116
+ r == null || r.showAllOverlays();
117
+ }, Ve = (e) => {
118
+ f || (f = new Qt(n)), f.updateQueueLength(e);
119
+ }, ze = () => {
119
120
  f == null || f.removeQueueLength();
120
- }, Ve = async (e, u) => (t || (t = new E(n)), await t.showOpenDriveFromServer(e, u)), ze = async (e) => (t || (t = new E(n)), await t.clearOpenDrive(), await t.showOpenDriveFromFile(e)), _e = (e) => t ? t.setOpendriveVisibility(e) : {
121
+ }, _e = async (e, u) => (t || (t = new W(n)), await t.showOpenDriveFromServer(e, u)), xe = async (e) => (t || (t = new W(n)), await t.clearOpenDrive(), await t.showOpenDriveFromFile(e)), Ge = (e) => t ? t.setOpendriveVisibility(e) : {
121
122
  status: -1,
122
123
  message: "未加载OpenDrive地图"
123
- }, xe = async () => await (t == null ? void 0 : t.clearOpenDrive()), Ge = async (e) => t ? await (t == null ? void 0 : t.findSumo(e)) : {
124
+ }, He = async () => await (t == null ? void 0 : t.clearOpenDrive()), Ne = async (e) => t ? await (t == null ? void 0 : t.findSumo(e)) : {
124
125
  status: -1,
125
126
  message: "未加载OpenDrive地图"
126
- }, He = async (e) => t ? t.selectSumo(e) : {
127
+ }, Ee = async (e) => t ? t.selectSumo(e) : {
127
128
  status: -1,
128
129
  message: "未加载OpenDrive地图"
129
- }, Ne = async (e) => t ? t.unselectSumo(e) : {
130
+ }, We = async (e) => t ? t.unselectSumo(e) : {
130
131
  status: -1,
131
132
  message: "未加载OpenDrive地图"
132
- }, Ee = async (e) => t ? t.selectComputable(e) : {
133
+ }, Ze = async (e) => t ? t.selectComputable(e) : {
133
134
  status: -1,
134
135
  message: "未加载OpenDrive地图"
135
- }, We = async (e) => t ? await t.geometrySearch(e) : {
136
+ }, Qe = async (e) => t ? await t.geometrySearch(e) : {
136
137
  status: -1,
137
138
  message: "未加载OpenDrive地图"
138
- }, Ze = async (e) => t ? await t.getSumoInfo(e) : {
139
+ }, je = async (e) => t ? await t.getSumoInfo(e) : {
139
140
  status: -1,
140
141
  message: "未加载OpenDrive地图"
141
- }, Qe = async (e) => t ? await (t == null ? void 0 : t.splitLane(e)) : {
142
+ }, Je = async (e) => t ? await (t == null ? void 0 : t.splitLane(e)) : {
142
143
  status: -1,
143
144
  message: "未加载OpenDrive地图"
144
- }, je = async () => t ? t == null ? void 0 : t.clearSplitLane() : {
145
+ }, Ue = async () => t ? t == null ? void 0 : t.clearSplitLane() : {
145
146
  status: -1,
146
147
  message: "未加载OpenDrive地图"
147
- }, Je = async (e) => t ? t == null ? void 0 : t.blockLane(e) : {
148
+ }, $e = async (e) => t ? t == null ? void 0 : t.blockLane(e) : {
148
149
  status: -1,
149
150
  message: "未加载OpenDrive地图"
150
- }, Ue = (e) => t ? t == null ? void 0 : t.clearBlockLane(e) : {
151
+ }, qe = (e) => t ? t == null ? void 0 : t.clearBlockLane(e) : {
151
152
  status: -1,
152
153
  message: "未加载OpenDrive地图"
153
- }, $e = async (e) => (a || (a = new B(n)), await a.showSignalControlArea(e)), qe = async (e) => (a || (a = new B(n)), await a.showDistrict(e)), Ke = async (e) => (a || (a = new B(n)), await a.showSubDistrict(e)), Fe = async () => await (a == null ? void 0 : a.clearSignalControlArea()), Xe = (e) => a == null ? void 0 : a.setLayerVisibility(e), Ye = async (e) => a ? await (a == null ? void 0 : a.locateSignalControlArea(e)) : { status: -1, message: "未加载信号控制区" }, Re = async (e) => a ? await a.highlightSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, et = () => a ? a.resetHighlight() : { status: -1, message: "未加载信号控制区" }, tt = (e) => (l || (l = new Ht(n)), l.showSubSignalControlArea(e)), nt = (e) => l ? l.editSubSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, at = () => l ? l.stopEditSubSignalControlArea() : { status: -1, message: "未加载信号控制区" }, rt = (e) => l ? l.selectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, st = (e) => l ? l.unselectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, ot = (e) => {
154
+ }, Ke = async (e) => (a || (a = new M(n)), await a.showSignalControlArea(e)), Fe = async (e) => (a || (a = new M(n)), await a.showDistrict(e)), Xe = async (e) => (a || (a = new M(n)), await a.showSubDistrict(e)), Ye = async () => await (a == null ? void 0 : a.clearSignalControlArea()), Re = (e) => a == null ? void 0 : a.setLayerVisibility(e), et = async (e) => a ? await (a == null ? void 0 : a.locateSignalControlArea(e)) : { status: -1, message: "未加载信号控制区" }, tt = async (e) => a ? await a.highlightSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, nt = () => a ? a.resetHighlight() : { status: -1, message: "未加载信号控制区" }, at = (e) => (l || (l = new jt(n)), l.showSubSignalControlArea(e)), st = (e) => l ? l.editSubSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, rt = () => l ? l.stopEditSubSignalControlArea() : { status: -1, message: "未加载信号控制区" }, ot = (e) => l ? l.selectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, it = (e) => l ? l.unselectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, ct = (e) => {
154
155
  if (!l)
155
156
  return { status: -1, message: "未加载信号控制区" };
156
- }, it = (e) => (d || (d = new Nt(n)), d.showSignalCross(e)), ct = () => d ? d.clearSignalCross() : { status: -1, message: "未加载信号路口" }, lt = (e) => d ? d.changeShowName(e) : { status: -1, message: "未加载信号路口" }, ut = (e) => (g || (g = new N(n)), g.addGreenWaveBand(e)), mt = () => {
157
- if (!g)
157
+ }, lt = (e) => (S || (S = new Jt(n)), S.showSignalCross(e)), ut = () => S ? S.clearSignalCross() : { status: -1, message: "未加载信号路口" }, mt = (e) => S ? S.changeShowName(e) : { status: -1, message: "未加载信号路口" }, gt = (e) => (p || (p = new j(n)), p.showSignalSystems(e)), pt = (e) => (p || (p = new j(n)), p.showSubSignalSystems(e)), dt = (e) => p ? p.removeSubSignalSystems(e) : { status: -1, message: "未加载信号系统" }, St = (e) => p ? p.removeSignalSystems(e) : { status: -1, message: "未加载信号系统" }, ft = (e) => (d || (d = new E(n)), d.addGreenWaveBand(e)), wt = () => {
158
+ if (!d)
158
159
  return { status: -1, message: "未加载绿波带" };
159
- g.stopAddGreenWaveBand();
160
- }, pt = async (e) => (g || (g = new N(n)), await g.showGreenWaveBand(e)), gt = async (e) => (C || (C = new xt(n)), await C.showJurisdiction(e)), dt = () => {
160
+ d.stopAddGreenWaveBand();
161
+ }, yt = async (e) => (d || (d = new E(n)), await d.showGreenWaveBand(e)), Ct = async (e) => (C || (C = new Zt(n)), await C.showJurisdiction(e)), ht = () => {
161
162
  if (!C)
162
163
  return { status: -1, message: "未加载警务管辖区" };
163
164
  C.clearJurisdiction();
164
- }, ft = async (e) => (O || (O = new Pt(n)), await O.setEdpassLayerVisibility(e)), _ = Q, h = J;
165
- return j({
166
- mapViewer: U,
167
- setLayerVisibility: te,
168
- setMapCenter: X,
169
- lookAt: ee,
170
- setMapCamera: Y,
171
- setMapZoom: R,
172
- setMapZoomRange: re,
173
- requestCoordinateTransform: ne,
174
- cancelCoordinateTransform: ae,
175
- addOverlays: be,
176
- addClusterPoints: Oe,
177
- removeAllClusterPoints: Ae,
178
- addMask: ke,
179
- removeMask: De,
180
- showAllOverlays: Be,
181
- removeOverlaysByType: Le,
182
- removeOverlaysById: Te,
183
- removeAllOverlays: Ie,
184
- showLaneNumber: se,
185
- clearLaneNumber: oe,
186
- initializeAreaTool: ie,
187
- calCrossIndicatorArea: ce,
188
- calRoadIndicatorArea: le,
189
- connectCarFlow: ue,
190
- disconnectCarFlow: me,
191
- handleHoloVehicleTraceData: pe,
192
- clearHoloTrace: ge,
193
- initializeLampGroup: Se,
194
- handleUniSignalData: we,
195
- handleHoloSignalData: fe,
196
- clearHoloSignal: Ce,
197
- setInterpolate: de,
198
- toggleTrafficInfo: ye,
199
- toggleTrafficObject: ve,
200
- toggleVehicleInfo: D,
201
- togglePause: he,
202
- updateQueueLength: Me,
203
- removeQueueLength: Pe,
204
- showOpenDriveFromServer: Ve,
205
- showOpenDriveFromFile: ze,
206
- clearOpenDrive: xe,
207
- setOpendriveVisibility: _e,
208
- geometrySearchInOpenDrive: We,
209
- findSumoInOpenDrive: Ge,
210
- selectSumoInOpenDrive: He,
211
- unselectSumoInOpenDrive: Ne,
212
- selectComputableInOpenDrive: Ee,
213
- getSumoInfo: Ze,
214
- splitOpenDriveLane: Qe,
215
- clearSplitOpenDriveLane: je,
216
- blockOpenDriveLane: Je,
217
- clearBlockOpenDriveLane: Ue,
218
- showSignalControlArea: $e,
219
- showDistrictArea: qe,
220
- showSubDistrictArea: Ke,
221
- clearSignalControlArea: Fe,
222
- setSignalControlAreaVisibility: Xe,
223
- locateSignalControlArea: Ye,
224
- highlightSignalControlArea: Re,
225
- resetHighlightSignalControlArea: et,
226
- showSubSignalControlArea: tt,
227
- editSubSignalControlArea: nt,
228
- stopEditSubSignalControlArea: at,
229
- selectSubSignalControlAreaCross: rt,
230
- unselectSubSignalControlAreaCross: st,
231
- changeSubSignalControlAreaBorderVisibility: ot,
232
- showSignalCross: it,
233
- clearSignalCross: ct,
234
- changeSignalCrossShowName: lt,
235
- addGreenWaveBand: ut,
236
- stopAddGreenWaveBand: mt,
237
- showGreenWaveBand: pt,
238
- showPoliceArea: gt,
239
- clearPoliceArea: dt,
240
- setEdpassLayerVisibility: ft
241
- }), (e, u) => (I(), G("div", Wt, [
242
- w("div", {
165
+ }, vt = async (e) => (A || (A = new Ht(n)), await A.setEdpassLayerVisibility(e)), x = J, v = $;
166
+ return U({
167
+ mapViewer: q,
168
+ setLayerVisibility: ae,
169
+ setMapCenter: R,
170
+ lookAt: ne,
171
+ setMapCamera: ee,
172
+ setMapZoom: te,
173
+ setMapZoomRange: oe,
174
+ requestCoordinateTransform: se,
175
+ cancelCoordinateTransform: re,
176
+ addOverlays: Ae,
177
+ addClusterPoints: ke,
178
+ removeAllClusterPoints: De,
179
+ addMask: Le,
180
+ removeMask: Te,
181
+ showAllOverlays: Pe,
182
+ removeOverlaysByType: Ie,
183
+ removeOverlaysById: Be,
184
+ removeAllOverlays: Me,
185
+ showLaneNumber: ie,
186
+ clearLaneNumber: ce,
187
+ initializeAreaTool: le,
188
+ calCrossIndicatorArea: ue,
189
+ calRoadIndicatorArea: me,
190
+ connectCarFlow: ge,
191
+ disconnectCarFlow: pe,
192
+ handleHoloVehicleTraceData: de,
193
+ clearHoloTrace: Se,
194
+ initializeLampGroup: ye,
195
+ handleUniSignalData: Ce,
196
+ handleHoloSignalData: we,
197
+ clearHoloSignal: he,
198
+ setInterpolate: fe,
199
+ toggleTrafficInfo: ve,
200
+ toggleTrafficObject: Oe,
201
+ toggleVehicleInfo: L,
202
+ togglePause: be,
203
+ updateQueueLength: Ve,
204
+ removeQueueLength: ze,
205
+ showOpenDriveFromServer: _e,
206
+ showOpenDriveFromFile: xe,
207
+ clearOpenDrive: He,
208
+ setOpendriveVisibility: Ge,
209
+ geometrySearchInOpenDrive: Qe,
210
+ findSumoInOpenDrive: Ne,
211
+ selectSumoInOpenDrive: Ee,
212
+ unselectSumoInOpenDrive: We,
213
+ selectComputableInOpenDrive: Ze,
214
+ getSumoInfo: je,
215
+ splitOpenDriveLane: Je,
216
+ clearSplitOpenDriveLane: Ue,
217
+ blockOpenDriveLane: $e,
218
+ clearBlockOpenDriveLane: qe,
219
+ showSignalControlArea: Ke,
220
+ showDistrictArea: Fe,
221
+ showSubDistrictArea: Xe,
222
+ clearSignalControlArea: Ye,
223
+ setSignalControlAreaVisibility: Re,
224
+ locateSignalControlArea: et,
225
+ highlightSignalControlArea: tt,
226
+ resetHighlightSignalControlArea: nt,
227
+ showSubSignalControlArea: at,
228
+ editSubSignalControlArea: st,
229
+ stopEditSubSignalControlArea: rt,
230
+ selectSubSignalControlAreaCross: ot,
231
+ unselectSubSignalControlAreaCross: it,
232
+ changeSubSignalControlAreaBorderVisibility: ct,
233
+ showSignalCross: lt,
234
+ clearSignalCross: ut,
235
+ changeSignalCrossShowName: mt,
236
+ showSignalSystem: gt,
237
+ showSubSignalSystem: pt,
238
+ removeSubSignalSystem: dt,
239
+ removeSignalSystem: St,
240
+ addGreenWaveBand: ft,
241
+ stopAddGreenWaveBand: wt,
242
+ showGreenWaveBand: yt,
243
+ showPoliceArea: Ct,
244
+ clearPoliceArea: ht,
245
+ setEdpassLayerVisibility: vt
246
+ }), (e, u) => (B(), H("div", $t, [
247
+ y("div", {
243
248
  class: "gis-viewer-main",
244
249
  ref_key: "mapContainer",
245
- ref: b
250
+ ref: O
246
251
  }, [
247
- At(w("div", Zt, [
248
- w("button", {
252
+ Bt(y("div", qt, [
253
+ y("button", {
249
254
  style: { "margin-right": "10px" },
250
- onClick: $
255
+ onClick: K
251
256
  }, " 开始记录 "),
252
- w("button", {
257
+ y("button", {
253
258
  style: { "margin-right": "10px" },
254
- onClick: q
259
+ onClick: F
255
260
  }, " 下载日志 "),
256
- w("button", {
261
+ y("button", {
257
262
  style: { "margin-right": "10px" },
258
- onClick: K
263
+ onClick: X
259
264
  }, " 显示车辆id "),
260
- w("button", { onClick: F }, "显示车辆号牌")
265
+ y("button", { onClick: Y }, "显示车辆号牌")
261
266
  ], 512), [
262
- [kt, A.value]
267
+ [Mt, k.value]
263
268
  ])
264
269
  ], 512),
265
- (I(!0), G(Dt, null, Lt(P, (i, v) => (I(), Tt(zt, {
266
- key: v,
270
+ (B(!0), H(Pt, null, Vt(V, (i, b) => (B(), zt(Et, {
271
+ key: b,
267
272
  "display-mode": i.displayMode,
268
273
  flash: i.flash,
269
274
  "road-id": i.crossId,
@@ -279,5 +284,5 @@ const Wt = { class: "gis-viewer" }, Zt = { style: { position: "absolute", bottom
279
284
  }
280
285
  });
281
286
  export {
282
- ln as default
287
+ fn as default
283
288
  };
@@ -24,6 +24,7 @@ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWi
24
24
  policeJurisdictionController: import("./utils/police-jurisdiction").default;
25
25
  edpassDeviceController: import("./utils/edpass-device-controller").default;
26
26
  dbscanCluster: import("./utils/dbscan-cluster").default;
27
+ signalSystemController: import("./utils/signal-system/signal-system-controller").default;
27
28
  showLogDiv: import("vue").Ref<boolean>;
28
29
  appDataStore: import("pinia").Store<"appData", {
29
30
  mapConfig: {};
@@ -180,6 +181,10 @@ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWi
180
181
  status: number;
181
182
  message: string;
182
183
  };
184
+ showSignalSystem: (params: import("../types").IShowSignalSystemParams) => Promise<import("../types").IResult>;
185
+ showSubSignalSystem: (params: import("../types").IShowSubSignalSystemParams) => Promise<import("../types").IResult>;
186
+ removeSubSignalSystem: (code?: string | undefined) => import("../types").IResult;
187
+ removeSignalSystem: (areaCode: string) => import("../types").IResult;
183
188
  addGreenWaveBand: (params: import("../types").IEditSignalControlAreaParams) => void;
184
189
  stopAddGreenWaveBand: () => {
185
190
  status: number;
@@ -87,28 +87,28 @@ const e = {
87
87
  type: "string"
88
88
  }
89
89
  ],
90
- popupTemplate: {
91
- title: "{name}",
92
- content: [
93
- {
94
- type: "fields",
95
- fieldInfos: [
96
- {
97
- fieldName: "id",
98
- label: "区控编号"
99
- },
100
- {
101
- fieldName: "subDistrictCount",
102
- label: "子区数量"
103
- },
104
- {
105
- fieldName: "signalCount",
106
- label: "信号机数量"
107
- }
108
- ]
109
- }
110
- ]
111
- },
90
+ // popupTemplate: {
91
+ // title: '{name}',
92
+ // content: [
93
+ // {
94
+ // type: 'fields',
95
+ // fieldInfos: [
96
+ // {
97
+ // fieldName: 'id',
98
+ // label: '区控编号'
99
+ // },
100
+ // {
101
+ // fieldName: 'subDistrictCount',
102
+ // label: '子区数量'
103
+ // },
104
+ // {
105
+ // fieldName: 'signalCount',
106
+ // label: '信号机数量'
107
+ // }
108
+ // ]
109
+ // }
110
+ // ]
111
+ // },
112
112
  renderer: {
113
113
  type: "unique-value",
114
114
  field: "selected",
@@ -274,7 +274,7 @@ const e = {
274
274
  }
275
275
  ]
276
276
  }
277
- }, l = {
277
+ }, s = {
278
278
  id: "signalLayer",
279
279
  source: [],
280
280
  objectIdField: "ObjectID",
@@ -446,7 +446,7 @@ const e = {
446
446
  // }
447
447
  // ]
448
448
  }
449
- }, s = {
449
+ }, l = {
450
450
  id: "signalLayer",
451
451
  source: [],
452
452
  objectIdField: "ObjectID",
@@ -977,8 +977,8 @@ export {
977
977
  e as districtDashLineLayerOptions,
978
978
  t as districtSolidLineLayerOptions,
979
979
  n as signalClusterLayerOptions,
980
- l as signalMarkerLayerOptions,
981
- s as signalPictureLayerOptions,
980
+ s as signalMarkerLayerOptions,
981
+ l as signalPictureLayerOptions,
982
982
  r as subDistrictLineLayerOptions,
983
983
  i as subDistrictPointLayerOptions
984
984
  };
@@ -0,0 +1,22 @@
1
+ import { IResult, IShowSignalSystemParams, IShowSubSignalSystemParams } from 'packages/components/src/types';
2
+ export default class SignalSystemController {
3
+ private view;
4
+ private signalSystemLayer;
5
+ constructor(view: __esri.MapView | __esri.SceneView);
6
+ /**
7
+ * 显示信控系统
8
+ * @param params
9
+ * @returns
10
+ */
11
+ showSignalSystems(params: IShowSignalSystemParams): Promise<IResult>;
12
+ /**
13
+ * 显示信控子系统
14
+ * @param params
15
+ * @returns
16
+ */
17
+ showSubSignalSystems(params: IShowSubSignalSystemParams): Promise<IResult>;
18
+ removeSubSignalSystems(subCode?: string): IResult;
19
+ removeSignalSystems(areaCode?: string): IResult;
20
+ private showSystem;
21
+ private showSubSystem;
22
+ }
@@ -0,0 +1,137 @@
1
+ import i from "@arcgis/core/Graphic";
2
+ import h from "@arcgis/core/layers/GraphicsLayer";
3
+ import o from "../common-utils.mjs";
4
+ class S {
5
+ constructor(e) {
6
+ this.view = e, this.signalSystemLayer = new h({
7
+ title: "信控系统图层"
8
+ }), this.view.map.add(this.signalSystemLayer);
9
+ }
10
+ /**
11
+ * 显示信控系统
12
+ * @param params
13
+ * @returns
14
+ */
15
+ async showSignalSystems(e) {
16
+ return e.areaList.forEach((s) => {
17
+ this.showSystem(s);
18
+ }), await o.viewGoto(
19
+ this.view,
20
+ this.signalSystemLayer.graphics.toArray()
21
+ ), {
22
+ status: 0,
23
+ message: "success"
24
+ };
25
+ }
26
+ /**
27
+ * 显示信控子系统
28
+ * @param params
29
+ * @returns
30
+ */
31
+ async showSubSignalSystems(e) {
32
+ return e.areaList.forEach((s) => {
33
+ this.showSubSystem(s);
34
+ }), await o.viewGoto(
35
+ this.view,
36
+ this.signalSystemLayer.graphics.toArray()
37
+ ), {
38
+ status: 0,
39
+ message: "success"
40
+ };
41
+ }
42
+ removeSubSignalSystems(e) {
43
+ return e ? this.signalSystemLayer.graphics.filter((s) => s.getAttribute("subCode") === e).forEach((s) => {
44
+ this.signalSystemLayer.remove(s);
45
+ }) : this.signalSystemLayer.removeAll(), {
46
+ status: 0,
47
+ message: "success"
48
+ };
49
+ }
50
+ removeSignalSystems(e) {
51
+ return e ? this.signalSystemLayer.graphics.filter((s) => s.getAttribute("areaCode") === e).forEach((s) => {
52
+ this.signalSystemLayer.remove(s);
53
+ }) : this.signalSystemLayer.removeAll(), {
54
+ status: 0,
55
+ message: "success"
56
+ };
57
+ }
58
+ showSystem(e) {
59
+ if (e.shape) {
60
+ let s;
61
+ if (typeof e.shape == "string" ? s = JSON.parse(e.shape) : s = e.shape, s) {
62
+ const t = new i({
63
+ geometry: {
64
+ type: "polyline",
65
+ paths: [s]
66
+ },
67
+ symbol: e.lineSymbol || {
68
+ type: "simple-line",
69
+ style: "dash",
70
+ color: [17, 113, 191],
71
+ width: 2
72
+ },
73
+ attributes: {
74
+ areaCode: e.areaCode,
75
+ type: "signal-system-border"
76
+ }
77
+ });
78
+ this.signalSystemLayer.add(t);
79
+ }
80
+ }
81
+ e.children.forEach((s) => {
82
+ this.showSubSystem(s, e.areaCode);
83
+ });
84
+ }
85
+ showSubSystem(e, s) {
86
+ if (e.subShape) {
87
+ let t;
88
+ typeof e.subShape == "string" ? t = JSON.parse(e.subShape) : t = e.subShape;
89
+ const a = t.map((r, l) => new i({
90
+ geometry: {
91
+ type: "polyline",
92
+ paths: [r]
93
+ },
94
+ symbol: e.roadSymbol || {
95
+ type: "simple-line",
96
+ color: [23, 151, 255],
97
+ width: 3
98
+ },
99
+ attributes: {
100
+ type: "signal-sub-system",
101
+ id: e.subAreaCode + "_" + l,
102
+ subCode: e.subAreaCode,
103
+ areaCode: s || ""
104
+ }
105
+ }));
106
+ this.signalSystemLayer.addMany(a);
107
+ }
108
+ if (e.children) {
109
+ const t = e.children.map((a) => new i({
110
+ geometry: {
111
+ type: "point",
112
+ longitude: a.x,
113
+ latitude: a.y
114
+ },
115
+ symbol: a.symbol || e.nodeSymbol || {
116
+ type: "simple-marker",
117
+ color: [23, 151, 255, 0.8],
118
+ size: 10,
119
+ outline: {
120
+ color: [23, 151, 255],
121
+ width: 2
122
+ }
123
+ },
124
+ attributes: {
125
+ ...a,
126
+ type: "signal-sub-system-node",
127
+ subCode: e.subAreaCode,
128
+ areaCode: s || ""
129
+ }
130
+ }));
131
+ this.signalSystemLayer.addMany(t);
132
+ }
133
+ }
134
+ }
135
+ export {
136
+ S as default
137
+ };
@@ -312,15 +312,32 @@ export interface IShowSignalControlAreaParams {
312
312
  areaList: any[];
313
313
  style?: string;
314
314
  }
315
- export interface ISubArea {
315
+ export interface ISignalSubSystem {
316
316
  subAreaCode: string;
317
- subShape: number[][][];
317
+ subShape?: number[][][] | string;
318
+ nodeSymbol?: any;
319
+ roadSymbol?: any;
318
320
  children: {
319
- lon: number;
320
- lat: number;
321
+ x: number;
322
+ y: number;
323
+ nodeId: string;
321
324
  nodeName: string;
325
+ symbol?: any;
322
326
  }[];
323
327
  }
328
+ export interface ISignalSystem {
329
+ areaCode: string;
330
+ areaName: string;
331
+ shape: number[][];
332
+ lineSymbol?: any;
333
+ children: ISignalSubSystem[];
334
+ }
335
+ export interface IShowSignalSystemParams {
336
+ areaList: ISignalSystem[];
337
+ }
338
+ export interface IShowSubSignalSystemParams {
339
+ areaList: ISignalSubSystem[];
340
+ }
324
341
  export interface ISignalCross {
325
342
  signalId: string;
326
343
  crossId: string;
@@ -385,7 +402,7 @@ export interface IShowJurisdictionParams {
385
402
  export interface IShowEdpassDeviceParams {
386
403
  deviceType: string;
387
404
  deviceState?: string;
388
- style: string;
405
+ style?: string;
389
406
  visible: boolean;
390
407
  zdCode?: string;
391
408
  ddCode?: string;
@@ -1,6 +1,6 @@
1
1
  import MapView from '@arcgis/core/views/MapView';
2
2
  import SceneView from '@arcgis/core/views/SceneView';
3
- import { IBlockOpenDriveLaneParams, IClusterPointParams, IEditSignalControlAreaParams, IFindSignalControlAreaParams, IFindSumoParams, ILaneNumberParams, ILayerVisibleParams, ILookAtParams, IMaskParam, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IShowEdpassDeviceParams, IShowGreenWaveBandParams, IShowJurisdictionParams, IShowOpenDriveFromFileParams, IShowSignalControlAreaParams, ISignalCountdownProps, ISplitOpenDriveLaneParams, IStartCrossBufferParam, IToggleTrafficInfoParams, IUnselectSumoParams } from '../types';
3
+ import { IBlockOpenDriveLaneParams, IClusterPointParams, IEditSignalControlAreaParams, IFindSignalControlAreaParams, IFindSumoParams, ILaneNumberParams, ILayerVisibleParams, ILookAtParams, IMaskParam, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IShowEdpassDeviceParams, IShowGreenWaveBandParams, IShowJurisdictionParams, IShowOpenDriveFromFileParams, IShowSignalControlAreaParams, IShowSignalSystemParams, IShowSubSignalSystemParams, ISignalCountdownProps, ISplitOpenDriveLaneParams, IStartCrossBufferParam, IToggleTrafficInfoParams, IUnselectSumoParams } from '../types';
4
4
  import DbscanCluster from './utils/dbscan-cluster';
5
5
  import EdpassDeviceController from './utils/edpass-device-controller';
6
6
  import GreenWaveBandController from './utils/green-wave-band-controller';
@@ -14,6 +14,7 @@ import RoadConfigTool from './utils/road-config-tool';
14
14
  import EditSignalArea from './utils/signal-control-area/edit-area';
15
15
  import SignalAreaController from './utils/signal-control-area/signal-area-controller';
16
16
  import SignalCrossController from './utils/signal-control-area/signal-cross-controller';
17
+ import SignalSystemController from './utils/signal-system/signal-system-controller';
17
18
  import TrafficFlow from './utils/traffic-flow';
18
19
  declare const _sfc_main: import("vue").DefineComponent<{
19
20
  config: {
@@ -41,6 +42,7 @@ declare const _sfc_main: import("vue").DefineComponent<{
41
42
  policeJurisdictionController: PoliceJurisdiction;
42
43
  edpassDeviceController: EdpassDeviceController;
43
44
  dbscanCluster: DbscanCluster;
45
+ signalSystemController: SignalSystemController;
44
46
  showLogDiv: import("vue").Ref<boolean>;
45
47
  appDataStore: import("pinia").Store<"appData", {
46
48
  mapConfig: {};
@@ -197,6 +199,10 @@ declare const _sfc_main: import("vue").DefineComponent<{
197
199
  status: number;
198
200
  message: string;
199
201
  };
202
+ showSignalSystem: (params: IShowSignalSystemParams) => Promise<import("../types").IResult>;
203
+ showSubSignalSystem: (params: IShowSubSignalSystemParams) => Promise<import("../types").IResult>;
204
+ removeSubSignalSystem: (code?: string | undefined) => import("../types").IResult;
205
+ removeSignalSystem: (areaCode: string) => import("../types").IResult;
200
206
  addGreenWaveBand: (params: IEditSignalControlAreaParams) => void;
201
207
  stopAddGreenWaveBand: () => {
202
208
  status: number;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("vue"),q=require("./stores/index.js");require("./style/index.css");const ft=require("./utils/dbscan-cluster/index.js"),wt=require("./utils/detect-gpu.js"),St=require("./utils/edpass-device-controller.js"),P=require("./utils/green-wave-band-controller/index.js"),yt=require("./utils/holo-flow/index.js"),ht=require("./utils/holo-flow/signal-countdown-panel.vue.js"),Ct=require("./utils/map-initializer.js"),N=require("./utils/open-drive-renderer/index.js"),z=require("./utils/overlay.js"),vt=require("./utils/police-jurisdiction.js"),bt=require("./utils/queue-length.js"),E=require("./utils/road-config-tool/index.js"),Ot=require("./utils/signal-control-area/edit-area.js"),B=require("./utils/signal-control-area/signal-area-controller.js"),kt=require("./utils/signal-control-area/signal-cross-controller.js"),At=require("./utils/traffic-flow.js"),Dt={class:"gis-viewer"},Lt={style:{position:"absolute",bottom:"80px",left:"10px","z-index":"9999"}},Tt=r.defineComponent({__name:"gis-map",props:{config:{},assetsRoot:{}},emits:["mapLoaded","markerClick","mapClick","update:zoom"],setup(H,{expose:G,emit:Z}){const b=r.ref(null);let n,g,l,i,s,o,w,t,u,a,f,p,y,O,S;const k=r.ref(!1);q.registerStore();const V=q.default.useAppDataStore,_=r.reactive([]),I=e=>Math.log2(591657527591555e-6/e);let h=null,M=null;const A=e=>{if(!Number.isFinite(e))return;const d=Math.round(e);d!==M&&(M=d,C("update:zoom",d))};wt.default(),r.onMounted(async()=>{if(!b.value)return;document.addEventListener("keydown",m=>{m.ctrlKey&&m.key==="i"&&(k.value=!k.value)});const e=r.getCurrentInstance(),{$gisviewerAssetsRoot:d}=e.appContext.config.globalProperties,c=await(await fetch(x.config)).json();c.assetsRoot=x.assetsRoot||d,V.mapConfig=c,g=new Ct.default,V.mapInitializer=g,n=await g.initialize({container:b.value,mapConfig:c,markerClickCallback:(m,L,T,pt)=>{C("markerClick",m,L,T,pt)},mapClickCallback:(m,L,T)=>{C("mapClick",m,L,T)}});const v=n.zoom??(n.scale?I(n.scale):void 0);typeof v=="number"&&A(v);const gt=n.zoom!==void 0?n.watch("zoom",m=>{A(m)}):n.watch("scale",m=>{typeof m=="number"&&m>0&&A(I(m))});h=()=>gt.remove(),s=new yt.default(n,_),await s.init(),C("mapLoaded")}),r.onUnmounted(()=>{a==null||a.clearSignalControlArea(),t==null||t.clearOpenDrive(),s.clearHoloTrace(),s.clearHoloSignal(),i==null||i.disconnectTrafficFlow(),h==null||h(),h=null});const W=r.computed(()=>n),j=()=>{const e=q.default.useAppDataStore;e.saveTrackLog=!0},J=()=>{s.downloadTrackLog()},Q=()=>{D("vehicleId")},U=()=>{D("plateNumber")},K=async e=>await g.setMapCenter(e),F=async e=>await g.setMapCamera(e),X=e=>g.setMapZoom(e),Y=async e=>await g.lookAt(e),R=e=>g.setLayerVisibility(e),$=(e,d)=>g.requestCoordinateTransform(e,d),ee=e=>{g.cancelCoordinateTransform(e)},te=e=>{g.setMapZoomRange(e)},ne=e=>(l||(l=new E.default(n)),l.showLaneNumber(e)),ae=()=>{l==null||l.clearLaneNumber()},se=async e=>(l||(l=new E.default(n)),await l.initializeSearch(e)),re=async()=>l==null?void 0:l.calCrossIndicatorArea(),oe=async()=>{},ie=async(e,d)=>{i||(i=new At.default(n)),i.connectTrafficFlow(e,d)},ce=()=>{i==null||i.disconnectTrafficFlow()},le=async e=>{s.handleVehicleTraceData(e)},ue=()=>{s.clearHoloTrace()},de=e=>{s.setInterpolate(e)},me=async e=>{await s.handleSignalData(e)},ge=async e=>{await s.initializeLampGroup(e)},pe=e=>{s.handleUniSignalData(e)},fe=()=>{s.clearHoloSignal()},we=e=>{i==null||i.toggleTrafficInfo(e),s==null||s.toggleTrafficInfo(e)},Se=e=>{s==null||s.togglePause(e)},ye=e=>{i==null||i.toggleTrafficObject(e),s==null||s.toggleTrafficObject(e)},D=e=>{s==null||s.updatePanelContent(e)},he=async e=>(o||(o=new z.default(n)),o.addOverlays(e)),Ce=async e=>(S||(S=new ft.default(n)),S.addClusterPoints(e)),ve=()=>{S==null||S.removeAllClusterPoints()},be=e=>(o||(o=new z.default(n)),o.addMask(e)),Oe=()=>{o==null||o.removeMask()},ke=e=>o==null?void 0:o.removeOverlaysByType(e),Ae=e=>o==null?void 0:o.removeOverlaysById(e),De=()=>o==null?void 0:o.removeAllOverlays(),Le=()=>{o==null||o.showAllOverlays()},Te=e=>{w||(w=new bt.default(n)),w.updateQueueLength(e)},qe=()=>{w==null||w.removeQueueLength()},Be=async(e,d)=>(t||(t=new N.default(n)),await t.showOpenDriveFromServer(e,d)),Ve=async e=>(t||(t=new N.default(n)),await t.clearOpenDrive(),await t.showOpenDriveFromFile(e)),_e=e=>t?t.setOpendriveVisibility(e):{status:-1,message:"未加载OpenDrive地图"},Ie=async()=>await(t==null?void 0:t.clearOpenDrive()),Me=async e=>t?await(t==null?void 0:t.findSumo(e)):{status:-1,message:"未加载OpenDrive地图"},xe=async e=>t?t.selectSumo(e):{status:-1,message:"未加载OpenDrive地图"},Pe=async e=>t?t.unselectSumo(e):{status:-1,message:"未加载OpenDrive地图"},Ne=async e=>t?t.selectComputable(e):{status:-1,message:"未加载OpenDrive地图"},ze=async e=>t?await t.geometrySearch(e):{status:-1,message:"未加载OpenDrive地图"},Ee=async e=>t?await t.getSumoInfo(e):{status:-1,message:"未加载OpenDrive地图"},He=async e=>t?await(t==null?void 0:t.splitLane(e)):{status:-1,message:"未加载OpenDrive地图"},Ge=async()=>t?t==null?void 0:t.clearSplitLane():{status:-1,message:"未加载OpenDrive地图"},Ze=async e=>t?t==null?void 0:t.blockLane(e):{status:-1,message:"未加载OpenDrive地图"},We=e=>t?t==null?void 0:t.clearBlockLane(e):{status:-1,message:"未加载OpenDrive地图"},je=async e=>(a||(a=new B.default(n)),await a.showSignalControlArea(e)),Je=async e=>(a||(a=new B.default(n)),await a.showDistrict(e)),Qe=async e=>(a||(a=new B.default(n)),await a.showSubDistrict(e)),Ue=async()=>await(a==null?void 0:a.clearSignalControlArea()),Ke=e=>a==null?void 0:a.setLayerVisibility(e),Fe=async e=>a?await(a==null?void 0:a.locateSignalControlArea(e)):{status:-1,message:"未加载信号控制区"},Xe=async e=>a?await a.highlightSignalControlArea(e):{status:-1,message:"未加载信号控制区"},Ye=()=>a?a.resetHighlight():{status:-1,message:"未加载信号控制区"},Re=e=>(u||(u=new Ot.default(n)),u.showSubSignalControlArea(e)),$e=e=>u?u.editSubSignalControlArea(e):{status:-1,message:"未加载信号控制区"},et=()=>u?u.stopEditSubSignalControlArea():{status:-1,message:"未加载信号控制区"},tt=e=>u?u.selectSubSignalControlAreaCross(e):{status:-1,message:"未加载信号控制区"},nt=e=>u?u.unselectSubSignalControlAreaCross(e):{status:-1,message:"未加载信号控制区"},at=e=>{if(!u)return{status:-1,message:"未加载信号控制区"}},st=e=>(f||(f=new kt.default(n)),f.showSignalCross(e)),rt=()=>f?f.clearSignalCross():{status:-1,message:"未加载信号路口"},ot=e=>f?f.changeShowName(e):{status:-1,message:"未加载信号路口"},it=e=>(p||(p=new P.default(n)),p.addGreenWaveBand(e)),ct=()=>{if(!p)return{status:-1,message:"未加载绿波带"};p.stopAddGreenWaveBand()},lt=async e=>(p||(p=new P.default(n)),await p.showGreenWaveBand(e)),ut=async e=>(y||(y=new vt.default(n)),await y.showJurisdiction(e)),dt=()=>{if(!y)return{status:-1,message:"未加载警务管辖区"};y.clearJurisdiction()},mt=async e=>(O||(O=new St.default(n)),await O.setEdpassLayerVisibility(e)),x=H,C=Z;return G({mapViewer:W,setLayerVisibility:R,setMapCenter:K,lookAt:Y,setMapCamera:F,setMapZoom:X,setMapZoomRange:te,requestCoordinateTransform:$,cancelCoordinateTransform:ee,addOverlays:he,addClusterPoints:Ce,removeAllClusterPoints:ve,addMask:be,removeMask:Oe,showAllOverlays:Le,removeOverlaysByType:ke,removeOverlaysById:Ae,removeAllOverlays:De,showLaneNumber:ne,clearLaneNumber:ae,initializeAreaTool:se,calCrossIndicatorArea:re,calRoadIndicatorArea:oe,connectCarFlow:ie,disconnectCarFlow:ce,handleHoloVehicleTraceData:le,clearHoloTrace:ue,initializeLampGroup:ge,handleUniSignalData:pe,handleHoloSignalData:me,clearHoloSignal:fe,setInterpolate:de,toggleTrafficInfo:we,toggleTrafficObject:ye,toggleVehicleInfo:D,togglePause:Se,updateQueueLength:Te,removeQueueLength:qe,showOpenDriveFromServer:Be,showOpenDriveFromFile:Ve,clearOpenDrive:Ie,setOpendriveVisibility:_e,geometrySearchInOpenDrive:ze,findSumoInOpenDrive:Me,selectSumoInOpenDrive:xe,unselectSumoInOpenDrive:Pe,selectComputableInOpenDrive:Ne,getSumoInfo:Ee,splitOpenDriveLane:He,clearSplitOpenDriveLane:Ge,blockOpenDriveLane:Ze,clearBlockOpenDriveLane:We,showSignalControlArea:je,showDistrictArea:Je,showSubDistrictArea:Qe,clearSignalControlArea:Ue,setSignalControlAreaVisibility:Ke,locateSignalControlArea:Fe,highlightSignalControlArea:Xe,resetHighlightSignalControlArea:Ye,showSubSignalControlArea:Re,editSubSignalControlArea:$e,stopEditSubSignalControlArea:et,selectSubSignalControlAreaCross:tt,unselectSubSignalControlAreaCross:nt,changeSubSignalControlAreaBorderVisibility:at,showSignalCross:st,clearSignalCross:rt,changeSignalCrossShowName:ot,addGreenWaveBand:it,stopAddGreenWaveBand:ct,showGreenWaveBand:lt,showPoliceArea:ut,clearPoliceArea:dt,setEdpassLayerVisibility:mt}),(e,d)=>(r.openBlock(),r.createElementBlock("div",Dt,[r.createElementVNode("div",{class:"gis-viewer-main",ref_key:"mapContainer",ref:b},[r.withDirectives(r.createElementVNode("div",Lt,[r.createElementVNode("button",{style:{"margin-right":"10px"},onClick:j}," 开始记录 "),r.createElementVNode("button",{style:{"margin-right":"10px"},onClick:J}," 下载日志 "),r.createElementVNode("button",{style:{"margin-right":"10px"},onClick:Q}," 显示车辆id "),r.createElementVNode("button",{onClick:U},"显示车辆号牌")],512),[[r.vShow,k.value]])],512),(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(_,(c,v)=>(r.openBlock(),r.createBlock(ht.default,{key:v,"display-mode":c.displayMode,flash:c.flash,"road-id":c.crossId,"cross-id":c.roadId,"map-point":c.mapPoint,"stop-line":c.stopLine,position:c.position,rotation:c.rotation,scale:c.scale,"lamp-status":c.lampStatus},null,8,["display-mode","flash","road-id","cross-id","map-point","stop-line","position","rotation","scale","lamp-status"]))),128))]))}});exports.default=Tt;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("vue"),B=require("./stores/index.js");require("./style/index.css");const Ct=require("./utils/dbscan-cluster/index.js"),bt=require("./utils/detect-gpu.js"),Ot=require("./utils/edpass-device-controller.js"),N=require("./utils/green-wave-band-controller/index.js"),kt=require("./utils/holo-flow/index.js"),At=require("./utils/holo-flow/signal-countdown-panel.vue.js"),Dt=require("./utils/map-initializer.js"),z=require("./utils/open-drive-renderer/index.js"),E=require("./utils/overlay.js"),Lt=require("./utils/police-jurisdiction.js"),Tt=require("./utils/queue-length.js"),H=require("./utils/road-config-tool/index.js"),qt=require("./utils/signal-control-area/edit-area.js"),V=require("./utils/signal-control-area/signal-area-controller.js"),Bt=require("./utils/signal-control-area/signal-cross-controller.js"),G=require("./utils/signal-system/signal-system-controller.js"),Vt=require("./utils/traffic-flow.js"),_t={class:"gis-viewer"},It={style:{position:"absolute",bottom:"80px",left:"10px","z-index":"9999"}},Mt=r.defineComponent({__name:"gis-map",props:{config:{},assetsRoot:{}},emits:["mapLoaded","markerClick","mapClick","update:zoom"],setup(Z,{expose:W,emit:j}){const O=r.ref(null);let n,g,l,i,s,o,w,t,u,a,S,f,h,k,y,p;const A=r.ref(!1);B.registerStore();const _=B.default.useAppDataStore,I=r.reactive([]),M=e=>Math.log2(591657527591555e-6/e);let v=null,x=null;const D=e=>{if(!Number.isFinite(e))return;const d=Math.round(e);d!==x&&(x=d,C("update:zoom",d))};bt.default(),r.onMounted(async()=>{if(!O.value)return;document.addEventListener("keydown",m=>{m.ctrlKey&&m.key==="i"&&(A.value=!A.value)});const e=r.getCurrentInstance(),{$gisviewerAssetsRoot:d}=e.appContext.config.globalProperties,c=await(await fetch(P.config)).json();c.assetsRoot=P.assetsRoot||d,_.mapConfig=c,g=new Dt.default,_.mapInitializer=g,n=await g.initialize({container:O.value,mapConfig:c,markerClickCallback:(m,T,q,vt)=>{C("markerClick",m,T,q,vt)},mapClickCallback:(m,T,q)=>{C("mapClick",m,T,q)}});const b=n.zoom??(n.scale?M(n.scale):void 0);typeof b=="number"&&D(b);const ht=n.zoom!==void 0?n.watch("zoom",m=>{D(m)}):n.watch("scale",m=>{typeof m=="number"&&m>0&&D(M(m))});v=()=>ht.remove(),s=new kt.default(n,I),await s.init(),C("mapLoaded")}),r.onUnmounted(()=>{a==null||a.clearSignalControlArea(),t==null||t.clearOpenDrive(),s.clearHoloTrace(),s.clearHoloSignal(),i==null||i.disconnectTrafficFlow(),v==null||v(),v=null});const J=r.computed(()=>n),Q=()=>{const e=B.default.useAppDataStore;e.saveTrackLog=!0},U=()=>{s.downloadTrackLog()},K=()=>{L("vehicleId")},F=()=>{L("plateNumber")},X=async e=>await g.setMapCenter(e),Y=async e=>await g.setMapCamera(e),R=e=>g.setMapZoom(e),$=async e=>await g.lookAt(e),ee=e=>g.setLayerVisibility(e),te=(e,d)=>g.requestCoordinateTransform(e,d),ne=e=>{g.cancelCoordinateTransform(e)},ae=e=>{g.setMapZoomRange(e)},se=e=>(l||(l=new H.default(n)),l.showLaneNumber(e)),re=()=>{l==null||l.clearLaneNumber()},oe=async e=>(l||(l=new H.default(n)),await l.initializeSearch(e)),ie=async()=>l==null?void 0:l.calCrossIndicatorArea(),ce=async()=>{},le=async(e,d)=>{i||(i=new Vt.default(n)),i.connectTrafficFlow(e,d)},ue=()=>{i==null||i.disconnectTrafficFlow()},de=async e=>{s.handleVehicleTraceData(e)},me=()=>{s.clearHoloTrace()},ge=e=>{s.setInterpolate(e)},pe=async e=>{await s.handleSignalData(e)},fe=async e=>{await s.initializeLampGroup(e)},Se=e=>{s.handleUniSignalData(e)},we=()=>{s.clearHoloSignal()},ye=e=>{i==null||i.toggleTrafficInfo(e),s==null||s.toggleTrafficInfo(e)},he=e=>{s==null||s.togglePause(e)},ve=e=>{i==null||i.toggleTrafficObject(e),s==null||s.toggleTrafficObject(e)},L=e=>{s==null||s.updatePanelContent(e)},Ce=async e=>(o||(o=new E.default(n)),o.addOverlays(e)),be=async e=>(y||(y=new Ct.default(n)),y.addClusterPoints(e)),Oe=()=>{y==null||y.removeAllClusterPoints()},ke=e=>(o||(o=new E.default(n)),o.addMask(e)),Ae=()=>{o==null||o.removeMask()},De=e=>o==null?void 0:o.removeOverlaysByType(e),Le=e=>o==null?void 0:o.removeOverlaysById(e),Te=()=>o==null?void 0:o.removeAllOverlays(),qe=()=>{o==null||o.showAllOverlays()},Be=e=>{w||(w=new Tt.default(n)),w.updateQueueLength(e)},Ve=()=>{w==null||w.removeQueueLength()},_e=async(e,d)=>(t||(t=new z.default(n)),await t.showOpenDriveFromServer(e,d)),Ie=async e=>(t||(t=new z.default(n)),await t.clearOpenDrive(),await t.showOpenDriveFromFile(e)),Me=e=>t?t.setOpendriveVisibility(e):{status:-1,message:"未加载OpenDrive地图"},xe=async()=>await(t==null?void 0:t.clearOpenDrive()),Pe=async e=>t?await(t==null?void 0:t.findSumo(e)):{status:-1,message:"未加载OpenDrive地图"},Ne=async e=>t?t.selectSumo(e):{status:-1,message:"未加载OpenDrive地图"},ze=async e=>t?t.unselectSumo(e):{status:-1,message:"未加载OpenDrive地图"},Ee=async e=>t?t.selectComputable(e):{status:-1,message:"未加载OpenDrive地图"},He=async e=>t?await t.geometrySearch(e):{status:-1,message:"未加载OpenDrive地图"},Ge=async e=>t?await t.getSumoInfo(e):{status:-1,message:"未加载OpenDrive地图"},Ze=async e=>t?await(t==null?void 0:t.splitLane(e)):{status:-1,message:"未加载OpenDrive地图"},We=async()=>t?t==null?void 0:t.clearSplitLane():{status:-1,message:"未加载OpenDrive地图"},je=async e=>t?t==null?void 0:t.blockLane(e):{status:-1,message:"未加载OpenDrive地图"},Je=e=>t?t==null?void 0:t.clearBlockLane(e):{status:-1,message:"未加载OpenDrive地图"},Qe=async e=>(a||(a=new V.default(n)),await a.showSignalControlArea(e)),Ue=async e=>(a||(a=new V.default(n)),await a.showDistrict(e)),Ke=async e=>(a||(a=new V.default(n)),await a.showSubDistrict(e)),Fe=async()=>await(a==null?void 0:a.clearSignalControlArea()),Xe=e=>a==null?void 0:a.setLayerVisibility(e),Ye=async e=>a?await(a==null?void 0:a.locateSignalControlArea(e)):{status:-1,message:"未加载信号控制区"},Re=async e=>a?await a.highlightSignalControlArea(e):{status:-1,message:"未加载信号控制区"},$e=()=>a?a.resetHighlight():{status:-1,message:"未加载信号控制区"},et=e=>(u||(u=new qt.default(n)),u.showSubSignalControlArea(e)),tt=e=>u?u.editSubSignalControlArea(e):{status:-1,message:"未加载信号控制区"},nt=()=>u?u.stopEditSubSignalControlArea():{status:-1,message:"未加载信号控制区"},at=e=>u?u.selectSubSignalControlAreaCross(e):{status:-1,message:"未加载信号控制区"},st=e=>u?u.unselectSubSignalControlAreaCross(e):{status:-1,message:"未加载信号控制区"},rt=e=>{if(!u)return{status:-1,message:"未加载信号控制区"}},ot=e=>(S||(S=new Bt.default(n)),S.showSignalCross(e)),it=()=>S?S.clearSignalCross():{status:-1,message:"未加载信号路口"},ct=e=>S?S.changeShowName(e):{status:-1,message:"未加载信号路口"},lt=e=>(p||(p=new G.default(n)),p.showSignalSystems(e)),ut=e=>(p||(p=new G.default(n)),p.showSubSignalSystems(e)),dt=e=>p?p.removeSubSignalSystems(e):{status:-1,message:"未加载信号系统"},mt=e=>p?p.removeSignalSystems(e):{status:-1,message:"未加载信号系统"},gt=e=>(f||(f=new N.default(n)),f.addGreenWaveBand(e)),pt=()=>{if(!f)return{status:-1,message:"未加载绿波带"};f.stopAddGreenWaveBand()},ft=async e=>(f||(f=new N.default(n)),await f.showGreenWaveBand(e)),St=async e=>(h||(h=new Lt.default(n)),await h.showJurisdiction(e)),wt=()=>{if(!h)return{status:-1,message:"未加载警务管辖区"};h.clearJurisdiction()},yt=async e=>(k||(k=new Ot.default(n)),await k.setEdpassLayerVisibility(e)),P=Z,C=j;return W({mapViewer:J,setLayerVisibility:ee,setMapCenter:X,lookAt:$,setMapCamera:Y,setMapZoom:R,setMapZoomRange:ae,requestCoordinateTransform:te,cancelCoordinateTransform:ne,addOverlays:Ce,addClusterPoints:be,removeAllClusterPoints:Oe,addMask:ke,removeMask:Ae,showAllOverlays:qe,removeOverlaysByType:De,removeOverlaysById:Le,removeAllOverlays:Te,showLaneNumber:se,clearLaneNumber:re,initializeAreaTool:oe,calCrossIndicatorArea:ie,calRoadIndicatorArea:ce,connectCarFlow:le,disconnectCarFlow:ue,handleHoloVehicleTraceData:de,clearHoloTrace:me,initializeLampGroup:fe,handleUniSignalData:Se,handleHoloSignalData:pe,clearHoloSignal:we,setInterpolate:ge,toggleTrafficInfo:ye,toggleTrafficObject:ve,toggleVehicleInfo:L,togglePause:he,updateQueueLength:Be,removeQueueLength:Ve,showOpenDriveFromServer:_e,showOpenDriveFromFile:Ie,clearOpenDrive:xe,setOpendriveVisibility:Me,geometrySearchInOpenDrive:He,findSumoInOpenDrive:Pe,selectSumoInOpenDrive:Ne,unselectSumoInOpenDrive:ze,selectComputableInOpenDrive:Ee,getSumoInfo:Ge,splitOpenDriveLane:Ze,clearSplitOpenDriveLane:We,blockOpenDriveLane:je,clearBlockOpenDriveLane:Je,showSignalControlArea:Qe,showDistrictArea:Ue,showSubDistrictArea:Ke,clearSignalControlArea:Fe,setSignalControlAreaVisibility:Xe,locateSignalControlArea:Ye,highlightSignalControlArea:Re,resetHighlightSignalControlArea:$e,showSubSignalControlArea:et,editSubSignalControlArea:tt,stopEditSubSignalControlArea:nt,selectSubSignalControlAreaCross:at,unselectSubSignalControlAreaCross:st,changeSubSignalControlAreaBorderVisibility:rt,showSignalCross:ot,clearSignalCross:it,changeSignalCrossShowName:ct,showSignalSystem:lt,showSubSignalSystem:ut,removeSubSignalSystem:dt,removeSignalSystem:mt,addGreenWaveBand:gt,stopAddGreenWaveBand:pt,showGreenWaveBand:ft,showPoliceArea:St,clearPoliceArea:wt,setEdpassLayerVisibility:yt}),(e,d)=>(r.openBlock(),r.createElementBlock("div",_t,[r.createElementVNode("div",{class:"gis-viewer-main",ref_key:"mapContainer",ref:O},[r.withDirectives(r.createElementVNode("div",It,[r.createElementVNode("button",{style:{"margin-right":"10px"},onClick:Q}," 开始记录 "),r.createElementVNode("button",{style:{"margin-right":"10px"},onClick:U}," 下载日志 "),r.createElementVNode("button",{style:{"margin-right":"10px"},onClick:K}," 显示车辆id "),r.createElementVNode("button",{onClick:F},"显示车辆号牌")],512),[[r.vShow,A.value]])],512),(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(I,(c,b)=>(r.openBlock(),r.createBlock(At.default,{key:b,"display-mode":c.displayMode,flash:c.flash,"road-id":c.crossId,"cross-id":c.roadId,"map-point":c.mapPoint,"stop-line":c.stopLine,position:c.position,rotation:c.rotation,scale:c.scale,"lamp-status":c.lampStatus},null,8,["display-mode","flash","road-id","cross-id","map-point","stop-line","position","rotation","scale","lamp-status"]))),128))]))}});exports.default=Mt;
@@ -24,6 +24,7 @@ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWi
24
24
  policeJurisdictionController: import("./utils/police-jurisdiction").default;
25
25
  edpassDeviceController: import("./utils/edpass-device-controller").default;
26
26
  dbscanCluster: import("./utils/dbscan-cluster").default;
27
+ signalSystemController: import("./utils/signal-system/signal-system-controller").default;
27
28
  showLogDiv: import("vue").Ref<boolean>;
28
29
  appDataStore: import("pinia").Store<"appData", {
29
30
  mapConfig: {};
@@ -180,6 +181,10 @@ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWi
180
181
  status: number;
181
182
  message: string;
182
183
  };
184
+ showSignalSystem: (params: import("../types").IShowSignalSystemParams) => Promise<import("../types").IResult>;
185
+ showSubSignalSystem: (params: import("../types").IShowSubSignalSystemParams) => Promise<import("../types").IResult>;
186
+ removeSubSignalSystem: (code?: string | undefined) => import("../types").IResult;
187
+ removeSignalSystem: (areaCode: string) => import("../types").IResult;
183
188
  addGreenWaveBand: (params: import("../types").IEditSignalControlAreaParams) => void;
184
189
  stopAddGreenWaveBand: () => {
185
190
  status: number;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={id:"districtController",source:[],objectIdField:"ObjectID",geometryType:"polyline",outFields:["*"],fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"subDistrictCount",type:"integer"},{name:"signalCount",type:"integer"},{name:"selected",type:"string"}],renderer:{type:"unique-value",field:"selected",defaultSymbol:{type:"simple-line",style:"long-dash",color:[111,100,255],width:2},uniqueValueInfos:[{value:"false",symbol:{type:"simple-line",style:"long-dash",color:[180,180,180],width:1}}]}},t={id:"districtController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"polyline",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"subDistrictCount",type:"integer"},{name:"signalCount",type:"integer"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}",content:[{type:"fields",fieldInfos:[{fieldName:"id",label:"区控编号"},{fieldName:"subDistrictCount",label:"子区数量"},{fieldName:"signalCount",label:"信号机数量"}]}]},renderer:{type:"unique-value",field:"selected",defaultSymbol:{type:"simple-line",style:"solid",color:[111,100,255,.4],width:2},uniqueValueInfos:[{value:"false",symbol:{type:"simple-line",style:"solid",color:[180,180,180,.4],width:1}}]}},i={id:"subDistrictPointController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"signalCount",type:"integer"},{name:"selected",type:"string"},{name:"type",type:"string"},{name:"color",type:"string"}],popupTemplate:{title:"{subDistrictName} 子区",content:[{type:"fields",fieldInfos:[{fieldName:"subDistrictId",label:"子区编号"},{fieldName:"districtName",label:"所属区控"},{fieldName:"signalCount",label:"信号机数量"}]}]}},r={id:"subDistrictLineController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"polyline",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"signalCount",type:"integer"},{name:"fromNode",type:"string"},{name:"toNode",type:"string"},{name:"color",type:"string"}],popupTemplate:{title:"{subDistrictName} 子区",content:[{type:"fields",fieldInfos:[{fieldName:"subDistrictId",label:"子区编号"},{fieldName:"districtName",label:"所属区控"},{fieldName:"signalCount",label:"信号机数量"}]}]}},s={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",maxScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"unique-value",field:"isKey",field2:"selected",defaultSymbol:{type:"simple-marker",style:"circle",color:"gray",size:4,outline:{color:"white",width:0}},uniqueValueInfos:[{value:"true,true",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/icon_star.png",width:"20px",height:"20px"}},{value:"false,true",symbol:{type:"simple-marker",style:"circle",color:[5,116,255,.8],size:8,outline:{color:"white",width:0}}},{value:"true,false",symbol:{type:"simple-marker",style:"circle",color:[180,180,180,.8],size:8,outline:{color:"white",width:0}}},{value:"false,false",symbol:{type:"simple-marker",style:"circle",color:[180,180,180,.8],size:8,outline:{color:"white",width:0}}}]}},l={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",minScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"unique-value",field:"isKey",field2:"selected",defaultSymbol:{type:"simple-marker",style:"circle",color:"gray",size:4,outline:{color:"white",width:1}},uniqueValueInfos:[{value:"true,true",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:'Replace($feature.name, "与", "/") + " " + $feature.signalId',returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:12,horizontalAlignment:"Center",offsetX:0,offsetY:30,haloSize:1,haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[0,0,0,255]}]},verticalAlignment:"Center"},textString:""}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:20,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_gjxklk_orange.png"}]}}}},{value:"false,true",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:'Replace($feature.name, "与", "/") + " " + $feature.signalId',returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:12,horizontalAlignment:"Center",offsetX:0,offsetY:15,haloSize:1,haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[0,0,0,255]}]},verticalAlignment:"Center"},textString:""}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:20,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_xhj_blue.png"}]}}}},{value:"true,false",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/cross/gis_gjxk_gray.png",width:20,height:20}},{value:"false,false",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/cross/gis_xhj_gray.png",width:20,height:20}}],visualVariables:[{type:"size",valueExpression:"$view.scale",stops:[{size:28,value:2250},{size:24,value:4500}]}]}},n={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",maxScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],featureReduction:{type:"cluster",clusterRadius:"120px",clusterMaxSize:"50px",clusterMinSize:"30px",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:"$feature.cluster_count",returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:16,horizontalAlignment:"Center",offsetX:0,offsetY:30,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},verticalAlignment:"Center"},textString:""},{type:"CIMMarkerGraphic",geometry:{rings:[[[-15,40],[15,40],[15,20],[-15,20],[-15,40]]]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[2,72,200,255]},{type:"CIMSolidStroke",enable:!0,width:5,color:[2,72,200,128]}]}}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:40,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_xhj_blue.png"}]}}}},popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"simple",symbol:{type:"simple-marker",style:"circle",color:[5,116,255],size:8,outline:{color:"white",width:1}}}};exports.districtDashLineLayerOptions=e;exports.districtSolidLineLayerOptions=t;exports.signalClusterLayerOptions=n;exports.signalMarkerLayerOptions=s;exports.signalPictureLayerOptions=l;exports.subDistrictLineLayerOptions=r;exports.subDistrictPointLayerOptions=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={id:"districtController",source:[],objectIdField:"ObjectID",geometryType:"polyline",outFields:["*"],fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"subDistrictCount",type:"integer"},{name:"signalCount",type:"integer"},{name:"selected",type:"string"}],renderer:{type:"unique-value",field:"selected",defaultSymbol:{type:"simple-line",style:"long-dash",color:[111,100,255],width:2},uniqueValueInfos:[{value:"false",symbol:{type:"simple-line",style:"long-dash",color:[180,180,180],width:1}}]}},t={id:"districtController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"polyline",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"subDistrictCount",type:"integer"},{name:"signalCount",type:"integer"},{name:"type",type:"string"},{name:"selected",type:"string"}],renderer:{type:"unique-value",field:"selected",defaultSymbol:{type:"simple-line",style:"solid",color:[111,100,255,.4],width:2},uniqueValueInfos:[{value:"false",symbol:{type:"simple-line",style:"solid",color:[180,180,180,.4],width:1}}]}},i={id:"subDistrictPointController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"signalCount",type:"integer"},{name:"selected",type:"string"},{name:"type",type:"string"},{name:"color",type:"string"}],popupTemplate:{title:"{subDistrictName} 子区",content:[{type:"fields",fieldInfos:[{fieldName:"subDistrictId",label:"子区编号"},{fieldName:"districtName",label:"所属区控"},{fieldName:"signalCount",label:"信号机数量"}]}]}},r={id:"subDistrictLineController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"polyline",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"signalCount",type:"integer"},{name:"fromNode",type:"string"},{name:"toNode",type:"string"},{name:"color",type:"string"}],popupTemplate:{title:"{subDistrictName} 子区",content:[{type:"fields",fieldInfos:[{fieldName:"subDistrictId",label:"子区编号"},{fieldName:"districtName",label:"所属区控"},{fieldName:"signalCount",label:"信号机数量"}]}]}},s={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",maxScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"unique-value",field:"isKey",field2:"selected",defaultSymbol:{type:"simple-marker",style:"circle",color:"gray",size:4,outline:{color:"white",width:0}},uniqueValueInfos:[{value:"true,true",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/icon_star.png",width:"20px",height:"20px"}},{value:"false,true",symbol:{type:"simple-marker",style:"circle",color:[5,116,255,.8],size:8,outline:{color:"white",width:0}}},{value:"true,false",symbol:{type:"simple-marker",style:"circle",color:[180,180,180,.8],size:8,outline:{color:"white",width:0}}},{value:"false,false",symbol:{type:"simple-marker",style:"circle",color:[180,180,180,.8],size:8,outline:{color:"white",width:0}}}]}},l={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",minScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"unique-value",field:"isKey",field2:"selected",defaultSymbol:{type:"simple-marker",style:"circle",color:"gray",size:4,outline:{color:"white",width:1}},uniqueValueInfos:[{value:"true,true",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:'Replace($feature.name, "与", "/") + " " + $feature.signalId',returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:12,horizontalAlignment:"Center",offsetX:0,offsetY:30,haloSize:1,haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[0,0,0,255]}]},verticalAlignment:"Center"},textString:""}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:20,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_gjxklk_orange.png"}]}}}},{value:"false,true",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:'Replace($feature.name, "与", "/") + " " + $feature.signalId',returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:12,horizontalAlignment:"Center",offsetX:0,offsetY:15,haloSize:1,haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[0,0,0,255]}]},verticalAlignment:"Center"},textString:""}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:20,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_xhj_blue.png"}]}}}},{value:"true,false",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/cross/gis_gjxk_gray.png",width:20,height:20}},{value:"false,false",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/cross/gis_xhj_gray.png",width:20,height:20}}],visualVariables:[{type:"size",valueExpression:"$view.scale",stops:[{size:28,value:2250},{size:24,value:4500}]}]}},n={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",maxScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],featureReduction:{type:"cluster",clusterRadius:"120px",clusterMaxSize:"50px",clusterMinSize:"30px",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:"$feature.cluster_count",returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:16,horizontalAlignment:"Center",offsetX:0,offsetY:30,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},verticalAlignment:"Center"},textString:""},{type:"CIMMarkerGraphic",geometry:{rings:[[[-15,40],[15,40],[15,20],[-15,20],[-15,40]]]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[2,72,200,255]},{type:"CIMSolidStroke",enable:!0,width:5,color:[2,72,200,128]}]}}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:40,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_xhj_blue.png"}]}}}},popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"simple",symbol:{type:"simple-marker",style:"circle",color:[5,116,255],size:8,outline:{color:"white",width:1}}}};exports.districtDashLineLayerOptions=e;exports.districtSolidLineLayerOptions=t;exports.signalClusterLayerOptions=n;exports.signalMarkerLayerOptions=s;exports.signalPictureLayerOptions=l;exports.subDistrictLineLayerOptions=r;exports.subDistrictPointLayerOptions=i;
@@ -0,0 +1,22 @@
1
+ import { IResult, IShowSignalSystemParams, IShowSubSignalSystemParams } from 'packages/components/src/types';
2
+ export default class SignalSystemController {
3
+ private view;
4
+ private signalSystemLayer;
5
+ constructor(view: __esri.MapView | __esri.SceneView);
6
+ /**
7
+ * 显示信控系统
8
+ * @param params
9
+ * @returns
10
+ */
11
+ showSignalSystems(params: IShowSignalSystemParams): Promise<IResult>;
12
+ /**
13
+ * 显示信控子系统
14
+ * @param params
15
+ * @returns
16
+ */
17
+ showSubSignalSystems(params: IShowSubSignalSystemParams): Promise<IResult>;
18
+ removeSubSignalSystems(subCode?: string): IResult;
19
+ removeSignalSystems(areaCode?: string): IResult;
20
+ private showSystem;
21
+ private showSubSystem;
22
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("@arcgis/core/Graphic"),n=require("@arcgis/core/layers/GraphicsLayer"),o=require("../common-utils.js");class h{constructor(e){this.view=e,this.signalSystemLayer=new n({title:"信控系统图层"}),this.view.map.add(this.signalSystemLayer)}async showSignalSystems(e){return e.areaList.forEach(s=>{this.showSystem(s)}),await o.default.viewGoto(this.view,this.signalSystemLayer.graphics.toArray()),{status:0,message:"success"}}async showSubSignalSystems(e){return e.areaList.forEach(s=>{this.showSubSystem(s)}),await o.default.viewGoto(this.view,this.signalSystemLayer.graphics.toArray()),{status:0,message:"success"}}removeSubSignalSystems(e){return e?this.signalSystemLayer.graphics.filter(s=>s.getAttribute("subCode")===e).forEach(s=>{this.signalSystemLayer.remove(s)}):this.signalSystemLayer.removeAll(),{status:0,message:"success"}}removeSignalSystems(e){return e?this.signalSystemLayer.graphics.filter(s=>s.getAttribute("areaCode")===e).forEach(s=>{this.signalSystemLayer.remove(s)}):this.signalSystemLayer.removeAll(),{status:0,message:"success"}}showSystem(e){if(e.shape){let s;if(typeof e.shape=="string"?s=JSON.parse(e.shape):s=e.shape,s){const t=new i({geometry:{type:"polyline",paths:[s]},symbol:e.lineSymbol||{type:"simple-line",style:"dash",color:[17,113,191],width:2},attributes:{areaCode:e.areaCode,type:"signal-system-border"}});this.signalSystemLayer.add(t)}}e.children.forEach(s=>{this.showSubSystem(s,e.areaCode)})}showSubSystem(e,s){if(e.subShape){let t;typeof e.subShape=="string"?t=JSON.parse(e.subShape):t=e.subShape;const a=t.map((r,l)=>new i({geometry:{type:"polyline",paths:[r]},symbol:e.roadSymbol||{type:"simple-line",color:[23,151,255],width:3},attributes:{type:"signal-sub-system",id:e.subAreaCode+"_"+l,subCode:e.subAreaCode,areaCode:s||""}}));this.signalSystemLayer.addMany(a)}if(e.children){const t=e.children.map(a=>new i({geometry:{type:"point",longitude:a.x,latitude:a.y},symbol:a.symbol||e.nodeSymbol||{type:"simple-marker",color:[23,151,255,.8],size:10,outline:{color:[23,151,255],width:2}},attributes:{...a,type:"signal-sub-system-node",subCode:e.subAreaCode,areaCode:s||""}}));this.signalSystemLayer.addMany(t)}}}exports.default=h;
@@ -312,15 +312,32 @@ export interface IShowSignalControlAreaParams {
312
312
  areaList: any[];
313
313
  style?: string;
314
314
  }
315
- export interface ISubArea {
315
+ export interface ISignalSubSystem {
316
316
  subAreaCode: string;
317
- subShape: number[][][];
317
+ subShape?: number[][][] | string;
318
+ nodeSymbol?: any;
319
+ roadSymbol?: any;
318
320
  children: {
319
- lon: number;
320
- lat: number;
321
+ x: number;
322
+ y: number;
323
+ nodeId: string;
321
324
  nodeName: string;
325
+ symbol?: any;
322
326
  }[];
323
327
  }
328
+ export interface ISignalSystem {
329
+ areaCode: string;
330
+ areaName: string;
331
+ shape: number[][];
332
+ lineSymbol?: any;
333
+ children: ISignalSubSystem[];
334
+ }
335
+ export interface IShowSignalSystemParams {
336
+ areaList: ISignalSystem[];
337
+ }
338
+ export interface IShowSubSignalSystemParams {
339
+ areaList: ISignalSubSystem[];
340
+ }
324
341
  export interface ISignalCross {
325
342
  signalId: string;
326
343
  crossId: string;
@@ -385,7 +402,7 @@ export interface IShowJurisdictionParams {
385
402
  export interface IShowEdpassDeviceParams {
386
403
  deviceType: string;
387
404
  deviceState?: string;
388
- style: string;
405
+ style?: string;
389
406
  visible: boolean;
390
407
  zdCode?: string;
391
408
  ddCode?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gisviewer-vue3-arcgis",
3
- "version": "1.0.279",
3
+ "version": "1.0.281",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.mjs",
6
6
  "files": [