gisviewer-vue3-arcgis 1.0.85

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 (138) hide show
  1. package/README.md +103 -0
  2. package/es/index.d.ts +8 -0
  3. package/es/index.mjs +16 -0
  4. package/es/src/components.d.ts +9 -0
  5. package/es/src/gis-map/gis-map.vue.d.ts +91 -0
  6. package/es/src/gis-map/gis-map.vue.mjs +124 -0
  7. package/es/src/gis-map/gis-map.vue2.mjs +4 -0
  8. package/es/src/gis-map/index.d.ts +81 -0
  9. package/es/src/gis-map/index.mjs +7 -0
  10. package/es/src/gis-map/stores/appData.d.ts +3 -0
  11. package/es/src/gis-map/stores/appData.mjs +9 -0
  12. package/es/src/gis-map/stores/index.d.ts +7 -0
  13. package/es/src/gis-map/stores/index.mjs +10 -0
  14. package/es/src/gis-map/style/index.css +13 -0
  15. package/es/src/gis-map/utils/FlyToPoints.d.ts +37 -0
  16. package/es/src/gis-map/utils/FlyToPoints.mjs +67 -0
  17. package/es/src/gis-map/utils/GreenWaveline.mjs +193 -0
  18. package/es/src/gis-map/utils/Layers.d.ts +31 -0
  19. package/es/src/gis-map/utils/Layers.mjs +99 -0
  20. package/es/src/gis-map/utils/common-utils.d.ts +65 -0
  21. package/es/src/gis-map/utils/common-utils.mjs +159 -0
  22. package/es/src/gis-map/utils/holo-flow/index.d.ts +15 -0
  23. package/es/src/gis-map/utils/holo-flow/index.mjs +50 -0
  24. package/es/src/gis-map/utils/holo-flow/signal-holo-flow.d.ts +40 -0
  25. package/es/src/gis-map/utils/holo-flow/signal-holo-flow.mjs +209 -0
  26. package/es/src/gis-map/utils/holo-flow/trace-external-renderer.d.ts +69 -0
  27. package/es/src/gis-map/utils/holo-flow/trace-external-renderer.mjs +316 -0
  28. package/es/src/gis-map/utils/holo-flow/trace-holo-flow.d.ts +18 -0
  29. package/es/src/gis-map/utils/holo-flow/trace-holo-flow.mjs +75 -0
  30. package/es/src/gis-map/utils/holo-flow/trace-layer-renderer.d.ts +35 -0
  31. package/es/src/gis-map/utils/holo-flow/trace-layer-renderer.mjs +286 -0
  32. package/es/src/gis-map/utils/index.d.ts +21 -0
  33. package/es/src/gis-map/utils/index.mjs +23 -0
  34. package/es/src/gis-map/utils/map-initializer.d.ts +50 -0
  35. package/es/src/gis-map/utils/map-initializer.mjs +248 -0
  36. package/es/src/gis-map/utils/open-drive-renderer/index.d.ts +9 -0
  37. package/es/src/gis-map/utils/open-drive-renderer/index.mjs +271 -0
  38. package/es/src/gis-map/utils/overlay.d.ts +83 -0
  39. package/es/src/gis-map/utils/overlay.mjs +149 -0
  40. package/es/src/gis-map/utils/queue-length.d.ts +14 -0
  41. package/es/src/gis-map/utils/queue-length.mjs +83 -0
  42. package/es/src/gis-map/utils/renderer/greenWaveline.d.ts +2 -0
  43. package/es/src/gis-map/utils/renderer/greenWaveline.mjs +169 -0
  44. package/es/src/gis-map/utils/road-config-tool/cross.d.ts +51 -0
  45. package/es/src/gis-map/utils/road-config-tool/cross.mjs +127 -0
  46. package/es/src/gis-map/utils/road-config-tool/entrance.d.ts +24 -0
  47. package/es/src/gis-map/utils/road-config-tool/entrance.mjs +79 -0
  48. package/es/src/gis-map/utils/road-config-tool/exit.d.ts +18 -0
  49. package/es/src/gis-map/utils/road-config-tool/exit.mjs +86 -0
  50. package/es/src/gis-map/utils/road-config-tool/index.d.ts +44 -0
  51. package/es/src/gis-map/utils/road-config-tool/index.mjs +112 -0
  52. package/es/src/gis-map/utils/road-config-tool/indicator-area.d.ts +22 -0
  53. package/es/src/gis-map/utils/road-config-tool/indicator-area.mjs +44 -0
  54. package/es/src/gis-map/utils/road-config-tool/lane.d.ts +21 -0
  55. package/es/src/gis-map/utils/road-config-tool/lane.mjs +35 -0
  56. package/es/src/gis-map/utils/road-config-tool/search-nearby-lanes.d.ts +62 -0
  57. package/es/src/gis-map/utils/road-config-tool/search-nearby-lanes.mjs +265 -0
  58. package/es/src/gis-map/utils/sketchView.d.ts +209 -0
  59. package/es/src/gis-map/utils/sketchView.mjs +516 -0
  60. package/es/src/gis-map/utils/sketchViewTool.d.ts +259 -0
  61. package/es/src/gis-map/utils/sketchViewTool.mjs +503 -0
  62. package/es/src/gis-map/utils/syncMapView.d.ts +43 -0
  63. package/es/src/gis-map/utils/syncMapView.mjs +64 -0
  64. package/es/src/gis-map/utils/traffic-flow.d.ts +66 -0
  65. package/es/src/gis-map/utils/traffic-flow.mjs +308 -0
  66. package/es/src/index.d.ts +1 -0
  67. package/es/src/index.mjs +4 -0
  68. package/es/src/types/index.d.ts +142 -0
  69. package/es/src/types/index.mjs +5 -0
  70. package/lib/index.d.ts +8 -0
  71. package/lib/index.js +1 -0
  72. package/lib/src/components.d.ts +9 -0
  73. package/lib/src/gis-map/gis-map.vue.d.ts +91 -0
  74. package/lib/src/gis-map/gis-map.vue.js +1 -0
  75. package/lib/src/gis-map/gis-map.vue2.js +1 -0
  76. package/lib/src/gis-map/index.d.ts +81 -0
  77. package/lib/src/gis-map/index.js +1 -0
  78. package/lib/src/gis-map/stores/appData.d.ts +3 -0
  79. package/lib/src/gis-map/stores/appData.js +1 -0
  80. package/lib/src/gis-map/stores/index.d.ts +7 -0
  81. package/lib/src/gis-map/stores/index.js +1 -0
  82. package/lib/src/gis-map/style/index.css +13 -0
  83. package/lib/src/gis-map/utils/FlyToPoints.d.ts +37 -0
  84. package/lib/src/gis-map/utils/FlyToPoints.js +1 -0
  85. package/lib/src/gis-map/utils/GreenWaveline.js +1 -0
  86. package/lib/src/gis-map/utils/Layers.d.ts +31 -0
  87. package/lib/src/gis-map/utils/Layers.js +1 -0
  88. package/lib/src/gis-map/utils/common-utils.d.ts +65 -0
  89. package/lib/src/gis-map/utils/common-utils.js +1 -0
  90. package/lib/src/gis-map/utils/holo-flow/index.d.ts +15 -0
  91. package/lib/src/gis-map/utils/holo-flow/index.js +1 -0
  92. package/lib/src/gis-map/utils/holo-flow/signal-holo-flow.d.ts +40 -0
  93. package/lib/src/gis-map/utils/holo-flow/signal-holo-flow.js +1 -0
  94. package/lib/src/gis-map/utils/holo-flow/trace-external-renderer.d.ts +69 -0
  95. package/lib/src/gis-map/utils/holo-flow/trace-external-renderer.js +1 -0
  96. package/lib/src/gis-map/utils/holo-flow/trace-holo-flow.d.ts +18 -0
  97. package/lib/src/gis-map/utils/holo-flow/trace-holo-flow.js +1 -0
  98. package/lib/src/gis-map/utils/holo-flow/trace-layer-renderer.d.ts +35 -0
  99. package/lib/src/gis-map/utils/holo-flow/trace-layer-renderer.js +1 -0
  100. package/lib/src/gis-map/utils/index.d.ts +21 -0
  101. package/lib/src/gis-map/utils/index.js +1 -0
  102. package/lib/src/gis-map/utils/map-initializer.d.ts +50 -0
  103. package/lib/src/gis-map/utils/map-initializer.js +1 -0
  104. package/lib/src/gis-map/utils/open-drive-renderer/index.d.ts +9 -0
  105. package/lib/src/gis-map/utils/open-drive-renderer/index.js +1 -0
  106. package/lib/src/gis-map/utils/overlay.d.ts +83 -0
  107. package/lib/src/gis-map/utils/overlay.js +1 -0
  108. package/lib/src/gis-map/utils/queue-length.d.ts +14 -0
  109. package/lib/src/gis-map/utils/queue-length.js +1 -0
  110. package/lib/src/gis-map/utils/renderer/greenWaveline.d.ts +2 -0
  111. package/lib/src/gis-map/utils/renderer/greenWaveline.js +43 -0
  112. package/lib/src/gis-map/utils/road-config-tool/cross.d.ts +51 -0
  113. package/lib/src/gis-map/utils/road-config-tool/cross.js +1 -0
  114. package/lib/src/gis-map/utils/road-config-tool/entrance.d.ts +24 -0
  115. package/lib/src/gis-map/utils/road-config-tool/entrance.js +1 -0
  116. package/lib/src/gis-map/utils/road-config-tool/exit.d.ts +18 -0
  117. package/lib/src/gis-map/utils/road-config-tool/exit.js +1 -0
  118. package/lib/src/gis-map/utils/road-config-tool/index.d.ts +44 -0
  119. package/lib/src/gis-map/utils/road-config-tool/index.js +1 -0
  120. package/lib/src/gis-map/utils/road-config-tool/indicator-area.d.ts +22 -0
  121. package/lib/src/gis-map/utils/road-config-tool/indicator-area.js +1 -0
  122. package/lib/src/gis-map/utils/road-config-tool/lane.d.ts +21 -0
  123. package/lib/src/gis-map/utils/road-config-tool/lane.js +1 -0
  124. package/lib/src/gis-map/utils/road-config-tool/search-nearby-lanes.d.ts +62 -0
  125. package/lib/src/gis-map/utils/road-config-tool/search-nearby-lanes.js +1 -0
  126. package/lib/src/gis-map/utils/sketchView.d.ts +209 -0
  127. package/lib/src/gis-map/utils/sketchView.js +1 -0
  128. package/lib/src/gis-map/utils/sketchViewTool.d.ts +259 -0
  129. package/lib/src/gis-map/utils/sketchViewTool.js +1 -0
  130. package/lib/src/gis-map/utils/syncMapView.d.ts +43 -0
  131. package/lib/src/gis-map/utils/syncMapView.js +1 -0
  132. package/lib/src/gis-map/utils/traffic-flow.d.ts +66 -0
  133. package/lib/src/gis-map/utils/traffic-flow.js +1 -0
  134. package/lib/src/index.d.ts +1 -0
  135. package/lib/src/index.js +1 -0
  136. package/lib/src/types/index.d.ts +142 -0
  137. package/lib/src/types/index.js +1 -0
  138. package/package.json +41 -0
@@ -0,0 +1,308 @@
1
+ import m from "@arcgis/core/Graphic";
2
+ import { Point as p } from "@arcgis/core/geometry";
3
+ import f from "@arcgis/core/layers/GraphicsLayer";
4
+ import u from "../stores/index.mjs";
5
+ import y from "./common-utils.mjs";
6
+ class x {
7
+ constructor(o) {
8
+ this.maxMissCount = 2, this.objectMissCount = /* @__PURE__ */ new Map(), this.showVehiclePlate = !0, this.showLog = !1, this.focusVehNo = "", this.view = o;
9
+ const e = u.useAppDataStore;
10
+ this.mapConfig = JSON.parse(JSON.stringify(e.mapConfig)), this.objectsLayer = new f(), this.view.map.add(this.objectsLayer);
11
+ }
12
+ /**
13
+ * 开始显示交通流数据
14
+ * @param url
15
+ * @param options
16
+ */
17
+ connectTrafficFlow(o, e) {
18
+ var t;
19
+ this.showVehiclePlate = (e == null ? void 0 : e.showVehiclePlate) !== !1, this.showLog = (e == null ? void 0 : e.showTraceLog) === !0, (t = this.webSocket) == null || t.close(), this.webSocket = new WebSocket(o), this.webSocket.onopen = () => {
20
+ console.log("websocket连接成功"), this.objectMissCount.clear();
21
+ }, this.webSocket.onclose = () => {
22
+ console.log("websocket连接关闭");
23
+ }, this.webSocket.onmessage = (a) => {
24
+ this.handleTrafficFlowData(a.data);
25
+ };
26
+ }
27
+ /**
28
+ * 停止显示交通流数据
29
+ */
30
+ disconnectTrafficFlow() {
31
+ var o;
32
+ (o = this.webSocket) == null || o.close(), this.objectsLayer.removeAll(), this.objectMissCount.clear();
33
+ }
34
+ /**
35
+ * 控制车辆号牌是否显示
36
+ * @param visible
37
+ */
38
+ toggleVehiclePlate(o) {
39
+ this.showVehiclePlate = o;
40
+ }
41
+ handleTrafficFlowData(o) {
42
+ const e = y.unzip(o);
43
+ if (!e)
44
+ return;
45
+ const t = [], a = [], n = [], l = JSON.parse(e);
46
+ this.showLog && console.log(l);
47
+ const s = l.data || l.rtPositionList;
48
+ if (!s || s.length === 0)
49
+ return;
50
+ const h = new Date(l.jgsj).getTime();
51
+ for (const r of s) {
52
+ const i = this.buildVehicleTrackData(r, h);
53
+ i && (this.objectMissCount.has(i.ptcId) ? t.push(i) : a.push(i), this.objectMissCount.set(i.ptcId, 0));
54
+ }
55
+ for (const r of this.objectMissCount) {
56
+ const i = r[0];
57
+ let c = r[1];
58
+ s.findIndex((b) => b.vehno === i) < 0 && (c++, this.objectMissCount.set(i, c), c === this.maxMissCount && n.push(i));
59
+ }
60
+ for (const r of n)
61
+ this.objectMissCount.delete(r);
62
+ this.addTrafficObjects(a), this.updateTrafficObjects(t), this.deleteTrafficObjects(n);
63
+ }
64
+ /**
65
+ * 新增交通对象
66
+ * @param objects
67
+ */
68
+ addTrafficObjects(o) {
69
+ const e = o.map(
70
+ (t) => new m({
71
+ geometry: new p({ longitude: t.x, latitude: t.y }),
72
+ symbol: this.createCIMSymbol(t),
73
+ attributes: t
74
+ })
75
+ );
76
+ this.objectsLayer.addMany(e);
77
+ }
78
+ /**
79
+ * 更新交通对象
80
+ * @param objects
81
+ */
82
+ updateTrafficObjects(o) {
83
+ o.forEach((e) => {
84
+ const t = this.objectsLayer.graphics.find(
85
+ (a) => a.getAttribute("ptcId") === e.ptcId
86
+ );
87
+ t && (t.geometry = new p({
88
+ longitude: e.x,
89
+ latitude: e.y
90
+ }), t.symbol = this.createCIMSymbol(e));
91
+ });
92
+ }
93
+ /**
94
+ * 基于轨迹数据创建cim符号,显示车辆图标和车牌号码
95
+ * @param vehTrack
96
+ * @returns
97
+ */
98
+ createCIMSymbol(o) {
99
+ const e = this.getPlateFontColor(o.plateColor);
100
+ return {
101
+ type: "cim",
102
+ data: {
103
+ type: "CIMSymbolReference",
104
+ primitiveOverrides: [
105
+ {
106
+ // 将textGraphic的TextString替换为graphic.attributes.showName
107
+ type: "CIMPrimitiveOverride",
108
+ primitiveName: "textGraphic",
109
+ propertyName: "TextString",
110
+ valueExpressionInfo: {
111
+ type: "CIMExpressionInfo",
112
+ title: "Custom",
113
+ expression: "$feature.showName",
114
+ returnType: "Default"
115
+ }
116
+ }
117
+ ],
118
+ symbol: {
119
+ type: "CIMPointSymbol",
120
+ symbolLayers: [
121
+ // 车辆号牌
122
+ {
123
+ type: "CIMVectorMarker",
124
+ enable: this.showVehiclePlate,
125
+ size: 32,
126
+ colorLocked: !0,
127
+ anchorPointUnits: "Relative",
128
+ frame: { xmin: -8, ymin: -8, xmax: 8, ymax: 8 },
129
+ markerGraphics: [
130
+ {
131
+ type: "CIMMarkerGraphic",
132
+ primitiveName: "textGraphic",
133
+ geometry: { x: 0, y: 0 },
134
+ symbol: {
135
+ type: "CIMTextSymbol",
136
+ height: 4,
137
+ horizontalAlignment: "Center",
138
+ offsetX: 0,
139
+ offsetY: 8,
140
+ haloSize: 1,
141
+ haloSymbol: {
142
+ type: "CIMPolygonSymbol",
143
+ symbolLayers: [
144
+ {
145
+ type: "CIMSolidFill",
146
+ enable: !0,
147
+ color: e.backgroundColor
148
+ }
149
+ ]
150
+ },
151
+ symbol: {
152
+ type: "CIMPolygonSymbol",
153
+ symbolLayers: [
154
+ {
155
+ type: "CIMSolidFill",
156
+ enable: !0,
157
+ color: e.fillColor
158
+ }
159
+ ]
160
+ },
161
+ verticalAlignment: "Center"
162
+ },
163
+ textString: ""
164
+ }
165
+ ],
166
+ scaleSymbolsProportionally: !0,
167
+ respectFrame: !0
168
+ },
169
+ // 车辆图标
170
+ {
171
+ type: "CIMPictureMarker",
172
+ enable: !0,
173
+ anchorPoint: {
174
+ x: 0,
175
+ y: 0
176
+ },
177
+ anchorPointUnits: "Relative",
178
+ size: 30,
179
+ rotation: o.heading,
180
+ rotateClockwise: !0,
181
+ textureFilter: "Picture",
182
+ url: `${this.mapConfig.assetsRoot}Images/car/${this.getCarPic(o.vehicleColor).pic}`
183
+ }
184
+ ]
185
+ }
186
+ }
187
+ };
188
+ }
189
+ /**
190
+ * 删除交通对象
191
+ * @param ids
192
+ */
193
+ deleteTrafficObjects(o) {
194
+ o.forEach((e) => {
195
+ const t = this.objectsLayer.graphics.find(
196
+ (a) => a.getAttribute("ptcId") === e
197
+ );
198
+ t && this.objectsLayer.remove(t);
199
+ });
200
+ }
201
+ buildVehicleTrackData(o, e) {
202
+ const { hpys: t, csys: a, lng: n, angle: l, hphm: s, lat: h, cx: r } = o, i = o.vehno || o.vehNo;
203
+ if (!i)
204
+ return;
205
+ let c;
206
+ if (s && s !== "0" && s !== 0 ? c = s.includes("-") ? s.split("-")[1] : s : c = i.includes("-") ? i.split("-")[1] : i, !["1", "2", "3", "4", "5", "6", 1, 2, 3, 4, 5, 6].includes(r)) {
207
+ console.log("车辆类型错误", r);
208
+ return;
209
+ }
210
+ return {
211
+ ptcId: i,
212
+ timestamp: e,
213
+ localTimestamp: e,
214
+ x: n,
215
+ y: h,
216
+ ptcType: Number(r),
217
+ heading: l,
218
+ vehicleColor: a || "z",
219
+ plateColor: s ? t : "99",
220
+ showName: c,
221
+ vehicleType: 99
222
+ };
223
+ }
224
+ /**
225
+ * 根据车身颜色属性返回对应的车辆图标
226
+ * @param carColor
227
+ * @returns
228
+ */
229
+ getCarPic(o) {
230
+ if (this.view.zoom <= 15)
231
+ return {
232
+ pic: "point.png",
233
+ color: [128, 128, 128, 255]
234
+ };
235
+ let e = "grey", t = [128, 128, 128, 255];
236
+ switch (o.toLowerCase()) {
237
+ case "a":
238
+ e = "white", t = [200, 200, 200, 255];
239
+ break;
240
+ case "b":
241
+ e = "grey", t = [128, 128, 128, 255];
242
+ break;
243
+ case "c":
244
+ e = "yellow", t = [255, 215, 0, 255];
245
+ break;
246
+ case "d":
247
+ e = "pink", t = [255, 182, 193, 255];
248
+ break;
249
+ case "e":
250
+ e = "red", t = [255, 0, 0, 255];
251
+ break;
252
+ case "f":
253
+ e = "purple", t = [128, 0, 128, 255];
254
+ break;
255
+ case "g":
256
+ e = "green", t = [124, 252, 0, 255];
257
+ break;
258
+ case "h":
259
+ e = "blue", t = [0, 191, 255, 255];
260
+ break;
261
+ case "i":
262
+ e = "brown", t = [244, 164, 96, 255];
263
+ break;
264
+ case "j":
265
+ e = "black", t = [0, 0, 0, 255];
266
+ break;
267
+ }
268
+ return {
269
+ pic: e + ".png",
270
+ color: t
271
+ };
272
+ }
273
+ /**
274
+ * 根据号牌颜色属性获取填充色和背景色
275
+ * @param plateColor
276
+ * @returns
277
+ */
278
+ getPlateFontColor(o) {
279
+ let e = [255, 255, 255, 255], t = [169, 169, 169, 255];
280
+ switch (o) {
281
+ case 0:
282
+ e = [0, 0, 0, 255], t = [255, 255, 255, 255];
283
+ break;
284
+ case 1:
285
+ e = [0, 0, 0, 255], t = [244, 164, 96, 255];
286
+ break;
287
+ case 2:
288
+ e = [255, 255, 255, 255], t = [65, 105, 225, 255];
289
+ break;
290
+ case 3:
291
+ e = [255, 255, 255, 255], t = [0, 0, 0, 255];
292
+ break;
293
+ case 15:
294
+ e = [244, 164, 96, 255], t = [0, 250, 154, 255];
295
+ break;
296
+ case 16:
297
+ e = [0, 0, 0, 255], t = [0, 250, 154, 255];
298
+ break;
299
+ }
300
+ return {
301
+ fillColor: e,
302
+ backgroundColor: t
303
+ };
304
+ }
305
+ }
306
+ export {
307
+ x as default
308
+ };
@@ -0,0 +1 @@
1
+ export * from './gis-map';
@@ -0,0 +1,4 @@
1
+ import { GisMap as r } from "./gis-map/index.mjs";
2
+ export {
3
+ r as GisMap
4
+ };
@@ -0,0 +1,142 @@
1
+ /**
2
+ * 路口象限,路口中心点为坐标轴原点,正北方向为0°。
3
+ * 225° ~ 315°:西象限。
4
+ * 315° ~ 45°:北象限。
5
+ * 45° ~ 135°:东象限。
6
+ * 135° ~ 225°:南象限。
7
+ */
8
+ export declare enum QuadrantCode {
9
+ West = "1",
10
+ North = "2",
11
+ East = "3",
12
+ South = "4"
13
+ }
14
+ export interface IResult {
15
+ status: number;
16
+ message: string;
17
+ result?: any;
18
+ }
19
+ export interface IVehicleTrack {
20
+ time?: string;
21
+ timestamp: number;
22
+ localTimestamp: number;
23
+ crossId?: string;
24
+ ptcId: string;
25
+ x: number;
26
+ y: number;
27
+ ptcType: number;
28
+ vehicleType: number;
29
+ heading: number;
30
+ vehicleColor: number | string;
31
+ plateColor: number;
32
+ showName?: string;
33
+ state?: string;
34
+ fixAngle?: number;
35
+ speed?: number;
36
+ plateNo?: string;
37
+ }
38
+ export interface ILaneNumberParams {
39
+ lanes: {
40
+ crossId: string;
41
+ laneNumber: string;
42
+ stopLineCenter: number[];
43
+ laneDirection?: number;
44
+ }[];
45
+ }
46
+ export interface ISetMapCenterParams {
47
+ center: number[];
48
+ camera?: {};
49
+ zoom?: number;
50
+ duration?: number;
51
+ }
52
+ export interface ILookAtParams {
53
+ center: number[];
54
+ height: number;
55
+ tilt?: number;
56
+ heading?: number;
57
+ duration?: number;
58
+ }
59
+ export interface IStartCrossBufferParam {
60
+ crossId: string;
61
+ crossCenter: number[];
62
+ bufferRadius?: number;
63
+ }
64
+ export interface IPoint {
65
+ type: string;
66
+ x: number;
67
+ y: number;
68
+ z?: number;
69
+ }
70
+ export interface ILine {
71
+ type: string;
72
+ paths: number[][][];
73
+ }
74
+ export interface IPolygon {
75
+ type: string;
76
+ rings: number[][][];
77
+ }
78
+ export interface IPointSymbol {
79
+ type: string;
80
+ style?: string;
81
+ url?: string;
82
+ width?: number;
83
+ height?: number;
84
+ horizontalOrigin?: string;
85
+ verticalOrigin?: string;
86
+ color?: string;
87
+ size?: number;
88
+ }
89
+ export interface ILineSymbol {
90
+ type: string;
91
+ color?: string | number[];
92
+ width?: number;
93
+ height?: number;
94
+ extrudeHeight?: number;
95
+ cornerType?: string;
96
+ }
97
+ export interface IPolygonSymbol {
98
+ type: string;
99
+ style?: string;
100
+ color?: string | number[];
101
+ outline?: {
102
+ color?: string | number[];
103
+ width?: number;
104
+ };
105
+ }
106
+ export interface IOverlay {
107
+ geometry: IPoint | ILine | IPolygon;
108
+ id?: string;
109
+ visible?: boolean;
110
+ symbol?: IPointSymbol | ILineSymbol | IPolygonSymbol;
111
+ properties?: any;
112
+ }
113
+ export interface IOverlayParam {
114
+ type?: string;
115
+ defaultSymbol?: IPointSymbol | ILineSymbol | IPolygonSymbol;
116
+ defaultVisible?: boolean;
117
+ overlays: Array<IOverlay>;
118
+ visible?: boolean;
119
+ }
120
+ export interface ISetMapCameraParams {
121
+ crossId: string;
122
+ zoom?: number;
123
+ duration?: number;
124
+ }
125
+ export interface IQueueLengthParams {
126
+ crossNo: string;
127
+ laneId: number;
128
+ queueLength: number;
129
+ }
130
+ export interface ITraceRendererInterface {
131
+ addVehicles(objects: IVehicleTrack[]): void;
132
+ updateVehicles(objects: IVehicleTrack[]): void;
133
+ deleteVehicles(idList: string[]): void;
134
+ clearVehicles(): void;
135
+ updatePanelContent(contentType: EVehiclePlateState): void;
136
+ }
137
+ export declare enum EVehiclePlateState {
138
+ None = 0,
139
+ PlateNumber = 1,
140
+ Id = 2,
141
+ Mix = 3
142
+ }
@@ -0,0 +1,5 @@
1
+ var N = /* @__PURE__ */ ((r) => (r.West = "1", r.North = "2", r.East = "3", r.South = "4", r))(N || {}), x = /* @__PURE__ */ ((r) => (r[r.None = 0] = "None", r[r.PlateNumber = 1] = "PlateNumber", r[r.Id = 2] = "Id", r[r.Mix = 3] = "Mix", r))(x || {});
2
+ export {
3
+ x as EVehiclePlateState,
4
+ N as QuadrantCode
5
+ };
package/lib/index.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { App } from 'vue';
2
+ export * from './src/index';
3
+ import MapUtils from './src/gis-map/utils';
4
+ export { MapUtils };
5
+ declare const _default: {
6
+ install: (app: App, options: any) => void;
7
+ };
8
+ export default _default;
package/lib/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./src/index.js"),r=require("./src/gis-map/utils/index.js"),n=require("./src/gis-map/index.js"),l={install:(e,i)=>{for(const o in s)e.use(s[o]);const{gisviewerAssetsRoot:t}=i;e.config.globalProperties.$gisviewerAssetsRoot=t||""}};exports.MapUtils=r.default;exports.GisMap=n.GisMap;exports.default=l;
@@ -0,0 +1,9 @@
1
+ import * as components from './index';
2
+ declare module '@vue/runtime-core' {
3
+ export interface GlobalComponents {
4
+ EaButton: typeof components.Button;
5
+ EaIcon: typeof components.Icon;
6
+ GisMap: typeof components.GisMap;
7
+ }
8
+ }
9
+ export {};
@@ -0,0 +1,91 @@
1
+ import MapView from '@arcgis/core/views/MapView';
2
+ import SceneView from '@arcgis/core/views/SceneView';
3
+ import { ILaneNumberParams, ILookAtParams, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IStartCrossBufferParam } from '../types';
4
+ import HoloFlow from './utils/holo-flow';
5
+ import MapInitializer from './utils/map-initializer';
6
+ import OpenDriveRenderer from './utils/open-drive-renderer';
7
+ import Overlay from './utils/overlay';
8
+ import QueueLength from './utils/queue-length';
9
+ import RoadConfigTool from './utils/road-config-tool';
10
+ import TrafficFlow from './utils/traffic-flow';
11
+ declare const _sfc_main: import("vue").DefineComponent<{
12
+ config: {
13
+ type: StringConstructor;
14
+ required: true;
15
+ };
16
+ assetsRoot: {
17
+ type: StringConstructor;
18
+ required: false;
19
+ };
20
+ }, {
21
+ mapContainer: any;
22
+ view: MapView | SceneView;
23
+ mapInitializer: MapInitializer;
24
+ roadConfigTool: RoadConfigTool;
25
+ trafficFlow: TrafficFlow;
26
+ holoFlow: HoloFlow;
27
+ overlay: Overlay;
28
+ queueLength: QueueLength;
29
+ openDriveRenderer: OpenDriveRenderer;
30
+ mapViewer: import("vue").ComputedRef<MapView | SceneView>;
31
+ setMapCenter: (params: ISetMapCenterParams) => Promise<import("../types").IResult>;
32
+ setMapCamera: (params: ISetMapCameraParams) => Promise<import("../types").IResult>;
33
+ lookAt: (params: ILookAtParams) => Promise<void>;
34
+ requestCoordinateTransform: (points: number[][], callback: (points: number[][]) => void) => {
35
+ handle: number;
36
+ points: number[][];
37
+ };
38
+ cancelCoordinateTransform: (handle: number) => void;
39
+ setMapZoomRange: (zoomRange: {
40
+ min?: number;
41
+ max?: number;
42
+ }) => void;
43
+ showLaneNumber: (params: ILaneNumberParams) => import("../types").IResult;
44
+ clearLaneNumber: () => void;
45
+ initializeAreaTool: (params: IStartCrossBufferParam) => Promise<import("../types").IResult>;
46
+ calCrossIndicatorArea: () => Promise<void>;
47
+ calRoadIndicatorArea: () => Promise<void>;
48
+ connectCarFlow: (url: string, options?: any) => Promise<void>;
49
+ disconnectCarFlow: () => void;
50
+ handleHoloVehicleTraceData: (vehicleTrace: any) => void;
51
+ clearHoloTrace: () => void;
52
+ handleHoloSignalData: (signalData: any) => Promise<void>;
53
+ clearHoloSignal: () => void;
54
+ toggleTrafficInfo: (params: {
55
+ name: string;
56
+ visible: boolean;
57
+ }) => void;
58
+ toggleVehicleInfo: (contentType: string) => void;
59
+ addOverlays: (params: IOverlayParam) => void;
60
+ removeOverlaysByType: (types: string[]) => void;
61
+ removeOverlaysById: (ids: string[]) => void;
62
+ removeAllOverlays: () => void;
63
+ showAllOverlays: () => void;
64
+ updateQueueLength: (params: IQueueLengthParams[]) => void;
65
+ removeQueueLength: () => void;
66
+ showOpenDrive: (server: string, projectName: string) => Promise<void>;
67
+ hideOpenDrive: () => Promise<void>;
68
+ props: {
69
+ config: string;
70
+ assetsRoot?: string | undefined;
71
+ };
72
+ emit: {
73
+ (e: 'mapLoaded'): void;
74
+ (e: 'markerClick', type: string, id: string, detail: any, event: any): void;
75
+ (e: 'mapClick', mapPoint: number[], screenPoint: number[], event: any): void;
76
+ };
77
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("mapLoaded" | "markerClick" | "mapClick")[], "mapLoaded" | "markerClick" | "mapClick", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
78
+ config: {
79
+ type: StringConstructor;
80
+ required: true;
81
+ };
82
+ assetsRoot: {
83
+ type: StringConstructor;
84
+ required: false;
85
+ };
86
+ }>> & {
87
+ onMapLoaded?: ((...args: any[]) => any) | undefined;
88
+ onMarkerClick?: ((...args: any[]) => any) | undefined;
89
+ onMapClick?: ((...args: any[]) => any) | undefined;
90
+ }, {}>;
91
+ export default _sfc_main;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),y=require("./stores/index.js");require("./style/index.css");const g=require("./utils/holo-flow/index.js"),I=require("./utils/map-initializer.js"),b=require("./utils/open-drive-renderer/index.js"),q=require("./utils/overlay.js"),D=require("./utils/queue-length.js"),h=require("./utils/road-config-tool/index.js"),M=require("./utils/traffic-flow.js"),S={class:"gis-viewer"},H=l.defineComponent({name:"gis-map",props:{config:null,assetsRoot:null},emits:["mapLoaded","markerClick","mapClick"],setup(O,{expose:T,emit:d}){const w=O,m=l.ref(null);let r,s,n,o,a,t,i,u;y.registerStore(),l.onMounted(async()=>{if(!m.value)return;const e=l.getCurrentInstance(),{$gisviewerAssetsRoot:c}=e.appContext.config.globalProperties,C=await(await fetch(w.config)).json();C.assetsRoot=w.assetsRoot||c;const A=y.default.useAppDataStore;A.mapConfig=C,s=new I.default,r=await s.initialize({container:m.value,markerClickCallback:(p,f,v,L)=>{d("markerClick",p,f,v,L)},mapClickCallback:(p,f,v)=>{d("mapClick",p,f,v)}}),a=new g.default(r),d("mapLoaded")});const k=l.computed(()=>r);return T({mapViewer:k,setMapCenter:async e=>await s.setMapCenter(e),lookAt:async e=>await s.lookAt(e),setMapCamera:async e=>await s.setMapCamera(e),setMapZoomRange:e=>{s.setMapZoomRange(e)},requestCoordinateTransform:(e,c)=>s.requestCoordinateTransform(e,c),cancelCoordinateTransform:e=>{s.cancelCoordinateTransform(e)},addOverlays:e=>{t||(t=new q.default(r)),t.addOverlays(e)},showAllOverlays:()=>{t==null||t.showAllOverlays()},removeOverlaysByType:e=>{t==null||t.removeOverlaysByType(e)},removeOverlaysById:e=>{t==null||t.removeOverlaysById(e)},removeAllOverlays:()=>{t==null||t.removeAllOverlays()},showLaneNumber:e=>(n||(n=new h.default(r)),n.showLaneNumber(e)),clearLaneNumber:()=>{n==null||n.clearLaneNumber()},initializeAreaTool:async e=>(n||(n=new h.default(r)),await n.initializeSearch(e)),calCrossIndicatorArea:async()=>n==null?void 0:n.calCrossIndicatorArea(),calRoadIndicatorArea:async()=>{},connectCarFlow:async(e,c)=>{o||(o=new M.default(r)),o.connectTrafficFlow(e,c)},disconnectCarFlow:()=>{o==null||o.disconnectTrafficFlow()},handleHoloVehicleTraceData:e=>{a||(a=new g.default(r)),a.handleVehicleTraceData(e)},clearHoloTrace:()=>{a==null||a.clearHoloTrace()},handleHoloSignalData:async e=>{a||(a=new g.default(r)),await a.handleSignalData(e)},clearHoloSignal:()=>{a==null||a.clearHoloSignal()},toggleTrafficInfo:e=>{switch(e.name.toLowerCase()){case"vehiclePlate".toLowerCase():o==null||o.toggleVehiclePlate(e.visible);break}},toggleVehicleInfo:e=>{a==null||a.updatePanelContent(e)},updateQueueLength:e=>{i||(i=new D.default(r)),i.updateQueueLength(e)},removeQueueLength:()=>{i==null||i.removeQueueLength()},showOpenDrive:async(e,c)=>{u||(u=new b.default(r)),await u.showOpenDrive(e,c)},hideOpenDrive:async()=>{await(u==null?void 0:u.hideOpenDrive())}}),(e,c)=>(l.openBlock(),l.createElementBlock("div",S,[l.createElementVNode("div",{class:"gis-viewer-main",ref_key:"mapContainer",ref:m},null,512)]))}});exports.default=H;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./gis-map.vue.js");exports.default=e.default;
@@ -0,0 +1,81 @@
1
+ export declare const GisMap: import("@easyest/utils/dist/lib/withinstall").SFCWithInstall<import("vue").DefineComponent<{
2
+ config: {
3
+ type: StringConstructor;
4
+ required: true;
5
+ };
6
+ assetsRoot: {
7
+ type: StringConstructor;
8
+ required: false;
9
+ };
10
+ }, {
11
+ mapContainer: any;
12
+ view: __esri.MapView | __esri.SceneView;
13
+ mapInitializer: import("./utils/map-initializer").default;
14
+ roadConfigTool: import("./utils/road-config-tool").default;
15
+ trafficFlow: import("./utils/traffic-flow").default;
16
+ holoFlow: import("./utils/holo-flow").default;
17
+ overlay: import("./utils/overlay").default;
18
+ queueLength: import("./utils/queue-length").default;
19
+ openDriveRenderer: import("./utils/open-drive-renderer").default;
20
+ mapViewer: import("vue").ComputedRef<__esri.MapView | __esri.SceneView>;
21
+ setMapCenter: (params: import("../types").ISetMapCenterParams) => Promise<import("../types").IResult>;
22
+ setMapCamera: (params: import("../types").ISetMapCameraParams) => Promise<import("../types").IResult>;
23
+ lookAt: (params: import("../types").ILookAtParams) => Promise<void>;
24
+ requestCoordinateTransform: (points: number[][], callback: (points: number[][]) => void) => {
25
+ handle: number;
26
+ points: number[][];
27
+ };
28
+ cancelCoordinateTransform: (handle: number) => void;
29
+ setMapZoomRange: (zoomRange: {
30
+ min?: number | undefined;
31
+ max?: number | undefined;
32
+ }) => void;
33
+ showLaneNumber: (params: import("../types").ILaneNumberParams) => import("../types").IResult;
34
+ clearLaneNumber: () => void;
35
+ initializeAreaTool: (params: import("../types").IStartCrossBufferParam) => Promise<import("../types").IResult>;
36
+ calCrossIndicatorArea: () => Promise<void>;
37
+ calRoadIndicatorArea: () => Promise<void>;
38
+ connectCarFlow: (url: string, options?: any) => Promise<void>;
39
+ disconnectCarFlow: () => void;
40
+ handleHoloVehicleTraceData: (vehicleTrace: any) => void;
41
+ clearHoloTrace: () => void;
42
+ handleHoloSignalData: (signalData: any) => Promise<void>;
43
+ clearHoloSignal: () => void;
44
+ toggleTrafficInfo: (params: {
45
+ name: string;
46
+ visible: boolean;
47
+ }) => void;
48
+ toggleVehicleInfo: (contentType: string) => void;
49
+ addOverlays: (params: import("../types").IOverlayParam) => void;
50
+ removeOverlaysByType: (types: string[]) => void;
51
+ removeOverlaysById: (ids: string[]) => void;
52
+ removeAllOverlays: () => void;
53
+ showAllOverlays: () => void;
54
+ updateQueueLength: (params: import("../types").IQueueLengthParams[]) => void;
55
+ removeQueueLength: () => void;
56
+ showOpenDrive: (server: string, projectName: string) => Promise<void>;
57
+ hideOpenDrive: () => Promise<void>;
58
+ props: {
59
+ config: string;
60
+ assetsRoot?: string | undefined;
61
+ };
62
+ emit: {
63
+ (e: "mapLoaded"): void;
64
+ (e: "markerClick", type: string, id: string, detail: any, event: any): void;
65
+ (e: "mapClick", mapPoint: number[], screenPoint: number[], event: any): void;
66
+ };
67
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("mapLoaded" | "markerClick" | "mapClick")[], "mapLoaded" | "markerClick" | "mapClick", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
68
+ config: {
69
+ type: StringConstructor;
70
+ required: true;
71
+ };
72
+ assetsRoot: {
73
+ type: StringConstructor;
74
+ required: false;
75
+ };
76
+ }>> & {
77
+ onMapLoaded?: ((...args: any[]) => any) | undefined;
78
+ onMarkerClick?: ((...args: any[]) => any) | undefined;
79
+ onMapClick?: ((...args: any[]) => any) | undefined;
80
+ }, {}>>;
81
+ export default GisMap;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("@easyest/utils"),u=require("./gis-map.vue.js"),e=t.withInstall(u.default);exports.GisMap=e;exports.default=e;
@@ -0,0 +1,3 @@
1
+ export declare const useAppDataStore: import("pinia").StoreDefinition<"appData", {
2
+ mapConfig: {};
3
+ }, {}, {}>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("pinia"),t=e.defineStore("appData",{state:()=>({mapConfig:{}})});exports.useAppDataStore=t;