zhihao-ui 1.3.36 → 1.3.38

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.
@@ -1,19 +1,19 @@
1
- import { defineComponent as Ye, openBlock as Be, createElementBlock as qe, createElementVNode as Ge, ref as I, computed as Te, h as ne, createVNode as Ae, render as Pt, reactive as St, onMounted as Nt, onUnmounted as Vt } from "vue";
2
- import { S as $t, M as Ue, T as me, X as we, p as ee, V as zt, q as Ot, t as Rt, h as lt, r as He, s as Zt, u as ge, F as Q, v as X, O as ce, P as le, w as ke, x as Ne, L as Pe, y as Dt, z as Ie, A as ie, B as he, C as de, D as ve, i as Gt, G as Ve, H as At, I as Oe, J as Wt, K as Yt, N as st, Q as Se, R as We, U as et, W as Bt, Y as qt, Z as Ht } from "./vendor-D2mv9LHk.js";
1
+ import { defineComponent as Ye, openBlock as Be, createElementBlock as qe, createElementVNode as Ge, ref as U, computed as Fe, h as ne, createVNode as Ae, render as Pt, reactive as St, onMounted as Nt, onUnmounted as Vt } from "vue";
2
+ import { S as $t, M as Ue, T as ye, X as me, p as I, V as zt, q as Ot, t as Rt, h as lt, r as He, s as Zt, u as we, F as ee, v as X, O as ce, P as le, w as ke, x as Ve, L as Se, y as Dt, z as Ie, A as ie, B as he, C as de, D as fe, i as Gt, G as $e, H as At, I as pe, J as Wt, K as Yt, N as st, Q as Ne, R as We, U as et, W as Bt, Y as qt, Z as Ht } from "./vendor-D2mv9LHk.js";
3
3
  import { _ as Xe } from "./Button-CGndQwez.js";
4
4
  import { w as Xt } from "./utils-D2wHR1YB.js";
5
5
  const jt = { id: "scale-line-container" }, Qt = /* @__PURE__ */ Ye({
6
6
  __name: "scaleLine",
7
7
  setup(e, { expose: r }) {
8
8
  return r({
9
- setScaleLine: (s, i) => {
10
- i || (i = "metric");
9
+ setScaleLine: (s, c) => {
10
+ c || (c = "metric");
11
11
  const o = new $t({
12
- units: i
12
+ units: c
13
13
  }), u = document.getElementById("scale-line-container");
14
14
  u && (o.setTarget(u), s.addControl(o));
15
15
  }
16
- }), (s, i) => (Be(), qe("div", jt));
16
+ }), (s, c) => (Be(), qe("div", jt));
17
17
  }
18
18
  }), Jt = /* @__PURE__ */ Xe(Qt, [["__scopeId", "data-v-2bc5dee8"]]), Kt = { class: "zoom" }, _t = /* @__PURE__ */ Ye({
19
19
  __name: "zoomControl",
@@ -28,17 +28,17 @@ const jt = { id: "scale-line-container" }, Qt = /* @__PURE__ */ Ye({
28
28
  console.log("props", r);
29
29
  const l = () => {
30
30
  console.log("props");
31
- const { setZoom: i, getZoom: o, getInstall: u } = r.mapInstance.methods;
31
+ const { setZoom: c, getZoom: o, getInstall: u } = r.mapInstance.methods;
32
32
  if (!u()) return;
33
33
  const t = o();
34
- t && i(t + 1);
34
+ t && c(t + 1);
35
35
  }, s = () => {
36
- const { setZoom: i, getZoom: o, getInstall: u } = r.mapInstance.methods;
36
+ const { setZoom: c, getZoom: o, getInstall: u } = r.mapInstance.methods;
37
37
  if (!u()) return;
38
38
  const t = o();
39
- t && i(t - 1);
39
+ t && c(t - 1);
40
40
  };
41
- return (i, o) => (Be(), qe("div", Kt, [
41
+ return (c, o) => (Be(), qe("div", Kt, [
42
42
  Ge("div", {
43
43
  class: "button big-button",
44
44
  onClick: l
@@ -49,7 +49,7 @@ const jt = { id: "scale-line-container" }, Qt = /* @__PURE__ */ Ye({
49
49
  }, " - ")
50
50
  ]));
51
51
  }
52
- }), Ut = /* @__PURE__ */ Xe(_t, [["__scopeId", "data-v-c39c3075"]]), Fe = "a6e8f78974f2581f2ca00485b40c948f", te = {
52
+ }), Ut = /* @__PURE__ */ Xe(_t, [["__scopeId", "data-v-c39c3075"]]), Pe = "a6e8f78974f2581f2ca00485b40c948f", te = {
53
53
  // 地图默认层级
54
54
  default: 13,
55
55
  // 地图缩放最小层级
@@ -64,43 +64,43 @@ const jt = { id: "scale-line-container" }, Qt = /* @__PURE__ */ Ye({
64
64
  shipModelMax: 18,
65
65
  //根据原系统canvas图片转换svg长宽比例计算缩放值
66
66
  scaleNum: 0.555
67
- }, K = {
67
+ }, J = {
68
68
  // 经纬度 源数据 地理坐标 WGS84
69
69
  data: "EPSG:4326",
70
70
  // 墨卡托投影坐标 渲染坐标
71
71
  mercator: "EPSG:3857"
72
- }, It = [114.84, 30.52], it = "https://static.zhihaoscm.cn/", $e = 2003750834e-2;
73
- var ue = ((e) => (e.vectorTile = `https://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Fe}`, e.vectorTileMark = `https://t0.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Fe}`, e.satelliteImgTile = `https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Fe}`, e.satelliteImgTileMark = `https://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Fe}`, e.greenTile = `${it}/map/tile/{z}/{x}/{y}.png`, e))(ue || {}), xe = /* @__PURE__ */ ((e) => (e[e.M = 1] = "M", e[e.KM = 2] = "KM", e[e.NM = 3] = "NM", e))(xe || {});
72
+ }, It = [114.84, 30.52], it = "https://static.zhihaoscm.cn/", ze = 2003750834e-2;
73
+ var ue = ((e) => (e.vectorTile = `https://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Pe}`, e.vectorTileMark = `https://t0.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Pe}`, e.satelliteImgTile = `https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Pe}`, e.satelliteImgTileMark = `https://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${Pe}`, e.greenTile = `${it}/map/tile/{z}/{x}/{y}.png`, e))(ue || {}), xe = /* @__PURE__ */ ((e) => (e[e.M = 1] = "M", e[e.KM = 2] = "KM", e[e.NM = 3] = "NM", e))(xe || {});
74
74
  function eo() {
75
- const e = I(), r = () => e.value, l = () => r().getView(), s = () => {
76
- var v;
77
- return (v = l()) == null ? void 0 : v.getZoom();
78
- }, i = (v) => {
75
+ const e = U(), r = () => e.value, l = () => r().getView(), s = () => {
76
+ var h;
77
+ return (h = l()) == null ? void 0 : h.getZoom();
78
+ }, c = (h) => {
79
79
  var N;
80
- (N = l()) == null || N.setZoom(v);
81
- }, o = (v, N) => {
82
- var M;
83
- (M = l()) == null || M.setCenter(ee([v, N]));
80
+ (N = l()) == null || N.setZoom(h);
81
+ }, o = (h, N) => {
82
+ var L;
83
+ (L = l()) == null || L.setCenter(I([h, N]));
84
84
  }, u = () => {
85
85
  var N;
86
- const v = (N = l()) == null ? void 0 : N.getCenter();
87
- return Rt(v);
88
- }, h = () => {
89
- var v;
90
- return (v = r()) == null ? void 0 : v.getSize();
91
- }, t = new Ue(), n = (v, N) => {
86
+ const h = (N = l()) == null ? void 0 : N.getCenter();
87
+ return Rt(h);
88
+ }, y = () => {
89
+ var h;
90
+ return (h = r()) == null ? void 0 : h.getSize();
91
+ }, t = new Ue(), n = (h, N) => {
92
92
  m(N);
93
- const M = {
93
+ const L = {
94
94
  zoom: N.zoom,
95
- center: ee(N.center),
95
+ center: I(N.center),
96
96
  minZoom: te.min,
97
97
  maxZoom: te.max,
98
98
  constrainResolution: !0,
99
99
  enableRotation: !1,
100
100
  multiWorld: !0
101
101
  };
102
- let y = {
103
- target: v,
102
+ let v = {
103
+ target: h,
104
104
  controls: Ot({
105
105
  zoom: !1
106
106
  }),
@@ -110,38 +110,38 @@ function eo() {
110
110
  t.get("satelliteImgTile"),
111
111
  t.get("satelliteImgTileMark")
112
112
  ],
113
- view: new zt(M)
113
+ view: new zt(L)
114
114
  };
115
- const w = new Ue(y);
115
+ const w = new Ue(v);
116
116
  e.value = w;
117
- }, m = (v) => {
118
- t.set("vectorTile", new me({
119
- source: new we({ url: ue.vectorTile }),
120
- visible: v.layerType === "vector",
117
+ }, m = (h) => {
118
+ t.set("vectorTile", new ye({
119
+ source: new me({ url: ue.vectorTile }),
120
+ visible: h.layerType === "vector",
121
121
  zIndex: 0,
122
122
  preload: 1,
123
123
  className: "vector"
124
- })), t.set("vectorTileMark", new me({
125
- source: new we({ url: ue.vectorTileMark }),
126
- visible: v.layerType === "vector",
124
+ })), t.set("vectorTileMark", new ye({
125
+ source: new me({ url: ue.vectorTileMark }),
126
+ visible: h.layerType === "vector",
127
127
  zIndex: 1,
128
128
  preload: 1,
129
129
  className: "vector"
130
- })), t.set("satelliteImgTile", new me({
131
- source: new we({ url: ue.satelliteImgTile }),
132
- visible: v.layerType === "satellite",
130
+ })), t.set("satelliteImgTile", new ye({
131
+ source: new me({ url: ue.satelliteImgTile }),
132
+ visible: h.layerType === "satellite",
133
133
  zIndex: 0,
134
134
  preload: 1,
135
135
  className: "satellite"
136
- })), t.set("satelliteImgTileMark", new me({
137
- source: new we({ url: ue.satelliteImgTileMark }),
138
- visible: v.layerType === "satellite",
136
+ })), t.set("satelliteImgTileMark", new ye({
137
+ source: new me({ url: ue.satelliteImgTileMark }),
138
+ visible: h.layerType === "satellite",
139
139
  zIndex: 1,
140
140
  preload: 1,
141
141
  className: "satellite"
142
- })), t.set("greenMark", new me({
143
- source: new we({ url: ue.greenTile }),
144
- visible: v.showGreenLayer,
142
+ })), t.set("greenMark", new ye({
143
+ source: new me({ url: ue.greenTile }),
144
+ visible: h.showGreenLayer,
145
145
  zIndex: 2,
146
146
  className: "greenTile"
147
147
  }));
@@ -150,10 +150,10 @@ function eo() {
150
150
  getInstall: r,
151
151
  getView: l,
152
152
  getZoom: s,
153
- setZoom: i,
153
+ setZoom: c,
154
154
  setCenter: o,
155
155
  getCenter: u,
156
- getSize: h,
156
+ getSize: y,
157
157
  initMap: n,
158
158
  setBaseLayerMap: m
159
159
  };
@@ -162,12 +162,12 @@ const je = function(e, r) {
162
162
  const l = Number(r) / 6e5;
163
163
  return [Number(e) / 6e5, l];
164
164
  }, to = (e, r) => {
165
- const l = ee(e), s = r * 1e3, i = [
165
+ const l = I(e), s = r * 1e3, c = [
166
166
  l[0] - s,
167
167
  l[1] - s,
168
168
  l[0] + s,
169
169
  l[1] + s
170
- ], o = Zt(i, K.mercator, K.data);
170
+ ], o = Zt(c, J.mercator, J.data);
171
171
  return {
172
172
  leftTopPoint: { lng: o[0], lat: o[3] },
173
173
  rightTopPoint: { lng: o[2], lat: o[3] },
@@ -176,37 +176,37 @@ const je = function(e, r) {
176
176
  };
177
177
  }, oo = function(e, r) {
178
178
  const s = He(e);
179
- let i = "";
179
+ let c = "";
180
180
  switch (console.log(r, xe), r) {
181
181
  case xe.M:
182
- i = Math.round(s * 100) / 100 + " m";
182
+ c = Math.round(s * 100) / 100 + " m";
183
183
  break;
184
184
  case xe.KM:
185
- i = Math.round(s / 1e3 * 100) / 100 + " km";
185
+ c = Math.round(s / 1e3 * 100) / 100 + " km";
186
186
  break;
187
187
  case xe.NM:
188
- i = (Math.round(s / 1e3 * 100) / 100 / 1.852).toFixed(2) + " nm";
188
+ c = (Math.round(s / 1e3 * 100) / 100 / 1.852).toFixed(2) + " nm";
189
189
  break;
190
190
  }
191
- return i;
191
+ return c;
192
192
  };
193
193
  function ro(e) {
194
- const r = e[0] * $e / 180;
194
+ const r = e[0] * ze / 180;
195
195
  let l = Math.log(Math.tan((90 + e[1]) * Math.PI / 360)) / (Math.PI / 180);
196
- return l = l * $e / 180, [r, l];
196
+ return l = l * ze / 180, [r, l];
197
197
  }
198
- function fe(e = "") {
198
+ function ge(e = "") {
199
199
  let r = e.replace(/&?/g, "&");
200
200
  return r = r.replace(/&#x([0-9a-fA-F]+);?/g, (l, s) => {
201
- const i = parseInt(s, 16);
202
- return String.fromCodePoint(i);
201
+ const c = parseInt(s, 16);
202
+ return String.fromCodePoint(c);
203
203
  }), r;
204
204
  }
205
205
  const tt = (e) => {
206
- const r = new ge({
206
+ const r = new we({
207
207
  font: "Normal 14px map-iconfont",
208
- text: fe(e),
209
- fill: new Q({ color: "#fff" }),
208
+ text: ge(e),
209
+ fill: new ee({ color: "#fff" }),
210
210
  offsetY: -14
211
211
  });
212
212
  return new X({
@@ -214,22 +214,22 @@ const tt = (e) => {
214
214
  zIndex: 100
215
215
  });
216
216
  }, ot = (e, r = "lonlat") => {
217
- const l = { lon: 0, lat: 0 }, s = e[0] / $e * 180;
218
- let i = e[1] / $e * 180;
219
- return i = 180 / Math.PI * (2 * Math.atan(Math.exp(i * Math.PI / 180)) - Math.PI / 2), l.lon = s, l.lat = i, r === "lonlat" ? l : [s, i];
217
+ const l = { lon: 0, lat: 0 }, s = e[0] / ze * 180;
218
+ let c = e[1] / ze * 180;
219
+ return c = 180 / Math.PI * (2 * Math.atan(Math.exp(c * Math.PI / 180)) - Math.PI / 2), l.lon = s, l.lat = c, r === "lonlat" ? l : [s, c];
220
220
  }, no = (e) => {
221
- const r = lt.duration(e, "minutes"), l = Math.floor(r.asDays()), s = r.hours(), i = r.minutes();
222
- let o = `${String(i).padStart(2, "0")}分`;
221
+ const r = lt.duration(e, "minutes"), l = Math.floor(r.asDays()), s = r.hours(), c = r.minutes();
222
+ let o = `${String(c).padStart(2, "0")}分`;
223
223
  return s !== 0 && (o = `${String(s).padStart(2, "0")}时${o}`), l !== 0 && (o = `${String(l).padStart(2, "0")}天${o}`), o;
224
224
  }, lo = (e, r) => {
225
225
  let l = null;
226
226
  const s = async (m) => {
227
227
  if (!e || (console.log("vehicleInfo", m), !(m != null && m.lon && (m != null && m.lat)))) return;
228
- const v = Math.abs(Number(m.lon)) > 180 ? je(m.lon, m.lat) : [m.lon, m.lat];
229
- i(m, ee(v));
230
- const N = e == null ? void 0 : e.getView(), M = new le(v);
231
- N.setCenter(ke(M.getCoordinates(), K.data, K.mercator));
232
- }, i = (m, v) => {
228
+ const h = Math.abs(Number(m.lon)) > 180 ? je(m.lon, m.lat) : [m.lon, m.lat];
229
+ c(m, I(h));
230
+ const N = e == null ? void 0 : e.getView(), L = new le(h);
231
+ N.setCenter(ke(L.getCoordinates(), J.data, J.mercator));
232
+ }, c = (m, h) => {
233
233
  const N = `${it}map/car-icon.gif`;
234
234
  l || (l = new ce({
235
235
  element: document.createElement("div"),
@@ -237,10 +237,10 @@ const tt = (e) => {
237
237
  stopEvent: !1
238
238
  // 允许交互事件穿透
239
239
  }), e.addOverlay(l));
240
- const M = l.getElement();
241
- M.style.backgroundImage = `url(${N})`, M.style.width = "80px", M.style.height = "80px";
242
- const y = (m == null ? void 0 : m.drc) || "";
243
- M.style.transform = `rotate(${y}deg)`, M.style.backgroundSize = "cover", l == null || l.setPosition(v);
240
+ const L = l.getElement();
241
+ L.style.backgroundImage = `url(${N})`, L.style.width = "80px", L.style.height = "80px";
242
+ const v = (m == null ? void 0 : m.drc) || "";
243
+ L.style.transform = `rotate(${v}deg)`, L.style.backgroundSize = "cover", l == null || l.setPosition(h);
244
244
  };
245
245
  return {
246
246
  location: s,
@@ -248,8 +248,8 @@ const tt = (e) => {
248
248
  const m = l == null ? void 0 : l.getElement();
249
249
  m && (m.innerHTML = "");
250
250
  },
251
- renderTrack: (m, v, N) => {
252
- r.render(m, v, N, "truck", 1e3);
251
+ renderTrack: (m, h, N) => {
252
+ r.render(m, h, N, "truck", 1e3);
253
253
  },
254
254
  setCenter: (m) => {
255
255
  r.setCenter(m);
@@ -257,8 +257,8 @@ const tt = (e) => {
257
257
  closeTrack: () => {
258
258
  r.close();
259
259
  },
260
- playTrack: (m, v) => {
261
- r.play(m, v);
260
+ playTrack: (m, h) => {
261
+ r.play(m, h);
262
262
  }
263
263
  };
264
264
  };
@@ -266,172 +266,172 @@ var ct = /* @__PURE__ */ ((e) => (e[e.发动机使用中 = 0] = "发动机使用
266
266
  const so = (e) => {
267
267
  const r = /* @__PURE__ */ new Map(), l = {};
268
268
  let s = null;
269
- const i = "--";
269
+ const c = "--";
270
270
  let o = null;
271
- const u = document.createElement("div"), h = new ce({
271
+ const u = document.createElement("div"), y = new ce({
272
272
  element: u,
273
273
  positioning: "top-left",
274
274
  className: "track-label-popup"
275
275
  });
276
- let t, n, m, v, N, M = !1, y = Date.now(), w, L = 0, C = null, b = 20;
277
- const B = 8, G = [], q = (c) => {
276
+ let t, n, m, h, N, L = !1, v = Date.now(), w, k = 0, C = null, x = 20;
277
+ const G = 8, D = [], q = (i) => {
278
278
  var d;
279
- for (G.unshift(c); G.length > B; ) {
280
- const f = G.pop(), p = r.get(f);
281
- p && ((d = p.getSource()) == null || d.clear(), e == null || e.removeLayer(p), r.delete(f), delete l[f]);
279
+ for (D.unshift(i); D.length > G; ) {
280
+ const f = D.pop(), M = r.get(f);
281
+ M && ((d = M.getSource()) == null || d.clear(), e == null || e.removeLayer(M), r.delete(f), delete l[f]);
282
282
  }
283
283
  };
284
284
  let Y = "";
285
- const R = ["#ff0000", "#00ff00", "#0079ff", "#ffa500", "#800080", "#008080", "#ffc0cb", "#800000", "#000080", "#808000"], Z = Ne(() => {
285
+ const O = ["#ff0000", "#00ff00", "#0079ff", "#ffa500", "#800080", "#008080", "#ffc0cb", "#800000", "#000080", "#808000"], Z = Ve(() => {
286
286
  if (s && l[s] && r.get(s).getVisible()) {
287
287
  console.log("reRenderTrackLine------------");
288
- const c = Gt(S(s, l[s]));
289
- re(s, c);
288
+ const i = Gt(T(s, l[s]));
289
+ re(s, i);
290
290
  }
291
- }, 300), S = (c, d) => {
291
+ }, 300), T = (i, d) => {
292
292
  let f = [];
293
- const p = Math.max(1, Math.floor(d.length / b));
294
- return f = d.filter((T, O) => O % p === 0).map((T, O) => {
295
- if (Number(T.lon) > 180 || Number(T.lat) > 180) {
296
- const [$, A] = je(T.lon, T.lat);
297
- T.lon = $, T.lat = A;
293
+ const M = Math.max(1, Math.floor(d.length / x));
294
+ return f = d.filter((F, R) => R % M === 0).map((F, R) => {
295
+ if (Number(F.lon) > 180 || Number(F.lat) > 180) {
296
+ const [$, W] = je(F.lon, F.lat);
297
+ F.lon = $, F.lat = W;
298
298
  }
299
- return T.center = [T.lon, T.lat], T.centerPoint = ro(T.center), T.time = lt(T.createdAt).format("YYYY-MM-DD HH:mm:ss"), T.id = c, T.index = O, T;
299
+ return F.center = [F.lon, F.lat], F.centerPoint = ro(F.center), F.time = lt(F.createdAt).format("YYYY-MM-DD HH:mm:ss"), F.id = i, F.index = R, F;
300
300
  }), f;
301
- }, a = async (c, d, f, p = "ship", E = 200) => {
302
- if (!e || JSON.stringify(l[c]) === JSON.stringify(d) && s === c || (d = d == null ? void 0 : d.reverse(), h && p === "ship" && (e != null && e.getOverlays().getArray().includes(h) || e.addOverlay(h)), (d == null ? void 0 : d.length) < 2))
301
+ }, a = async (i, d, f, M = "ship", E = 200) => {
302
+ if (!e || JSON.stringify(l[i]) === JSON.stringify(d) && s === i || (d = d == null ? void 0 : d.reverse(), y && M === "ship" && (e != null && e.getOverlays().getArray().includes(y) || e.addOverlay(y)), (d == null ? void 0 : d.length) < 2))
303
303
  return;
304
- q(c), s = c, l[c] = d, b = E;
305
- const T = Object.keys(l).findIndex((O) => O === c) || 0;
306
- Y = f || R[T > 10 ? 10 : T], await k(), await Je(s);
307
- }, x = (c) => {
304
+ q(i), s = i, l[i] = d, x = E;
305
+ const F = Object.keys(l).findIndex((R) => R === i) || 0;
306
+ Y = f || O[F > 10 ? 10 : F], await p(), await Je(s);
307
+ }, b = (i) => {
308
308
  const d = new de();
309
309
  return new he({
310
310
  source: d,
311
311
  visible: !1,
312
312
  // 默认隐藏
313
- className: `track-layer-${c}`,
313
+ className: `track-layer-${i}`,
314
314
  renderBuffer: 1024
315
315
  // 增大渲染缓冲区
316
316
  });
317
- }, g = (c) => {
317
+ }, g = (i) => {
318
318
  r.forEach((d, f) => {
319
319
  var E;
320
- const p = f === c;
321
- d.getVisible() !== p && (d.setVisible(p), e.getLayers().getArray().includes(d) || e.addLayer(d), p || (E = d.getSource()) == null || E.clear());
322
- }), s = c;
323
- }, k = async () => {
324
- const c = s;
325
- if (!r.has(c)) {
326
- const T = x(c);
327
- r.set(c, T);
320
+ const M = f === i;
321
+ d.getVisible() !== M && (d.setVisible(M), e.getLayers().getArray().includes(d) || e.addLayer(d), M || (E = d.getSource()) == null || E.clear());
322
+ }), s = i;
323
+ }, p = async () => {
324
+ const i = s;
325
+ if (!r.has(i)) {
326
+ const F = b(i);
327
+ r.set(i, F);
328
328
  }
329
- await g(c);
330
- const d = Y || "", f = l[c] || [];
329
+ await g(i);
330
+ const d = Y || "", f = l[i] || [];
331
331
  if (!(f && f.length > 1)) return [];
332
- let p = [];
333
- p = S(c, f);
334
- const E = p.map((T) => T.centerPoint);
335
- p.length >= 2 && await F(c, E, d);
336
- }, F = (c, d, f) => {
337
- const p = new Pe(d), E = r.get(c).getSource(), T = E.getFeatureById(c);
338
- if (T)
339
- T.setGeometry(p), T.setId(c), T.setStyle(V(f)), C = T;
332
+ let M = [];
333
+ M = T(i, f);
334
+ const E = M.map((F) => F.centerPoint);
335
+ M.length >= 2 && await P(i, E, d);
336
+ }, P = (i, d, f) => {
337
+ const M = new Se(d), E = r.get(i).getSource(), F = E.getFeatureById(i);
338
+ if (F)
339
+ F.setGeometry(M), F.setId(i), F.setStyle(V(f)), C = F;
340
340
  else {
341
- const O = new ie({ geometry: p });
342
- O.setId(c), O.set("type", "line"), O.setStyle(V(f)), E.addFeature(O), C = O;
341
+ const R = new ie({ geometry: M });
342
+ R.setId(i), R.set("type", "line"), R.setStyle(V(f)), E.addFeature(R), C = R;
343
343
  }
344
344
  return C;
345
- }, V = (c) => new X({
346
- stroke: new ve({
347
- color: c,
345
+ }, V = (i) => new X({
346
+ stroke: new fe({
347
+ color: i,
348
348
  width: 2
349
349
  })
350
- }), D = (c, d, f) => {
351
- const p = c == null ? void 0 : c.get("trackId");
352
- if (c && p && d === "hover") {
353
- e.getTargetElement().style.cursor = p ? "pointer" : "";
354
- const E = c.get("data"), T = j(E), O = f == null ? void 0 : f.coordinate;
355
- O && (u.querySelector(".popup-content"), u.innerHTML = T, h == null || h.setPosition(O));
350
+ }), A = (i, d, f) => {
351
+ const M = i == null ? void 0 : i.get("trackId");
352
+ if (i && M && d === "hover") {
353
+ e.getTargetElement().style.cursor = M ? "pointer" : "";
354
+ const E = i.get("data"), F = j(E), R = f == null ? void 0 : f.coordinate;
355
+ R && (u.querySelector(".popup-content"), u.innerHTML = F, y == null || y.setPosition(R));
356
356
  } else
357
- h && h.setPosition(void 0);
358
- }, j = (c) => {
359
- if (!(c != null && c.time)) return;
357
+ y && y.setPosition(void 0);
358
+ }, j = (i) => {
359
+ if (!(i != null && i.time)) return;
360
360
  let d = "";
361
- return c != null && c.stayTime && (d = `
361
+ return i != null && i.stayTime && (d = `
362
362
  <div class="item w-100">
363
363
  <div class="item-label">停泊时间约</div>
364
- <div class="item-item">${no(Number(c.stayTime))}</div>
364
+ <div class="item-item">${no(Number(i.stayTime))}</div>
365
365
  </div>
366
366
  `), `
367
367
  <div class="track-point-popup">
368
368
  <div class="item">
369
369
  <div class="item-label">状态</div>
370
- <div class="item-item">${c != null && c.sailStatus ? ct[c.sailStatus] : i}</div>
370
+ <div class="item-item">${i != null && i.sailStatus ? ct[i.sailStatus] : c}</div>
371
371
  </div>
372
372
  <div class="item">
373
373
  <div class="item-label">航速</div>
374
- <div class="item-item">${c.speed || i}</div>
374
+ <div class="item-item">${i.speed || c}</div>
375
375
  </div>
376
376
  <div class="item">
377
377
  <div class="item-label">艏向</div>
378
- <div class="item-item">${c.hdg || i}</div>
378
+ <div class="item-item">${i.hdg || c}</div>
379
379
  </div>
380
380
  <div class="item">
381
381
  <div class="item-label">航向</div>
382
- <div class="item-item">${c.cog || i}</div>
382
+ <div class="item-item">${i.cog || c}</div>
383
383
  </div>
384
384
  <div class="item">
385
385
  <div class="item-label">经度</div>
386
- <div class="item-item">${c.lon || i}</div>
386
+ <div class="item-item">${i.lon || c}</div>
387
387
  </div>
388
388
  <div class="item">
389
389
  <div class="item-label">纬度</div>
390
- <div class="item-item">${c.lat || i}</div>
390
+ <div class="item-item">${i.lat || c}</div>
391
391
  </div>
392
392
  <div class="item w-100">
393
393
  <div class="item-label">时间</div>
394
- <div class="item-item">${c.time}</div>
394
+ <div class="item-item">${i.time}</div>
395
395
  </div>
396
396
  ${d ?? d}
397
397
  </div>`;
398
- }, z = (c) => {
399
- const f = c.map(($) => {
400
- const A = e.getPixelFromCoordinate(ee($.center));
398
+ }, z = (i) => {
399
+ const f = i.map(($) => {
400
+ const W = e.getPixelFromCoordinate(I($.center));
401
401
  return {
402
402
  ...$,
403
403
  original: $,
404
- pixel: A,
404
+ pixel: W,
405
405
  distance: 0
406
406
  // 先初始化,后续计算
407
407
  };
408
408
  });
409
- let p = 0;
409
+ let M = 0;
410
410
  f[0].distance = 0;
411
411
  for (let $ = 1; $ < f.length; $++) {
412
- const A = f[$ - 1].pixel, H = f[$].pixel, _ = H[0] - A[0], P = H[1] - A[1];
413
- p += Math.sqrt(_ * _ + P * P), f[$].distance = p;
412
+ const W = f[$ - 1].pixel, H = f[$].pixel, K = H[0] - W[0], S = H[1] - W[1];
413
+ M += Math.sqrt(K * K + S * S), f[$].distance = M;
414
414
  }
415
415
  const E = f.filter(
416
- ($, A) => A === 0 || A === f.length - 1
417
- ), T = [];
416
+ ($, W) => W === 0 || W === f.length - 1
417
+ ), F = [];
418
418
  for (let $ = 0; $ < E.length; $++) {
419
- const A = E[$];
420
- if (T.push(A), $ < E.length - 1) {
421
- const H = E[$ + 1], _ = H.distance - A.distance, P = Math.floor(_ / 100);
422
- for (let W = 1; W <= P; W++) {
423
- const J = A.distance + W * 100;
424
- if (J >= H.distance) break;
425
- const U = ae(
419
+ const W = E[$];
420
+ if (F.push(W), $ < E.length - 1) {
421
+ const H = E[$ + 1], K = H.distance - W.distance, S = Math.floor(K / 100);
422
+ for (let B = 1; B <= S; B++) {
423
+ const Q = W.distance + B * 100;
424
+ if (Q >= H.distance) break;
425
+ const _ = ae(
426
426
  f,
427
- J
427
+ Q
428
428
  );
429
- U && T.push(U);
429
+ _ && F.push(_);
430
430
  }
431
431
  }
432
432
  }
433
433
  return Array.from(
434
- new Map(T.map(($) => [$.distance.toFixed(2), $])).values()
434
+ new Map(F.map(($) => [$.distance.toFixed(2), $])).values()
435
435
  ).map(($) => ({
436
436
  ...$.original,
437
437
  // 优先保留原始数据
@@ -443,16 +443,16 @@ const so = (e) => {
443
443
  distance: $.distance
444
444
  }));
445
445
  };
446
- function ae(c, d) {
447
- for (let f = 1; f < c.length; f++) {
448
- const p = c[f - 1], E = c[f];
449
- if (d >= p.distance && d <= E.distance) {
450
- const T = (d - p.distance) / (E.distance - p.distance), O = p.pixel[0] + T * (E.pixel[0] - p.pixel[0]), $ = p.pixel[1] + T * (E.pixel[1] - p.pixel[1]), A = e == null ? void 0 : e.getCoordinateFromPixel([O, $]);
446
+ function ae(i, d) {
447
+ for (let f = 1; f < i.length; f++) {
448
+ const M = i[f - 1], E = i[f];
449
+ if (d >= M.distance && d <= E.distance) {
450
+ const F = (d - M.distance) / (E.distance - M.distance), R = M.pixel[0] + F * (E.pixel[0] - M.pixel[0]), $ = M.pixel[1] + F * (E.pixel[1] - M.pixel[1]), W = e == null ? void 0 : e.getCoordinateFromPixel([R, $]);
451
451
  return {
452
- ...p,
452
+ ...M,
453
453
  // 继承前一个点的属性(可调整)
454
- coord: A,
455
- pixel: [O, $],
454
+ coord: W,
455
+ pixel: [R, $],
456
456
  distance: d,
457
457
  original: void 0
458
458
  // 明确标记为插值生成点
@@ -461,26 +461,26 @@ const so = (e) => {
461
461
  }
462
462
  return null;
463
463
  }
464
- const re = async (c, d) => {
465
- await be(), await pe(c);
466
- const f = z(d), p = f.map((T) => se(T));
467
- r.get(c).getSource().addFeatures(p), ht(c, f, d, Y), f.forEach((T) => {
468
- const O = Re(c, Y, T);
469
- e.addOverlay(O);
464
+ const re = async (i, d) => {
465
+ await be(), await Me(i);
466
+ const f = z(d), M = f.map((F) => se(F));
467
+ r.get(i).getSource().addFeatures(M), vt(i, f, d, Y), f.forEach((F) => {
468
+ const R = Re(i, Y, F);
469
+ e.addOverlay(R);
470
470
  });
471
- }, se = (c) => {
471
+ }, se = (i) => {
472
472
  const d = new ie({
473
- geometry: new le(c.centerPoint),
474
- data: c
473
+ geometry: new le(i.centerPoint),
474
+ data: i
475
475
  });
476
- d.set("type", "track_point"), d.set("trackId", c.id), d.set("data", c);
476
+ d.set("type", "track_point"), d.set("trackId", i.id), d.set("data", i);
477
477
  let f = [
478
- ...ft(c, Y)
478
+ ...ft(i, Y)
479
479
  ];
480
- return (c.index === 0 || c.index === l[c.id].length - 1) && (f = [...yt(c)], d.set("type", "track_begin")), c.state !== void 0 && c.state !== null && (f = [...vt(c)], d.set("type", "track_icon")), d.setStyle(f), d;
481
- }, Re = (c, d, f) => {
482
- const p = document.createElement("div");
483
- p.className = "track-overlay-label", p.style.position = "relative", p.style.backgroundColor = "rgba(255,255,255,0.8)", p.style.border = `1px solid ${d}`, p.style.fontSize = "12px", p.innerHTML = `
480
+ return (i.index === 0 || i.index === l[i.id].length - 1) && (f = [...yt(i)], d.set("type", "track_begin")), i.state !== void 0 && i.state !== null && (f = [...ht(i)], d.set("type", "track_icon")), d.setStyle(f), d;
481
+ }, Re = (i, d, f) => {
482
+ const M = document.createElement("div");
483
+ M.className = "track-overlay-label", M.style.position = "relative", M.style.backgroundColor = "rgba(255,255,255,0.8)", M.style.border = `1px solid ${d}`, M.style.fontSize = "12px", M.innerHTML = `
484
484
  <span>${f.time}</span>
485
485
  <svg
486
486
  style="position: absolute;right: -20px;top: 0;"
@@ -494,97 +494,97 @@ const so = (e) => {
494
494
  stroke-width="1" />
495
495
  `;
496
496
  const E = new ce({
497
- element: p,
498
- position: ee(f.center),
497
+ element: M,
498
+ position: I(f.center),
499
499
  positioning: "top-right",
500
500
  offset: [-20, -20],
501
501
  stopEvent: !1,
502
502
  className: "track-label-time-overlay"
503
503
  });
504
- return E.set("class", "track-label-overlay"), E.set("trackId", c), E;
504
+ return E.set("class", "track-label-overlay"), E.set("trackId", i), E;
505
505
  }, be = () => {
506
- const c = e == null ? void 0 : e.getOverlays().getArray(), d = c == null ? void 0 : c.filter((f) => f.get("class") === "track-label-overlay");
506
+ const i = e == null ? void 0 : e.getOverlays().getArray(), d = i == null ? void 0 : i.filter((f) => f.get("class") === "track-label-overlay");
507
507
  d && d.length > 0 && d.forEach((f) => {
508
508
  f.setPosition(void 0), f.dispose();
509
509
  });
510
- }, pe = (c) => {
511
- const d = r.get(c).getSource();
510
+ }, Me = (i) => {
511
+ const d = r.get(i).getSource();
512
512
  d.forEachFeature((f) => {
513
513
  f.get("type") !== "line" && d.removeFeature(f);
514
514
  });
515
- }, ft = (c, d) => (`${c.time}`, [
515
+ }, ft = (i, d) => (`${i.time}`, [
516
516
  new X({
517
517
  // 扩大交互热区
518
- image: new Ve({
519
- stroke: new ve({ color: "rgba(0, 0, 0, 0.01)", width: 20 }),
518
+ image: new $e({
519
+ stroke: new fe({ color: "rgba(0, 0, 0, 0.01)", width: 20 }),
520
520
  radius: 3
521
521
  })
522
522
  }),
523
523
  // 轨迹点样式
524
524
  new X({
525
- image: new Ve({
526
- fill: new Q({ color: d }),
527
- stroke: new ve({ color: "#fff", width: 2 }),
525
+ image: new $e({
526
+ fill: new ee({ color: d }),
527
+ stroke: new fe({ color: "#fff", width: 2 }),
528
528
  radius: 3
529
529
  })
530
530
  })
531
531
  // textStyle,
532
- ]), vt = (c) => {
533
- const d = "#E31818", f = "#1890FF", p = "&#xe6d2", E = new X({
534
- text: new ge({
532
+ ]), ht = (i) => {
533
+ const d = "#E31818", f = "#1890FF", M = "&#xe6d2", E = new X({
534
+ text: new we({
535
535
  font: "Normal 22px map-iconfont",
536
- text: fe(p),
536
+ text: ge(M),
537
537
  offsetY: -10,
538
- fill: new Q({
539
- color: Number(c.state) === 0 ? d : Number(c.state) === 1 ? f : ""
538
+ fill: new ee({
539
+ color: Number(i.state) === 0 ? d : Number(i.state) === 1 ? f : ""
540
540
  })
541
541
  }),
542
542
  zIndex: 99
543
- }), O = tt("&#xe6e2;"), A = tt("&#xe703;"), H = [];
544
- return Number(c.state) === 0 ? H.push(O) : Number(c.state) === 1 && H.push(A), H.push(E), H;
545
- }, ht = (c, d, f, p) => {
546
- const E = d || [], T = d.length;
547
- T || (E.push(f[0]), E.push(f[f.length - 1]));
548
- const O = [];
549
- for (let A = 0; A < T - 1; A++) {
543
+ }), R = tt("&#xe6e2;"), W = tt("&#xe703;"), H = [];
544
+ return Number(i.state) === 0 ? H.push(R) : Number(i.state) === 1 && H.push(W), H.push(E), H;
545
+ }, vt = (i, d, f, M) => {
546
+ const E = d || [], F = d.length;
547
+ F || (E.push(f[0]), E.push(f[f.length - 1]));
548
+ const R = [];
549
+ for (let W = 0; W < F - 1; W++) {
550
550
  let H;
551
- const _ = d[A], P = (d[A + 1].index + _.index) / 2;
552
- if (P % 2 === 0)
553
- H = f[P].centerPoint;
551
+ const K = d[W], S = (d[W + 1].index + K.index) / 2;
552
+ if (S % 2 === 0)
553
+ H = f[S].centerPoint;
554
554
  else {
555
- const W = f[Math.floor(P)], J = f[Math.ceil(P)];
556
- if (W && J) {
557
- const [U, Ce] = W.centerPoint, [Le, Ee] = J.centerPoint;
558
- H = [(U + Le) / 2, (Ce + Ee) / 2];
555
+ const B = f[Math.floor(S)], Q = f[Math.ceil(S)];
556
+ if (B && Q) {
557
+ const [_, Le] = B.centerPoint, [Ee, Te] = Q.centerPoint;
558
+ H = [(_ + Ee) / 2, (Le + Te) / 2];
559
559
  }
560
560
  }
561
561
  if (H) {
562
- const W = new ie({
562
+ const B = new ie({
563
563
  geometry: new le(H)
564
564
  });
565
- W.set("type", "track_arrow"), W.setStyle(
565
+ B.set("type", "track_arrow"), B.setStyle(
566
566
  new X({
567
- text: new ge({
567
+ text: new we({
568
568
  font: "700 12px map-iconfont",
569
- text: fe("&#xe6bc;"),
570
- fill: new Q({ color: p }),
569
+ text: ge("&#xe6bc;"),
570
+ fill: new ee({ color: M }),
571
571
  // 设置箭头旋转 角度转为弧度
572
572
  rotation: Ke(
573
- d[A].center,
574
- d[A + 1].center
573
+ d[W].center,
574
+ d[W + 1].center
575
575
  ) * (Math.PI / 180)
576
576
  })
577
577
  })
578
- ), O.push(W);
578
+ ), R.push(B);
579
579
  }
580
580
  }
581
- const $ = r.get(c).getSource();
582
- $ == null || $.addFeatures(O);
583
- }, Je = (c) => {
584
- var T, O;
585
- const d = e.getView(), f = (T = r == null ? void 0 : r.get(c)) == null ? void 0 : T.getSource(), p = C || (c ? f == null ? void 0 : f.getFeatureById(c) : null);
586
- if (!p) return;
587
- const E = (O = p == null ? void 0 : p.getGeometry()) == null ? void 0 : O.getExtent();
581
+ const $ = r.get(i).getSource();
582
+ $ == null || $.addFeatures(R);
583
+ }, Je = (i) => {
584
+ var F, R;
585
+ const d = e.getView(), f = (F = r == null ? void 0 : r.get(i)) == null ? void 0 : F.getSource(), M = C || (i ? f == null ? void 0 : f.getFeatureById(i) : null);
586
+ if (!M) return;
587
+ const E = (R = M == null ? void 0 : M.getGeometry()) == null ? void 0 : R.getExtent();
588
588
  if (E != null && E.length)
589
589
  try {
590
590
  const $ = Dt(E, Math.max(E[2] - E[0], E[3] - E[1]) * 0.02);
@@ -592,147 +592,147 @@ const so = (e) => {
592
592
  } catch ($) {
593
593
  console.log($);
594
594
  }
595
- }, yt = (c) => {
596
- const d = "&#xe69b;", E = c.index === 0 ? "#fcdc3f" : "#ff0000";
595
+ }, yt = (i) => {
596
+ const d = "&#xe69b;", E = i.index === 0 ? "#fcdc3f" : "#ff0000";
597
597
  return [new X({
598
- text: new ge({
598
+ text: new we({
599
599
  font: "Normal 14px map-iconfont",
600
- text: fe(d),
601
- fill: new Q({ color: E })
600
+ text: ge(d),
601
+ fill: new ee({ color: E })
602
602
  }),
603
603
  zIndex: 101
604
604
  })];
605
605
  }, mt = () => {
606
- console.log("清除所有的轨迹-----"), Me(), r.forEach((d) => {
606
+ console.log("清除所有的轨迹-----"), Ce(), r.forEach((d) => {
607
607
  var f;
608
608
  (f = d.getSource()) == null || f.clear(), e == null || e.removeLayer(d);
609
609
  }), Object.keys(l).forEach((d) => {
610
610
  r.delete(d), delete l[d];
611
- }), isRender = !1, be();
612
- }, wt = (c) => {
613
- const d = r.get(c || s);
611
+ }), be();
612
+ }, wt = (i) => {
613
+ const d = r.get(i || s);
614
614
  d == null || d.setVisible(!1);
615
615
  const f = e.getOverlays().getArray();
616
- for (let p = 0; p < f.length; ) {
617
- const E = f[p];
618
- E.get("class") === "track-label-overlay" ? (E.setPosition(void 0), e.removeOverlay(E)) : p++;
616
+ for (let M = 0; M < f.length; ) {
617
+ const E = f[M];
618
+ E.get("class") === "track-label-overlay" ? (E.setPosition(void 0), e.removeOverlay(E)) : M++;
619
619
  }
620
- Me();
621
- }, xt = (c, d = xe.NM) => {
620
+ Ce();
621
+ }, xt = (i, d = xe.NM) => {
622
622
  const f = {
623
- id: c,
623
+ id: i,
624
624
  length: "--"
625
- }, E = (l[c] || []).map(
626
- (O) => ke([O.lon, O.lat], K.data, K.mercator)
627
- ), T = new Pe(E);
628
- return f.length = oo(T, d) || "--", f;
629
- }, bt = (c, d) => {
630
- kt(String(c), d);
631
- }, kt = (c, d) => {
632
- const f = l[String(c)], p = f == null ? void 0 : f.map((E) => [E.lon, E.lat]);
633
- p && Ct(p, d);
625
+ }, E = (l[i] || []).map(
626
+ (R) => ke([R.lon, R.lat], J.data, J.mercator)
627
+ ), F = new Se(E);
628
+ return f.length = oo(F, d) || "--", f;
629
+ }, bt = (i, d) => {
630
+ kt(String(i), d);
631
+ }, kt = (i, d) => {
632
+ const f = l[String(i)], M = f == null ? void 0 : f.map((E) => [E.lon, E.lat]);
633
+ M && Ct(M, d);
634
634
  }, Ze = new X({
635
- text: new ge({
635
+ text: new we({
636
636
  font: "700 20px map-iconfont",
637
- text: fe("&#xe657;"),
638
- fill: new Q({ color: "#ff0000" }),
637
+ text: ge("&#xe657;"),
638
+ fill: new ee({ color: "#ff0000" }),
639
639
  rotation: 0
640
640
  // 初始旋转角度
641
641
  })
642
- }), pt = (c, d) => {
643
- var P, W;
644
- const f = Number(50 * d), p = ((P = c.frameState) == null ? void 0 : P.time) ?? Date.now(), E = p - y;
645
- if (L = (L + f * E / 1e6) % 2, y = p, L >= 1) {
646
- Me();
642
+ }), pt = (i, d) => {
643
+ var S, B;
644
+ const f = Number(50 * d), M = ((S = i.frameState) == null ? void 0 : S.time) ?? Date.now(), E = M - v;
645
+ if (k = (k + f * E / 1e6) % 2, v = M, k >= 1) {
646
+ Ce();
647
647
  return;
648
648
  }
649
- const T = n.getCoordinateAt(
650
- L > 1 ? 2 - L : L
651
- ), O = n.getCoordinateAt(
652
- L > 1 ? L - 0.01 : L
649
+ const F = n.getCoordinateAt(
650
+ k > 1 ? 2 - k : k
651
+ ), R = n.getCoordinateAt(
652
+ k > 1 ? k - 0.01 : k
653
653
  ), $ = n.getCoordinateAt(
654
- L > 1 ? 2 - L : L + 0.01
654
+ k > 1 ? 2 - k : k + 0.01
655
655
  ), H = Ke(
656
- ot(O, "array"),
656
+ ot(R, "array"),
657
657
  ot($, "array")
658
658
  ) * Math.PI / 180;
659
- (W = Ze.getText()) == null || W.setRotation(H), v.setCoordinates(T);
660
- const _ = At(c);
661
- _.setStyle(Ze), _.drawGeometry(v), e == null || e.render();
659
+ (B = Ze.getText()) == null || B.setRotation(H), h.setCoordinates(F);
660
+ const K = At(i);
661
+ K.setStyle(Ze), K.drawGeometry(h), e == null || e.render();
662
662
  }, Mt = () => {
663
- var c;
664
- M = !0, y = Date.now(), L = 0, v = ((c = m.getGeometry()) == null ? void 0 : c.clone()) || new le([0, 0]), o && (w == null || w.on("postrender", o)), N == null || N.setGeometry(void 0);
665
- }, Me = () => {
666
- M && (M = !1, N == null || N.setGeometry(void 0), o && w && w.un("postrender", o), w && (e == null || e.removeLayer(w)), w = null, N = null);
667
- }, Ct = (c, d) => {
668
- M && Me(), t = new Ie({
663
+ var i;
664
+ L = !0, v = Date.now(), k = 0, h = ((i = m.getGeometry()) == null ? void 0 : i.clone()) || new le([0, 0]), o && (w == null || w.on("postrender", o)), N == null || N.setGeometry(void 0);
665
+ }, Ce = () => {
666
+ L && (L = !1, N == null || N.setGeometry(void 0), o && w && w.un("postrender", o), w && (e == null || e.removeLayer(w)), w = null, N = null);
667
+ }, Ct = (i, d) => {
668
+ L && Ce(), t = new Ie({
669
669
  factor: 1e6
670
- }).writeGeometry(new Pe(c)), n = new Ie({
670
+ }).writeGeometry(new Se(i)), n = new Ie({
671
671
  factor: 1e6
672
672
  }).readGeometry(t, {
673
- dataProjection: K.data,
674
- featureProjection: K.mercator
673
+ dataProjection: J.data,
674
+ featureProjection: J.mercator
675
675
  }), m = new ie({
676
676
  type: "icon",
677
677
  geometry: new le(n.getFirstCoordinate())
678
678
  });
679
679
  const f = m.getGeometry();
680
- v = f ? f.clone() : new le([0, 0]), N = new ie({
680
+ h = f ? f.clone() : new le([0, 0]), N = new ie({
681
681
  type: "geoMarker",
682
682
  style: Ze,
683
- geometry: v
683
+ geometry: h
684
684
  }), w = new he({
685
685
  source: new de({
686
686
  features: [N]
687
687
  })
688
- }), e == null || e.addLayer(w), o = (p) => pt(p, d), Mt();
689
- }, Ke = (c, d, f) => {
690
- function p(P) {
691
- return 180 * (P % (2 * Math.PI)) / Math.PI;
688
+ }), e == null || e.addLayer(w), o = (M) => pt(M, d), Mt();
689
+ }, Ke = (i, d, f) => {
690
+ function M(S) {
691
+ return 180 * (S % (2 * Math.PI)) / Math.PI;
692
692
  }
693
- function E(P) {
694
- return P % 360 * Math.PI / 180;
693
+ function E(S) {
694
+ return S % 360 * Math.PI / 180;
695
695
  }
696
- function T(P) {
697
- var W;
698
- if (!P) throw new Error("Coordinate is required");
699
- if (!Array.isArray(P)) {
700
- if ((P == null ? void 0 : P.type) === "Feature" && (P == null ? void 0 : P.geometry) !== null && ((W = P == null ? void 0 : P.geometry) == null ? void 0 : W.type) === "Point")
701
- return P == null ? void 0 : P.geometry.coordinates;
702
- if (P.type === "Point") return (P == null ? void 0 : P.coordinates) || [];
696
+ function F(S) {
697
+ var B;
698
+ if (!S) throw new Error("Coordinate is required");
699
+ if (!Array.isArray(S)) {
700
+ if ((S == null ? void 0 : S.type) === "Feature" && (S == null ? void 0 : S.geometry) !== null && ((B = S == null ? void 0 : S.geometry) == null ? void 0 : B.type) === "Point")
701
+ return S == null ? void 0 : S.geometry.coordinates;
702
+ if (S.type === "Point") return (S == null ? void 0 : S.coordinates) || [];
703
703
  }
704
- if (Array.isArray(P) && P.length >= 2 && !Array.isArray(P[0]) && !Array.isArray(P[1]))
705
- return P;
704
+ if (Array.isArray(S) && S.length >= 2 && !Array.isArray(S[0]) && !Array.isArray(S[1]))
705
+ return S;
706
706
  throw new Error(
707
707
  "Coordinate must be GeoJSON Point or an Array of numbers"
708
708
  );
709
709
  }
710
- function O(P, W, J = {}) {
711
- if (J.final)
710
+ function R(S, B, Q = {}) {
711
+ if (Q.final)
712
712
  return function(Tt, Ft) {
713
- return (O(Ft, Tt) + 180) % 360;
714
- }(P, W);
715
- const U = T(P), Ce = T(W), Le = E(U[0]), Ee = E(Ce[0]), _e = E(U[1]), De = E(Ce[1]), Lt = Math.sin(Ee - Le) * Math.cos(De), Et = Math.cos(_e) * Math.sin(De) - Math.sin(_e) * Math.cos(De) * Math.cos(Ee - Le);
716
- return p(Math.atan2(Lt, Et));
713
+ return (R(Ft, Tt) + 180) % 360;
714
+ }(S, B);
715
+ const _ = F(S), Le = F(B), Ee = E(_[0]), Te = E(Le[0]), _e = E(_[1]), De = E(Le[1]), Lt = Math.sin(Te - Ee) * Math.cos(De), Et = Math.cos(_e) * Math.sin(De) - Math.sin(_e) * Math.cos(De) * Math.cos(Te - Ee);
716
+ return M(Math.atan2(Lt, Et));
717
717
  }
718
- function $(P) {
719
- return !isNaN(P) && P !== null && !Array.isArray(P);
718
+ function $(S) {
719
+ return !isNaN(S) && S !== null && !Array.isArray(S);
720
720
  }
721
- function A(P, W = {}, J = {}) {
722
- return P || console.log("Coordinates are required"), Array.isArray(P) || console.log("Coordinates must be an Array"), P.length < 2 && console.log("Coordinates must be at least 2 numbers long"), (!$(P[0]) || !$(P[1])) && console.log("Coordinates must contain numbers"), H({ type: "Point", coordinates: P }, W, J);
721
+ function W(S, B = {}, Q = {}) {
722
+ return S || console.log("Coordinates are required"), Array.isArray(S) || console.log("Coordinates must be an Array"), S.length < 2 && console.log("Coordinates must be at least 2 numbers long"), (!$(S[0]) || !$(S[1])) && console.log("Coordinates must contain numbers"), H({ type: "Point", coordinates: S }, B, Q);
723
723
  }
724
- function H(P, W = {}, J = {}) {
725
- const U = {
724
+ function H(S, B = {}, Q = {}) {
725
+ const _ = {
726
726
  type: "Feature",
727
727
  id: "",
728
728
  properties: {},
729
729
  bbox: {},
730
730
  geometry: {}
731
731
  };
732
- return J.id !== void 0 && (U.id = J.id), J.bbox && (U.bbox = J.bbox), U.properties = W, U.geometry = P, U;
732
+ return Q.id !== void 0 && (_.id = Q.id), Q.bbox && (_.bbox = Q.bbox), _.properties = B, _.geometry = S, _;
733
733
  }
734
- const _ = O(A(c), A(d), f);
735
- return _ < 0 ? 360 + _ : _;
734
+ const K = R(W(i), W(d), f);
735
+ return K < 0 ? 360 + K : K;
736
736
  };
737
737
  return {
738
738
  render: a,
@@ -741,13 +741,13 @@ const so = (e) => {
741
741
  setCenter: Je,
742
742
  close: wt,
743
743
  getLength: xt,
744
- handleTrackMapEvent: D,
744
+ handleTrackMapEvent: A,
745
745
  reRenderTrackLine: Z
746
746
  };
747
747
  };
748
748
  function io(e) {
749
749
  console.log("useShipOverlay", e);
750
- const r = I(null), l = Te(() => ({
750
+ const r = U(null), l = Fe(() => ({
751
751
  "--overlay-color": "#FFF",
752
752
  "--bg-color1": e.colors && e.colors[0] ? e.colors[0] : "#ffffff",
753
753
  // 默认第一个颜色
@@ -755,7 +755,7 @@ function io(e) {
755
755
  "--bg-color": "#ffffff",
756
756
  position: "relative",
757
757
  "pointer-events": "none"
758
- })), s = Te(() => {
758
+ })), s = Fe(() => {
759
759
  var u;
760
760
  return {
761
761
  position: "relative",
@@ -776,12 +776,12 @@ function io(e) {
776
776
  animation: e.selected ? e.colors && ((u = e.colors) == null ? void 0 : u.length) >= 2 ? "blink-dual 2s ease-in-out infinite" : "blink-single 1.5s ease-in-out infinite" : "none"
777
777
  // "animation": props.selected ? 'blink 1.5s ease-in-out infinite' : 'none', // 动画开关
778
778
  };
779
- }), i = Te(() => ({
779
+ }), c = Fe(() => ({
780
780
  width: "14px",
781
781
  height: "14px",
782
782
  margin: "1px 5px 1px 1px",
783
783
  "background-color": "var(--attention-bg)"
784
- })), o = Te(() => ({
784
+ })), o = Fe(() => ({
785
785
  position: "absolute",
786
786
  top: "0px",
787
787
  color: "var(--overlay-color)",
@@ -806,7 +806,7 @@ function io(e) {
806
806
  },
807
807
  [
808
808
  ne("div", {
809
- style: e.selected ? i.value : {}
809
+ style: e.selected ? c.value : {}
810
810
  }, ""),
811
811
  ne("div", {
812
812
  class: "text",
@@ -860,10 +860,10 @@ function io(e) {
860
860
  ])
861
861
  ]);
862
862
  }
863
- I([]);
863
+ U([]);
864
864
  function co(e, r, l, s) {
865
865
  if (r) {
866
- const i = new ce({
866
+ const c = new ce({
867
867
  element: l,
868
868
  positioning: "top-left",
869
869
  id: "label-" + (s == null ? void 0 : s.id),
@@ -872,32 +872,32 @@ function co(e, r, l, s) {
872
872
  position: r,
873
873
  className: s.blinking ? "ship-label-overlay-blinking" : "ship-label-overlay"
874
874
  });
875
- i.set("class", "zh-map-ship-overlay"), e.addOverlay(i);
875
+ c.set("class", "zh-map-ship-overlay"), e.addOverlay(c);
876
876
  }
877
877
  }
878
878
  const ao = (e) => {
879
879
  const { spd: r, hdg: l, cog: s } = e;
880
880
  return r ? l !== null && +l != 511 && s !== null ? s - +l >= 3 ? oe.right : s - +l <= -3 ? oe.left : oe.front : oe.front : "";
881
- }, ye = (e, r) => {
882
- const { shipData: l } = r.getProperties(), s = at(e), i = Qe(e, l, s);
883
- return uo(r, i, s);
881
+ }, ve = (e, r) => {
882
+ const { shipData: l } = r.getProperties(), s = at(e), c = Qe(e, l, s);
883
+ return uo(r, c, s);
884
884
  }, at = (e) => {
885
885
  const r = e == null ? void 0 : e.getView().getZoom();
886
886
  return r <= te.shipModelMax && r >= te.shipTriggleMin ? "ship" : "triangle";
887
887
  }, Qe = (e, r, l) => {
888
888
  if (l === "ship") {
889
- const { len: s, wid: i } = r, o = 97, u = 20, t = 1 / (e == null ? void 0 : e.getView().getResolution()), n = s * t / o, m = i * t / u, v = Math.min(n, m);
890
- return v < 0.2 ? 0.2 : v > 2 ? 2 : v;
889
+ const { len: s, wid: c } = r, o = 97, u = 20, t = 1 / (e == null ? void 0 : e.getView().getResolution()), n = s * t / o, m = c * t / u, h = Math.min(n, m);
890
+ return h < 0.2 ? 0.2 : h > 2 ? 2 : h;
891
891
  }
892
892
  return te.scaleNum;
893
893
  }, uo = (e, r, l) => {
894
- const { color: s, direct: i, isHighlight: o, shipData: u } = e.getProperties(), h = ((u == null ? void 0 : u.cog) - 90 + 360) % 360;
894
+ const { color: s, direct: c, isHighlight: o, shipData: u } = e.getProperties(), y = ((u == null ? void 0 : u.cog) - 90 + 360) % 360;
895
895
  return new X({
896
- image: new Oe({
896
+ image: new pe({
897
897
  src: t(),
898
898
  scale: r || te.scaleNum,
899
899
  anchor: [0.5, 0.5],
900
- rotation: h * Math.PI / 180,
900
+ rotation: y * Math.PI / 180,
901
901
  rotateWithView: !1
902
902
  })
903
903
  });
@@ -911,20 +911,20 @@ const ao = (e) => {
911
911
  <path d="M30.8843 12.6777L2.21343 21.7067C1.75559 21.8509 1.28947 21.509 1.28947 21.029L1.28947 2.97103C1.28947 2.49102 1.75558 2.14913 2.21342 2.29331L30.8843 11.3223C31.5471 11.531 31.5471 12.469 30.8843 12.6777Z"
912
912
  fill="${s}" stroke="${o ? "#FF2424" : "black"}" stroke-width="${o ? "2" : "0.578947"}" />
913
913
  <!--path船航向左边或者向前-->
914
- ${i === oe.left && `<path d="M30 12L40 12L40 8" stroke="${o ? "#FF2424" : "black"}" stroke-width="2"/>`}
914
+ ${c === oe.left && `<path d="M30 12L40 12L40 8" stroke="${o ? "#FF2424" : "black"}" stroke-width="2"/>`}
915
915
  <!--path船航向右边-->
916
- ${i === oe.right && `<path d="M30 12L40 12L40 16" stroke="${o ? "#FF2424" : "black"}" stroke-width="2"/>`}
916
+ ${c === oe.right && `<path d="M30 12L40 12L40 16" stroke="${o ? "#FF2424" : "black"}" stroke-width="2"/>`}
917
917
  <!--path黑线无左右-->
918
- ${i === oe.front && `<path d="M30 12L40 12" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
918
+ ${c === oe.front && `<path d="M30 12L40 12" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
919
919
  </svg>
920
920
  `;
921
921
  case "ship":
922
922
  return `<svg width="97" height="20" viewBox="0 0 97 20" fill="none" xmlns="http://www.w3.org/2000/svg">
923
923
  <path d="M0.289474 17.3433L0.289474 2.65655C0.289474 2.28572 0.574654 1.97725 0.944343 1.9482L22.0544 0.289473L67.5204 0.289473C67.6295 0.289473 67.7372 0.314613 67.835 0.362943L86.0565 9.3629C86.5844 9.6236 86.5844 10.3763 86.0565 10.637L67.835 19.6371C67.7372 19.6854 67.6295 19.7105 67.5203 19.7105L22.0544 19.7105L0.944343 18.0517C0.574653 18.0226 0.289474 17.7142 0.289474 17.3433Z"
924
924
  fill="${s}" stroke="${o ? "#FF2424" : "black"}" stroke-width="${o ? "4" : "0.578947"}"/>
925
- ${i === oe.left && `<path d="M86 10L96 10L96 6" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
926
- ${i === oe.right && `<path d="M86 10L96 10L96 14" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
927
- ${i === oe.front && `<path d="M86 10L96 10" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
925
+ ${c === oe.left && `<path d="M86 10L96 10L96 6" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
926
+ ${c === oe.right && `<path d="M86 10L96 10L96 14" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
927
+ ${c === oe.front && `<path d="M86 10L96 10" stroke="${o ? "#FF2424" : "black"}" stroke-width="1.5"/>`}
928
928
  </svg>
929
929
  `;
930
930
  default:
@@ -932,9 +932,9 @@ const ao = (e) => {
932
932
  }
933
933
  }
934
934
  }, go = (e, r) => {
935
- const l = dt(e, r), s = r.id, { lon: i, lat: o } = r, u = new ce({
935
+ const l = dt(e, r), s = r.id, { lon: c, lat: o } = r, u = new ce({
936
936
  element: l,
937
- position: ee([i, o]),
937
+ position: I([c, o]),
938
938
  id: "selected-" + s,
939
939
  positioning: "center-center",
940
940
  offset: [0, 5],
@@ -942,24 +942,24 @@ const ao = (e) => {
942
942
  });
943
943
  return u.set("class", "ship-overlay-selected"), u;
944
944
  }, dt = (e, r) => {
945
- const l = at(e), s = Qe(e, r, l), i = l === "ship" ? 109 : 49, o = `
946
- <svg style="transform:scale(${s});" xmlns="http://www.w3.org/2000/svg" width="${i}" height="${i}" viewBox="0 0 49 49" fill="none">
945
+ const l = at(e), s = Qe(e, r, l), c = l === "ship" ? 109 : 49, o = `
946
+ <svg style="transform:scale(${s});" xmlns="http://www.w3.org/2000/svg" width="${c}" height="${c}" viewBox="0 0 49 49" fill="none">
947
947
  <path d="M1.99982 46.9998L1.99982 1.99982L46.9998 1.99982L46.9998 46.9998L1.99982 46.9998Z" fill="#FF2424" fill-opacity="0.2"/>
948
948
  <path fill-rule="evenodd" clip-rule="evenodd" d="M19.9998 0.5V3.5L3.49976 3.5V20H0.499756V0.500002L19.9998 0.5ZM45.4998 3.5H28.9998V0.5H48.4998V20H45.4998V3.5ZM48.4998 29L48.4998 48.5H28.9998V45.5H45.4998L45.4998 29H48.4998ZM3.49976 45.5L3.49976 29H0.499756L0.499758 48.5L19.9998 48.5V45.5L3.49976 45.5Z" fill="#FF2424"/>
949
949
  </svg>
950
950
  `, u = document.createElement("div");
951
951
  return u.className = "ship-overlay-selected", u.innerHTML = o, u;
952
952
  }, fo = (e, r) => {
953
- const { lon: l, lat: s, blinking: i } = r, o = ut(r);
954
- l && s && co(e, ee([l, s]), o, { ...r, blinking: i });
953
+ const { lon: l, lat: s, blinking: c } = r, o = ut(r);
954
+ l && s && co(e, I([l, s]), o, { ...r, blinking: c });
955
955
  }, ut = (e) => {
956
956
  const r = document.createElement("div");
957
957
  r.className = "ship-overlay-box", r.style.position = "relative";
958
- const { lon: l, lat: s, blinking: i, blinkingColors: o, name: u } = e, h = Ae({
958
+ const { lon: l, lat: s, blinking: c, blinkingColors: o, name: u } = e, y = Ae({
959
959
  setup() {
960
960
  return io({
961
961
  position: [l + 2e-3, s + 2e-3],
962
- selected: i,
962
+ selected: c,
963
963
  name: u,
964
964
  colors: o || [],
965
965
  existDevice: e == null ? void 0 : e.existDevice,
@@ -968,12 +968,12 @@ const ao = (e) => {
968
968
  });
969
969
  }
970
970
  });
971
- return Pt(h, r), r;
971
+ return Pt(y, r), r;
972
972
  }, rt = (e) => {
973
973
  const r = [];
974
974
  return e.existDevice && r.push("&#xe687;"), e.existMobile && r.push("&#xe688;"), e.existWaterGauge && r.push("&#xe686;"), r;
975
975
  };
976
- function vo() {
976
+ function ho() {
977
977
  const e = [
978
978
  "left-top",
979
979
  "left-middle",
@@ -984,82 +984,82 @@ function vo() {
984
984
  ];
985
985
  return e[Math.floor(Math.random() * e.length)];
986
986
  }
987
- const ho = window.devicePixelRatio || 1;
987
+ const vo = window.devicePixelRatio || 1;
988
988
  function yo(e, r, l = "left-bottom", s = 2) {
989
- const i = document.createElement("canvas"), o = i.getContext("2d");
989
+ const c = document.createElement("canvas"), o = c.getContext("2d");
990
990
  if (!o) return "";
991
- const u = 2, h = 8, t = 16, n = window.devicePixelRatio || 1, m = "500 12px Arial", v = "14px map-iconfont";
991
+ const u = 2, y = 8, t = 16, n = window.devicePixelRatio || 1, m = "500 12px Arial", h = "14px map-iconfont";
992
992
  o.font = m;
993
- const M = o.measureText(e).width;
994
- o.font = v;
995
- const y = r.map((k) => ({ width: o.measureText(fe(k)).width, height: 14 })), w = y.reduce((k, F) => k + F.width, 0), L = (r.length - 1) * s, C = h + M + w + L + h, b = u + 14 + u;
996
- let B, G, q = 0, Y = 0, R = 0, Z = 0, S = 0, a = 0;
997
- switch (B = t + C, l) {
993
+ const L = o.measureText(e).width;
994
+ o.font = h;
995
+ const v = r.map((p) => ({ width: o.measureText(ge(p)).width, height: 14 })), w = v.reduce((p, P) => p + P.width, 0), k = (r.length - 1) * s, C = y + L + w + k + y, x = u + 14 + u;
996
+ let G, D, q = 0, Y = 0, O = 0, Z = 0, T = 0, a = 0;
997
+ switch (G = t + C, l) {
998
998
  case "right-top":
999
- G = t + b, q = 0, Y = t + b, R = t, Z = 0, S = t, a = 0;
999
+ D = t + x, q = 0, Y = t + x, O = t, Z = 0, T = t, a = 0;
1000
1000
  break;
1001
1001
  case "right-middle":
1002
- G = b, q = 0, Y = b / 2, R = t, Z = b / 2, S = t, a = 0;
1002
+ D = x, q = 0, Y = x / 2, O = t, Z = x / 2, T = t, a = 0;
1003
1003
  break;
1004
1004
  case "right-bottom":
1005
- G = t + b, q = 0, Y = 0, R = t, Z = t, S = t, a = t;
1005
+ D = t + x, q = 0, Y = 0, O = t, Z = t, T = t, a = t;
1006
1006
  break;
1007
1007
  case "left-top":
1008
- G = t + b, q = C, Y = t, R = C + t, Z = b + t, S = 0, a = 0;
1008
+ D = t + x, q = C, Y = t, O = C + t, Z = x + t, T = 0, a = 0;
1009
1009
  break;
1010
1010
  case "left-middle":
1011
- G = b, q = C, Y = b / 2, R = C + t, Z = b / 2, S = 0, a = 0;
1011
+ D = x, q = C, Y = x / 2, O = C + t, Z = x / 2, T = 0, a = 0;
1012
1012
  break;
1013
1013
  case "left-bottom":
1014
- G = t + b, q = C, Y = b, R = C + t, Z = 0, S = 0, a = t;
1014
+ D = t + x, q = C, Y = x, O = C + t, Z = 0, T = 0, a = t;
1015
1015
  break;
1016
1016
  }
1017
- G = G + u, i.width = Math.round(B * n), i.height = Math.round(G * n), o.scale(n, n), o.clearRect(0, 0, B, G), o.beginPath(), o.moveTo(q, Y), o.lineTo(R, Z), o.strokeStyle = "#FFF", o.lineWidth = 1, o.stroke(), o.fillStyle = "#FFF", o.fillRect(S, a, C, b), o.font = m, o.textBaseline = "middle";
1018
- const x = a + u + b / 2;
1019
- o.strokeStyle = "#ffffff", o.lineWidth = 1, o.strokeText(e, S + h, x), o.fillStyle = "#000000", o.fillText(e, S + h, x), o.font = v, o.fillStyle = "#3370ff";
1020
- let g = S + h + M + s;
1021
- return r.length > 0 && r.forEach((k, F) => {
1022
- const V = a + u + b / 2;
1023
- o.fillText(fe(k), g, V), g += y[F].width + s;
1024
- }), i.toDataURL("image/png");
1017
+ D = D + u, c.width = Math.round(G * n), c.height = Math.round(D * n), o.scale(n, n), o.clearRect(0, 0, G, D), o.beginPath(), o.moveTo(q, Y), o.lineTo(O, Z), o.strokeStyle = "#FFF", o.lineWidth = 1, o.stroke(), o.fillStyle = "#FFF", o.fillRect(T, a, C, x), o.font = m, o.textBaseline = "middle";
1018
+ const b = a + u + x / 2;
1019
+ o.strokeStyle = "#ffffff", o.lineWidth = 1, o.strokeText(e, T + y, b), o.fillStyle = "#000000", o.fillText(e, T + y, b), o.font = h, o.fillStyle = "#3370ff";
1020
+ let g = T + y + L + s;
1021
+ return r.length > 0 && r.forEach((p, P) => {
1022
+ const V = a + u + x / 2;
1023
+ o.fillText(ge(p), g, V), g += v[P].width + s;
1024
+ }), c.toDataURL("image/png");
1025
1025
  }
1026
1026
  const nt = (e, r) => {
1027
- const { name: l, rightIcons: s, selected: i } = e.getProperties(), o = r !== 1 ? vo() : "right-top", u = yo(l, s, o);
1028
- let h = [0, 0];
1027
+ const { name: l, rightIcons: s, selected: c } = e.getProperties(), o = r !== 1 ? ho() : "right-top", u = yo(l, s, o);
1028
+ let y = [0, 0];
1029
1029
  switch (o) {
1030
1030
  case "right-top":
1031
- h = [0, 1];
1031
+ y = [0, 1];
1032
1032
  break;
1033
1033
  case "right-middle":
1034
- h = [0, 0.5];
1034
+ y = [0, 0.5];
1035
1035
  break;
1036
1036
  case "right-bottom":
1037
- h = [0, 0];
1037
+ y = [0, 0];
1038
1038
  break;
1039
1039
  case "left-top":
1040
- h = [1, 1];
1040
+ y = [1, 1];
1041
1041
  break;
1042
1042
  case "left-middle":
1043
- h = [1, 0.5];
1043
+ y = [1, 0.5];
1044
1044
  break;
1045
1045
  case "left-bottom":
1046
- h = [1, 0];
1046
+ y = [1, 0];
1047
1047
  break;
1048
1048
  }
1049
1049
  return new X({
1050
- image: new Oe({
1050
+ image: new pe({
1051
1051
  src: u,
1052
- anchor: h,
1052
+ anchor: y,
1053
1053
  displacement: [0, 0],
1054
- scale: 1 / ho,
1054
+ scale: 1 / vo,
1055
1055
  anchorXUnits: "fraction",
1056
1056
  anchorYUnits: "fraction"
1057
1057
  }),
1058
- zIndex: i ? 100 : 10
1058
+ zIndex: c ? 100 : 10
1059
1059
  });
1060
1060
  }, mo = (e) => {
1061
1061
  let r = null, l = null;
1062
- const s = new de(), i = new Wt({
1062
+ const s = new de(), c = new Wt({
1063
1063
  source: s,
1064
1064
  className: "zh-map--ship-layer",
1065
1065
  renderBuffer: 300,
@@ -1073,25 +1073,25 @@ const nt = (e, r) => {
1073
1073
  updateWhileAnimating: !1,
1074
1074
  declutter: !0
1075
1075
  });
1076
- e == null || e.addLayer(i), e == null || e.addLayer(u);
1077
- let h = null, t = "", n = {}, m = {};
1078
- const v = (a) => {
1076
+ e == null || e.addLayer(c), e == null || e.addLayer(u);
1077
+ let y = null, t = "", n = {}, m = {};
1078
+ const h = (a) => {
1079
1079
  if (!a || !e) return;
1080
- const x = (l == null ? void 0 : l.id) || (r == null ? void 0 : r.get("id"));
1080
+ const b = (l == null ? void 0 : l.id) || (r == null ? void 0 : r.get("id"));
1081
1081
  if (l) {
1082
- const g = a.filter((k) => k.id === x);
1082
+ const g = a.filter((p) => p.id === b);
1083
1083
  g.length === 0 ? a.push(l) : l = g[0];
1084
1084
  }
1085
- L(), C(!0), S(a), M();
1085
+ k(), C(!0), T(a), L();
1086
1086
  }, N = (a) => {
1087
1087
  var z;
1088
- const x = (l == null ? void 0 : l.id) || (r == null ? void 0 : r.get("id")), g = ee([a == null ? void 0 : a.lon, a == null ? void 0 : a.lat]), k = ((z = m[a.id]) == null ? void 0 : z.blinkColors) || [], V = k[k.length - 1] || a.fill || "#04C900", D = ao(a), j = new ie({
1088
+ const b = (l == null ? void 0 : l.id) || (r == null ? void 0 : r.get("id")), g = I([a == null ? void 0 : a.lon, a == null ? void 0 : a.lat]), p = ((z = m[a.id]) == null ? void 0 : z.blinkColors) || [], V = p[p.length - 1] || a.fill || "#04C900", A = ao(a), j = new ie({
1089
1089
  geometry: new le(g),
1090
1090
  // 船舶数据
1091
1091
  shipData: a,
1092
1092
  id: a.id,
1093
1093
  name: a.cnname || a.enname || a.name || a.id || "未命名船舶",
1094
- selected: a.id === x,
1094
+ selected: a.id === b,
1095
1095
  // 图标
1096
1096
  rightIcons: rt(a),
1097
1097
  // 是否闪烁
@@ -1101,126 +1101,126 @@ const nt = (e, r) => {
1101
1101
  // 船舶颜色
1102
1102
  color: V,
1103
1103
  // 船艏向的方向
1104
- direct: D,
1104
+ direct: A,
1105
1105
  // 高亮
1106
1106
  isHighlight: !1
1107
1107
  });
1108
1108
  return j.set("clickGeometry", new Yt(g)), j;
1109
- }, M = async () => {
1109
+ }, L = async () => {
1110
1110
  if (!l || !e) return;
1111
- let x = e.getOverlays().getArray().find((g) => g.get("class") == "ship-overlay-selected");
1112
- if (x) {
1111
+ let b = e.getOverlays().getArray().find((g) => g.get("class") == "ship-overlay-selected");
1112
+ if (b) {
1113
1113
  const g = dt(e, l);
1114
- await x.setElement(g), await x.setPosition(ee([l.lon, l.lat]));
1114
+ await b.setElement(g), await b.setPosition(I([l.lon, l.lat]));
1115
1115
  } else
1116
- x = go(e, l), x && e.addOverlay(x);
1116
+ b = go(e, l), b && e.addOverlay(b);
1117
1117
  setTimeout(() => {
1118
1118
  var g;
1119
- x && ((g = x.get("element")) != null && g.parentElement) && (x.get("element").parentElement.style.display = "block");
1119
+ b && ((g = b.get("element")) != null && g.parentElement) && (b.get("element").parentElement.style.display = "block");
1120
1120
  }, 20);
1121
- }, y = (a) => {
1121
+ }, v = (a) => {
1122
1122
  if (a === "start") {
1123
- const x = () => {
1123
+ const b = () => {
1124
1124
  s.getFeatures().forEach((g) => {
1125
- g.setStyle(ye(e, g));
1126
- }), h = requestAnimationFrame(x);
1125
+ g.setStyle(ve(e, g));
1126
+ }), y = requestAnimationFrame(b);
1127
1127
  };
1128
- x();
1128
+ b();
1129
1129
  }
1130
- a === "end" && h && (cancelAnimationFrame(h), h = null);
1130
+ a === "end" && y && (cancelAnimationFrame(y), y = null);
1131
1131
  }, w = () => {
1132
- const x = (e == null ? void 0 : e.getOverlays().getArray()).find((g) => g.get("class") == "ship-overlay-selected");
1133
- if (x) {
1134
- const g = x.getElement(), k = Qe(e, l, "ship"), F = g.querySelector("svg");
1135
- console.log(F), F && (F.style.transform = `scale(${k})`);
1132
+ const b = (e == null ? void 0 : e.getOverlays().getArray()).find((g) => g.get("class") == "ship-overlay-selected");
1133
+ if (b) {
1134
+ const g = b.getElement(), p = Qe(e, l, "ship"), P = g.querySelector("svg");
1135
+ console.log(P), P && (P.style.transform = `scale(${p})`);
1136
1136
  }
1137
- }, L = () => {
1138
- e && s && (s.clear(), o.clear(), C(), y("end"));
1137
+ }, k = () => {
1138
+ e && s && (s.clear(), o.clear(), C(), v("end"));
1139
1139
  }, C = (a) => {
1140
- const x = e.getOverlays().getArray().filter((g) => g.get("class") == "zh-map-ship-overlay");
1141
- if (x && x.length > 0) {
1142
- for (let g = 0; g < x.length; g++)
1143
- if (!a && x[g].get("class") !== "ship-overlay-selected") {
1144
- const k = x[g];
1145
- k.setPosition(void 0), e.removeOverlay(k), k.dispose();
1140
+ const b = e.getOverlays().getArray().filter((g) => g.get("class") == "zh-map-ship-overlay");
1141
+ if (b && b.length > 0) {
1142
+ for (let g = 0; g < b.length; g++)
1143
+ if (!a && b[g].get("class") !== "ship-overlay-selected") {
1144
+ const p = b[g];
1145
+ p.setPosition(void 0), e.removeOverlay(p), p.dispose();
1146
1146
  }
1147
1147
  }
1148
- }, b = (a, x) => {
1149
- n = a, m = x;
1150
- const g = e.getOverlays().getArray(), k = s.getFeatures();
1151
- for (const F in n) {
1152
- const V = n[F], D = g.find((z) => z.getId() === "label-" + F), j = k.find((z) => F === z.get("id"));
1153
- if (D && j) {
1154
- const z = x[F].blinkColors || [], { shipData: ae, name: re, color: se } = j.getProperties();
1155
- j.set("blinking", V), z[(z == null ? void 0 : z.length) - 1] && se !== z[(z == null ? void 0 : z.length) - 1] && (j.set("color", z[(z == null ? void 0 : z.length) - 1] || ""), j.setStyle(ye(e, j)));
1148
+ }, x = (a, b) => {
1149
+ n = a, m = b;
1150
+ const g = e.getOverlays().getArray(), p = s.getFeatures();
1151
+ for (const P in n) {
1152
+ const V = n[P], A = g.find((z) => z.getId() === "label-" + P), j = p.find((z) => P === z.get("id"));
1153
+ if (A && j) {
1154
+ const z = b[P].blinkColors || [], { shipData: ae, name: re, color: se } = j.getProperties();
1155
+ j.set("blinking", V), z[(z == null ? void 0 : z.length) - 1] && se !== z[(z == null ? void 0 : z.length) - 1] && (j.set("color", z[(z == null ? void 0 : z.length) - 1] || ""), j.setStyle(ve(e, j)));
1156
1156
  const Re = {
1157
1157
  ...ae,
1158
1158
  blinking: V,
1159
1159
  blinkingColors: z || [],
1160
- name: re + "(" + x[F].shipState + ")"
1161
- }, be = D.getElement(), pe = ut(Re);
1162
- be && be !== pe && D.setElement(pe);
1160
+ name: re + "(" + b[P].shipState + ")"
1161
+ }, be = A.getElement(), Me = ut(Re);
1162
+ be && be !== Me && A.setElement(Me);
1163
1163
  }
1164
1164
  }
1165
- }, B = (a) => {
1165
+ }, G = (a) => {
1166
1166
  if (!e) return;
1167
- const x = s.getFeatures(), g = o.getFeatures(), k = r ? r.get("id") : "", F = x.filter((z) => z.get("id") !== k), V = g == null ? void 0 : g.filter((z) => z.get("id") !== k), D = /* @__PURE__ */ new Map();
1167
+ const b = s.getFeatures(), g = o.getFeatures(), p = r ? r.get("id") : "", P = b.filter((z) => z.get("id") !== p), V = g == null ? void 0 : g.filter((z) => z.get("id") !== p), A = /* @__PURE__ */ new Map();
1168
1168
  a.forEach((z) => {
1169
- D.set(z.id, !0);
1169
+ A.set(z.id, !0);
1170
1170
  });
1171
1171
  const j = e.getOverlays().getArray();
1172
- F.forEach((z) => {
1172
+ P.forEach((z) => {
1173
1173
  const ae = z.get("id");
1174
- if (!D.has(ae))
1174
+ if (!A.has(ae))
1175
1175
  z.setStyle([]);
1176
1176
  else {
1177
1177
  const se = z.getStyle();
1178
- (se == null ? void 0 : se.length) == 0 && z.setStyle(ye(e, z));
1178
+ (se == null ? void 0 : se.length) == 0 && z.setStyle(ve(e, z));
1179
1179
  }
1180
1180
  const re = j.find((se) => se.getId() === "label-" + ae);
1181
1181
  re && re.setPosition(void 0);
1182
1182
  }), console.log(V), V.forEach((z) => {
1183
1183
  const ae = z.get("id");
1184
- if (!D.has(ae))
1184
+ if (!A.has(ae))
1185
1185
  z.setStyle([]);
1186
1186
  else {
1187
1187
  const re = z.getStyle();
1188
1188
  (re == null ? void 0 : re.length) == 0 && z.setStyle(nt(z));
1189
1189
  }
1190
1190
  });
1191
- }, G = (a) => {
1191
+ }, D = (a) => {
1192
1192
  if (a) {
1193
1193
  console.log("选中", a);
1194
- const x = s.getFeatures().find((k) => k.get("id") === a.id), g = o.getFeatures().find((k) => k.get("id") === a.id);
1195
- x && (r = x), g && g.set("selected", !0), l = a, M();
1194
+ const b = s.getFeatures().find((p) => p.get("id") === a.id), g = o.getFeatures().find((p) => p.get("id") === a.id);
1195
+ b && (r = b), g && g.set("selected", !0), l = a, L();
1196
1196
  } else
1197
- console.log("取消选中"), l = null, r = null, R();
1198
- }, q = Ne((a, x, g) => {
1197
+ console.log("取消选中"), l = null, r = null, O();
1198
+ }, q = Ve((a, b, g) => {
1199
1199
  try {
1200
1200
  if (a) {
1201
- const k = a.get("shipData"), F = a.get("id");
1202
- if (e.getTargetElement().style.cursor = F ? "pointer" : "", x === "click" && (G(k), g && g(F)), x === "hover") {
1203
- t && t !== F && Y(), t = F;
1204
- const V = s.getFeatures().find((D) => D.get("id") === t);
1205
- V == null || V.set("isHighlight", !0), V == null || V.setStyle(ye(e, V));
1201
+ const p = a.get("shipData"), P = a.get("id");
1202
+ if (e.getTargetElement().style.cursor = P ? "pointer" : "", b === "click" && (D(p), g && g(P)), b === "hover") {
1203
+ t && t !== P && Y(), t = P;
1204
+ const V = s.getFeatures().find((A) => A.get("id") === t);
1205
+ V == null || V.set("isHighlight", !0), V == null || V.setStyle(ve(e, V));
1206
1206
  }
1207
1207
  } else
1208
1208
  e.getTargetElement().style.cursor = "", Y();
1209
- } catch (k) {
1210
- console.log("handleShipMapEvent", k);
1209
+ } catch (p) {
1210
+ console.log("handleShipMapEvent", p);
1211
1211
  }
1212
1212
  }, 10), Y = () => {
1213
- const a = t ? s.getFeatures().find((x) => x.get("id") === t) : null;
1214
- t = null, a == null || a.set("isHighlight", !1), a == null || a.setStyle(ye(e, a));
1215
- }, R = () => {
1213
+ const a = t ? s.getFeatures().find((b) => b.get("id") === t) : null;
1214
+ t = null, a == null || a.set("isHighlight", !1), a == null || a.setStyle(ve(e, a));
1215
+ }, O = () => {
1216
1216
  try {
1217
- const x = e.getOverlays().getArray().find((g) => g.get("class") == "ship-overlay-selected");
1218
- x && x.setPosition(void 0);
1217
+ const b = e.getOverlays().getArray().find((g) => g.get("class") == "ship-overlay-selected");
1218
+ b && b.setPosition(void 0);
1219
1219
  } catch (a) {
1220
1220
  console.log(a);
1221
1221
  }
1222
- }, Z = (a, x) => {
1223
- const g = ee([a == null ? void 0 : a.lon, a == null ? void 0 : a.lat]), k = new ie({
1222
+ }, Z = (a, b) => {
1223
+ const g = I([a == null ? void 0 : a.lon, a == null ? void 0 : a.lat]), p = new ie({
1224
1224
  geometry: new le(g),
1225
1225
  name: a.cnname || a.enname || a.name || a.id || "未命名船舶",
1226
1226
  // 图标
@@ -1228,17 +1228,17 @@ const nt = (e, r) => {
1228
1228
  selected: (a == null ? void 0 : a.id) === (l == null ? void 0 : l.id),
1229
1229
  shipData: a
1230
1230
  });
1231
- k.set("id", a.id);
1232
- const F = nt(k, x);
1233
- return k.setStyle(F), k;
1234
- }, S = (a) => {
1235
- const x = e.getView().getZoom();
1231
+ p.set("id", a.id);
1232
+ const P = nt(p, b);
1233
+ return p.setStyle(P), p;
1234
+ }, T = (a) => {
1235
+ const b = e.getView().getZoom();
1236
1236
  a.forEach((g) => {
1237
- const k = N(g);
1238
- if (k.setStyle(ye(e, k)), s.addFeature(k), (l == null ? void 0 : l.id) == g.id || x >= te.shipModelMin)
1237
+ const p = N(g);
1238
+ if (p.setStyle(ve(e, p)), s.addFeature(p), (l == null ? void 0 : l.id) == g.id || b >= te.shipModelMin)
1239
1239
  if (n[g.id]) {
1240
1240
  if (g.id && m[g == null ? void 0 : g.id]) {
1241
- const F = m[g == null ? void 0 : g.id] || {}, V = (F == null ? void 0 : F.blinkColors) || [], D = (F == null ? void 0 : F.shipState) || "", j = (g.cnname || g.enname || g.name || g.id || "未命名船舶") + "(" + D + ")", z = {
1241
+ const P = m[g == null ? void 0 : g.id] || {}, V = (P == null ? void 0 : P.blinkColors) || [], A = (P == null ? void 0 : P.shipState) || "", j = (g.cnname || g.enname || g.name || g.id || "未命名船舶") + "(" + A + ")", z = {
1242
1242
  ...g,
1243
1243
  name: j,
1244
1244
  blinking: n[g.id],
@@ -1247,29 +1247,29 @@ const nt = (e, r) => {
1247
1247
  fo(e, z);
1248
1248
  }
1249
1249
  } else {
1250
- const F = Z(g, a.length);
1251
- o.addFeature(F);
1250
+ const P = Z(g, a.length);
1251
+ o.addFeature(P);
1252
1252
  }
1253
1253
  });
1254
1254
  };
1255
1255
  return {
1256
- render: v,
1257
- selected: G,
1258
- filter: B,
1259
- blinking: b,
1260
- clear: L,
1256
+ render: h,
1257
+ selected: D,
1258
+ filter: G,
1259
+ blinking: x,
1260
+ clear: k,
1261
1261
  handleShipMapEvent: q,
1262
- changeShipScale: y,
1262
+ changeShipScale: v,
1263
1263
  changeSelectedScale: w
1264
1264
  };
1265
1265
  }, wo = (e) => {
1266
- const r = () => e == null ? void 0 : e.getLayers(), l = I("vector"), s = () => l.value, i = (t) => {
1266
+ const r = () => e == null ? void 0 : e.getLayers(), l = U("vector"), s = () => l.value, c = (t) => {
1267
1267
  l.value = t;
1268
1268
  const n = r();
1269
1269
  n && (n == null || n.getArray().forEach((m) => {
1270
1270
  (m.className_ === "vector" || m.className_ === "satellite") && m.setVisible(m.className_ === t);
1271
1271
  }));
1272
- }, o = I(!1);
1272
+ }, o = U(!1);
1273
1273
  return {
1274
1274
  getLayers: r,
1275
1275
  getGreenTileVisible: () => o.value,
@@ -1277,27 +1277,27 @@ const nt = (e, r) => {
1277
1277
  if (t !== o.value) {
1278
1278
  if (t) {
1279
1279
  const n = r();
1280
- if (!n.getArray().find((v) => v.className_ === "greenTile")) {
1281
- const v = new me({
1282
- source: new we({ url: ue.greenTile }),
1280
+ if (!n.getArray().find((h) => h.className_ === "greenTile")) {
1281
+ const h = new ye({
1282
+ source: new me({ url: ue.greenTile }),
1283
1283
  visible: t,
1284
1284
  zIndex: 2,
1285
1285
  className: "greenTile"
1286
1286
  });
1287
- n.push(v);
1287
+ n.push(h);
1288
1288
  }
1289
1289
  } else {
1290
- const n = r(), m = n.getArray().find((v) => v.className_ === "greenTile");
1290
+ const n = r(), m = n.getArray().find((h) => h.className_ === "greenTile");
1291
1291
  m && n.remove(m);
1292
1292
  }
1293
1293
  o.value = t;
1294
1294
  }
1295
1295
  },
1296
1296
  getShowLayerType: s,
1297
- setShowLayerType: i
1297
+ setShowLayerType: c
1298
1298
  };
1299
1299
  }, xo = () => {
1300
- const e = I();
1300
+ const e = U();
1301
1301
  return {
1302
1302
  setProps: (s) => {
1303
1303
  e.value = s;
@@ -1306,73 +1306,73 @@ const nt = (e, r) => {
1306
1306
  };
1307
1307
  }, bo = (e) => {
1308
1308
  const r = "zh-map-location-layer";
1309
- let l, s, i = null, o = null;
1310
- const u = (y) => {
1311
- if (!(!y || y.length === 0)) {
1309
+ let l, s, c = null, o = null;
1310
+ const u = (v) => {
1311
+ if (!(!v || v.length === 0)) {
1312
1312
  if (s || (s = new de()), s.clear(), o) {
1313
- const w = y.find((L) => L.id === o.id);
1314
- w ? o = w : y.push(o);
1313
+ const w = v.find((k) => k.id === o.id);
1314
+ w ? o = w : v.push(o);
1315
1315
  }
1316
- y.forEach((w) => {
1317
- h(w);
1316
+ v.forEach((w) => {
1317
+ y(w);
1318
1318
  }), l || (l = new he({
1319
1319
  className: r,
1320
1320
  source: s,
1321
1321
  zIndex: 100
1322
1322
  }), e == null || e.addLayer(l));
1323
1323
  }
1324
- }, h = (y) => {
1325
- const w = e == null ? void 0 : e.getView().getZoom(), [L, C] = y.latLon.split(","), b = new ie({
1326
- geometry: new le(ee([Number(L), Number(C)]))
1324
+ }, y = (v) => {
1325
+ const w = e == null ? void 0 : e.getView().getZoom(), [k, C] = v.latLon.split(","), x = new ie({
1326
+ geometry: new le(I([Number(k), Number(C)]))
1327
1327
  });
1328
- b.setStyle(t(y, w, y.id === (o == null ? void 0 : o.id))), b.set("loactionData", y), s.addFeature(b);
1329
- }, t = (y, w, L) => {
1328
+ x.setStyle(t(v, w, v.id === (o == null ? void 0 : o.id))), x.set("loactionData", v), s.addFeature(x);
1329
+ }, t = (v, w, k) => {
1330
1330
  const C = {
1331
- image: new Oe({
1332
- src: L && y.selectedPath || y.defaultPath,
1331
+ image: new pe({
1332
+ src: k && v.selectedPath || v.defaultPath,
1333
1333
  scale: 0.5 * w / 10
1334
1334
  })
1335
1335
  };
1336
- return y.name && (C.text = new ge({
1337
- text: y.name,
1336
+ return v.name && (C.text = new we({
1337
+ text: v.name,
1338
1338
  font: "12px sans-serif",
1339
- fill: new Q({
1339
+ fill: new ee({
1340
1340
  color: "#000000"
1341
1341
  }),
1342
- backgroundFill: new Q({
1342
+ backgroundFill: new ee({
1343
1343
  color: "#FFFFFF"
1344
1344
  }),
1345
1345
  offsetY: 30
1346
1346
  })), new X(C);
1347
1347
  }, n = () => {
1348
- if (i) {
1349
- const y = i.get("loactionData").id;
1348
+ if (c) {
1349
+ const v = c.get("loactionData").id;
1350
1350
  s.getFeatures().forEach((w) => {
1351
- w.get("loactionData").id !== y && s.removeFeature(w);
1351
+ w.get("loactionData").id !== v && s.removeFeature(w);
1352
1352
  });
1353
1353
  } else
1354
1354
  s.clear();
1355
1355
  }, m = () => {
1356
1356
  var C;
1357
- const y = i.get("loactionData"), w = (C = e == null ? void 0 : e.getView()) == null ? void 0 : C.getZoom();
1358
- s.getFeatures().forEach((b) => {
1359
- b.get("loactionData").id === y.id && (b == null || b.setStyle(t(y, w, !1)));
1360
- }), o = null, i = null;
1361
- }, v = (y) => {
1362
- y ? (N(), M(y)) : clearSelectedPort();
1357
+ const v = c.get("loactionData"), w = (C = e == null ? void 0 : e.getView()) == null ? void 0 : C.getZoom();
1358
+ s.getFeatures().forEach((x) => {
1359
+ x.get("loactionData").id === v.id && (x == null || x.setStyle(t(v, w, !1)));
1360
+ }), o = null, c = null;
1361
+ }, h = (v) => {
1362
+ v ? (N(), L(v)) : clearSelectedPort();
1363
1363
  }, N = () => {
1364
- var y;
1365
- if (i) {
1366
- const w = i.get("loactionData"), L = (y = e == null ? void 0 : e.getView()) == null ? void 0 : y.getZoom();
1367
- i.setStyle(t(w, L, !1));
1364
+ var v;
1365
+ if (c) {
1366
+ const w = c.get("loactionData"), k = (v = e == null ? void 0 : e.getView()) == null ? void 0 : v.getZoom();
1367
+ c.setStyle(t(w, k, !1));
1368
1368
  }
1369
- }, M = (y) => {
1369
+ }, L = (v) => {
1370
1370
  const w = s.getFeatures();
1371
- o = y, i = w.find((L) => L.get("loactionData").id === y.id);
1371
+ o = v, c = w.find((k) => k.get("loactionData").id === v.id);
1372
1372
  };
1373
1373
  return {
1374
1374
  render: u,
1375
- selected: v,
1375
+ selected: h,
1376
1376
  clearSelected: m,
1377
1377
  clear: n
1378
1378
  };
@@ -1384,16 +1384,16 @@ const nt = (e, r) => {
1384
1384
  e.getInteractions().forEach((r) => {
1385
1385
  r instanceof st && r.setActive(!0);
1386
1386
  });
1387
- }, ze = (e, r) => {
1387
+ }, Oe = (e, r) => {
1388
1388
  const l = e.getViewport();
1389
1389
  l && (l.style.cursor = r);
1390
1390
  }, Mo = (e, r) => {
1391
- const l = I([]), s = I("km"), i = (S) => {
1392
- s.value = S;
1391
+ const l = U([]), s = U("km"), c = (T) => {
1392
+ s.value = T;
1393
1393
  };
1394
1394
  let o;
1395
- const u = I(!1), h = () => {
1396
- ze(e, "crosshair"), m(), ko(e), e.on("pointermove", M), e.getViewport().addEventListener("mouseout", () => {
1395
+ const u = U(!1), y = () => {
1396
+ Oe(e, "crosshair"), m(), ko(e), e.on("pointermove", L), e.getViewport().addEventListener("mouseout", () => {
1397
1397
  o && o.classList.add("hidden");
1398
1398
  }), w(), u.value = !0;
1399
1399
  };
@@ -1411,227 +1411,227 @@ const nt = (e, r) => {
1411
1411
  }
1412
1412
  }), e == null || e.addLayer(n);
1413
1413
  };
1414
- let v, N;
1415
- const M = (S) => {
1416
- if (S.dragging)
1414
+ let h, N;
1415
+ const L = (T) => {
1416
+ if (T.dragging)
1417
1417
  return;
1418
1418
  let a = "点击选择起点";
1419
- v && (a = "单击继续,双击结束"), o && (o.innerHTML = a, N.setPosition(S.coordinate), o.classList.remove("hidden"));
1419
+ h && (a = "单击继续,双击结束"), o && (o.innerHTML = a, N.setPosition(T.coordinate), o.classList.remove("hidden"));
1420
1420
  };
1421
- let y;
1421
+ let v;
1422
1422
  const w = () => {
1423
- y = new Se({
1423
+ v = new Ne({
1424
1424
  source: t,
1425
1425
  type: "LineString",
1426
1426
  style: new X({
1427
- fill: new Q({
1427
+ fill: new ee({
1428
1428
  color: "rgba(255, 255, 255, 0.2)"
1429
1429
  }),
1430
- stroke: new ve({
1430
+ stroke: new fe({
1431
1431
  color: "rgba(255,204,51)",
1432
1432
  lineDash: [10, 10],
1433
1433
  width: 2
1434
1434
  }),
1435
- image: new Ve({
1435
+ image: new $e({
1436
1436
  radius: 5,
1437
- stroke: new ve({
1437
+ stroke: new fe({
1438
1438
  color: "rgba(0, 0, 0, 0.7)"
1439
1439
  }),
1440
- fill: new Q({
1440
+ fill: new ee({
1441
1441
  color: "rgba(255, 255, 255, 0.2)"
1442
1442
  })
1443
1443
  })
1444
1444
  }),
1445
1445
  // 添加条件函数,判断是否应该出发点绘制
1446
1446
  condition: (a) => a.originalEvent.target.tagName !== "DIV"
1447
- }), e == null || e.addInteraction(y), B(), G();
1448
- let S;
1449
- y.on("drawstart", function(a) {
1447
+ }), e == null || e.addInteraction(v), G(), D();
1448
+ let T;
1449
+ v.on("drawstart", function(a) {
1450
1450
  var g;
1451
- v = a.feature, v.set("randomId", L());
1452
- let x;
1453
- S = (g = v.getGeometry()) == null ? void 0 : g.on("change", function(k) {
1454
- const F = k.target, V = gt(F, s.value);
1455
- x = F.getLastCoordinate(), C && V && (C.innerHTML = V), b.setPosition(x);
1451
+ h = a.feature, h.set("randomId", k());
1452
+ let b;
1453
+ T = (g = h.getGeometry()) == null ? void 0 : g.on("change", function(p) {
1454
+ const P = p.target, V = gt(P, s.value);
1455
+ b = P.getLastCoordinate(), C && V && (C.innerHTML = V), x.setPosition(b);
1456
1456
  });
1457
- }), y.on("drawend", function() {
1458
- var a, x, g;
1457
+ }), v.on("drawend", function() {
1458
+ var a, b, g;
1459
1459
  if (C && (C.className = "ol-tooltip ol-tooltip-static ol-tooltip-measure"), C != null && C.innerHTML) {
1460
- const k = (v == null ? void 0 : v.get("randomId")) || L();
1461
- l.value.push({ id: k, value: C == null ? void 0 : C.innerHTML }), C.innerHTML = `${C.innerHTML}<div class="ol-tooltip-delete-button" data-id="${k}"><i class="map-iconfont icon-delete"></i></div>`;
1460
+ const p = (h == null ? void 0 : h.get("randomId")) || k();
1461
+ l.value.push({ id: p, value: C == null ? void 0 : C.innerHTML }), C.innerHTML = `${C.innerHTML}<div class="ol-tooltip-delete-button" data-id="${p}"><i class="map-iconfont icon-delete"></i></div>`;
1462
1462
  }
1463
- (a = document.querySelector(".ol-selectable:has(.ol-tooltip-delete-button):last-child .ol-tooltip-delete-button")) == null || a.addEventListener("click", (k) => {
1463
+ (a = document.querySelector(".ol-selectable:has(.ol-tooltip-delete-button):last-child .ol-tooltip-delete-button")) == null || a.addEventListener("click", (p) => {
1464
1464
  var V;
1465
- k.preventDefault(), k.stopPropagation();
1466
- const F = (V = k.target) == null ? void 0 : V.getAttribute("data-id");
1467
- F && Y(F);
1468
- }), b.setOffset([0, -7]), v = null, C = null, B(), S && We(S), (g = (x = r.getProps()) == null ? void 0 : x.lineDrawEnd) == null || g.call(x, l.value);
1465
+ p.preventDefault(), p.stopPropagation();
1466
+ const P = (V = p.target) == null ? void 0 : V.getAttribute("data-id");
1467
+ P && Y(P);
1468
+ }), x.setOffset([0, -7]), h = null, C = null, G(), T && We(T), (g = (b = r.getProps()) == null ? void 0 : b.lineDrawEnd) == null || g.call(b, l.value);
1469
1469
  });
1470
- }, L = () => Math.random().toString(36).substring(2, 9);
1471
- let C, b;
1472
- const B = () => {
1473
- C != null && C.parentNode && C.parentNode.removeChild(C), C = document.createElement("div"), C.className = "ol-tooltip ol-tooltip-measure", b = new ce({
1470
+ }, k = () => Math.random().toString(36).substring(2, 9);
1471
+ let C, x;
1472
+ const G = () => {
1473
+ C != null && C.parentNode && C.parentNode.removeChild(C), C = document.createElement("div"), C.className = "ol-tooltip ol-tooltip-measure", x = new ce({
1474
1474
  element: C,
1475
1475
  offset: [0, -15],
1476
1476
  positioning: "bottom-center",
1477
1477
  stopEvent: !1,
1478
1478
  insertFirst: !1
1479
- }), e == null || e.addOverlay(b);
1480
- }, G = () => {
1479
+ }), e == null || e.addOverlay(x);
1480
+ }, D = () => {
1481
1481
  o != null && o.parentNode && o.parentNode.removeChild(o), o = document.createElement("div"), o.className = "ol-tooltip hidden", N = new ce({
1482
1482
  element: o,
1483
1483
  offset: [15, 0],
1484
1484
  positioning: "center-left"
1485
1485
  }), e == null || e.addOverlay(N);
1486
1486
  }, q = () => {
1487
- l.value.forEach((S, a) => {
1488
- var k, F;
1489
- const x = document.querySelectorAll(".ol-tooltip.ol-tooltip-static.ol-tooltip-measure");
1490
- x[a] && ((F = (k = x[a]) == null ? void 0 : k.parentNode) == null || F.removeChild(x[a]));
1487
+ l.value.forEach((T, a) => {
1488
+ var p, P;
1489
+ const b = document.querySelectorAll(".ol-tooltip.ol-tooltip-static.ol-tooltip-measure");
1490
+ b[a] && ((P = (p = b[a]) == null ? void 0 : p.parentNode) == null || P.removeChild(b[a]));
1491
1491
  const g = t.getFeatures();
1492
1492
  g[a] && t.removeFeature(g[a]);
1493
- }), R(), po(e), u.value = !1, ze(e, "pointer");
1494
- }, Y = (S) => {
1495
- var x, g, k, F;
1496
- const a = l.value.findIndex((V) => V.id === S);
1493
+ }), O(), po(e), u.value = !1, Oe(e, "pointer");
1494
+ }, Y = (T) => {
1495
+ var b, g, p, P;
1496
+ const a = l.value.findIndex((V) => V.id === T);
1497
1497
  if (a !== -1) {
1498
1498
  l.value.splice(a, 1);
1499
1499
  const V = document.querySelectorAll(".ol-tooltip.ol-tooltip-static.ol-tooltip-measure");
1500
- V[a] && ((g = (x = V[a]) == null ? void 0 : x.parentNode) == null || g.removeChild(V[a]));
1501
- const D = t.getFeatures();
1502
- D[a] && t.removeFeature(D[a]);
1500
+ V[a] && ((g = (b = V[a]) == null ? void 0 : b.parentNode) == null || g.removeChild(V[a]));
1501
+ const A = t.getFeatures();
1502
+ A[a] && t.removeFeature(A[a]);
1503
1503
  }
1504
- (F = (k = r.getProps()) == null ? void 0 : k.lineDrawEnd) == null || F.call(k, l.value);
1505
- }, R = () => {
1506
- if (l.value = [], document.querySelectorAll(".ol-tooltip.ol-tooltip-static").forEach((S) => {
1504
+ (P = (p = r.getProps()) == null ? void 0 : p.lineDrawEnd) == null || P.call(p, l.value);
1505
+ }, O = () => {
1506
+ if (l.value = [], document.querySelectorAll(".ol-tooltip.ol-tooltip-static").forEach((T) => {
1507
1507
  var a;
1508
- (a = S == null ? void 0 : S.parentNode) == null || a.removeChild(S);
1509
- }), t == null || t.clear(), y) {
1510
- const S = e.getInteractions().getArray().find((a) => et(a) === et(y));
1511
- S && e.removeInteraction(S);
1508
+ (a = T == null ? void 0 : T.parentNode) == null || a.removeChild(T);
1509
+ }), t == null || t.clear(), v) {
1510
+ const T = e.getInteractions().getArray().find((a) => et(a) === et(v));
1511
+ T && e.removeInteraction(T);
1512
1512
  }
1513
1513
  e.removeLayer(n), o != null && o.parentNode && o.parentNode.removeChild(o), C != null && C.parentNode && C.parentNode.removeChild(C);
1514
1514
  };
1515
1515
  return {
1516
- open: h,
1516
+ open: y,
1517
1517
  close: q,
1518
1518
  deleteLine: Y,
1519
- setUnit: i,
1519
+ setUnit: c,
1520
1520
  getState: () => u.value
1521
1521
  };
1522
1522
  }, gt = (e, r) => {
1523
1523
  const s = He(e);
1524
- let i = "";
1524
+ let c = "";
1525
1525
  switch (r) {
1526
1526
  case "m":
1527
- i = `${Math.round(s * 100) / 100} m`;
1527
+ c = `${Math.round(s * 100) / 100} m`;
1528
1528
  break;
1529
1529
  case "km":
1530
- i = `${Math.round(s / 1e3 * 100) / 100} km`;
1530
+ c = `${Math.round(s / 1e3 * 100) / 100} km`;
1531
1531
  break;
1532
1532
  case "nm":
1533
- i = (Math.round(s / 1e3 * 100) / 100 / 1.852).toFixed(2) + " nm";
1533
+ c = (Math.round(s / 1e3 * 100) / 100 / 1.852).toFixed(2) + " nm";
1534
1534
  break;
1535
1535
  }
1536
- return i;
1536
+ return c;
1537
1537
  }, Co = (e, r) => {
1538
1538
  let l, s;
1539
- const i = () => {
1540
- o(), ze(e, "crosshair");
1539
+ const c = () => {
1540
+ o(), Oe(e, "crosshair");
1541
1541
  }, o = () => {
1542
- t(), C(), G(), M();
1542
+ t(), C(), D(), L();
1543
1543
  };
1544
- let u = null, h = null;
1544
+ let u = null, y = null;
1545
1545
  const t = () => {
1546
- if (u && h) return;
1547
- const R = new de(), Z = new he({
1548
- source: R,
1546
+ if (u && y) return;
1547
+ const O = new de(), Z = new he({
1548
+ source: O,
1549
1549
  style: new X({
1550
- stroke: new ve({
1550
+ stroke: new fe({
1551
1551
  color: "#fbcc33",
1552
1552
  width: 2
1553
1553
  })
1554
1554
  })
1555
1555
  });
1556
- u = Z, h = R, e.on("pointermove", m), e.addLayer(Z), e.on(["dblclick"], function(S) {
1557
- v && (S.stopPropagation(), S.preventDefault());
1556
+ u = Z, y = O, e.on("pointermove", m), e.addLayer(Z), e.on(["dblclick"], function(T) {
1557
+ h && (T.stopPropagation(), T.preventDefault());
1558
1558
  });
1559
1559
  };
1560
1560
  let n;
1561
- const m = (R) => {
1562
- if (R.dragging) return;
1561
+ const m = (O) => {
1562
+ if (O.dragging) return;
1563
1563
  const Z = n ? "单击继续,双击结束" : "点击选择起点";
1564
- b && (b.innerHTML = Z, B.setPosition(R.coordinate));
1564
+ x && (x.innerHTML = Z, G.setPosition(O.coordinate));
1565
1565
  };
1566
- let v, N = !1;
1567
- const M = () => {
1566
+ let h, N = !1;
1567
+ const L = () => {
1568
1568
  if (l) {
1569
- b != null && b.parentNode && b.parentNode.removeChild(b);
1570
- const R = l.getGeometry();
1571
- if (!R) return;
1572
- const Z = y(R, "nm");
1569
+ x != null && x.parentNode && x.parentNode.removeChild(x);
1570
+ const O = l.getGeometry();
1571
+ if (!O) return;
1572
+ const Z = v(O, "nm");
1573
1573
  w && (w.innerHTML = `
1574
1574
  <span class="text">面积:${Z}${N ? '<span class="error pl-12">超出可以绘画的距离</span>' : ""}</span>
1575
1575
  `), w && (w.innerHTML += '<span class="delete-icon" ><i class="map-iconfont icon-delete" /></div>');
1576
- const S = R.getCoordinates(), a = S[0][S[0].length - 2];
1577
- if (L.setPosition(a), u) {
1576
+ const T = O.getCoordinates(), a = T[0][T[0].length - 2];
1577
+ if (k.setPosition(a), u) {
1578
1578
  const g = u.getSource();
1579
1579
  g && l && (g.clear(), g.addFeature(l));
1580
1580
  }
1581
1581
  setTimeout(() => {
1582
1582
  var g;
1583
1583
  (g = document.querySelector(".delete-icon")) == null || g.addEventListener("click", () => {
1584
- var k, F;
1585
- console.log("delete"), q(), (F = (k = r.getProps()) == null ? void 0 : k.areaDrawEnd) == null || F.call(k, []);
1584
+ var p, P;
1585
+ console.log("delete"), q(), (P = (p = r.getProps()) == null ? void 0 : p.areaDrawEnd) == null || P.call(p, []);
1586
1586
  });
1587
1587
  }, 0);
1588
- const x = qt(l.getGeometry().getExtent());
1589
- e == null || e.getView().setCenter(x);
1588
+ const b = qt(l.getGeometry().getExtent());
1589
+ e == null || e.getView().setCenter(b);
1590
1590
  return;
1591
1591
  }
1592
- v = new Se({
1592
+ h = new Ne({
1593
1593
  type: "Polygon",
1594
- source: h,
1594
+ source: y,
1595
1595
  trace: !0,
1596
1596
  style: [new X({
1597
- stroke: new ve({
1597
+ stroke: new fe({
1598
1598
  color: "rgba(255, 255, 255, 1)",
1599
1599
  width: 1.5,
1600
1600
  lineDash: [10, 10]
1601
1601
  }),
1602
- fill: new Q({
1602
+ fill: new ee({
1603
1603
  color: "rgba(255, 255, 255, 0.25)"
1604
1604
  })
1605
1605
  }), new X({
1606
- image: new Ve({
1606
+ image: new $e({
1607
1607
  radius: 5,
1608
- fill: new Q({
1608
+ fill: new ee({
1609
1609
  color: "rgb(51,112,255, 1)"
1610
1610
  })
1611
1611
  }),
1612
- geometry: function(R) {
1613
- const Z = R.getGeometry().getCoordinates();
1612
+ geometry: function(O) {
1613
+ const Z = O.getGeometry().getCoordinates();
1614
1614
  return new Ht(Z);
1615
1615
  }
1616
1616
  })]
1617
- }), e == null || e.addInteraction(v), v.on("drawstart", (R) => {
1617
+ }), e == null || e.addInteraction(h), h.on("drawstart", (O) => {
1618
1618
  var Z;
1619
- n = R.feature, s = (Z = n.getGeometry()) == null ? void 0 : Z.on("change", (S) => {
1620
- const a = S.target, x = y(a, "nm"), k = a.getCoordinates()[0], F = new Pe([k[k.length - 2], k[k.length - 1]]), V = gt(F, "nm");
1621
- if (N = Number(He(F) / 1e3) > 150, !x) return;
1622
- const D = '<span class="error pl-4">超出可以绘画的距离</span>';
1619
+ n = O.feature, s = (Z = n.getGeometry()) == null ? void 0 : Z.on("change", (T) => {
1620
+ const a = T.target, b = v(a, "nm"), p = a.getCoordinates()[0], P = new Se([p[p.length - 2], p[p.length - 1]]), V = gt(P, "nm");
1621
+ if (N = Number(He(P) / 1e3) > 150, !b) return;
1622
+ const A = '<span class="error pl-4">超出可以绘画的距离</span>';
1623
1623
  w && (w.innerHTML = `
1624
1624
  <div class="text">
1625
- 面积:${x}
1626
- ${N ? D : ""}
1625
+ 面积:${b}
1626
+ ${N ? A : ""}
1627
1627
  </div>
1628
- `), b && (b.innerHTML = `
1628
+ `), x && (x.innerHTML = `
1629
1629
  <div class="text">
1630
- 面积:${x}
1630
+ 面积:${b}
1631
1631
  </div>
1632
1632
  <div class="text ${N ? "error" : ""}">
1633
- 线段 ${k.length - 2}: ${V}
1634
- ${N ? D : ""}
1633
+ 线段 ${p.length - 2}: ${V}
1634
+ ${N ? A : ""}
1635
1635
 
1636
1636
  </div>
1637
1637
  <div>
@@ -1639,57 +1639,57 @@ const nt = (e, r) => {
1639
1639
  </div>
1640
1640
  `);
1641
1641
  });
1642
- }), v.on("drawend", (R) => {
1643
- var x, g, k, F;
1644
- if (!R.feature.getGeometry()) return;
1645
- w && !l && (w.innerHTML += '<span class="delete-icon"><i class="map-iconfont icon-delete" /></div>'), l = R.feature, L.setOffset([10, 0]);
1646
- const S = R.feature.getGeometry().getCoordinates(), a = S[0][S[0].length - 2];
1647
- if (L.setPosition(a), b != null && b.parentNode && b.parentNode.removeChild(b), (x = r.getProps()) != null && x.areaDrawEnd) {
1648
- const V = S[0].map((D) => ke(D, K.mercator, K.data));
1649
- (k = (g = r.getProps()) == null ? void 0 : g.areaDrawEnd) == null || k.call(g, V);
1642
+ }), h.on("drawend", (O) => {
1643
+ var b, g, p, P;
1644
+ if (!O.feature.getGeometry()) return;
1645
+ w && !l && (w.innerHTML += '<span class="delete-icon"><i class="map-iconfont icon-delete" /></div>'), l = O.feature, k.setOffset([10, 0]);
1646
+ const T = O.feature.getGeometry().getCoordinates(), a = T[0][T[0].length - 2];
1647
+ if (k.setPosition(a), x != null && x.parentNode && x.parentNode.removeChild(x), (b = r.getProps()) != null && b.areaDrawEnd) {
1648
+ const V = T[0].map((A) => ke(A, J.mercator, J.data));
1649
+ (p = (g = r.getProps()) == null ? void 0 : g.areaDrawEnd) == null || p.call(g, V);
1650
1650
  }
1651
- v && (v.setActive(!1), e == null || e.removeInteraction(v), (e == null ? void 0 : e.getInteractions()).forEach((D) => {
1652
- D instanceof Se && (D.setActive(!1), e == null || e.removeInteraction(D));
1653
- })), s && We(s), (F = document.querySelector(".delete-icon")) == null || F.addEventListener("click", () => {
1654
- var V, D;
1655
- q(), (D = (V = r.getProps()) == null ? void 0 : V.areaDrawEnd) == null || D.call(V, []);
1651
+ h && (h.setActive(!1), e == null || e.removeInteraction(h), (e == null ? void 0 : e.getInteractions()).forEach((A) => {
1652
+ A instanceof Ne && (A.setActive(!1), e == null || e.removeInteraction(A));
1653
+ })), s && We(s), (P = document.querySelector(".delete-icon")) == null || P.addEventListener("click", () => {
1654
+ var V, A;
1655
+ q(), (A = (V = r.getProps()) == null ? void 0 : V.areaDrawEnd) == null || A.call(V, []);
1656
1656
  });
1657
1657
  });
1658
- }, y = (R, Z) => {
1659
- const S = Bt(R);
1658
+ }, v = (O, Z) => {
1659
+ const T = Bt(O);
1660
1660
  switch (Z) {
1661
1661
  case "km":
1662
- return S > 1e4 ? Math.round(S / 1e6 * 100) / 100 + " km<sup>2</sup>" : Math.round(S * 100) / 100 + " m<sup>2</sup>";
1662
+ return T > 1e4 ? Math.round(T / 1e6 * 100) / 100 + " km<sup>2</sup>" : Math.round(T * 100) / 100 + " m<sup>2</sup>";
1663
1663
  case "nm":
1664
- return S > 1e4 ? Math.round(S / 1e6 / Math.pow(1.852, 2) * 100) / 100 + " nm<sup>2</sup>" : Math.round(S * 100) / 100 + " m<sup>2</sup>";
1664
+ return T > 1e4 ? Math.round(T / 1e6 / Math.pow(1.852, 2) * 100) / 100 + " nm<sup>2</sup>" : Math.round(T * 100) / 100 + " m<sup>2</sup>";
1665
1665
  }
1666
1666
  };
1667
- let w, L;
1667
+ let w, k;
1668
1668
  const C = () => {
1669
- w != null && w.parentNode && w.parentNode.removeChild(w), w = document.createElement("div"), w.style.display = "flex", w.className = "ol-tooltip ol-tooltip-draw-polygon", L = new ce({
1669
+ w != null && w.parentNode && w.parentNode.removeChild(w), w = document.createElement("div"), w.style.display = "flex", w.className = "ol-tooltip ol-tooltip-draw-polygon", k = new ce({
1670
1670
  element: w,
1671
1671
  offset: [0, -15],
1672
1672
  positioning: "bottom-center",
1673
1673
  stopEvent: !1,
1674
1674
  insertFirst: !1
1675
- }), e == null || e.addOverlay(L);
1675
+ }), e == null || e.addOverlay(k);
1676
1676
  };
1677
- let b, B;
1678
- const G = () => {
1679
- b != null && b.parentNode && b.parentNode.removeChild(b), b = document.createElement("div"), b.className = "ol-tooltip ol-help-tooltip", B = new ce({
1680
- element: b,
1677
+ let x, G;
1678
+ const D = () => {
1679
+ x != null && x.parentNode && x.parentNode.removeChild(x), x = document.createElement("div"), x.className = "ol-tooltip ol-help-tooltip", G = new ce({
1680
+ element: x,
1681
1681
  offset: [15, 0],
1682
1682
  positioning: "center-left"
1683
- }), e == null || e.addOverlay(B);
1683
+ }), e == null || e.addOverlay(G);
1684
1684
  }, q = () => {
1685
- h == null || h.clear(), l = null, C(), G(), M();
1685
+ y == null || y.clear(), l = null, C(), D(), L();
1686
1686
  };
1687
1687
  return {
1688
- open: i,
1688
+ open: c,
1689
1689
  close: () => {
1690
- h == null || h.clear(), h = null, u && (e.removeLayer(u), u = null), n = null, v && (v.setActive(!1), (e == null ? void 0 : e.getInteractions()).forEach((Z) => {
1691
- Z instanceof Se && (Z.setActive(!1), e == null || e.removeInteraction(Z));
1692
- }), v = null), s && We(s), b != null && b.parentElement && b.parentElement.removeChild(b), w != null && w.parentElement && w.parentElement.removeChild(w), B && e.removeOverlay(B), L && e.removeOverlay(L), ze(e, "pointer");
1690
+ y == null || y.clear(), y = null, u && (e.removeLayer(u), u = null), n = null, h && (h.setActive(!1), (e == null ? void 0 : e.getInteractions()).forEach((Z) => {
1691
+ Z instanceof Ne && (Z.setActive(!1), e == null || e.removeInteraction(Z));
1692
+ }), h = null), s && We(s), x != null && x.parentElement && x.parentElement.removeChild(x), w != null && w.parentElement && w.parentElement.removeChild(w), G && e.removeOverlay(G), k && e.removeOverlay(k), Oe(e, "pointer");
1693
1693
  },
1694
1694
  reset: q
1695
1695
  };
@@ -1698,32 +1698,40 @@ const nt = (e, r) => {
1698
1698
  className: Lo,
1699
1699
  source: r,
1700
1700
  zIndex: 100,
1701
- updateWhileInteracting: !1,
1702
- updateWhileAnimating: !1
1701
+ updateWhileInteracting: !0,
1702
+ updateWhileAnimating: !0
1703
1703
  });
1704
1704
  e == null || e.addLayer(l);
1705
- let s = null, i = null;
1706
- const o = (M, y = !0) => {
1707
- if (!(!M || M.length === 0)) {
1708
- if (r.clear(), i) {
1709
- const w = M.find((L) => L.id === i.id);
1710
- w ? i = w : M.push(i);
1711
- }
1712
- M.forEach((w) => {
1713
- u(w, y);
1714
- }), i && (console.log("selectedPortData", i), v(i));
1705
+ let s = null, c = null;
1706
+ const o = (L, v = !0) => {
1707
+ if (!L || L.length === 0) return;
1708
+ if (r.clear(), c) {
1709
+ const k = L.find((C) => C.id === (c == null ? void 0 : c.id));
1710
+ k ? c = k : L.push(c);
1715
1711
  }
1716
- }, u = (M, y = !0) => {
1717
- const [w, L] = M.latLon.split(","), C = new ie({
1718
- geometry: new le(ee([Number(w), Number(L)])),
1719
- portData: M,
1720
- select: M.id === (i == null ? void 0 : i.id),
1721
- showTitle: M.id === (i == null ? void 0 : i.id) || y
1722
- }), b = h(C);
1723
- C.setStyle(b), r.addFeature(C);
1724
- }, h = (M) => {
1725
- const { select: y, showTitle: w } = M.getProperties(), L = (Y) => `<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
1726
- <path fill-rule="evenodd" clip-rule="evenodd" d="M22.6563 44.9304C22.5453 44.8844 22.4445 44.817 22.3595 44.7321C22.3595 44.7321 9.36986 31.7424 9.32952 31.6913C7.09059 29.0791 5.64794 25.8802 5.17255 22.4736C4.69716 19.0671 5.20896 15.5957 6.64728 12.471C8.08561 9.34625 10.3902 6.69909 13.2878 4.84325C16.1855 2.98741 19.5548 2.00068 22.9965 2C26.4381 1.99932 29.8078 2.98473 32.7062 4.83943C35.6046 6.69414 37.9102 9.34039 39.3498 12.4646C40.7893 15.5888 41.3025 19.0599 40.8284 22.4666C40.3544 25.8734 38.913 29.0729 36.6751 31.686C36.6401 31.737 23.6531 44.7321 23.6531 44.7321C23.5682 44.817 23.4674 44.8844 23.3564 44.9304C23.2454 44.9763 23.1265 45 23.0063 45C22.8862 45 22.7673 44.9763 22.6563 44.9304Z" fill="${Y}"/>
1712
+ const w = [];
1713
+ L.forEach((k) => {
1714
+ const [C, x] = k.latLon.split(","), G = new ie({
1715
+ geometry: new le(I([Number(C), Number(x)])),
1716
+ portData: k,
1717
+ id: k.id,
1718
+ select: k.id === (c == null ? void 0 : c.id),
1719
+ showTitle: k.id === (c == null ? void 0 : c.id) || v
1720
+ }), D = y(G);
1721
+ G.setStyle(D), w.push(G);
1722
+ }), r.addFeatures(w);
1723
+ }, u = (L, v) => {
1724
+ const w = document.createElement("canvas"), k = w.getContext("2d");
1725
+ if (!k) return "";
1726
+ const C = 2, x = 8, G = window.devicePixelRatio || 1, D = "12px sans-serif";
1727
+ k.font = D;
1728
+ const Y = k.measureText(L).width, O = x + Y + x, Z = C + 12 + C * 2;
1729
+ w.width = Math.round(O * G), w.height = Math.round(Z * G), k.scale(G, G), k.clearRect(0, 0, O, Z), k.fillStyle = v ? "#FF5733" : "#FFF", k.fillRect(0, 0, O, Z), k.font = D, k.textBaseline = "middle";
1730
+ const T = Z / 2;
1731
+ return k.strokeStyle = v ? "#000" : "#ffffff", k.lineWidth = 1, k.strokeText(L, x, T), k.fillStyle = v ? "#FFF" : "#000000", k.fillText(L, x, T), w.toDataURL("image/png");
1732
+ }, y = (L) => {
1733
+ const { select: v, showTitle: w } = L.getProperties(), k = (O) => `<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
1734
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M22.6563 44.9304C22.5453 44.8844 22.4445 44.817 22.3595 44.7321C22.3595 44.7321 9.36986 31.7424 9.32952 31.6913C7.09059 29.0791 5.64794 25.8802 5.17255 22.4736C4.69716 19.0671 5.20896 15.5957 6.64728 12.471C8.08561 9.34625 10.3902 6.69909 13.2878 4.84325C16.1855 2.98741 19.5548 2.00068 22.9965 2C26.4381 1.99932 29.8078 2.98473 32.7062 4.83943C35.6046 6.69414 37.9102 9.34039 39.3498 12.4646C40.7893 15.5888 41.3025 19.0599 40.8284 22.4666C40.3544 25.8734 38.913 29.0729 36.6751 31.686C36.6401 31.737 23.6531 44.7321 23.6531 44.7321C23.5682 44.817 23.4674 44.8844 23.3564 44.9304C23.2454 44.9763 23.1265 45 23.0063 45C22.8862 45 22.7673 44.9763 22.6563 44.9304Z" fill="${O}"/>
1727
1735
  <g clip-path="url(#clip0_10059_122082)">
1728
1736
  <path d="M34.8624 22.8687L32.5874 25.6313L33.4812 25.7125C33.4812 25.7125 30.5562 28.0687 27.9562 28.2312C25.3562 28.3937 24.1374 24.9 24.1374 24.9V19.1312H27.6312V17.425H24.2999V15.15C25.7624 14.6625 26.7374 13.2812 26.7374 11.6562C26.7374 9.625 25.1124 8 23.0812 8H22.9999C20.9687 8 19.3437 9.625 19.3437 11.6562C19.3437 13.2812 20.3999 14.6625 21.7812 15.15V17.425H18.4499V19.1312H21.9437V24.9C21.9437 24.9 20.6437 28.3125 18.0437 28.2312C15.4437 28.0687 12.5187 25.7125 12.5187 25.7125L13.4124 25.6313L11.0562 22.8687L10.2437 26.2812L11.2187 26.0375C11.2187 26.0375 13.1687 29.5313 16.1749 30.8313C19.1812 32.2125 22.1874 33.9187 22.8374 34C23.4874 33.9187 26.4937 32.2125 29.4187 30.8313C32.3437 29.45 34.3749 26.0375 34.3749 26.0375L35.3499 26.2812L34.8624 22.8687ZM23.0812 13.6875C21.9437 13.6875 21.0499 12.7937 21.0499 11.6562C21.0499 10.6 21.9437 9.70625 22.9999 9.70625H23.0812C24.1374 9.70625 25.0312 10.6 25.0312 11.6562C25.1124 12.7937 24.1374 13.6875 23.0812 13.6875Z" fill="white"/>
1729
1737
  </g>
@@ -1733,142 +1741,139 @@ const nt = (e, r) => {
1733
1741
  </clipPath>
1734
1742
  </defs>
1735
1743
  </svg>
1736
- `, C = () => `data:image/svg+xml;utf8,${encodeURIComponent(L(y ? "#FF5733" : "#3370FF"))}`, b = e.getView().getZoom(), B = M.get("portData"), G = {
1737
- image: new Oe({
1744
+ `, C = () => `data:image/svg+xml;utf8,${encodeURIComponent(k(v ? "#FF5733" : "#3370FF"))}`, x = e.getView().getZoom(), G = L.get("portData"), D = window.devicePixelRatio || 1, q = new X({
1745
+ image: new pe({
1738
1746
  src: C(),
1739
- scale: 0.5 * b / 10
1747
+ scale: 0.5 * x / 10
1740
1748
  }),
1741
- zIndex: y ? 110 : 100
1742
- }, q = {
1743
- text: new ge({
1744
- text: B.shortName,
1745
- font: "12px sans-serif",
1746
- fill: new Q({
1747
- color: y ? "#ffffff" : "#000000"
1748
- }),
1749
- backgroundFill: new Q({
1750
- color: "#FFF"
1751
- }),
1752
- offsetY: 30
1753
- })
1754
- };
1755
- return !w && !y ? new X({
1756
- ...G
1757
- }) : new X({
1758
- ...G,
1759
- ...q
1749
+ zIndex: v ? 110 : 100
1750
+ }), Y = new X({
1751
+ image: new pe({
1752
+ src: u(G.shortName, v),
1753
+ anchor: [0.5, 0.5],
1754
+ displacement: [0, -26],
1755
+ scale: 1 / D,
1756
+ anchorXUnits: "fraction",
1757
+ anchorYUnits: "fraction"
1758
+ }),
1759
+ zIndex: v ? 110 : 100
1760
+ // text: new Text({
1761
+ // text: port.shortName,
1762
+ // font: '12px sans-serif',
1763
+ // fill: new Fill({
1764
+ // color: select ? "#ffffff" : "#000000"
1765
+ // }),
1766
+ // backgroundFill: new Fill({
1767
+ // color: "#FFF",
1768
+ // }),
1769
+ // offsetY: 30,
1770
+ // }),
1760
1771
  });
1772
+ return !w && !v ? q : [q, Y];
1761
1773
  }, t = () => {
1762
1774
  if (r)
1763
1775
  if (s) {
1764
1776
  console.log("清除非选中的港口");
1765
- const M = s.get("portData").id;
1766
- r.getFeatures().forEach((y) => {
1767
- y.get("portData").id !== M && r.removeFeature(y);
1777
+ const L = s.get("portData").id;
1778
+ r.getFeatures().forEach((v) => {
1779
+ v.get("portData").id !== L && r.removeFeature(v);
1768
1780
  });
1769
1781
  } else
1770
1782
  console.log("清除所有港口", r), r == null || r.clear();
1771
- }, n = (M) => {
1783
+ }, n = (L) => {
1772
1784
  if (r) {
1773
- if (!M)
1785
+ if (!L)
1774
1786
  return m();
1775
- (s == null ? void 0 : s.get("portData").id) !== M.id && (m(), v(M));
1787
+ (s == null ? void 0 : s.get("portData").id) !== L.id && (m(), h(L));
1776
1788
  }
1777
1789
  }, m = () => {
1778
- var M;
1790
+ var L;
1779
1791
  if (s) {
1780
- const y = s == null ? void 0 : s.get("portData"), w = (M = r.getFeatures()) == null ? void 0 : M.find((L) => L.get("portData").id === y.id);
1792
+ const v = s == null ? void 0 : s.get("portData"), w = (L = r.getFeatures()) == null ? void 0 : L.find((k) => k.get("portData").id === v.id);
1781
1793
  if (w) {
1782
- const L = h(w);
1783
- w.set("select", !1), w.setStyle(L), s = null, i = null;
1794
+ const k = y(w);
1795
+ w.set("select", !1), w.setStyle(k), s = null, c = null;
1784
1796
  }
1785
1797
  }
1786
- }, v = (M) => {
1787
- var w;
1798
+ }, h = (L) => {
1788
1799
  if (!r) return;
1789
- const y = r.getFeatures();
1790
- if (i = M, s = y.find((L) => L.get("portData").id === M.id), s) {
1791
- s.set("select", !0);
1792
- const L = h(s);
1793
- L && ((w = L == null ? void 0 : L.getText()) == null || w.setBackgroundFill(new Q({
1794
- color: "#FF5733"
1795
- }))), s.setStyle(L);
1796
- }
1800
+ const v = r.getFeatures();
1801
+ c = L, s = v.find((w) => w.get("portData").id === L.id), s && (s.set("select", !0), s.setStyle(y(s)));
1797
1802
  };
1798
1803
  return {
1799
1804
  render: o,
1800
1805
  clear: t,
1801
1806
  selected: n,
1802
- handlePortHover: (M) => {
1803
- const y = e == null ? void 0 : e.getTargetElement();
1804
- M && M.get("portData") && y && (y.style.cursor = "pointer");
1807
+ handlePortHover: (L) => {
1808
+ const v = e == null ? void 0 : e.getTargetElement();
1809
+ L && L.get("portData") && v && (v.style.cursor = "pointer");
1805
1810
  }
1806
1811
  };
1807
- }, To = (e, r, l, s, i, o) => {
1812
+ }, To = (e, r, l, s, c, o) => {
1808
1813
  const u = e.getInstall();
1809
1814
  u.on("moveend", () => {
1810
- var h, t;
1815
+ var y, t;
1811
1816
  try {
1812
1817
  const n = e.getZoom();
1813
- (t = (h = r.getProps()).mapMoveEnd) == null || t.call(h, n), l.reRenderTrackLine(), s.changeShipScale("end");
1818
+ (t = (y = r.getProps()).mapMoveEnd) == null || t.call(y, n), l.reRenderTrackLine(), s.changeShipScale("end");
1814
1819
  } catch (n) {
1815
1820
  console.log("moveend---catch", n);
1816
1821
  }
1817
- }), u.on("pointermove", (h) => {
1822
+ }), u.on("pointermove", (y) => {
1818
1823
  try {
1819
- const t = u == null ? void 0 : u.getEventPixel(h.originalEvent);
1824
+ const t = u == null ? void 0 : u.getEventPixel(y.originalEvent);
1820
1825
  if (!t || !u) return;
1821
1826
  const n = u == null ? void 0 : u.forEachFeatureAtPixel(t, (m) => m, {
1822
1827
  layerFilter: (m) => m.getVisible()
1823
1828
  });
1824
- s == null || s.handleShipMapEvent(n, "hover"), l == null || l.handleTrackMapEvent(n, "hover", h), n && (i == null || i.handlePortHover(n));
1829
+ s == null || s.handleShipMapEvent(n, "hover"), l == null || l.handleTrackMapEvent(n, "hover", y), n && (c == null || c.handlePortHover(n));
1825
1830
  } catch (t) {
1826
1831
  console.log("pointermove---catch", t);
1827
1832
  }
1828
1833
  }), u.on("movestart", () => {
1829
1834
  try {
1830
- const h = u == null ? void 0 : u.getView().getZoom();
1831
- h && h <= te.shipModelMax && h >= te.shipTriggleMin && s.changeShipScale("start");
1832
- } catch (h) {
1833
- console.log("movestart---catch", h);
1835
+ const y = u == null ? void 0 : u.getView().getZoom();
1836
+ y && y <= te.shipModelMax && y >= te.shipTriggleMin && s.changeShipScale("start");
1837
+ } catch (y) {
1838
+ console.log("movestart---catch", y);
1834
1839
  }
1835
- }), u.on("singleclick", Ne((h) => {
1840
+ }), u.on("singleclick", Ve((y) => {
1836
1841
  var t, n, m;
1837
1842
  try {
1838
1843
  if (console.log("1", o.getState()), o.getState()) return;
1839
- const v = u.getFeaturesAtPixel(h.pixel);
1840
- if (!v && v.length === 0) return;
1841
- console.log("features------------", v);
1842
- let N = null, M = null;
1843
- if (v == null || v.forEach((y) => {
1844
- y.get("shipData") && (N = y), y.get("portData") && (M = y);
1844
+ const h = u.getFeaturesAtPixel(y.pixel);
1845
+ if (!h && h.length === 0) return;
1846
+ console.log("features------------", h);
1847
+ let N = null, L = null;
1848
+ if (h == null || h.forEach((v) => {
1849
+ v.get("shipData") && (N = v), v.get("portData") && (L = v);
1845
1850
  }), N)
1846
1851
  s.handleShipMapEvent(N, "click", (t = r.getProps()) == null ? void 0 : t.selectShip);
1847
- else if (M) {
1848
- const y = M.get("portData");
1849
- i.selected(y), (m = (n = r.getProps()) == null ? void 0 : n.selectPort) == null || m.call(n, y);
1852
+ else if (L) {
1853
+ const v = L.get("portData");
1854
+ c.selected(v), (m = (n = r.getProps()) == null ? void 0 : n.selectPort) == null || m.call(n, v);
1850
1855
  }
1851
- h.preventDefault(), h.stopPropagation();
1852
- } catch (v) {
1853
- console.log("click---catch", v);
1856
+ y.preventDefault(), y.stopPropagation();
1857
+ } catch (h) {
1858
+ console.log("click---catch", h);
1854
1859
  }
1855
- }, 150)), u.getView().on("change:resolution", Ne(() => {
1856
- const h = u == null ? void 0 : u.getView().getZoom();
1857
- h && h <= te.shipModelMax && h >= te.shipTriggleMin && s.changeSelectedScale("start");
1860
+ }, 150)), u.getView().on("change:resolution", Ve(() => {
1861
+ const y = u == null ? void 0 : u.getView().getZoom();
1862
+ y && y <= te.shipModelMax && y >= te.shipTriggleMin && s.changeSelectedScale("start");
1858
1863
  }, 10));
1859
1864
  }, Fo = () => {
1860
1865
  const e = St([]);
1861
1866
  return {
1862
- createInstance: (s, i) => {
1867
+ createInstance: (s, c) => {
1863
1868
  const o = eo();
1864
- o.initMap(s, i);
1865
- const u = o.getInstall(), h = wo(u), t = xo();
1866
- t.setProps(i), h.setShowLayerType(i.layerType), h.setGreenTileVisible(i.showGreenLayer);
1867
- const n = so(u), m = lo(u, n), v = mo(u), N = bo(u), M = Mo(u, t), y = Co(u, t), w = Eo(u);
1868
- To(o, t, n, v, w, M);
1869
- const L = () => {
1870
- const b = u.getView().calculateExtent(o.getSize()), B = ke([b[0], b[1]], K.mercator, K.data), G = ke([b[2], b[3]], K.mercator, K.data);
1871
- return [B[0], B[1], G[0], G[1]];
1869
+ o.initMap(s, c);
1870
+ const u = o.getInstall(), y = wo(u), t = xo();
1871
+ t.setProps(c), y.setShowLayerType(c.layerType), y.setGreenTileVisible(c.showGreenLayer);
1872
+ const n = so(u), m = lo(u, n), h = mo(u), N = bo(u), L = Mo(u, t), v = Co(u, t), w = Eo(u);
1873
+ To(o, t, n, h, w, L);
1874
+ const k = () => {
1875
+ const x = u.getView().calculateExtent(o.getSize()), G = ke([x[0], x[1]], J.mercator, J.data), D = ke([x[2], x[3]], J.mercator, J.data);
1876
+ return [G[0], G[1], D[0], D[1]];
1872
1877
  }, C = {
1873
1878
  id: Symbol("map-instance"),
1874
1879
  innerMap: null,
@@ -1878,8 +1883,8 @@ const nt = (e, r) => {
1878
1883
  },
1879
1884
  methods: {
1880
1885
  ...o,
1881
- layer: h,
1882
- ship: v,
1886
+ layer: y,
1887
+ ship: h,
1883
1888
  track: n,
1884
1889
  carTrack: m,
1885
1890
  port: {
@@ -1888,11 +1893,11 @@ const nt = (e, r) => {
1888
1893
  selected: w.selected
1889
1894
  },
1890
1895
  position: N,
1891
- drawLine: M,
1892
- drawPolygon: y,
1896
+ drawLine: L,
1897
+ drawPolygon: v,
1893
1898
  // 子模块
1894
1899
  utils: {
1895
- getCalculateExtent: L,
1900
+ getCalculateExtent: k,
1896
1901
  convertSixHundredThousandToLatLng: je,
1897
1902
  calculateCirclePoints: to
1898
1903
  }
@@ -1901,8 +1906,8 @@ const nt = (e, r) => {
1901
1906
  return e.push(C), C;
1902
1907
  },
1903
1908
  destroyInstance: (s) => {
1904
- const i = e.findIndex((o) => o.id === s);
1905
- i > -1 && (e[i].destroy(), e.splice(i, 1));
1909
+ const c = e.findIndex((o) => o.id === s);
1910
+ c > -1 && (e[c].destroy(), e.splice(c, 1));
1906
1911
  },
1907
1912
  destroyAll: () => {
1908
1913
  e.forEach((s) => s.destroy()), e.splice(0, e.length);
@@ -1929,16 +1934,16 @@ const nt = (e, r) => {
1929
1934
  } }
1930
1935
  },
1931
1936
  setup(e, { expose: r }) {
1932
- const l = I(), s = I(), i = Fo(), o = I(), u = e, h = I({
1937
+ const l = U(), s = U(), c = Fo(), o = U(), u = e, y = U({
1933
1938
  getInstall() {
1934
1939
  }
1935
1940
  });
1936
1941
  return Nt(() => {
1937
1942
  var t;
1938
- o.value = i.createInstance(l.value, u), h.value = o.value.methods, (t = s.value) == null || t.setScaleLine(o.value.map, u.scaleLineUnit);
1943
+ o.value = c.createInstance(l.value, u), y.value = o.value.methods, (t = s.value) == null || t.setScaleLine(o.value.map, u.scaleLineUnit);
1939
1944
  }), Vt(() => {
1940
1945
  var t, n;
1941
- i.destroyInstance((t = o == null ? void 0 : o.value) == null ? void 0 : t.id), (n = o.value) == null || n.destroy();
1946
+ c.destroyInstance((t = o == null ? void 0 : o.value) == null ? void 0 : t.id), (n = o.value) == null || n.destroy();
1942
1947
  }), r({
1943
1948
  getZoom: () => {
1944
1949
  var t;