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.
- package/es/src/gis-map/gis-map.vue.d.ts +8 -2
- package/es/src/gis-map/gis-map.vue.mjs +2 -2
- package/es/src/gis-map/index.d.ts +2 -2
- package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/district-controller.d.ts +2 -1
- package/es/src/gis-map/utils/signal-control-area/district-controller.mjs +45 -0
- package/es/src/gis-map/utils/signal-control-area/district-renderer.d.ts +40 -0
- package/es/src/gis-map/utils/signal-control-area/district-renderer.mjs +123 -0
- package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/layer-symbol.d.ts +8 -1
- package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/layer-symbol.mjs +74 -56
- package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/show-area.d.ts +4 -14
- package/es/src/gis-map/utils/signal-control-area/show-area.mjs +397 -0
- package/es/src/gis-map/utils/signal-control-area/signal-renderer.d.ts +22 -0
- package/es/src/gis-map/utils/signal-control-area/signal-renderer.mjs +124 -0
- package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +27 -0
- package/es/src/gis-map/utils/signal-control-area/sub-district-renderer.mjs +142 -0
- package/lib/src/gis-map/gis-map.vue.d.ts +8 -2
- package/lib/src/gis-map/gis-map.vue.js +1 -1
- package/lib/src/gis-map/index.d.ts +2 -2
- package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/district-controller.d.ts +2 -1
- package/lib/src/gis-map/utils/signal-control-area/district-controller.js +1 -0
- package/lib/src/gis-map/utils/signal-control-area/district-renderer.d.ts +40 -0
- package/lib/src/gis-map/utils/signal-control-area/district-renderer.js +1 -0
- package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/layer-symbol.d.ts +8 -1
- package/lib/src/gis-map/utils/signal-control-area/layer-symbol.js +1 -0
- package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/show-area.d.ts +4 -14
- package/lib/src/gis-map/utils/signal-control-area/show-area.js +1 -0
- package/lib/src/gis-map/utils/signal-control-area/signal-renderer.d.ts +22 -0
- package/lib/src/gis-map/utils/signal-control-area/signal-renderer.js +1 -0
- package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.d.ts +27 -0
- package/lib/src/gis-map/utils/signal-control-area/sub-district-renderer.js +1 -0
- package/package.json +1 -1
- package/es/src/gis-map/utils/signal-control-area-controller/district-controller.mjs +0 -38
- package/es/src/gis-map/utils/signal-control-area-controller/show-area.mjs +0 -454
- package/lib/src/gis-map/utils/signal-control-area-controller/district-controller.js +0 -1
- package/lib/src/gis-map/utils/signal-control-area-controller/layer-symbol.js +0 -1
- package/lib/src/gis-map/utils/signal-control-area-controller/show-area.js +0 -1
- /package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.d.ts +0 -0
- /package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.mjs +0 -0
- /package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.d.ts +0 -0
- /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;
|
/package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.d.ts
RENAMED
|
File without changes
|
/package/es/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.mjs
RENAMED
|
File without changes
|
/package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.d.ts
RENAMED
|
File without changes
|
/package/lib/src/gis-map/utils/{signal-control-area-controller → signal-control-area}/edit-area.js
RENAMED
|
File without changes
|