gisviewer-vue3-arcgis 1.0.245 → 1.0.247
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 +12 -7
- package/es/src/gis-map/gis-map.vue.mjs +154 -145
- package/es/src/gis-map/index.d.ts +9 -0
- package/es/src/gis-map/stores/appData.d.ts +2 -0
- package/es/src/gis-map/stores/appData.mjs +1 -0
- package/es/src/gis-map/utils/custom-layer/custom-wmts-layer.mjs +137 -14
- package/es/src/gis-map/utils/edpass-device-controller.d.ts +14 -0
- package/es/src/gis-map/utils/edpass-device-controller.mjs +237 -0
- package/es/src/gis-map/utils/holo-flow/signal-holo-flow-lsr.mjs +3 -3
- package/es/src/gis-map/utils/map-initializer.d.ts +1 -0
- package/es/src/gis-map/utils/map-initializer.mjs +118 -101
- package/es/src/gis-map/utils/police-jurisdiction.d.ts +9 -0
- package/es/src/gis-map/utils/police-jurisdiction.mjs +109 -0
- package/es/src/types/index.d.ts +10 -0
- package/lib/src/gis-map/gis-map.vue.d.ts +12 -7
- package/lib/src/gis-map/gis-map.vue.js +1 -1
- package/lib/src/gis-map/index.d.ts +9 -0
- package/lib/src/gis-map/stores/appData.d.ts +2 -0
- package/lib/src/gis-map/stores/appData.js +1 -1
- package/lib/src/gis-map/utils/custom-layer/custom-wmts-layer.js +1 -1
- package/lib/src/gis-map/utils/edpass-device-controller.d.ts +14 -0
- package/lib/src/gis-map/utils/edpass-device-controller.js +1 -0
- package/lib/src/gis-map/utils/holo-flow/signal-holo-flow-lsr.js +1 -1
- package/lib/src/gis-map/utils/map-initializer.d.ts +1 -0
- package/lib/src/gis-map/utils/map-initializer.js +1 -1
- package/lib/src/gis-map/utils/police-jurisdiction.d.ts +9 -0
- package/lib/src/gis-map/utils/police-jurisdiction.js +1 -0
- package/lib/src/types/index.d.ts +10 -0
- package/package.json +1 -1
|
@@ -1,46 +1,55 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import * as
|
|
4
|
-
import { Multipoint as
|
|
5
|
-
import * as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
|
|
20
|
-
return p && (p.startsWith("http://") || p.startsWith("https://") ? p : e + p);
|
|
21
|
-
}
|
|
1
|
+
import M from "@arcgis/core/Basemap";
|
|
2
|
+
import d from "@arcgis/core/config";
|
|
3
|
+
import * as k from "@arcgis/core/core/reactiveUtils";
|
|
4
|
+
import { Multipoint as L, Polygon as P, Polyline as C, Point as T } from "@arcgis/core/geometry";
|
|
5
|
+
import * as w from "@arcgis/core/geometry/support/webMercatorUtils";
|
|
6
|
+
import W from "@arcgis/core/layers/FeatureLayer";
|
|
7
|
+
import z from "@arcgis/core/layers/GeoJSONLayer";
|
|
8
|
+
import x from "@arcgis/core/layers/GroupLayer";
|
|
9
|
+
import I from "@arcgis/core/layers/IntegratedMesh3DTilesLayer";
|
|
10
|
+
import S from "@arcgis/core/layers/MapImageLayer";
|
|
11
|
+
import G from "@arcgis/core/layers/TileLayer";
|
|
12
|
+
import H from "@arcgis/core/layers/WebTileLayer";
|
|
13
|
+
import R from "@arcgis/core/layers/WMSLayer";
|
|
14
|
+
import B from "@arcgis/core/Map";
|
|
15
|
+
import O from "@arcgis/core/views/MapView";
|
|
16
|
+
import N from "@arcgis/core/views/SceneView";
|
|
17
|
+
import U from "@turf/destination";
|
|
18
|
+
import * as E from "@turf/helpers";
|
|
19
|
+
import A from "./custom-layer/custom-wmts-layer.mjs";
|
|
22
20
|
class oe {
|
|
23
21
|
constructor() {
|
|
24
22
|
this.mapConfig = {}, this.watchHandleMap = /* @__PURE__ */ new Map(), this.handleIndex = 0, this.zoomWatchHandle = null;
|
|
25
23
|
}
|
|
24
|
+
processUrl(e) {
|
|
25
|
+
if (e) {
|
|
26
|
+
if (e.startsWith("http://") || e.startsWith("https://"))
|
|
27
|
+
return e;
|
|
28
|
+
if (e.startsWith("{{"))
|
|
29
|
+
return e.replace("{{geoServer}}", this.mapConfig.geoServer);
|
|
30
|
+
if (e.startsWith("/"))
|
|
31
|
+
return this.mapConfig.assetsRoot + e;
|
|
32
|
+
} else
|
|
33
|
+
return e;
|
|
34
|
+
}
|
|
26
35
|
/**
|
|
27
36
|
* 初始化地图
|
|
28
37
|
* @param params 容器
|
|
29
38
|
* @returns view
|
|
30
39
|
*/
|
|
31
40
|
async initialize(e) {
|
|
32
|
-
var
|
|
41
|
+
var m, u, b, v;
|
|
33
42
|
this.mapConfig = e.mapConfig;
|
|
34
|
-
const { container: i, markerClickCallback:
|
|
35
|
-
|
|
36
|
-
const r = new
|
|
37
|
-
if (((
|
|
43
|
+
const { container: i, markerClickCallback: s, mapClickCallback: a } = e;
|
|
44
|
+
d.assetsPath = `${this.mapConfig.assetsRoot}/ArcgisAssets`, d.fontsUrl = `${this.mapConfig.assetsRoot}/fonts`, d.apiKey = "AAPKf5a3e1044d7a4faeb3b1ec7060f5c68equIrP2KbRyL-t_b40Kk4GTWUQ1BFCyttvyQPQnWpFmBd7kp9gkrVihjfmcKBwxjW";
|
|
45
|
+
const r = new B();
|
|
46
|
+
if (((m = this.mapConfig) == null ? void 0 : m.mapOptions.mode.toLowerCase()) === "2d" ? (this.view = new O({
|
|
38
47
|
map: r,
|
|
39
48
|
container: i,
|
|
40
49
|
...this.mapConfig.mapOptions
|
|
41
50
|
}), this.view.on("drag", (t) => {
|
|
42
51
|
t.button === 2 && t.stopPropagation();
|
|
43
|
-
})) : this.view = new
|
|
52
|
+
})) : this.view = new N({
|
|
44
53
|
map: r,
|
|
45
54
|
container: i,
|
|
46
55
|
environment: {
|
|
@@ -49,7 +58,7 @@ class oe {
|
|
|
49
58
|
type: "virtual"
|
|
50
59
|
}
|
|
51
60
|
},
|
|
52
|
-
...(
|
|
61
|
+
...(u = this.mapConfig) == null ? void 0 : u.mapOptions
|
|
53
62
|
}), this.view.popup.visibleElements = {
|
|
54
63
|
closeButton: !0,
|
|
55
64
|
collapseButton: !1,
|
|
@@ -59,97 +68,104 @@ class oe {
|
|
|
59
68
|
buttonEnabled: !1,
|
|
60
69
|
breakpoint: !1
|
|
61
70
|
}, this.view.on("click", async (t) => {
|
|
62
|
-
var h,
|
|
71
|
+
var h, y;
|
|
63
72
|
if (a) {
|
|
64
|
-
let
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
let o = t.mapPoint;
|
|
74
|
+
o.spatialReference.isWebMercator && (o = w.webMercatorToGeographic(
|
|
75
|
+
o
|
|
67
76
|
)), a(
|
|
68
|
-
[
|
|
77
|
+
[o.x, o.y],
|
|
69
78
|
[t.screenPoint.x, t.screenPoint.y],
|
|
70
79
|
t
|
|
71
80
|
);
|
|
72
81
|
}
|
|
73
82
|
if (this.view.type === "3d") {
|
|
74
|
-
const
|
|
83
|
+
const o = this.view.camera;
|
|
75
84
|
if (this.view.spatialReference.isWebMercator) {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
),
|
|
79
|
-
heading:
|
|
80
|
-
tilt:
|
|
81
|
-
position:
|
|
85
|
+
const l = w.webMercatorToGeographic(
|
|
86
|
+
o.position
|
|
87
|
+
), f = {
|
|
88
|
+
heading: o.heading,
|
|
89
|
+
tilt: o.tilt,
|
|
90
|
+
position: l.toJSON()
|
|
82
91
|
};
|
|
83
|
-
console.log(
|
|
92
|
+
console.log(f), (h = navigator.clipboard) == null || h.writeText(JSON.stringify(f));
|
|
84
93
|
} else
|
|
85
|
-
console.log(
|
|
94
|
+
console.log(o.toJSON());
|
|
86
95
|
console.log(this.view.zoom, this.view.scale);
|
|
87
96
|
} else {
|
|
88
|
-
let
|
|
89
|
-
this.view.spatialReference.isWebMercator && (
|
|
90
|
-
|
|
97
|
+
let o = this.view.center;
|
|
98
|
+
this.view.spatialReference.isWebMercator && (o = w.webMercatorToGeographic(
|
|
99
|
+
o
|
|
91
100
|
)), console.log({
|
|
92
|
-
center:
|
|
101
|
+
center: o.toJSON(),
|
|
93
102
|
zoom: this.view.zoom,
|
|
94
103
|
scale: this.view.scale
|
|
95
104
|
});
|
|
96
105
|
}
|
|
97
|
-
const n = (
|
|
98
|
-
(
|
|
106
|
+
const n = (y = (await this.view.hitTest(t)).results) == null ? void 0 : y.filter(
|
|
107
|
+
(o) => o.type === "graphic"
|
|
99
108
|
);
|
|
100
|
-
n.length > 0 && n.forEach((
|
|
101
|
-
var
|
|
102
|
-
const
|
|
103
|
-
(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
109
|
+
n.length > 0 && n.forEach((o) => {
|
|
110
|
+
var f;
|
|
111
|
+
const l = o.graphic;
|
|
112
|
+
(f = l.attributes) != null && f.type && s && s(
|
|
113
|
+
l.attributes.type,
|
|
114
|
+
l.attributes.id,
|
|
115
|
+
l.attributes,
|
|
107
116
|
t
|
|
108
117
|
);
|
|
109
118
|
});
|
|
110
|
-
}), (
|
|
111
|
-
const c =
|
|
119
|
+
}), (b = this.mapConfig) != null && b.baseLayers ? this.mapConfig.baseLayers.forEach((t) => {
|
|
120
|
+
const c = this.processUrl(t.url);
|
|
112
121
|
let n = null;
|
|
113
122
|
switch (t.type.toLowerCase()) {
|
|
114
123
|
case "webTile".toLowerCase(): {
|
|
115
|
-
n = new
|
|
124
|
+
n = new H({
|
|
116
125
|
urlTemplate: c,
|
|
117
126
|
...t.options
|
|
118
127
|
});
|
|
119
128
|
break;
|
|
120
129
|
}
|
|
121
130
|
case "tile": {
|
|
122
|
-
n = new
|
|
131
|
+
n = new G({
|
|
123
132
|
url: c,
|
|
124
133
|
...t.options
|
|
125
134
|
});
|
|
126
135
|
break;
|
|
127
136
|
}
|
|
128
137
|
case "customWMTS".toLowerCase(): {
|
|
129
|
-
n = new
|
|
138
|
+
n = new A({
|
|
130
139
|
urlTemplate: c,
|
|
131
140
|
...t.options
|
|
132
141
|
});
|
|
133
142
|
break;
|
|
134
143
|
}
|
|
135
144
|
case "mapImage".toLowerCase(): {
|
|
136
|
-
n = new
|
|
145
|
+
n = new S({
|
|
137
146
|
url: c,
|
|
138
147
|
...t.options
|
|
139
148
|
});
|
|
140
149
|
break;
|
|
141
150
|
}
|
|
142
151
|
case "arcgis": {
|
|
143
|
-
const h = new
|
|
152
|
+
const h = new M(t.options);
|
|
144
153
|
r.basemap = h;
|
|
145
154
|
break;
|
|
146
155
|
}
|
|
147
156
|
case "feature": {
|
|
148
|
-
n = new
|
|
157
|
+
n = new W({ url: c, ...t.options });
|
|
149
158
|
break;
|
|
150
159
|
}
|
|
151
160
|
case "3dtiles": {
|
|
152
|
-
n = new
|
|
161
|
+
n = new I({
|
|
162
|
+
url: c,
|
|
163
|
+
...t.options
|
|
164
|
+
});
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case "wms": {
|
|
168
|
+
n = new R({
|
|
153
169
|
url: c,
|
|
154
170
|
...t.options
|
|
155
171
|
});
|
|
@@ -162,25 +178,26 @@ class oe {
|
|
|
162
178
|
if (n)
|
|
163
179
|
if (t.group) {
|
|
164
180
|
let h = r.findLayerById(t.group);
|
|
165
|
-
h && h.type === "group" ? h.add(n) : (h = new
|
|
181
|
+
h && h.type === "group" ? h.add(n) : (h = new x({
|
|
166
182
|
id: t.group,
|
|
167
183
|
title: t.groupTitle,
|
|
168
184
|
visibilityMode: "inherited",
|
|
169
|
-
layers: [n]
|
|
185
|
+
layers: [n],
|
|
186
|
+
visible: t.groupVisible !== !1
|
|
170
187
|
}), r.add(h));
|
|
171
188
|
} else
|
|
172
189
|
r.add(n);
|
|
173
|
-
}) : r.basemap = new
|
|
190
|
+
}) : r.basemap = new M({
|
|
174
191
|
style: {
|
|
175
192
|
id: "arcgis/light-gray",
|
|
176
193
|
language: "zh-CN"
|
|
177
194
|
}
|
|
178
|
-
}), (
|
|
195
|
+
}), (v = this.mapConfig) != null && v.hdLayers) {
|
|
179
196
|
const t = this.mapConfig.hdLayers.map(
|
|
180
197
|
(c) => (
|
|
181
198
|
// 图层文件为GeoJson格式, renderer和symbol使用autocast配置
|
|
182
|
-
new
|
|
183
|
-
url:
|
|
199
|
+
new z({
|
|
200
|
+
url: this.processUrl(c.url),
|
|
184
201
|
...c.options,
|
|
185
202
|
title: c.options.id
|
|
186
203
|
})
|
|
@@ -189,28 +206,28 @@ class oe {
|
|
|
189
206
|
r.addMany(t);
|
|
190
207
|
}
|
|
191
208
|
this.view.ui.remove("attribution"), await this.view.when();
|
|
192
|
-
const
|
|
193
|
-
let
|
|
209
|
+
const g = this.mapConfig.camera;
|
|
210
|
+
let p;
|
|
194
211
|
if (this.view.type === "2d") {
|
|
195
212
|
let t = this.view.center;
|
|
196
|
-
this.view.spatialReference.isWebMercator && (t =
|
|
213
|
+
this.view.spatialReference.isWebMercator && (t = w.webMercatorToGeographic(
|
|
197
214
|
t
|
|
198
|
-
)),
|
|
215
|
+
)), p = { center: [t.x, t.y], zoom: this.view.zoom };
|
|
199
216
|
} else {
|
|
200
217
|
let t = this.view.camera.position;
|
|
201
|
-
this.view.spatialReference.isWebMercator && (t =
|
|
218
|
+
this.view.spatialReference.isWebMercator && (t = w.webMercatorToGeographic(
|
|
202
219
|
t
|
|
203
|
-
)),
|
|
220
|
+
)), p = {
|
|
204
221
|
position: t,
|
|
205
222
|
heading: this.view.camera.heading,
|
|
206
223
|
tilt: this.view.camera.tilt
|
|
207
224
|
};
|
|
208
225
|
}
|
|
209
|
-
return
|
|
226
|
+
return g ? g.home = p : this.mapConfig.camera = { home: p }, this.view;
|
|
210
227
|
}
|
|
211
228
|
setLayerVisibility(e) {
|
|
212
|
-
const { id: i, visible:
|
|
213
|
-
return a ? (a.visible =
|
|
229
|
+
const { id: i, visible: s } = e, a = this.view.map.findLayerById(i);
|
|
230
|
+
return a ? (a.visible = s, { status: 0, message: "ok" }) : { status: -1, message: "未找到图层" };
|
|
214
231
|
}
|
|
215
232
|
/**
|
|
216
233
|
* 设置地图中心点
|
|
@@ -224,16 +241,16 @@ class oe {
|
|
|
224
241
|
if (e.center || e.target) {
|
|
225
242
|
switch ((i = e.target) == null ? void 0 : i.type.toLowerCase()) {
|
|
226
243
|
case "point":
|
|
227
|
-
e.target = new
|
|
244
|
+
e.target = new T(e.target);
|
|
228
245
|
break;
|
|
229
246
|
case "polyline":
|
|
230
|
-
e.target = new
|
|
247
|
+
e.target = new C(e.target);
|
|
231
248
|
break;
|
|
232
249
|
case "polygon":
|
|
233
|
-
e.target = new
|
|
250
|
+
e.target = new P(e.target);
|
|
234
251
|
break;
|
|
235
252
|
case "multipoint":
|
|
236
|
-
e.target = new
|
|
253
|
+
e.target = new L(e.target);
|
|
237
254
|
break;
|
|
238
255
|
}
|
|
239
256
|
await this.view.goTo(e, { duration: (e.duration || 0) * 1e3 });
|
|
@@ -246,7 +263,7 @@ class oe {
|
|
|
246
263
|
async lookAt(e) {
|
|
247
264
|
if (this.view.type === "2d")
|
|
248
265
|
return;
|
|
249
|
-
const i = e.tilt || 0,
|
|
266
|
+
const i = e.tilt || 0, s = e.heading || 0;
|
|
250
267
|
if (i === 0)
|
|
251
268
|
await this.view.goTo(
|
|
252
269
|
{
|
|
@@ -255,16 +272,16 @@ class oe {
|
|
|
255
272
|
y: e.center[1],
|
|
256
273
|
z: e.height
|
|
257
274
|
},
|
|
258
|
-
heading:
|
|
275
|
+
heading: s,
|
|
259
276
|
tilt: 0
|
|
260
277
|
},
|
|
261
278
|
{ duration: (e.duration || 2) * 1e3 }
|
|
262
279
|
);
|
|
263
280
|
else {
|
|
264
|
-
const a = Math.tan(i * Math.PI / 180) * e.height, r =
|
|
265
|
-
|
|
281
|
+
const a = Math.tan(i * Math.PI / 180) * e.height, r = U(
|
|
282
|
+
E.point(e.center),
|
|
266
283
|
a,
|
|
267
|
-
|
|
284
|
+
s + 180,
|
|
268
285
|
{
|
|
269
286
|
units: "meters"
|
|
270
287
|
}
|
|
@@ -276,7 +293,7 @@ class oe {
|
|
|
276
293
|
y: r.geometry.coordinates[1],
|
|
277
294
|
z: e.height
|
|
278
295
|
},
|
|
279
|
-
heading:
|
|
296
|
+
heading: s,
|
|
280
297
|
tilt: i
|
|
281
298
|
},
|
|
282
299
|
{ duration: (e.duration || 2) * 1e3 }
|
|
@@ -286,32 +303,32 @@ class oe {
|
|
|
286
303
|
async setMapCamera(e) {
|
|
287
304
|
if (!this.view)
|
|
288
305
|
return { status: -1, message: "未初始化" };
|
|
289
|
-
const { name: i, duration:
|
|
306
|
+
const { name: i, duration: s = 0 } = e, { camera: a } = this.mapConfig;
|
|
290
307
|
if (!a)
|
|
291
308
|
return { status: -1, message: "未配置camera" };
|
|
292
309
|
const r = a[i];
|
|
293
|
-
return r ? (await this.view.goTo(r, { duration:
|
|
310
|
+
return r ? (await this.view.goTo(r, { duration: s * 1e3 }), { status: 0, message: "成功" }) : { status: -1, message: "未配置camera" };
|
|
294
311
|
}
|
|
295
312
|
/**
|
|
296
313
|
* 经纬度转像素坐标,在地图移动时回调
|
|
297
314
|
* */
|
|
298
315
|
requestCoordinateTransform(e, i) {
|
|
299
|
-
let
|
|
300
|
-
const r = 1e3 / 30,
|
|
316
|
+
let s = 0;
|
|
317
|
+
const r = 1e3 / 30, g = k.watch(
|
|
301
318
|
() => this.view.center,
|
|
302
319
|
() => {
|
|
303
|
-
const
|
|
304
|
-
|
|
320
|
+
const p = this.transformPoints(e), m = Date.now();
|
|
321
|
+
m - s > r && (i(p), s = m);
|
|
305
322
|
}
|
|
306
323
|
);
|
|
307
|
-
return this.handleIndex++, this.watchHandleMap.set(this.handleIndex,
|
|
324
|
+
return this.handleIndex++, this.watchHandleMap.set(this.handleIndex, g), { handle: this.handleIndex, points: this.transformPoints(e) };
|
|
308
325
|
}
|
|
309
326
|
transformPoints(e) {
|
|
310
327
|
return e.map((i) => {
|
|
311
|
-
const
|
|
328
|
+
const s = new T({
|
|
312
329
|
x: i[0],
|
|
313
330
|
y: i[1]
|
|
314
|
-
}), a = this.view.toScreen(
|
|
331
|
+
}), a = this.view.toScreen(s);
|
|
315
332
|
return [a.x, a.y];
|
|
316
333
|
});
|
|
317
334
|
}
|
|
@@ -326,11 +343,11 @@ class oe {
|
|
|
326
343
|
* 设置地图zoom范围
|
|
327
344
|
* */
|
|
328
345
|
setMapZoomRange(e) {
|
|
329
|
-
const { min: i, max:
|
|
330
|
-
!i && !
|
|
346
|
+
const { min: i, max: s } = e;
|
|
347
|
+
!i && !s || (this.zoomWatchHandle && this.zoomWatchHandle.remove(), this.zoomWatchHandle = k.watch(
|
|
331
348
|
() => this.view.zoom,
|
|
332
349
|
(a) => {
|
|
333
|
-
i && a <= i && (this.view.zoom = i),
|
|
350
|
+
i && a <= i && (this.view.zoom = i), s && a >= s && (this.view.zoom = s);
|
|
334
351
|
}
|
|
335
352
|
));
|
|
336
353
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IResult, IShowJurisdictionParams } from '../../types';
|
|
2
|
+
export default class PoliceJurisdiction {
|
|
3
|
+
private geoServer;
|
|
4
|
+
private view;
|
|
5
|
+
private maskLayer;
|
|
6
|
+
constructor(view: __esri.MapView | __esri.SceneView);
|
|
7
|
+
showJurisdiction(params: IShowJurisdictionParams): Promise<IResult>;
|
|
8
|
+
clearJurisdiction(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Polygon as L } from "@arcgis/core/geometry";
|
|
2
|
+
import * as l from "@arcgis/core/geometry/geometryEngine";
|
|
3
|
+
import i from "@arcgis/core/Graphic";
|
|
4
|
+
import S from "@arcgis/core/layers/GraphicsLayer";
|
|
5
|
+
import _ from "axios";
|
|
6
|
+
import { toRaw as b } from "vue";
|
|
7
|
+
import k from "../stores/index.mjs";
|
|
8
|
+
class M {
|
|
9
|
+
constructor(e) {
|
|
10
|
+
this.view = e, this.maskLayer = new S({
|
|
11
|
+
id: "police-jurisdiction"
|
|
12
|
+
}), this.view.map.add(this.maskLayer);
|
|
13
|
+
const a = k.useAppDataStore, n = b(a.mapConfig);
|
|
14
|
+
this.geoServer = n.geoServer;
|
|
15
|
+
}
|
|
16
|
+
async showJurisdiction(e) {
|
|
17
|
+
if (!this.geoServer)
|
|
18
|
+
return { status: -1, message: "未配置GeoServer" };
|
|
19
|
+
const a = e.type.toLowerCase() === "zd" ? "VIEW_SH_ZD" : "VW_DWD_GEO_SH_DD", n = e.type.toLowerCase() === "zd" ? "ZD_CODE" : "DD_CODE", y = e.type.toLowerCase() === "zd" ? "ZD_NAME" : "DD_NAME", h = e.ids.join(","), s = await _.get(`${this.geoServer}/zd_edpass/wms`, {
|
|
20
|
+
params: {
|
|
21
|
+
service: "WFS",
|
|
22
|
+
version: "1.1.0",
|
|
23
|
+
request: "GetFeature",
|
|
24
|
+
typename: `zd_edpass:${a}`,
|
|
25
|
+
outputFormat: "application/json",
|
|
26
|
+
CQL_FILTER: `${n} IN (${h})`
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
if (s.status !== 200)
|
|
30
|
+
return { status: -1, message: s.status + " " + s.statusText };
|
|
31
|
+
const { features: c } = s.data;
|
|
32
|
+
if (!c || c.length === 0)
|
|
33
|
+
return { status: -1, message: "未查询到数据" };
|
|
34
|
+
this.maskLayer.removeAll();
|
|
35
|
+
const t = [], p = [], d = [];
|
|
36
|
+
c.forEach((o) => {
|
|
37
|
+
const w = o.geometry.coordinates, r = new L({
|
|
38
|
+
rings: w[0]
|
|
39
|
+
});
|
|
40
|
+
t.push(r);
|
|
41
|
+
const v = new i({
|
|
42
|
+
geometry: r,
|
|
43
|
+
symbol: {
|
|
44
|
+
type: "simple-line",
|
|
45
|
+
style: "dash",
|
|
46
|
+
color: [111, 100, 255],
|
|
47
|
+
width: 4
|
|
48
|
+
}
|
|
49
|
+
}), D = new i({
|
|
50
|
+
geometry: r,
|
|
51
|
+
symbol: {
|
|
52
|
+
type: "simple-line",
|
|
53
|
+
style: "solid",
|
|
54
|
+
color: [111, 100, 255, 0.6],
|
|
55
|
+
width: 4
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
p.push(v, D);
|
|
59
|
+
const G = new i({
|
|
60
|
+
geometry: r.centroid,
|
|
61
|
+
symbol: {
|
|
62
|
+
type: "text",
|
|
63
|
+
color: [0, 0, 0],
|
|
64
|
+
haloColor: [255, 255, 255],
|
|
65
|
+
haloSize: "1px",
|
|
66
|
+
text: o.properties[y],
|
|
67
|
+
font: {
|
|
68
|
+
size: "14px",
|
|
69
|
+
weight: "bold",
|
|
70
|
+
family: "msyh"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
d.push(G);
|
|
75
|
+
});
|
|
76
|
+
const u = t[0].centroid, f = l.geodesicBuffer(
|
|
77
|
+
u,
|
|
78
|
+
100,
|
|
79
|
+
"kilometers"
|
|
80
|
+
);
|
|
81
|
+
let m = l.difference(
|
|
82
|
+
f,
|
|
83
|
+
t[0]
|
|
84
|
+
);
|
|
85
|
+
for (let o = 1; o < t.length; o++)
|
|
86
|
+
m = l.difference(
|
|
87
|
+
m,
|
|
88
|
+
t[o]
|
|
89
|
+
);
|
|
90
|
+
const g = new i({
|
|
91
|
+
geometry: m,
|
|
92
|
+
symbol: {
|
|
93
|
+
type: "simple-fill",
|
|
94
|
+
color: [100, 100, 100, 0.8],
|
|
95
|
+
outline: {
|
|
96
|
+
width: 0
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
attributes: { type: "mask" }
|
|
100
|
+
});
|
|
101
|
+
return this.maskLayer.add(g), this.maskLayer.addMany(p), this.maskLayer.addMany(d), await this.view.goTo(t), { status: 0, message: "ok" };
|
|
102
|
+
}
|
|
103
|
+
clearJurisdiction() {
|
|
104
|
+
this.maskLayer.removeAll();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export {
|
|
108
|
+
M as default
|
|
109
|
+
};
|
package/es/src/types/index.d.ts
CHANGED
|
@@ -315,3 +315,13 @@ export interface IRoadLine {
|
|
|
315
315
|
toNode: string;
|
|
316
316
|
coordinates: number[][];
|
|
317
317
|
}
|
|
318
|
+
export interface IShowJurisdictionParams {
|
|
319
|
+
type: string;
|
|
320
|
+
ids: string[];
|
|
321
|
+
}
|
|
322
|
+
export interface IShowEdpassDeviceParams {
|
|
323
|
+
deviceType: string;
|
|
324
|
+
deviceState: string;
|
|
325
|
+
mode: string;
|
|
326
|
+
visible: boolean;
|
|
327
|
+
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import MapView from '@arcgis/core/views/MapView';
|
|
2
2
|
import SceneView from '@arcgis/core/views/SceneView';
|
|
3
|
-
import { IEditSignalControlAreaParams, IFindSignalControlAreaParams, IFindSumoParams, ILaneNumberParams, ILayerVisibleParams, ILookAtParams, IMaskParam, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IShowGreenWaveBandParams, IShowOpenDriveFromFileParams, IShowSignalControlAreaParams, ISignalCountdownProps, ISplitOpenDriveLaneParams, IStartCrossBufferParam, IToggleTrafficInfoParams, IUnselectSumoParams } from '../types';
|
|
3
|
+
import { IEditSignalControlAreaParams, IFindSignalControlAreaParams, IFindSumoParams, ILaneNumberParams, ILayerVisibleParams, ILookAtParams, IMaskParam, IOverlayParam, IQueueLengthParams, ISetMapCameraParams, ISetMapCenterParams, IShowEdpassDeviceParams, IShowGreenWaveBandParams, IShowJurisdictionParams, IShowOpenDriveFromFileParams, IShowSignalControlAreaParams, ISignalCountdownProps, ISplitOpenDriveLaneParams, IStartCrossBufferParam, IToggleTrafficInfoParams, IUnselectSumoParams } from '../types';
|
|
4
4
|
import GreenWaveBandController from './utils/green-wave-band-controller';
|
|
5
5
|
import HoloFlow from './utils/holo-flow';
|
|
6
6
|
import MapInitializer from './utils/map-initializer';
|
|
7
7
|
import OpenDriveRenderer from './utils/open-drive-renderer';
|
|
8
8
|
import Overlay from './utils/overlay';
|
|
9
|
+
import PoliceJurisdiction from './utils/police-jurisdiction';
|
|
9
10
|
import QueueLength from './utils/queue-length';
|
|
10
11
|
import RoadConfigTool from './utils/road-config-tool';
|
|
11
12
|
import EditSignalArea from './utils/signal-control-area/edit-area';
|
|
12
13
|
import ShowSignalArea from './utils/signal-control-area/show-area';
|
|
13
14
|
import TrafficFlow from './utils/traffic-flow';
|
|
15
|
+
import EdpassDeviceController from './utils/edpass-device-controller';
|
|
14
16
|
declare const _sfc_main: import("vue").DefineComponent<{
|
|
15
17
|
config: {
|
|
16
18
|
type: StringConstructor;
|
|
@@ -33,11 +35,14 @@ declare const _sfc_main: import("vue").DefineComponent<{
|
|
|
33
35
|
editSignalAreaController: EditSignalArea;
|
|
34
36
|
showSignalAreaController: ShowSignalArea;
|
|
35
37
|
greenWaveBandController: GreenWaveBandController;
|
|
38
|
+
policeJurisdictionController: PoliceJurisdiction;
|
|
39
|
+
edpassDeviceController: EdpassDeviceController;
|
|
36
40
|
showLogDiv: import("vue").Ref<boolean>;
|
|
37
41
|
appDataStore: import("pinia").Store<"appData", {
|
|
38
42
|
mapConfig: {};
|
|
39
43
|
saveTrackLog: boolean;
|
|
40
44
|
isSketching: boolean;
|
|
45
|
+
mapInitializer: MapInitializer;
|
|
41
46
|
countdownPanels: ISignalCountdownProps[];
|
|
42
47
|
}, {}, {}>;
|
|
43
48
|
countdownPanelProps: {
|
|
@@ -162,6 +167,12 @@ declare const _sfc_main: import("vue").DefineComponent<{
|
|
|
162
167
|
message: string;
|
|
163
168
|
} | undefined;
|
|
164
169
|
showGreenWaveBand: (params: IShowGreenWaveBandParams) => Promise<void>;
|
|
170
|
+
showPoliceArea: (params: IShowJurisdictionParams) => Promise<import("../types").IResult>;
|
|
171
|
+
clearPoliceArea: () => {
|
|
172
|
+
status: number;
|
|
173
|
+
message: string;
|
|
174
|
+
} | undefined;
|
|
175
|
+
setEdpassLayerVisibility: (params: IShowEdpassDeviceParams) => Promise<import("../types").IResult>;
|
|
165
176
|
props: any;
|
|
166
177
|
emit: (event: "mapLoaded" | "markerClick" | "mapClick", ...args: any[]) => void;
|
|
167
178
|
SignalCountdownPanel: import("vue").DefineComponent<{
|
|
@@ -239,12 +250,6 @@ declare const _sfc_main: import("vue").DefineComponent<{
|
|
|
239
250
|
animation: string;
|
|
240
251
|
}>;
|
|
241
252
|
rImage: import("vue").ComputedRef<string>;
|
|
242
|
-
/**
|
|
243
|
-
* 开始坐标转换,经纬度坐标转屏幕坐标。
|
|
244
|
-
* @param points
|
|
245
|
-
* @param callback 回调函数,参数为转换后的屏幕坐标。地图移动、缩放、缩放时,会多次调用该回调函数。
|
|
246
|
-
* @returns handle 坐标转换句柄,用于停止坐标转换。
|
|
247
|
-
* */
|
|
248
253
|
rNumberStyle: import("vue").ComputedRef<any>;
|
|
249
254
|
rLampStyle: import("vue").ComputedRef<{
|
|
250
255
|
display: string;
|