gisviewer-vue3-arcgis 1.0.251 → 1.0.253

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