gisviewer-vue3-arcgis 1.0.227 → 1.0.229

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 (40) hide show
  1. package/es/src/gis-map/gis-map.vue.d.ts +8 -2
  2. package/es/src/gis-map/gis-map.vue.mjs +2 -2
  3. package/es/src/gis-map/index.d.ts +2 -2
  4. package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/district-controller.d.ts +2 -1
  5. package/es/src/gis-map/utils/signal-control-area/district-controller.mjs +45 -0
  6. package/es/src/gis-map/utils/signal-control-area/district-renderer.d.ts +40 -0
  7. package/es/src/gis-map/utils/signal-control-area/district-renderer.mjs +123 -0
  8. package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/layer-symbol.d.ts +8 -1
  9. package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/layer-symbol.mjs +74 -56
  10. package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/show-area.d.ts +4 -14
  11. package/es/src/gis-map/utils/signal-control-area/show-area.mjs +397 -0
  12. package/es/src/gis-map/utils/signal-control-area/signal-renderer.d.ts +22 -0
  13. package/es/src/gis-map/utils/signal-control-area/signal-renderer.mjs +124 -0
  14. package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +27 -0
  15. package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.mjs +142 -0
  16. package/lib/src/gis-map/gis-map.vue.d.ts +8 -2
  17. package/lib/src/gis-map/gis-map.vue.js +1 -1
  18. package/lib/src/gis-map/index.d.ts +2 -2
  19. package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/district-controller.d.ts +2 -1
  20. package/lib/src/gis-map/utils/signal-control-area/district-controller.js +1 -0
  21. package/lib/src/gis-map/utils/signal-control-area/district-renderer.d.ts +40 -0
  22. package/lib/src/gis-map/utils/signal-control-area/district-renderer.js +1 -0
  23. package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/layer-symbol.d.ts +8 -1
  24. package/lib/src/gis-map/utils/signal-control-area/layer-symbol.js +1 -0
  25. package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/show-area.d.ts +4 -14
  26. package/lib/src/gis-map/utils/signal-control-area/show-area.js +1 -0
  27. package/lib/src/gis-map/utils/signal-control-area/signal-renderer.d.ts +22 -0
  28. package/lib/src/gis-map/utils/signal-control-area/signal-renderer.js +1 -0
  29. package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +27 -0
  30. package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.js +1 -0
  31. package/package.json +1 -1
  32. package/es/src/gis-map/utils/signal-control-area-controller/district-controller.mjs +0 -38
  33. package/es/src/gis-map/utils/signal-control-area-controller/show-area.mjs +0 -454
  34. package/lib/src/gis-map/utils/signal-control-area-controller/district-controller.js +0 -1
  35. package/lib/src/gis-map/utils/signal-control-area-controller/layer-symbol.js +0 -1
  36. package/lib/src/gis-map/utils/signal-control-area-controller/show-area.js +0 -1
  37. /package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.d.ts +0 -0
  38. /package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.mjs +0 -0
  39. /package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.d.ts +0 -0
  40. /package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.js +0 -0
@@ -1,454 +0,0 @@
1
- import * as L from "@arcgis/core/core/reactiveUtils";
2
- import { Polygon as b } from "@arcgis/core/geometry";
3
- import { webMercatorToGeographic as w } from "@arcgis/core/geometry/support/webMercatorUtils";
4
- import y from "@arcgis/core/Graphic";
5
- import c from "@arcgis/core/layers/FeatureLayer";
6
- import C from "@arcgis/core/layers/GraphicsLayer";
7
- import E from "@turf/buffer";
8
- import D from "@turf/convex";
9
- import * as d from "@turf/helpers";
10
- import m from "concaveman";
11
- import F from "../../stores/index.mjs";
12
- import k from "./district-controller.mjs";
13
- import { districtDashLineLayerOptions as G, districtSolidLineLayerOptions as v, subDistrictLayerOptions as x, signalMarkerLayerOptions as S, signalPictureLayerOptions as I, signalClusterLayerOptions as M } from "./layer-symbol.mjs";
14
- class V {
15
- constructor(e) {
16
- this.detachmentLayerLoaded = !1, this.districtControllerOid = 0, this.subDistrictControllerOid = 0, this.signalOid = 0, this.popupEnabled = !0, this.districtGraphics = [], this.subDistrictGraphics = [], this.signalGraphics = [], this.view = e, this.hasGpu = localStorage.getItem("gpu") !== "Unknown";
17
- const t = F.useAppDataStore;
18
- this.mapConfig = JSON.parse(JSON.stringify(t.mapConfig)), this.detachmentLayer = new C(), this.districtControllerDashLayer = new c(
19
- G
20
- ), this.districtControllerDashLayer.spatialReference = e.spatialReference, this.districtControllerSolidLayer = new c(
21
- v
22
- ), this.districtControllerSolidLayer.spatialReference = e.spatialReference, this.districtControllerSolidLayer.popupEnabled = this.popupEnabled, this.subDistrictControllerLayer = new c(
23
- x
24
- ), this.subDistrictControllerLayer.spatialReference = e.spatialReference, this.subDistrictControllerLayer.popupEnabled = this.popupEnabled, this.signalMarkerLayer = new c(
25
- S
26
- ), this.signalMarkerLayer.spatialReference = e.spatialReference, this.signalMarkerLayer.popupEnabled = this.popupEnabled, this.signalPictureLayer = new c(
27
- I
28
- ), this.signalPictureLayer.spatialReference = e.spatialReference, this.signalPictureLayer.popupEnabled = this.popupEnabled, this.signalClusterLayer = new c(
29
- M
30
- ), this.signalClusterLayer.spatialReference = e.spatialReference, this.signalClusterLayer.popupEnabled = this.popupEnabled, this.view.map.addMany([
31
- this.detachmentLayer,
32
- this.districtControllerSolidLayer,
33
- this.districtControllerDashLayer,
34
- this.signalMarkerLayer,
35
- this.signalPictureLayer,
36
- this.signalClusterLayer,
37
- this.subDistrictControllerLayer
38
- ]), this.clickHandler = this.view.on("click", this.viewHitTest.bind(this));
39
- }
40
- /**
41
- * 显示所有区控、子区、信号机
42
- * @param params
43
- * @returns
44
- */
45
- async showSignalControlArea(e) {
46
- this.detachmentLayerLoaded || await this.loadDetachmentLayer(), await this.clearSignalControlArea(), this.districtControllerDashLayer.visible = !1, this.districtControllerSolidLayer.visible = !1, this.subDistrictControllerLayer.visible = !1, this.signalMarkerLayer.visible = !1, this.signalPictureLayer.visible = !1, this.signalClusterLayer.visible = !0;
47
- for (const t of e.areaList) {
48
- const s = new k(
49
- t,
50
- e.style || ""
51
- );
52
- this.generateGraphic(s, !0, e.style);
53
- }
54
- return await this.districtControllerDashLayer.applyEdits({
55
- addFeatures: this.districtGraphics
56
- }), await this.districtControllerSolidLayer.applyEdits({
57
- addFeatures: this.districtGraphics
58
- }), this.view.goTo(this.districtGraphics), this.districtGraphics = [], await this.subDistrictControllerLayer.applyEdits({
59
- addFeatures: this.subDistrictGraphics
60
- }), this.subDistrictGraphics = [], await this.signalMarkerLayer.applyEdits({
61
- addFeatures: this.signalGraphics
62
- }), await this.signalPictureLayer.applyEdits({
63
- addFeatures: this.signalGraphics
64
- }), await this.signalClusterLayer.applyEdits({
65
- addFeatures: this.signalGraphics
66
- }), this.signalGraphics = [], { status: 0, message: "ok" };
67
- }
68
- /**
69
- * 清空区控、子区、信号机
70
- * @returns
71
- */
72
- async clearSignalControlArea() {
73
- this.districtGraphics = [], this.subDistrictGraphics = [], this.signalGraphics = [], this.districtControllerOid = 0, this.subDistrictControllerOid = 0, this.signalOid = 0;
74
- let e = await this.districtControllerDashLayer.queryFeatures();
75
- return await this.districtControllerDashLayer.applyEdits({
76
- deleteFeatures: e.features
77
- }), this.districtControllerDashLayer.definitionExpression = "1=1", e = await this.districtControllerSolidLayer.queryFeatures(), await this.districtControllerSolidLayer.applyEdits({
78
- deleteFeatures: e.features
79
- }), this.districtControllerSolidLayer.definitionExpression = "1=1", e = await this.subDistrictControllerLayer.queryFeatures(), await this.subDistrictControllerLayer.applyEdits({
80
- deleteFeatures: e.features
81
- }), this.subDistrictControllerLayer.definitionExpression = "1=1", e = await this.signalMarkerLayer.queryFeatures(), await this.signalMarkerLayer.applyEdits({
82
- deleteFeatures: e.features
83
- }), this.signalMarkerLayer.definitionExpression = "1=1", e = await this.signalPictureLayer.queryFeatures(), await this.signalPictureLayer.applyEdits({
84
- deleteFeatures: e.features
85
- }), this.signalPictureLayer.definitionExpression = "1=1", e = await this.signalClusterLayer.queryFeatures(), await this.signalClusterLayer.applyEdits({
86
- deleteFeatures: e.features
87
- }), this.signalClusterLayer.definitionExpression = "1=1", { status: 0, message: "ok" };
88
- }
89
- /**
90
- * 设置区控、子区、信号机图层可见性
91
- * @param layerName
92
- * @param visible
93
- */
94
- setLayerVisibility(e) {
95
- switch (e.visible === !1 && this.view.closePopup(), e.id) {
96
- case "district":
97
- this.districtControllerDashLayer.visible = e.visible, this.districtControllerSolidLayer.visible = e.visible;
98
- break;
99
- case "subDistrict":
100
- this.subDistrictControllerLayer.visible = e.visible;
101
- break;
102
- case "signal":
103
- this.signalMarkerLayer.visible = e.visible, this.signalPictureLayer.visible = e.visible;
104
- break;
105
- case "signalCluster":
106
- this.signalClusterLayer.visible = e.visible;
107
- break;
108
- case "shanghai_district":
109
- this.detachmentLayer.visible = e.visible;
110
- break;
111
- }
112
- return { status: 0, message: "ok" };
113
- }
114
- /**
115
- * 定位区控、子区、信号机
116
- * @param params
117
- * @returns
118
- */
119
- async locateSignalControlArea(e) {
120
- switch (e.type) {
121
- case "district": {
122
- const i = this.districtControllerDashLayer.createQuery();
123
- i.where = `id = '${e.id}'`, i.returnGeometry = !0, i.outFields = ["*"];
124
- const r = await this.districtControllerDashLayer.queryFeatures(
125
- i
126
- );
127
- return r.features.length > 0 ? (await this.view.goTo(r.features, {
128
- duration: this.hasGpu ? 1e3 : 0
129
- }), { status: 0, message: "ok" }) : { status: 1, message: "未找到区控" };
130
- }
131
- case "subDistrict":
132
- const t = this.subDistrictControllerLayer.createQuery();
133
- t.where = `id = '${e.id}'`, t.returnGeometry = !0, t.outFields = ["*"];
134
- const s = await this.subDistrictControllerLayer.queryFeatures(
135
- t
136
- );
137
- return s.features.length > 0 ? (await this.view.goTo(s.features, {
138
- duration: this.hasGpu ? 1e3 : 0
139
- }), { status: 0, message: "ok" }) : { status: 1, message: "未找到子区" };
140
- case "signal": {
141
- const i = this.signalMarkerLayer.createQuery();
142
- i.where = `id = '${e.id}'`, i.returnGeometry = !0, i.outFields = ["*"];
143
- const r = await this.signalMarkerLayer.queryFeatures(i);
144
- return r.features.length > 0 ? (await this.view.goTo(
145
- { target: r.features[0], scale: e.scale || 1e3 },
146
- {
147
- duration: this.hasGpu ? 1e3 : 0
148
- }
149
- ), { status: 0, message: "ok" }) : { status: 1, message: "未找到信号机" };
150
- }
151
- default:
152
- return { status: 1, message: "未知类型" };
153
- }
154
- }
155
- /**
156
- * 高亮指定的区控、子区、信号机,其他隐藏
157
- * @param params
158
- * @returns
159
- */
160
- async highlightSignalControlArea(e) {
161
- var t;
162
- switch ((t = this.view.popup) != null && t.visible && this.view.popup.close(), e.type) {
163
- case "district": {
164
- const s = this.districtControllerDashLayer.definitionExpression;
165
- this.districtControllerDashLayer.definitionExpression = `id = '${e.id}'`;
166
- const i = await this.districtControllerDashLayer.queryFeatures();
167
- return i.features.length > 0 ? (this.districtControllerSolidLayer.definitionExpression = `id = '${e.id}'`, this.subDistrictControllerLayer.definitionExpression = `parentId = '${e.id}'`, this.signalMarkerLayer.definitionExpression = `districtId = '${e.id}'`, this.signalPictureLayer.definitionExpression = `districtId = '${e.id}'`, this.signalClusterLayer.definitionExpression = `districtId = '${e.id}'`, await this.view.goTo(i.features, {
168
- duration: this.hasGpu ? 1e3 : 0
169
- }), { status: 0, message: "ok" }) : (this.districtControllerDashLayer.definitionExpression = s, { status: 1, message: "未找到区控" });
170
- }
171
- case "subDistrict": {
172
- const s = this.subDistrictControllerLayer.definitionExpression;
173
- this.subDistrictControllerLayer.definitionExpression = `id = '${e.id}'`;
174
- const i = await this.subDistrictControllerLayer.queryFeatures();
175
- if (i.features.length > 0) {
176
- this.signalMarkerLayer.definitionExpression = `subDistrictId = '${e.id}'`, this.signalPictureLayer.definitionExpression = `subDistrictId = '${e.id}'`, this.signalClusterLayer.definitionExpression = `subDistrictId = '${e.id}'`;
177
- const o = i.features[0].attributes.parentId;
178
- return this.districtControllerDashLayer.definitionExpression = `id = '${o}'`, this.districtControllerSolidLayer.definitionExpression = `id = '${o}'`, await this.view.goTo(i.features, {
179
- duration: this.hasGpu ? 1e3 : 0
180
- }), { status: 0, message: "ok" };
181
- } else
182
- return this.subDistrictControllerLayer.definitionExpression = s, { status: 1, message: "未找到子区" };
183
- }
184
- case "signal": {
185
- const s = this.signalMarkerLayer.definitionExpression;
186
- this.signalMarkerLayer.definitionExpression = `id = '${e.id}'`;
187
- const i = await this.signalMarkerLayer.queryFeatures();
188
- if (i.features.length > 0) {
189
- this.signalPictureLayer.definitionExpression = `id = '${e.id}'`, this.signalClusterLayer.definitionExpression = `id = '${e.id}'`;
190
- const r = i.features[0], { districtId: o, subDistrictId: h } = r.attributes;
191
- return this.districtControllerDashLayer.definitionExpression = `id = '${o}'`, this.districtControllerSolidLayer.definitionExpression = `id = '${o}'`, this.subDistrictControllerLayer.definitionExpression = `id = '${h}'`, await this.view.goTo(
192
- { target: i.features, scale: e.scale || 1e3 },
193
- {
194
- duration: this.hasGpu ? 1e3 : 0
195
- }
196
- ), { status: 0, message: "ok" };
197
- } else
198
- return this.signalMarkerLayer.definitionExpression = s, { status: 1, message: "未找到信号机" };
199
- }
200
- default:
201
- return { status: 1, message: "未知类型" };
202
- }
203
- }
204
- /**
205
- * 重置高亮,恢复全图视角
206
- * @returns
207
- */
208
- async resetHighlight() {
209
- this.districtControllerDashLayer.definitionExpression = "1=1", this.districtControllerSolidLayer.definitionExpression = "1=1", this.subDistrictControllerLayer.definitionExpression = "1=1", this.signalMarkerLayer.definitionExpression = "1=1", this.signalClusterLayer.definitionExpression = "1=1", this.signalPictureLayer.definitionExpression = "1=1";
210
- const e = await this.districtControllerDashLayer.queryFeatures();
211
- return this.view.goTo(e.features, {
212
- duration: this.hasGpu ? 1e3 : 0
213
- }), { status: 0, message: "ok" };
214
- }
215
- /**
216
- * 生成区控、子区和信号机graphic
217
- * @param districtController
218
- * @param isDistrict 是否是区控
219
- * @returns
220
- */
221
- generateGraphic(e, t, s) {
222
- const i = e.getAllSignalCoordinates();
223
- let r = null;
224
- if (i.length >= 2)
225
- if (i.length === 2)
226
- r = d.lineString(i);
227
- else {
228
- if (t) {
229
- const n = d.featureCollection(
230
- i.map((a) => d.point(a))
231
- );
232
- r = D(n);
233
- } else {
234
- const n = m(i, 0.5);
235
- n.length >= 4 && (r = d.polygon([n]));
236
- }
237
- r || (r = d.lineString(i));
238
- }
239
- else if (i.length === 1)
240
- r = d.point(i[0]);
241
- else
242
- return;
243
- const o = E(
244
- r.geometry,
245
- // 区控面积更大,需要更大的缓冲半径
246
- t ? 200 : 30,
247
- {
248
- units: "meters"
249
- }
250
- ), h = new y({
251
- geometry: {
252
- type: "polyline",
253
- paths: o.geometry.coordinates
254
- },
255
- attributes: {
256
- ObjectID: t ? this.districtControllerOid++ : this.subDistrictControllerOid++,
257
- id: e.id,
258
- name: e.name,
259
- subDistrictCount: e.subDistrictCount,
260
- signalCount: e.signalCount,
261
- parentId: e.parentId,
262
- parentName: e.parentName,
263
- selected: s,
264
- type: t ? "district" : "subDistrict"
265
- }
266
- });
267
- t ? this.districtGraphics.push(h) : this.subDistrictGraphics.push(h);
268
- for (const n of e.subDistricts)
269
- this.generateGraphic(n, !1, s);
270
- e.signals.forEach((n) => {
271
- const a = new y({
272
- geometry: {
273
- type: "point",
274
- x: n.longitude,
275
- y: n.latitude
276
- },
277
- attributes: {
278
- ObjectID: this.signalOid++,
279
- id: n.id,
280
- name: n.name,
281
- signalId: n.signalId,
282
- nodeId: n.nodeId,
283
- isKey: n.isKey,
284
- districtId: t ? e.id : e.parentId,
285
- districtName: t ? e.name : e.parentName,
286
- subDistrictId: t ? "" : e.id,
287
- subDistrictName: t ? "" : e.name,
288
- type: "signal",
289
- selected: !0
290
- }
291
- });
292
- this.signalGraphics.push(a);
293
- });
294
- }
295
- async viewHitTest(e) {
296
- var n;
297
- const s = (n = (await this.view.hitTest(e, {
298
- include: [
299
- this.districtControllerSolidLayer,
300
- this.subDistrictControllerLayer,
301
- this.signalMarkerLayer,
302
- this.signalPictureLayer,
303
- this.signalClusterLayer
304
- ]
305
- })).results) == null ? void 0 : n.filter(
306
- (a) => a.type === "graphic"
307
- );
308
- if (s.length === 0)
309
- return;
310
- const i = s[0].graphic;
311
- let r = null;
312
- i.geometry.type === "point" ? r = i.geometry : i.geometry.type === "polyline" ? r = i.geometry.extent.center : i.geometry.type === "polygon" && (r = i.geometry.centroid), r !== null && await this.view.goTo(r, { duration: 1e3 });
313
- const o = i.getAttribute("type"), h = i.getAttribute("id");
314
- switch (o) {
315
- case "district": {
316
- let a = await this.districtControllerSolidLayer.queryFeatures();
317
- a.features.forEach((l) => {
318
- l.attributes.selected = l.attributes.id === h;
319
- }), await this.districtControllerSolidLayer.applyEdits({
320
- updateFeatures: a.features
321
- }), a = await this.districtControllerDashLayer.queryFeatures(), a.features.forEach((l) => {
322
- l.attributes.selected = l.attributes.id === h;
323
- }), await this.districtControllerDashLayer.applyEdits({
324
- updateFeatures: a.features
325
- });
326
- break;
327
- }
328
- case "subDistrict": {
329
- let a = await this.subDistrictControllerLayer.queryFeatures();
330
- a.features.forEach((u) => {
331
- u.attributes.selected = u.attributes.id === h;
332
- }), await this.subDistrictControllerLayer.applyEdits({
333
- updateFeatures: a.features
334
- }), a = await this.signalMarkerLayer.queryFeatures(), a.features.forEach((u) => {
335
- u.attributes.selected = u.attributes.subDistrictId === h;
336
- });
337
- let l = await this.signalMarkerLayer.applyEdits({
338
- updateFeatures: a.features
339
- });
340
- console.log(l), a = await this.signalPictureLayer.queryFeatures(), a.features.forEach((u) => {
341
- u.attributes.selected = u.attributes.subDistrictId === h;
342
- }), l = await this.signalPictureLayer.applyEdits({
343
- updateFeatures: a.features
344
- }), console.log(l);
345
- break;
346
- }
347
- }
348
- L.when(
349
- () => this.view.popup.visible === !1,
350
- async () => {
351
- await this.resetSelectedSymbol(o);
352
- },
353
- {
354
- once: !0
355
- }
356
- );
357
- }
358
- /**
359
- * 重置所有graphic的置灰状态
360
- */
361
- async resetSelectedSymbol(e) {
362
- switch (e) {
363
- case "district": {
364
- let t = await this.districtControllerSolidLayer.queryFeatures();
365
- t.features.forEach((s) => {
366
- s.attributes.selected = !0;
367
- }), await this.districtControllerSolidLayer.applyEdits({
368
- updateFeatures: t.features
369
- }), t = await this.districtControllerDashLayer.queryFeatures(), t.features.forEach((s) => {
370
- s.attributes.selected = !0;
371
- }), await this.districtControllerDashLayer.applyEdits({
372
- updateFeatures: t.features
373
- });
374
- break;
375
- }
376
- case "subDistrict": {
377
- let t = await this.subDistrictControllerLayer.queryFeatures();
378
- t.features.forEach((s) => {
379
- s.attributes.selected = !0;
380
- }), await this.subDistrictControllerLayer.applyEdits({
381
- updateFeatures: t.features
382
- }), t = await this.signalMarkerLayer.queryFeatures(), t.features.forEach((s) => {
383
- s.attributes.selected = !0;
384
- }), await this.signalMarkerLayer.applyEdits({
385
- updateFeatures: t.features
386
- }), t = await this.signalPictureLayer.queryFeatures(), t.features.forEach((s) => {
387
- s.attributes.selected = !0;
388
- }), await this.signalPictureLayer.applyEdits({
389
- updateFeatures: t.features
390
- });
391
- break;
392
- }
393
- }
394
- }
395
- /**
396
- * 加载支队图层
397
- * 现场环境用url创建FeatureLayer有各种问题,
398
- * 改为图层到处未json,用json创建Graphic,再将Graphic添加到FeatureLayer
399
- */
400
- async loadDetachmentLayer() {
401
- const e = this.mapConfig.baseLayers;
402
- if (!e)
403
- return;
404
- const t = e.find(
405
- (n) => n.options.id === "shanghai_district"
406
- );
407
- if (!t)
408
- return;
409
- const i = await (await fetch(
410
- "/GisViewerAssets/ShangHai/Layers/district.json"
411
- )).json(), r = [], { renderer: o, labelingInfo: h } = t.options;
412
- i.features.forEach((n) => {
413
- const a = n.attributes.ZD_NAME;
414
- if (a !== "高架支队") {
415
- let l = new b({
416
- rings: n.geometry.rings
417
- });
418
- l = w(l);
419
- const u = new y({
420
- geometry: l,
421
- attributes: n.attributes
422
- });
423
- if (o) {
424
- if (o.type === "simple")
425
- u.symbol = o.symbol;
426
- else if (o.type === "unique-value") {
427
- const p = u.getAttribute("OBJECTID"), g = o.uniqueValueInfos.find(
428
- (f) => f.value == p
429
- );
430
- u.symbol = g ? g.symbol : o.defaultSymbol;
431
- }
432
- } else
433
- u.symbol = {
434
- type: "simple-fill",
435
- color: [227, 237, 255, 0.4],
436
- outline: {
437
- color: [255, 195, 153],
438
- width: 2
439
- }
440
- };
441
- if (r.push(u), h && a !== "边防港航支队" && a !== "机场支队") {
442
- const p = new y({
443
- geometry: l.centroid,
444
- symbol: { ...h.symbol, text: a }
445
- });
446
- r.push(p);
447
- }
448
- }
449
- }), this.detachmentLayer.addMany(r), this.detachmentLayerLoaded = !0;
450
- }
451
- }
452
- export {
453
- V as default
454
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("../common-utils.js");class n{constructor(i,e){this.parentName="",this.signals=[],this.subDistricts=[],this.signalCount=0,this.subDistrictCount=0,this.id=i.name,this.name=i.areaDesc,this.parentId=i.parentId,this.areaColor=e==="alarm"?[255,0,0]:[61,139,249];for(const t of i.children)if(t.children){const s=new n(t,e);s.id=t.id,s.name=`SS ${t.name}`,s.parentId=this.id,s.parentName=this.name,this.subDistricts.push(s),this.subDistrictCount++,this.signalCount+=s.signalCount}else if(o.default.isCoordinateValid(t)){const s={id:t.id,name:t.name,parentId:t.parentId,latitude:Number(t.latitude),longitude:Number(t.longitude),signalId:t.signalId,nodeId:t.nodeId,isKey:t.isKey===1};this.signals.push(s),this.signalCount++}}getAllSignalCoordinates(){const i=[];for(const e of this.signals)i.push([e.longitude,e.latitude]);for(const e of this.subDistricts)i.push(...e.getAllSignalCoordinates());return i}}exports.default=n;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={id:"districtController",source:[],objectIdField:"ObjectID",geometryType:"polyline",outFields:["*"],fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"subDistrictCount",type:"integer"},{name:"signalCount",type:"integer"},{name:"selected",type:"string"}],renderer:{type:"unique-value",field:"selected",defaultSymbol:{type:"simple-line",style:"long-dash",color:[111,100,255],width:2},uniqueValueInfos:[{value:"false",symbol:{type:"simple-line",style:"long-dash",color:[180,180,180],width:1}}]}},t={id:"districtController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"polyline",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"subDistrictCount",type:"integer"},{name:"signalCount",type:"integer"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}",content:[{type:"fields",fieldInfos:[{fieldName:"id",label:"区控编号"},{fieldName:"subDistrictCount",label:"子区数量"},{fieldName:"signalCount",label:"信号机数量"}]}]},renderer:{type:"unique-value",field:"selected",defaultSymbol:{type:"simple-line",style:"solid",color:[111,100,255,.4],width:2},uniqueValueInfos:[{value:"false",symbol:{type:"simple-line",style:"solid",color:[180,180,180,.4],width:1}}]}},i={id:"subDistrictController",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"polyline",fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"parentId",type:"string"},{name:"parentName",type:"string"},{name:"signalCount",type:"integer"},{name:"selected",type:"string"},{name:"type",type:"string"}],popupTemplate:{title:"{name} 子区",content:[{type:"fields",fieldInfos:[{fieldName:"id",label:"区控编号"},{fieldName:"parentName",label:"所属区控"},{fieldName:"signalCount",label:"信号机数量"}]}]},renderer:{type:"unique-value",field:"selected",defaultSymbol:{type:"simple-line",style:"solid",color:[5,196,104],width:2},uniqueValueInfos:[{value:"alert",symbol:{type:"simple-line",style:"solid",color:[255,0,0],width:2}},{value:"false",symbol:{type:"simple-line",style:"solid",color:[180,180,180],width:1}}]}},l={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",maxScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"unique-value",field:"isKey",field2:"selected",defaultSymbol:{type:"simple-marker",style:"circle",color:"gray",size:4,outline:{color:"white",width:1}},uniqueValueInfos:[{value:"true,true",symbol:{type:"simple-marker",style:"circle",color:[254,172,22],size:12,outline:{color:"white",width:1}}},{value:"false,true",symbol:{type:"simple-marker",style:"circle",color:[5,116,255],size:8,outline:{color:"white",width:1}}},{value:"true,false",symbol:{type:"simple-marker",style:"circle",color:[180,180,180],size:12,outline:{color:"white",width:1}}},{value:"false,false",symbol:{type:"simple-marker",style:"circle",color:[180,180,180],size:8,outline:{color:"white",width:1}}}]}},r={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",minScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"unique-value",field:"isKey",field2:"selected",defaultSymbol:{type:"simple-marker",style:"circle",color:"gray",size:4,outline:{color:"white",width:1}},uniqueValueInfos:[{value:"true,true",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:'Replace($feature.name, "与", "/") + " " + $feature.signalId',returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:12,horizontalAlignment:"Center",offsetX:0,offsetY:30,haloSize:1,haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[0,0,0,255]}]},verticalAlignment:"Center"},textString:""}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:40,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_gjxklk_orange.png"}]}}}},{value:"false,true",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:'Replace($feature.name, "与", "/") + " " + $feature.signalId',returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:12,horizontalAlignment:"Center",offsetX:0,offsetY:15,haloSize:1,haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[0,0,0,255]}]},verticalAlignment:"Center"},textString:""}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:20,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_xhj_blue.png"}]}}}},{value:"true,false",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/cross/gis_gjxk_gray.png",width:40,height:40}},{value:"false,false",symbol:{type:"picture-marker",url:"/GisViewerAssets/Images/cross/gis_xhj_gray.png",width:20,height:20}}]}},s={id:"signalLayer",source:[],objectIdField:"ObjectID",outFields:["*"],geometryType:"point",maxScale:5e3,fields:[{name:"ObjectID",type:"oid"},{name:"id",type:"string"},{name:"name",type:"string"},{name:"signalId",type:"string"},{name:"nodeId",type:"string"},{name:"isKey",type:"string"},{name:"districtId",type:"string"},{name:"districtName",type:"string"},{name:"subDistrictId",type:"string"},{name:"subDistrictName",type:"string"},{name:"type",type:"string"},{name:"type",type:"string"},{name:"selected",type:"string"}],featureReduction:{type:"cluster",clusterRadius:"120px",clusterMaxSize:"50px",clusterMinSize:"30px",symbol:{type:"cim",data:{type:"CIMSymbolReference",primitiveOverrides:[{type:"CIMPrimitiveOverride",primitiveName:"textGraphic",propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",title:"Custom",expression:"$feature.cluster_count",returnType:"Default"}}],symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",size:32,colorLocked:!0,anchorPointUnits:"Relative",frame:{xmin:-16,ymin:-16,xmax:16,ymax:16},markerGraphics:[{type:"CIMMarkerGraphic",primitiveName:"textGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",height:16,horizontalAlignment:"Center",offsetX:0,offsetY:30,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[255,255,255,255]}]},verticalAlignment:"Center"},textString:""},{type:"CIMMarkerGraphic",geometry:{rings:[[[-15,40],[15,40],[15,20],[-15,20],[-15,40]]]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[2,72,200,255]},{type:"CIMSolidStroke",enable:!0,width:5,color:[2,72,200,128]}]}}],scaleSymbolsProportionally:!0,respectFrame:!0},{type:"CIMPictureMarker",enable:!0,anchorPoint:{x:0,y:0},anchorPointUnits:"Relative",size:40,rotateClockwise:!0,textureFilter:"Picture",url:"/GisViewerAssets/Images/cross/gis_xhj_blue.png"}]}}}},popupTemplate:{title:"{name}信号机",content:[{type:"fields",fieldInfos:[{fieldName:"districtName",label:"区控名称"},{fieldName:"subDistrictName",label:"子区名称"},{fieldName:"signalId",label:"信号机编号"},{fieldName:"nodeId",label:"路口编号"}]}]},renderer:{type:"simple",symbol:{type:"simple-marker",style:"circle",color:[5,116,255],size:8,outline:{color:"white",width:1}}}};exports.districtDashLineLayerOptions=e;exports.districtSolidLineLayerOptions=t;exports.signalClusterLayerOptions=s;exports.signalMarkerLayerOptions=l;exports.signalPictureLayerOptions=r;exports.subDistrictLayerOptions=i;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const C=require("@arcgis/core/core/reactiveUtils"),E=require("@arcgis/core/geometry"),D=require("@arcgis/core/geometry/support/webMercatorUtils"),g=require("@arcgis/core/Graphic"),d=require("@arcgis/core/layers/FeatureLayer"),m=require("@arcgis/core/layers/GraphicsLayer"),F=require("@turf/buffer"),k=require("@turf/convex"),v=require("@turf/helpers"),S=require("concaveman"),G=require("../../stores/index.js"),q=require("./district-controller.js"),y=require("./layer-symbol.js");function L(h){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(h){for(const t in h)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(h,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>h[t]})}}return e.default=h,Object.freeze(e)}const x=L(C),p=L(v);class M{constructor(e){this.detachmentLayerLoaded=!1,this.districtControllerOid=0,this.subDistrictControllerOid=0,this.signalOid=0,this.popupEnabled=!0,this.districtGraphics=[],this.subDistrictGraphics=[],this.signalGraphics=[],this.view=e,this.hasGpu=localStorage.getItem("gpu")!=="Unknown";const t=G.default.useAppDataStore;this.mapConfig=JSON.parse(JSON.stringify(t.mapConfig)),this.detachmentLayer=new m,this.districtControllerDashLayer=new d(y.districtDashLineLayerOptions),this.districtControllerDashLayer.spatialReference=e.spatialReference,this.districtControllerSolidLayer=new d(y.districtSolidLineLayerOptions),this.districtControllerSolidLayer.spatialReference=e.spatialReference,this.districtControllerSolidLayer.popupEnabled=this.popupEnabled,this.subDistrictControllerLayer=new d(y.subDistrictLayerOptions),this.subDistrictControllerLayer.spatialReference=e.spatialReference,this.subDistrictControllerLayer.popupEnabled=this.popupEnabled,this.signalMarkerLayer=new d(y.signalMarkerLayerOptions),this.signalMarkerLayer.spatialReference=e.spatialReference,this.signalMarkerLayer.popupEnabled=this.popupEnabled,this.signalPictureLayer=new d(y.signalPictureLayerOptions),this.signalPictureLayer.spatialReference=e.spatialReference,this.signalPictureLayer.popupEnabled=this.popupEnabled,this.signalClusterLayer=new d(y.signalClusterLayerOptions),this.signalClusterLayer.spatialReference=e.spatialReference,this.signalClusterLayer.popupEnabled=this.popupEnabled,this.view.map.addMany([this.detachmentLayer,this.districtControllerSolidLayer,this.districtControllerDashLayer,this.signalMarkerLayer,this.signalPictureLayer,this.signalClusterLayer,this.subDistrictControllerLayer]),this.clickHandler=this.view.on("click",this.viewHitTest.bind(this))}async showSignalControlArea(e){this.detachmentLayerLoaded||await this.loadDetachmentLayer(),await this.clearSignalControlArea(),this.districtControllerDashLayer.visible=!1,this.districtControllerSolidLayer.visible=!1,this.subDistrictControllerLayer.visible=!1,this.signalMarkerLayer.visible=!1,this.signalPictureLayer.visible=!1,this.signalClusterLayer.visible=!0;for(const t of e.areaList){const s=new q.default(t,e.style||"");this.generateGraphic(s,!0,e.style)}return await this.districtControllerDashLayer.applyEdits({addFeatures:this.districtGraphics}),await this.districtControllerSolidLayer.applyEdits({addFeatures:this.districtGraphics}),this.view.goTo(this.districtGraphics),this.districtGraphics=[],await this.subDistrictControllerLayer.applyEdits({addFeatures:this.subDistrictGraphics}),this.subDistrictGraphics=[],await this.signalMarkerLayer.applyEdits({addFeatures:this.signalGraphics}),await this.signalPictureLayer.applyEdits({addFeatures:this.signalGraphics}),await this.signalClusterLayer.applyEdits({addFeatures:this.signalGraphics}),this.signalGraphics=[],{status:0,message:"ok"}}async clearSignalControlArea(){this.districtGraphics=[],this.subDistrictGraphics=[],this.signalGraphics=[],this.districtControllerOid=0,this.subDistrictControllerOid=0,this.signalOid=0;let e=await this.districtControllerDashLayer.queryFeatures();return await this.districtControllerDashLayer.applyEdits({deleteFeatures:e.features}),this.districtControllerDashLayer.definitionExpression="1=1",e=await this.districtControllerSolidLayer.queryFeatures(),await this.districtControllerSolidLayer.applyEdits({deleteFeatures:e.features}),this.districtControllerSolidLayer.definitionExpression="1=1",e=await this.subDistrictControllerLayer.queryFeatures(),await this.subDistrictControllerLayer.applyEdits({deleteFeatures:e.features}),this.subDistrictControllerLayer.definitionExpression="1=1",e=await this.signalMarkerLayer.queryFeatures(),await this.signalMarkerLayer.applyEdits({deleteFeatures:e.features}),this.signalMarkerLayer.definitionExpression="1=1",e=await this.signalPictureLayer.queryFeatures(),await this.signalPictureLayer.applyEdits({deleteFeatures:e.features}),this.signalPictureLayer.definitionExpression="1=1",e=await this.signalClusterLayer.queryFeatures(),await this.signalClusterLayer.applyEdits({deleteFeatures:e.features}),this.signalClusterLayer.definitionExpression="1=1",{status:0,message:"ok"}}setLayerVisibility(e){switch(e.visible===!1&&this.view.closePopup(),e.id){case"district":this.districtControllerDashLayer.visible=e.visible,this.districtControllerSolidLayer.visible=e.visible;break;case"subDistrict":this.subDistrictControllerLayer.visible=e.visible;break;case"signal":this.signalMarkerLayer.visible=e.visible,this.signalPictureLayer.visible=e.visible;break;case"signalCluster":this.signalClusterLayer.visible=e.visible;break;case"shanghai_district":this.detachmentLayer.visible=e.visible;break}return{status:0,message:"ok"}}async locateSignalControlArea(e){switch(e.type){case"district":{const i=this.districtControllerDashLayer.createQuery();i.where=`id = '${e.id}'`,i.returnGeometry=!0,i.outFields=["*"];const r=await this.districtControllerDashLayer.queryFeatures(i);return r.features.length>0?(await this.view.goTo(r.features,{duration:this.hasGpu?1e3:0}),{status:0,message:"ok"}):{status:1,message:"未找到区控"}}case"subDistrict":const t=this.subDistrictControllerLayer.createQuery();t.where=`id = '${e.id}'`,t.returnGeometry=!0,t.outFields=["*"];const s=await this.subDistrictControllerLayer.queryFeatures(t);return s.features.length>0?(await this.view.goTo(s.features,{duration:this.hasGpu?1e3:0}),{status:0,message:"ok"}):{status:1,message:"未找到子区"};case"signal":{const i=this.signalMarkerLayer.createQuery();i.where=`id = '${e.id}'`,i.returnGeometry=!0,i.outFields=["*"];const r=await this.signalMarkerLayer.queryFeatures(i);return r.features.length>0?(await this.view.goTo({target:r.features[0],scale:e.scale||1e3},{duration:this.hasGpu?1e3:0}),{status:0,message:"ok"}):{status:1,message:"未找到信号机"}}default:return{status:1,message:"未知类型"}}}async highlightSignalControlArea(e){var t;switch((t=this.view.popup)!=null&&t.visible&&this.view.popup.close(),e.type){case"district":{const s=this.districtControllerDashLayer.definitionExpression;this.districtControllerDashLayer.definitionExpression=`id = '${e.id}'`;const i=await this.districtControllerDashLayer.queryFeatures();return i.features.length>0?(this.districtControllerSolidLayer.definitionExpression=`id = '${e.id}'`,this.subDistrictControllerLayer.definitionExpression=`parentId = '${e.id}'`,this.signalMarkerLayer.definitionExpression=`districtId = '${e.id}'`,this.signalPictureLayer.definitionExpression=`districtId = '${e.id}'`,this.signalClusterLayer.definitionExpression=`districtId = '${e.id}'`,await this.view.goTo(i.features,{duration:this.hasGpu?1e3:0}),{status:0,message:"ok"}):(this.districtControllerDashLayer.definitionExpression=s,{status:1,message:"未找到区控"})}case"subDistrict":{const s=this.subDistrictControllerLayer.definitionExpression;this.subDistrictControllerLayer.definitionExpression=`id = '${e.id}'`;const i=await this.subDistrictControllerLayer.queryFeatures();if(i.features.length>0){this.signalMarkerLayer.definitionExpression=`subDistrictId = '${e.id}'`,this.signalPictureLayer.definitionExpression=`subDistrictId = '${e.id}'`,this.signalClusterLayer.definitionExpression=`subDistrictId = '${e.id}'`;const l=i.features[0].attributes.parentId;return this.districtControllerDashLayer.definitionExpression=`id = '${l}'`,this.districtControllerSolidLayer.definitionExpression=`id = '${l}'`,await this.view.goTo(i.features,{duration:this.hasGpu?1e3:0}),{status:0,message:"ok"}}else return this.subDistrictControllerLayer.definitionExpression=s,{status:1,message:"未找到子区"}}case"signal":{const s=this.signalMarkerLayer.definitionExpression;this.signalMarkerLayer.definitionExpression=`id = '${e.id}'`;const i=await this.signalMarkerLayer.queryFeatures();if(i.features.length>0){this.signalPictureLayer.definitionExpression=`id = '${e.id}'`,this.signalClusterLayer.definitionExpression=`id = '${e.id}'`;const r=i.features[0],{districtId:l,subDistrictId:c}=r.attributes;return this.districtControllerDashLayer.definitionExpression=`id = '${l}'`,this.districtControllerSolidLayer.definitionExpression=`id = '${l}'`,this.subDistrictControllerLayer.definitionExpression=`id = '${c}'`,await this.view.goTo({target:i.features,scale:e.scale||1e3},{duration:this.hasGpu?1e3:0}),{status:0,message:"ok"}}else return this.signalMarkerLayer.definitionExpression=s,{status:1,message:"未找到信号机"}}default:return{status:1,message:"未知类型"}}}async resetHighlight(){this.districtControllerDashLayer.definitionExpression="1=1",this.districtControllerSolidLayer.definitionExpression="1=1",this.subDistrictControllerLayer.definitionExpression="1=1",this.signalMarkerLayer.definitionExpression="1=1",this.signalClusterLayer.definitionExpression="1=1",this.signalPictureLayer.definitionExpression="1=1";const e=await this.districtControllerDashLayer.queryFeatures();return this.view.goTo(e.features,{duration:this.hasGpu?1e3:0}),{status:0,message:"ok"}}generateGraphic(e,t,s){const i=e.getAllSignalCoordinates();let r=null;if(i.length>=2)if(i.length===2)r=p.lineString(i);else{if(t){const n=p.featureCollection(i.map(a=>p.point(a)));r=k(n)}else{const n=S(i,.5);n.length>=4&&(r=p.polygon([n]))}r||(r=p.lineString(i))}else if(i.length===1)r=p.point(i[0]);else return;const l=F(r.geometry,t?200:30,{units:"meters"}),c=new g({geometry:{type:"polyline",paths:l.geometry.coordinates},attributes:{ObjectID:t?this.districtControllerOid++:this.subDistrictControllerOid++,id:e.id,name:e.name,subDistrictCount:e.subDistrictCount,signalCount:e.signalCount,parentId:e.parentId,parentName:e.parentName,selected:s,type:t?"district":"subDistrict"}});t?this.districtGraphics.push(c):this.subDistrictGraphics.push(c);for(const n of e.subDistricts)this.generateGraphic(n,!1,s);e.signals.forEach(n=>{const a=new g({geometry:{type:"point",x:n.longitude,y:n.latitude},attributes:{ObjectID:this.signalOid++,id:n.id,name:n.name,signalId:n.signalId,nodeId:n.nodeId,isKey:n.isKey,districtId:t?e.id:e.parentId,districtName:t?e.name:e.parentName,subDistrictId:t?"":e.id,subDistrictName:t?"":e.name,type:"signal",selected:!0}});this.signalGraphics.push(a)})}async viewHitTest(e){var n;const s=(n=(await this.view.hitTest(e,{include:[this.districtControllerSolidLayer,this.subDistrictControllerLayer,this.signalMarkerLayer,this.signalPictureLayer,this.signalClusterLayer]})).results)==null?void 0:n.filter(a=>a.type==="graphic");if(s.length===0)return;const i=s[0].graphic;let r=null;i.geometry.type==="point"?r=i.geometry:i.geometry.type==="polyline"?r=i.geometry.extent.center:i.geometry.type==="polygon"&&(r=i.geometry.centroid),r!==null&&await this.view.goTo(r,{duration:1e3});const l=i.getAttribute("type"),c=i.getAttribute("id");switch(l){case"district":{let a=await this.districtControllerSolidLayer.queryFeatures();a.features.forEach(o=>{o.attributes.selected=o.attributes.id===c}),await this.districtControllerSolidLayer.applyEdits({updateFeatures:a.features}),a=await this.districtControllerDashLayer.queryFeatures(),a.features.forEach(o=>{o.attributes.selected=o.attributes.id===c}),await this.districtControllerDashLayer.applyEdits({updateFeatures:a.features});break}case"subDistrict":{let a=await this.subDistrictControllerLayer.queryFeatures();a.features.forEach(u=>{u.attributes.selected=u.attributes.id===c}),await this.subDistrictControllerLayer.applyEdits({updateFeatures:a.features}),a=await this.signalMarkerLayer.queryFeatures(),a.features.forEach(u=>{u.attributes.selected=u.attributes.subDistrictId===c});let o=await this.signalMarkerLayer.applyEdits({updateFeatures:a.features});console.log(o),a=await this.signalPictureLayer.queryFeatures(),a.features.forEach(u=>{u.attributes.selected=u.attributes.subDistrictId===c}),o=await this.signalPictureLayer.applyEdits({updateFeatures:a.features}),console.log(o);break}}x.when(()=>this.view.popup.visible===!1,async()=>{await this.resetSelectedSymbol(l)},{once:!0})}async resetSelectedSymbol(e){switch(e){case"district":{let t=await this.districtControllerSolidLayer.queryFeatures();t.features.forEach(s=>{s.attributes.selected=!0}),await this.districtControllerSolidLayer.applyEdits({updateFeatures:t.features}),t=await this.districtControllerDashLayer.queryFeatures(),t.features.forEach(s=>{s.attributes.selected=!0}),await this.districtControllerDashLayer.applyEdits({updateFeatures:t.features});break}case"subDistrict":{let t=await this.subDistrictControllerLayer.queryFeatures();t.features.forEach(s=>{s.attributes.selected=!0}),await this.subDistrictControllerLayer.applyEdits({updateFeatures:t.features}),t=await this.signalMarkerLayer.queryFeatures(),t.features.forEach(s=>{s.attributes.selected=!0}),await this.signalMarkerLayer.applyEdits({updateFeatures:t.features}),t=await this.signalPictureLayer.queryFeatures(),t.features.forEach(s=>{s.attributes.selected=!0}),await this.signalPictureLayer.applyEdits({updateFeatures:t.features});break}}}async loadDetachmentLayer(){const e=this.mapConfig.baseLayers;if(!e)return;const t=e.find(n=>n.options.id==="shanghai_district");if(!t)return;const i=await(await fetch("/GisViewerAssets/ShangHai/Layers/district.json")).json(),r=[],{renderer:l,labelingInfo:c}=t.options;i.features.forEach(n=>{const a=n.attributes.ZD_NAME;if(a!=="高架支队"){let o=new E.Polygon({rings:n.geometry.rings});o=D.webMercatorToGeographic(o);const u=new g({geometry:o,attributes:n.attributes});if(l){if(l.type==="simple")u.symbol=l.symbol;else if(l.type==="unique-value"){const f=u.getAttribute("OBJECTID"),b=l.uniqueValueInfos.find(w=>w.value==f);u.symbol=b?b.symbol:l.defaultSymbol}}else u.symbol={type:"simple-fill",color:[227,237,255,.4],outline:{color:[255,195,153],width:2}};if(r.push(u),c&&a!=="边防港航支队"&&a!=="机场支队"){const f=new g({geometry:o.centroid,symbol:{...c.symbol,text:a}});r.push(f)}}}),this.detachmentLayer.addMany(r),this.detachmentLayerLoaded=!0}}exports.default=M;