gisviewer-vue3-arcgis 1.0.251 → 1.0.252
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 +4 -1
- package/es/src/gis-map/gis-map.vue.mjs +155 -153
- package/es/src/gis-map/index.d.ts +2 -0
- package/es/src/gis-map/utils/dbscan-cluster/index.d.ts +51 -0
- package/es/src/gis-map/utils/dbscan-cluster/index.mjs +256 -0
- package/es/src/gis-map/utils/green-wave-band-controller/index.d.ts +1 -0
- package/es/src/gis-map/utils/green-wave-band-controller/index.mjs +69 -65
- package/es/src/gis-map/utils/overlay.d.ts +3 -8
- package/es/src/gis-map/utils/overlay.mjs +48 -52
- package/es/src/gis-map/utils/signal-control-area/district-renderer.d.ts +2 -2
- package/es/src/gis-map/utils/signal-control-area/district-renderer.mjs +6 -2
- package/es/src/gis-map/utils/signal-control-area/show-area.mjs +15 -15
- package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +1 -1
- package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.mjs +6 -2
- package/es/src/types/index.d.ts +29 -2
- package/lib/src/gis-map/gis-map.vue.d.ts +4 -1
- package/lib/src/gis-map/gis-map.vue.js +1 -1
- package/lib/src/gis-map/index.d.ts +2 -0
- package/lib/src/gis-map/utils/dbscan-cluster/index.d.ts +51 -0
- package/lib/src/gis-map/utils/dbscan-cluster/index.js +1 -0
- package/lib/src/gis-map/utils/green-wave-band-controller/index.d.ts +1 -0
- package/lib/src/gis-map/utils/green-wave-band-controller/index.js +1 -1
- package/lib/src/gis-map/utils/overlay.d.ts +3 -8
- package/lib/src/gis-map/utils/overlay.js +1 -1
- package/lib/src/gis-map/utils/signal-control-area/district-renderer.d.ts +2 -2
- package/lib/src/gis-map/utils/signal-control-area/district-renderer.js +1 -1
- package/lib/src/gis-map/utils/signal-control-area/show-area.js +1 -1
- package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +1 -1
- package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.js +1 -1
- package/lib/src/types/index.d.ts +29 -2
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import MapView from '@arcgis/core/views/MapView';
|
|
2
2
|
import SceneView from '@arcgis/core/views/SceneView';
|
|
3
|
-
import { 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 { IClusterPointParams, IEditSignalControlAreaParams, IFindSignalControlAreaParams, IFindSumoParams, ILaneNumberParams, ILayerVisibleParams, ILookAtParams, IMaskParam, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IShowEdpassDeviceParams, IShowGreenWaveBandParams, IShowJurisdictionParams, IShowOpenDriveFromFileParams, IShowSignalControlAreaParams, ISignalCountdownProps, ISplitOpenDriveLaneParams, IStartCrossBufferParam, IToggleTrafficInfoParams, IUnselectSumoParams } from '../types';
|
|
4
|
+
import DbscanCluster from './utils/dbscan-cluster';
|
|
4
5
|
import EdpassDeviceController from './utils/edpass-device-controller';
|
|
5
6
|
import GreenWaveBandController from './utils/green-wave-band-controller';
|
|
6
7
|
import HoloFlow from './utils/holo-flow';
|
|
@@ -37,6 +38,7 @@ declare const _sfc_main: import("vue").DefineComponent<{
|
|
|
37
38
|
greenWaveBandController: GreenWaveBandController;
|
|
38
39
|
policeJurisdictionController: PoliceJurisdiction;
|
|
39
40
|
edpassDeviceController: EdpassDeviceController;
|
|
41
|
+
dbscanCluster: DbscanCluster;
|
|
40
42
|
showLogDiv: import("vue").Ref<boolean>;
|
|
41
43
|
appDataStore: import("pinia").Store<"appData", {
|
|
42
44
|
mapConfig: {};
|
|
@@ -113,6 +115,7 @@ declare const _sfc_main: import("vue").DefineComponent<{
|
|
|
113
115
|
toggleTrafficObject: (params: IToggleTrafficInfoParams) => void;
|
|
114
116
|
toggleVehicleInfo: (contentType: string) => void;
|
|
115
117
|
addOverlays: (params: IOverlayParam) => Promise<import("../types").IResult>;
|
|
118
|
+
addClusterPoints: (params: IClusterPointParams) => Promise<void>;
|
|
116
119
|
addMask: (params: IMaskParam) => void;
|
|
117
120
|
removeMask: () => void;
|
|
118
121
|
removeOverlaysByType: (types: string[]) => import("../types").IResult;
|
|
@@ -1,246 +1,248 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import x, { registerStore as
|
|
1
|
+
import { defineComponent as it, ref as P, reactive as ct, onMounted as lt, getCurrentInstance as ut, onUnmounted as mt, computed as pt, openBlock as T, createElementBlock as _, createElementVNode as f, withDirectives as dt, vShow as gt, Fragment as ft, renderList as yt, createBlock as Ct } from "vue";
|
|
2
|
+
import x, { registerStore as St } from "./stores/index.mjs";
|
|
3
3
|
import "./style/index.css";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import H from "./utils/
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
|
|
4
|
+
import vt from "./utils/dbscan-cluster/index.mjs";
|
|
5
|
+
import wt from "./utils/detect-gpu.mjs";
|
|
6
|
+
import ht from "./utils/edpass-device-controller.mjs";
|
|
7
|
+
import G from "./utils/green-wave-band-controller/index.mjs";
|
|
8
|
+
import bt from "./utils/holo-flow/index.mjs";
|
|
9
|
+
import Ot from "./utils/holo-flow/signal-countdown-panel.vue.mjs";
|
|
10
|
+
import At from "./utils/map-initializer.mjs";
|
|
11
|
+
import H from "./utils/open-drive-renderer/index.mjs";
|
|
12
|
+
import E from "./utils/overlay.mjs";
|
|
13
|
+
import kt from "./utils/police-jurisdiction.mjs";
|
|
14
|
+
import Dt from "./utils/queue-length.mjs";
|
|
15
|
+
import N from "./utils/road-config-tool/index.mjs";
|
|
16
|
+
import Lt from "./utils/signal-control-area/edit-area.mjs";
|
|
17
|
+
import Tt from "./utils/signal-control-area/show-area.mjs";
|
|
18
|
+
import It from "./utils/traffic-flow.mjs";
|
|
19
|
+
const Mt = { class: "gis-viewer" }, Bt = { style: { position: "absolute", bottom: "80px", left: "10px", "z-index": "9999" } }, Ft = /* @__PURE__ */ it({
|
|
19
20
|
__name: "gis-map",
|
|
20
21
|
props: {
|
|
21
22
|
config: {},
|
|
22
23
|
assetsRoot: {}
|
|
23
24
|
},
|
|
24
25
|
emits: ["mapLoaded", "markerClick", "mapClick", "update:zoom"],
|
|
25
|
-
setup(
|
|
26
|
-
const w =
|
|
27
|
-
let n, p, c, o, a, r, g, t, l, s, d, y, h;
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
let
|
|
32
|
-
const
|
|
26
|
+
setup(W, { expose: Z, emit: Q }) {
|
|
27
|
+
const w = P(null);
|
|
28
|
+
let n, p, c, o, a, r, g, t, l, s, d, y, h, b;
|
|
29
|
+
const O = P(!1);
|
|
30
|
+
St();
|
|
31
|
+
const I = x.useAppDataStore, M = ct([]), B = (e) => Math.log2(591657527591555e-6 / e);
|
|
32
|
+
let C = null, V = null;
|
|
33
|
+
const A = (e) => {
|
|
33
34
|
if (!Number.isFinite(e))
|
|
34
35
|
return;
|
|
35
36
|
const u = Math.round(e);
|
|
36
|
-
u !==
|
|
37
|
+
u !== V && (V = u, S("update:zoom", u));
|
|
37
38
|
};
|
|
38
|
-
|
|
39
|
+
wt(), lt(async () => {
|
|
39
40
|
if (!w.value)
|
|
40
41
|
return;
|
|
41
42
|
document.addEventListener("keydown", (m) => {
|
|
42
|
-
m.ctrlKey && m.key === "i" && (
|
|
43
|
+
m.ctrlKey && m.key === "i" && (O.value = !O.value);
|
|
43
44
|
});
|
|
44
|
-
const e =
|
|
45
|
-
i.assetsRoot =
|
|
45
|
+
const e = ut(), { $gisviewerAssetsRoot: u } = e.appContext.config.globalProperties, i = await (await fetch(z.config)).json();
|
|
46
|
+
i.assetsRoot = z.assetsRoot || u, I.mapConfig = i, p = new At(), I.mapInitializer = p, n = await p.initialize({
|
|
46
47
|
container: w.value,
|
|
47
48
|
mapConfig: i,
|
|
48
|
-
markerClickCallback: (m,
|
|
49
|
-
|
|
49
|
+
markerClickCallback: (m, D, L, ot) => {
|
|
50
|
+
S("markerClick", m, D, L, ot);
|
|
50
51
|
},
|
|
51
|
-
mapClickCallback: (m,
|
|
52
|
-
|
|
52
|
+
mapClickCallback: (m, D, L) => {
|
|
53
|
+
S("mapClick", m, D, L);
|
|
53
54
|
}
|
|
54
55
|
});
|
|
55
|
-
const
|
|
56
|
-
typeof
|
|
57
|
-
const
|
|
58
|
-
|
|
56
|
+
const v = n.zoom ?? (n.scale ? B(n.scale) : void 0);
|
|
57
|
+
typeof v == "number" && A(v);
|
|
58
|
+
const st = n.zoom !== void 0 ? n.watch("zoom", (m) => {
|
|
59
|
+
A(m);
|
|
59
60
|
}) : n.watch("scale", (m) => {
|
|
60
|
-
typeof m == "number" && m > 0 &&
|
|
61
|
+
typeof m == "number" && m > 0 && A(B(m));
|
|
61
62
|
});
|
|
62
|
-
|
|
63
|
-
}),
|
|
64
|
-
s == null || s.clearSignalControlArea(), t == null || t.clearOpenDrive(), a.clearHoloTrace(), a.clearHoloSignal(), o == null || o.disconnectTrafficFlow(),
|
|
63
|
+
C = () => st.remove(), a = new bt(n, M), await a.init(), S("mapLoaded");
|
|
64
|
+
}), mt(() => {
|
|
65
|
+
s == null || s.clearSignalControlArea(), t == null || t.clearOpenDrive(), a.clearHoloTrace(), a.clearHoloSignal(), o == null || o.disconnectTrafficFlow(), C == null || C(), C = null;
|
|
65
66
|
});
|
|
66
|
-
const
|
|
67
|
+
const j = pt(() => n), J = () => {
|
|
67
68
|
const e = x.useAppDataStore;
|
|
68
69
|
e.saveTrackLog = !0;
|
|
69
|
-
}, J = () => {
|
|
70
|
-
a.downloadTrackLog();
|
|
71
70
|
}, U = () => {
|
|
72
|
-
|
|
71
|
+
a.downloadTrackLog();
|
|
73
72
|
}, $ = () => {
|
|
74
|
-
|
|
75
|
-
}, q =
|
|
73
|
+
k("vehicleId");
|
|
74
|
+
}, q = () => {
|
|
75
|
+
k("plateNumber");
|
|
76
|
+
}, K = async (e) => await p.setMapCenter(e), F = async (e) => await p.setMapCamera(e), R = (e) => p.setMapZoom(e), X = async (e) => await p.lookAt(e), Y = (e) => p.setLayerVisibility(e), ee = (e, u) => p.requestCoordinateTransform(e, u), te = (e) => {
|
|
76
77
|
p.cancelCoordinateTransform(e);
|
|
77
|
-
},
|
|
78
|
+
}, ne = (e) => {
|
|
78
79
|
p.setMapZoomRange(e);
|
|
79
|
-
}, ae = (e) => (c || (c = new
|
|
80
|
+
}, ae = (e) => (c || (c = new N(n)), c.showLaneNumber(e)), re = () => {
|
|
80
81
|
c == null || c.clearLaneNumber();
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
o || (o = new
|
|
84
|
-
},
|
|
82
|
+
}, se = async (e) => (c || (c = new N(n)), await c.initializeSearch(e)), oe = async () => c == null ? void 0 : c.calCrossIndicatorArea(), ie = async () => {
|
|
83
|
+
}, ce = async (e, u) => {
|
|
84
|
+
o || (o = new It(n)), o.connectTrafficFlow(e, u);
|
|
85
|
+
}, le = () => {
|
|
85
86
|
o == null || o.disconnectTrafficFlow();
|
|
86
|
-
},
|
|
87
|
+
}, ue = async (e) => {
|
|
87
88
|
a.handleVehicleTraceData(e);
|
|
88
|
-
},
|
|
89
|
+
}, me = () => {
|
|
89
90
|
a.clearHoloTrace();
|
|
90
|
-
},
|
|
91
|
+
}, pe = (e) => {
|
|
91
92
|
a.setInterpolate(e);
|
|
92
|
-
}, pe = async (e) => {
|
|
93
|
-
await a.handleSignalData(e);
|
|
94
93
|
}, de = async (e) => {
|
|
94
|
+
await a.handleSignalData(e);
|
|
95
|
+
}, ge = async (e) => {
|
|
95
96
|
await a.initializeLampGroup(e);
|
|
96
|
-
},
|
|
97
|
+
}, fe = (e) => {
|
|
97
98
|
a.handleUniSignalData(e);
|
|
98
|
-
},
|
|
99
|
+
}, ye = () => {
|
|
99
100
|
a.clearHoloSignal();
|
|
100
|
-
},
|
|
101
|
+
}, Ce = (e) => {
|
|
101
102
|
o == null || o.toggleTrafficInfo(e), a == null || a.toggleTrafficInfo(e);
|
|
102
103
|
}, Se = (e) => {
|
|
103
104
|
a == null || a.togglePause(e);
|
|
104
105
|
}, ve = (e) => {
|
|
105
106
|
o == null || o.toggleTrafficObject(e), a == null || a.toggleTrafficObject(e);
|
|
106
|
-
},
|
|
107
|
+
}, k = (e) => {
|
|
107
108
|
a == null || a.updatePanelContent(e);
|
|
108
|
-
},
|
|
109
|
+
}, we = async (e) => (r || (r = new E(n)), r.addOverlays(e)), he = async (e) => (b || (b = new vt(n)), b.addClusterPoints(e)), be = (e) => (r || (r = new E(n)), r.addMask(e)), Oe = () => {
|
|
109
110
|
r == null || r.removeMask();
|
|
110
|
-
},
|
|
111
|
+
}, Ae = (e) => r == null ? void 0 : r.removeOverlaysByType(e), ke = (e) => r == null ? void 0 : r.removeOverlaysById(e), De = () => r == null ? void 0 : r.removeAllOverlays(), Le = () => {
|
|
111
112
|
r == null || r.showAllOverlays();
|
|
112
|
-
},
|
|
113
|
-
g || (g = new
|
|
114
|
-
},
|
|
113
|
+
}, Te = (e) => {
|
|
114
|
+
g || (g = new Dt(n)), g.updateQueueLength(e);
|
|
115
|
+
}, Ie = () => {
|
|
115
116
|
g == null || g.removeQueueLength();
|
|
116
|
-
},
|
|
117
|
+
}, Me = async (e, u) => (t || (t = new H(n)), await t.showOpenDriveFromServer(e, u)), Be = async (e) => (t || (t = new H(n)), await t.clearOpenDrive(), await t.showOpenDriveFromFile(e)), Ve = (e) => t ? t.setOpendriveVisibility(e) : {
|
|
117
118
|
status: -1,
|
|
118
119
|
message: "未加载OpenDrive地图"
|
|
119
|
-
},
|
|
120
|
+
}, ze = async () => await (t == null ? void 0 : t.clearOpenDrive()), Pe = async (e) => t ? await (t == null ? void 0 : t.findSumo(e)) : {
|
|
120
121
|
status: -1,
|
|
121
122
|
message: "未加载OpenDrive地图"
|
|
122
|
-
},
|
|
123
|
+
}, _e = async (e) => t ? t.selectSumo(e) : {
|
|
123
124
|
status: -1,
|
|
124
125
|
message: "未加载OpenDrive地图"
|
|
125
|
-
},
|
|
126
|
+
}, xe = async (e) => t ? t.unselectSumo(e) : {
|
|
126
127
|
status: -1,
|
|
127
128
|
message: "未加载OpenDrive地图"
|
|
128
|
-
},
|
|
129
|
+
}, Ge = async (e) => t ? await t.geometrySearch(e) : {
|
|
129
130
|
status: -1,
|
|
130
131
|
message: "未加载OpenDrive地图"
|
|
131
|
-
},
|
|
132
|
+
}, He = async (e) => t ? await t.getSumoInfo(e) : {
|
|
132
133
|
status: -1,
|
|
133
134
|
message: "未加载OpenDrive地图"
|
|
134
|
-
},
|
|
135
|
+
}, Ee = async (e) => t ? await (t == null ? void 0 : t.splitLane(e)) : {
|
|
135
136
|
status: -1,
|
|
136
137
|
message: "未加载OpenDrive地图"
|
|
137
|
-
},
|
|
138
|
+
}, Ne = async () => t ? t == null ? void 0 : t.clearSplitLane() : {
|
|
138
139
|
status: -1,
|
|
139
140
|
message: "未加载OpenDrive地图"
|
|
140
|
-
},
|
|
141
|
+
}, We = async (e) => (s || (s = new Tt(n)), await s.showSignalControlArea(e)), Ze = async () => await (s == null ? void 0 : s.clearSignalControlArea()), Qe = (e) => s == null ? void 0 : s.setLayerVisibility(e), je = async (e) => s ? await (s == null ? void 0 : s.locateSignalControlArea(e)) : { status: -1, message: "未加载信号控制区" }, Je = async (e) => s ? await s.highlightSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, Ue = () => s ? s.resetHighlight() : { status: -1, message: "未加载信号控制区" }, $e = (e) => (l || (l = new Lt(n)), l.showSubSignalControlArea(e)), qe = (e) => l ? l.editSubSignalControlArea(e) : { status: -1, message: "未加载信号控制区" }, Ke = () => l ? l.stopEditSubSignalControlArea() : { status: -1, message: "未加载信号控制区" }, Fe = (e) => l ? l.selectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, Re = (e) => l ? l.unselectSubSignalControlAreaCross(e) : { status: -1, message: "未加载信号控制区" }, Xe = (e) => {
|
|
141
142
|
if (!l)
|
|
142
143
|
return { status: -1, message: "未加载信号控制区" };
|
|
143
|
-
},
|
|
144
|
+
}, Ye = (e) => (d || (d = new G(n)), d.addGreenWaveBand(e)), et = () => {
|
|
144
145
|
if (!d)
|
|
145
146
|
return { status: -1, message: "未加载绿波带" };
|
|
146
147
|
d.stopAddGreenWaveBand();
|
|
147
|
-
},
|
|
148
|
+
}, tt = async (e) => (d || (d = new G(n)), await d.showGreenWaveBand(e)), nt = async (e) => (y || (y = new kt(n)), await y.showJurisdiction(e)), at = () => {
|
|
148
149
|
if (!y)
|
|
149
150
|
return { status: -1, message: "未加载警务管辖区" };
|
|
150
151
|
y.clearJurisdiction();
|
|
151
|
-
},
|
|
152
|
-
return
|
|
153
|
-
mapViewer:
|
|
154
|
-
setLayerVisibility:
|
|
155
|
-
setMapCenter:
|
|
156
|
-
lookAt:
|
|
157
|
-
setMapCamera:
|
|
158
|
-
setMapZoom:
|
|
159
|
-
setMapZoomRange:
|
|
160
|
-
requestCoordinateTransform:
|
|
161
|
-
cancelCoordinateTransform:
|
|
162
|
-
addOverlays:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
152
|
+
}, rt = async (e) => (h || (h = new ht(n)), await h.setEdpassLayerVisibility(e)), z = W, S = Q;
|
|
153
|
+
return Z({
|
|
154
|
+
mapViewer: j,
|
|
155
|
+
setLayerVisibility: Y,
|
|
156
|
+
setMapCenter: K,
|
|
157
|
+
lookAt: X,
|
|
158
|
+
setMapCamera: F,
|
|
159
|
+
setMapZoom: R,
|
|
160
|
+
setMapZoomRange: ne,
|
|
161
|
+
requestCoordinateTransform: ee,
|
|
162
|
+
cancelCoordinateTransform: te,
|
|
163
|
+
addOverlays: we,
|
|
164
|
+
addClusterPoints: he,
|
|
165
|
+
addMask: be,
|
|
166
|
+
removeMask: Oe,
|
|
167
|
+
showAllOverlays: Le,
|
|
168
|
+
removeOverlaysByType: Ae,
|
|
169
|
+
removeOverlaysById: ke,
|
|
170
|
+
removeAllOverlays: De,
|
|
169
171
|
showLaneNumber: ae,
|
|
170
|
-
clearLaneNumber:
|
|
171
|
-
initializeAreaTool:
|
|
172
|
-
calCrossIndicatorArea:
|
|
173
|
-
calRoadIndicatorArea:
|
|
174
|
-
connectCarFlow:
|
|
175
|
-
disconnectCarFlow:
|
|
176
|
-
handleHoloVehicleTraceData:
|
|
177
|
-
clearHoloTrace:
|
|
178
|
-
initializeLampGroup:
|
|
179
|
-
handleUniSignalData:
|
|
180
|
-
handleHoloSignalData:
|
|
181
|
-
clearHoloSignal:
|
|
182
|
-
setInterpolate:
|
|
183
|
-
toggleTrafficInfo:
|
|
172
|
+
clearLaneNumber: re,
|
|
173
|
+
initializeAreaTool: se,
|
|
174
|
+
calCrossIndicatorArea: oe,
|
|
175
|
+
calRoadIndicatorArea: ie,
|
|
176
|
+
connectCarFlow: ce,
|
|
177
|
+
disconnectCarFlow: le,
|
|
178
|
+
handleHoloVehicleTraceData: ue,
|
|
179
|
+
clearHoloTrace: me,
|
|
180
|
+
initializeLampGroup: ge,
|
|
181
|
+
handleUniSignalData: fe,
|
|
182
|
+
handleHoloSignalData: de,
|
|
183
|
+
clearHoloSignal: ye,
|
|
184
|
+
setInterpolate: pe,
|
|
185
|
+
toggleTrafficInfo: Ce,
|
|
184
186
|
toggleTrafficObject: ve,
|
|
185
|
-
toggleVehicleInfo:
|
|
187
|
+
toggleVehicleInfo: k,
|
|
186
188
|
togglePause: Se,
|
|
187
|
-
updateQueueLength:
|
|
188
|
-
removeQueueLength:
|
|
189
|
-
showOpenDriveFromServer:
|
|
190
|
-
showOpenDriveFromFile:
|
|
191
|
-
clearOpenDrive:
|
|
192
|
-
setOpendriveVisibility:
|
|
193
|
-
geometrySearchInOpenDrive:
|
|
194
|
-
findSumoInOpenDrive:
|
|
195
|
-
selectSumoInOpenDrive:
|
|
196
|
-
unselectSumoInOpenDrive:
|
|
197
|
-
getSumoInfo:
|
|
198
|
-
splitOpenDriveLane:
|
|
199
|
-
clearSplitOpenDriveLane:
|
|
200
|
-
showSignalControlArea:
|
|
201
|
-
clearSignalControlArea:
|
|
202
|
-
setSignalControlAreaVisibility:
|
|
203
|
-
locateSignalControlArea:
|
|
204
|
-
highlightSignalControlArea:
|
|
205
|
-
resetHighlightSignalControlArea:
|
|
206
|
-
showSubSignalControlArea:
|
|
207
|
-
editSubSignalControlArea:
|
|
208
|
-
stopEditSubSignalControlArea:
|
|
209
|
-
selectSubSignalControlAreaCross:
|
|
210
|
-
unselectSubSignalControlAreaCross:
|
|
211
|
-
changeSubSignalControlAreaBorderVisibility:
|
|
212
|
-
addGreenWaveBand:
|
|
213
|
-
stopAddGreenWaveBand:
|
|
214
|
-
showGreenWaveBand:
|
|
215
|
-
showPoliceArea:
|
|
216
|
-
clearPoliceArea:
|
|
217
|
-
setEdpassLayerVisibility:
|
|
218
|
-
}), (e, u) => (
|
|
189
|
+
updateQueueLength: Te,
|
|
190
|
+
removeQueueLength: Ie,
|
|
191
|
+
showOpenDriveFromServer: Me,
|
|
192
|
+
showOpenDriveFromFile: Be,
|
|
193
|
+
clearOpenDrive: ze,
|
|
194
|
+
setOpendriveVisibility: Ve,
|
|
195
|
+
geometrySearchInOpenDrive: Ge,
|
|
196
|
+
findSumoInOpenDrive: Pe,
|
|
197
|
+
selectSumoInOpenDrive: _e,
|
|
198
|
+
unselectSumoInOpenDrive: xe,
|
|
199
|
+
getSumoInfo: He,
|
|
200
|
+
splitOpenDriveLane: Ee,
|
|
201
|
+
clearSplitOpenDriveLane: Ne,
|
|
202
|
+
showSignalControlArea: We,
|
|
203
|
+
clearSignalControlArea: Ze,
|
|
204
|
+
setSignalControlAreaVisibility: Qe,
|
|
205
|
+
locateSignalControlArea: je,
|
|
206
|
+
highlightSignalControlArea: Je,
|
|
207
|
+
resetHighlightSignalControlArea: Ue,
|
|
208
|
+
showSubSignalControlArea: $e,
|
|
209
|
+
editSubSignalControlArea: qe,
|
|
210
|
+
stopEditSubSignalControlArea: Ke,
|
|
211
|
+
selectSubSignalControlAreaCross: Fe,
|
|
212
|
+
unselectSubSignalControlAreaCross: Re,
|
|
213
|
+
changeSubSignalControlAreaBorderVisibility: Xe,
|
|
214
|
+
addGreenWaveBand: Ye,
|
|
215
|
+
stopAddGreenWaveBand: et,
|
|
216
|
+
showGreenWaveBand: tt,
|
|
217
|
+
showPoliceArea: nt,
|
|
218
|
+
clearPoliceArea: at,
|
|
219
|
+
setEdpassLayerVisibility: rt
|
|
220
|
+
}), (e, u) => (T(), _("div", Mt, [
|
|
219
221
|
f("div", {
|
|
220
222
|
class: "gis-viewer-main",
|
|
221
223
|
ref_key: "mapContainer",
|
|
222
224
|
ref: w
|
|
223
225
|
}, [
|
|
224
|
-
|
|
226
|
+
dt(f("div", Bt, [
|
|
225
227
|
f("button", {
|
|
226
228
|
style: { "margin-right": "10px" },
|
|
227
|
-
onClick:
|
|
229
|
+
onClick: J
|
|
228
230
|
}, " 开始记录 "),
|
|
229
231
|
f("button", {
|
|
230
232
|
style: { "margin-right": "10px" },
|
|
231
|
-
onClick:
|
|
233
|
+
onClick: U
|
|
232
234
|
}, " 下载日志 "),
|
|
233
235
|
f("button", {
|
|
234
236
|
style: { "margin-right": "10px" },
|
|
235
|
-
onClick:
|
|
237
|
+
onClick: $
|
|
236
238
|
}, " 显示车辆id "),
|
|
237
|
-
f("button", { onClick:
|
|
239
|
+
f("button", { onClick: q }, "显示车辆号牌")
|
|
238
240
|
], 512), [
|
|
239
|
-
[
|
|
241
|
+
[gt, O.value]
|
|
240
242
|
])
|
|
241
243
|
], 512),
|
|
242
|
-
(
|
|
243
|
-
key:
|
|
244
|
+
(T(!0), _(ft, null, yt(M, (i, v) => (T(), Ct(Ot, {
|
|
245
|
+
key: v,
|
|
244
246
|
"display-mode": i.displayMode,
|
|
245
247
|
flash: i.flash,
|
|
246
248
|
"road-id": i.crossId,
|
|
@@ -256,5 +258,5 @@ const Lt = { class: "gis-viewer" }, Tt = { style: { position: "absolute", bottom
|
|
|
256
258
|
}
|
|
257
259
|
});
|
|
258
260
|
export {
|
|
259
|
-
|
|
261
|
+
Ft as default
|
|
260
262
|
};
|
|
@@ -22,6 +22,7 @@ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWi
|
|
|
22
22
|
greenWaveBandController: import("./utils/green-wave-band-controller").default;
|
|
23
23
|
policeJurisdictionController: import("./utils/police-jurisdiction").default;
|
|
24
24
|
edpassDeviceController: import("./utils/edpass-device-controller").default;
|
|
25
|
+
dbscanCluster: import("./utils/dbscan-cluster").default;
|
|
25
26
|
showLogDiv: import("vue").Ref<boolean>;
|
|
26
27
|
appDataStore: import("pinia").Store<"appData", {
|
|
27
28
|
mapConfig: {};
|
|
@@ -98,6 +99,7 @@ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWi
|
|
|
98
99
|
toggleTrafficObject: (params: import("../types").IToggleTrafficInfoParams) => void;
|
|
99
100
|
toggleVehicleInfo: (contentType: string) => void;
|
|
100
101
|
addOverlays: (params: import("../types").IOverlayParam) => Promise<import("../types").IResult>;
|
|
102
|
+
addClusterPoints: (params: import("../types").IClusterPointParams) => Promise<void>;
|
|
101
103
|
addMask: (params: import("../types").IMaskParam) => void;
|
|
102
104
|
removeMask: () => void;
|
|
103
105
|
removeOverlaysByType: (types: string[]) => import("../types").IResult;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { IClusterPointParams } from 'packages/components/src/types';
|
|
2
|
+
export default class DbscanCluster {
|
|
3
|
+
private view;
|
|
4
|
+
private clusterLayer;
|
|
5
|
+
private maxClusterSymbolSize;
|
|
6
|
+
private minClusterSymbolSize;
|
|
7
|
+
constructor(view: __esri.MapView | __esri.SceneView);
|
|
8
|
+
private zoomWatchHandle;
|
|
9
|
+
private locations;
|
|
10
|
+
private clusterMarkUrl;
|
|
11
|
+
private currentZoom;
|
|
12
|
+
/**
|
|
13
|
+
* 将地理位置转换为屏幕坐标
|
|
14
|
+
*/
|
|
15
|
+
private locationToScreen;
|
|
16
|
+
/**
|
|
17
|
+
* 添加聚类点到视图
|
|
18
|
+
* @param params
|
|
19
|
+
*/
|
|
20
|
+
addClusterPoints(params: IClusterPointParams): void;
|
|
21
|
+
private showClusters;
|
|
22
|
+
/**
|
|
23
|
+
* 获取邻居点
|
|
24
|
+
* @param locations
|
|
25
|
+
* @param index
|
|
26
|
+
* @param eps
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
private getNeighbors;
|
|
30
|
+
/**
|
|
31
|
+
* 两点间的像素距离
|
|
32
|
+
* @param point1
|
|
33
|
+
* @param point2
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
private getDistance;
|
|
37
|
+
/**
|
|
38
|
+
* 从聚类结果中创建聚类对象
|
|
39
|
+
* @param locations
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
private createClusters;
|
|
43
|
+
/**
|
|
44
|
+
* 按照像素距离聚类
|
|
45
|
+
* @param locations
|
|
46
|
+
* @param eps
|
|
47
|
+
* @param minPoints
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
private doPixelCluster;
|
|
51
|
+
}
|