gisviewer-vue3-arcgis 1.0.250 → 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.
Files changed (33) hide show
  1. package/es/src/gis-map/gis-map.vue.d.ts +4 -1
  2. package/es/src/gis-map/gis-map.vue.mjs +155 -153
  3. package/es/src/gis-map/index.d.ts +2 -0
  4. package/es/src/gis-map/utils/dbscan-cluster/index.d.ts +51 -0
  5. package/es/src/gis-map/utils/dbscan-cluster/index.mjs +256 -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 +143 -127
  8. package/es/src/gis-map/utils/open-drive-renderer/index.mjs +87 -86
  9. package/es/src/gis-map/utils/overlay.d.ts +3 -8
  10. package/es/src/gis-map/utils/overlay.mjs +48 -52
  11. package/es/src/gis-map/utils/signal-control-area/district-renderer.d.ts +2 -2
  12. package/es/src/gis-map/utils/signal-control-area/district-renderer.mjs +6 -2
  13. package/es/src/gis-map/utils/signal-control-area/show-area.mjs +15 -15
  14. package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +1 -1
  15. package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.mjs +6 -2
  16. package/es/src/types/index.d.ts +33 -3
  17. package/lib/src/gis-map/gis-map.vue.d.ts +4 -1
  18. package/lib/src/gis-map/gis-map.vue.js +1 -1
  19. package/lib/src/gis-map/index.d.ts +2 -0
  20. package/lib/src/gis-map/utils/dbscan-cluster/index.d.ts +51 -0
  21. package/lib/src/gis-map/utils/dbscan-cluster/index.js +1 -0
  22. package/lib/src/gis-map/utils/green-wave-band-controller/index.d.ts +1 -0
  23. package/lib/src/gis-map/utils/green-wave-band-controller/index.js +1 -1
  24. package/lib/src/gis-map/utils/open-drive-renderer/index.js +1 -1
  25. package/lib/src/gis-map/utils/overlay.d.ts +3 -8
  26. package/lib/src/gis-map/utils/overlay.js +1 -1
  27. package/lib/src/gis-map/utils/signal-control-area/district-renderer.d.ts +2 -2
  28. package/lib/src/gis-map/utils/signal-control-area/district-renderer.js +1 -1
  29. package/lib/src/gis-map/utils/signal-control-area/show-area.js +1 -1
  30. package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +1 -1
  31. package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.js +1 -1
  32. package/lib/src/types/index.d.ts +33 -3
  33. 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 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 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 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 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(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 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 !== B && (B = u, v("update:zoom", u));
37
+ u !== V && (V = u, S("update:zoom", u));
37
38
  };
38
- St(), it(async () => {
39
+ wt(), lt(async () => {
39
40
  if (!w.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({
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, k, D, rt) => {
49
- v("markerClick", m, k, D, rt);
49
+ markerClickCallback: (m, D, L, ot) => {
50
+ S("markerClick", m, D, L, ot);
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 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 && 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
+ 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 Q = ut(() => n), j = () => {
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
- 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 It(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
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
- }, 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) => (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
- }, 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 = () => {
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
- }, De = (e) => {
113
- g || (g = new Ot(n)), g.updateQueueLength(e);
114
- }, Le = () => {
113
+ }, Te = (e) => {
114
+ g || (g = new Dt(n)), g.updateQueueLength(e);
115
+ }, Ie = () => {
115
116
  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) : {
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
- }, Be = async () => await (t == null ? void 0 : t.clearOpenDrive()), Ve = async (e) => t ? await (t == null ? void 0 : t.findSumo(e)) : {
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
- }, ze = async (e) => t ? t.selectSumo(e) : {
123
+ }, _e = async (e) => t ? t.selectSumo(e) : {
123
124
  status: -1,
124
125
  message: "未加载OpenDrive地图"
125
- }, _e = async (e) => t ? t.unselectSumo(e) : {
126
+ }, xe = async (e) => t ? t.unselectSumo(e) : {
126
127
  status: -1,
127
128
  message: "未加载OpenDrive地图"
128
- }, xe = async (e) => t ? await t.geometrySearch(e) : {
129
+ }, Ge = async (e) => t ? await t.geometrySearch(e) : {
129
130
  status: -1,
130
131
  message: "未加载OpenDrive地图"
131
- }, Pe = async (e) => t ? await t.getSumoInfo(e) : {
132
+ }, He = async (e) => t ? await t.getSumoInfo(e) : {
132
133
  status: -1,
133
134
  message: "未加载OpenDrive地图"
134
- }, Ge = async (e) => t ? await (t == null ? void 0 : t.splitLane(e)) : {
135
+ }, Ee = async (e) => t ? await (t == null ? void 0 : t.splitLane(e)) : {
135
136
  status: -1,
136
137
  message: "未加载OpenDrive地图"
137
- }, He = async () => t ? t == null ? void 0 : t.clearSplitLane() : {
138
+ }, Ne = async () => t ? t == null ? void 0 : t.clearSplitLane() : {
138
139
  status: -1,
139
140
  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) => {
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
- }, Re = (e) => (d || (d = new P(n)), d.addGreenWaveBand(e)), Xe = () => {
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
- }, 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
+ }, 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
- }, 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,
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: 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,
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: A,
187
+ toggleVehicleInfo: k,
186
188
  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, [
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
- mt(f("div", Tt, [
226
+ dt(f("div", Bt, [
225
227
  f("button", {
226
228
  style: { "margin-right": "10px" },
227
- onClick: j
229
+ onClick: J
228
230
  }, " 开始记录 "),
229
231
  f("button", {
230
232
  style: { "margin-right": "10px" },
231
- onClick: J
233
+ onClick: U
232
234
  }, " 下载日志 "),
233
235
  f("button", {
234
236
  style: { "margin-right": "10px" },
235
- onClick: U
237
+ onClick: $
236
238
  }, " 显示车辆id "),
237
- f("button", { onClick: $ }, "显示车辆号牌")
239
+ f("button", { onClick: q }, "显示车辆号牌")
238
240
  ], 512), [
239
- [pt, b.value]
241
+ [gt, O.value]
240
242
  ])
241
243
  ], 512),
242
- (L(!0), _(dt, null, gt(I, (i, C) => (L(), ft(wt, {
243
- key: C,
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
- Ut as default
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
+ }