@soonspacejs/plugin-tiles 2.15.13 → 2.15.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,25 +1,25 @@
1
- import R from "soonspacejs";
1
+ import I from "soonspacejs";
2
2
  import { TilesRenderer as T } from "um-3d-tiles-renderer";
3
- import { GLTFLoader as oe } from "three/examples/jsm/loaders/GLTFLoader.js";
4
- import { MathUtils as f, MeshBasicMaterial as le, Color as L, PerspectiveCamera as q, Matrix4 as b, Vector3 as ve, Box3 as _e, Sphere as de, MeshStandardMaterial as Oe, ShaderMaterial as V } from "three";
5
- import { TilesFadePlugin as z, UpdateOnChangePlugin as B, QuantizedMeshPlugin as U, ImageOverlayPlugin as he, XYZTilesOverlay as ue, ReorientationPlugin as j, StyledGeoJSONOverlay as Z, CesiumIonOverlay as Me, TMSTilesOverlay as Se, UrlTemplateTilesOverlay as we, WMSTilesOverlay as Ce, WMTSCapabilitiesLoader as be, WMTSTilesOverlay as Te, CesiumIonAuthPlugin as ce } from "um-3d-tiles-renderer/plugins";
6
- import { CesiumGroundTextPrimitive as k, CesiumGroundPolylinePrimitive as I, CesiumGroundPolygonPrimitive as K, CesiumGroundCirclePrimitive as ee, CesiumGroundPointPrimitive as Pe, initializeApproximateTerrainHeights as xe, updateTerrainLogDepthUniforms as ke, CesiumGlobeDepth as Ee, CESIUM_GROUND_NON_PICKABLE_LAYER as Ie } from "cesium-to-three/ground";
7
- import { createFineArrow as W, createCurvedArrow as pe, createSwallowtailAttackArrow as ge, createAttackArrow as fe, createAssaultDirectionArrow as ye } from "cesium-to-three/arrow";
8
- class Re {
3
+ import { GLTFLoader as de } from "three/examples/jsm/loaders/GLTFLoader.js";
4
+ import { MathUtils as f, MeshBasicMaterial as he, Color as L, PerspectiveCamera as V, Matrix4 as b, Vector3 as Oe, Box3 as Me, Sphere as ue, MeshStandardMaterial as Se, ShaderMaterial as Z } from "three";
5
+ import { TilesFadePlugin as B, UpdateOnChangePlugin as H, QuantizedMeshPlugin as J, ImageOverlayPlugin as ce, XYZTilesOverlay as pe, ReorientationPlugin as j, StyledGeoJSONOverlay as K, CesiumIonOverlay as we, TMSTilesOverlay as Ce, UrlTemplateTilesOverlay as be, WMSTilesOverlay as Te, WMTSCapabilitiesLoader as Pe, WMTSTilesOverlay as Ee, CesiumIonAuthPlugin as ge } from "um-3d-tiles-renderer/plugins";
6
+ import { CesiumGroundTextPrimitive as k, CesiumGroundPolylinePrimitive as R, CesiumGroundPolygonPrimitive as ee, CesiumGroundCirclePrimitive as te, CesiumGroundPointPrimitive as re, initializeApproximateTerrainHeights as ke, updateTerrainLogDepthUniforms as xe, CesiumGlobeDepth as Re, CESIUM_GROUND_NON_PICKABLE_LAYER as Ie } from "cesium-to-three/ground";
7
+ import { createFineArrow as W, createCurvedArrow as fe, createSwallowtailAttackArrow as ye, createAttackArrow as me, createAssaultDirectionArrow as ve } from "cesium-to-three/arrow";
8
+ class Ne {
9
9
  constructor(e) {
10
10
  this.parser = e, this.name = "KHR_texture_basisu_patch";
11
11
  }
12
12
  loadTexture(e) {
13
- const t = this.parser, r = t.json, a = r.textures[e].source, n = r.images[a];
14
- if (!n || n.mimeType !== "image/ktx2")
13
+ const t = this.parser, r = t.json, n = r.textures[e].source, a = r.images[n];
14
+ if (!a || a.mimeType !== "image/ktx2")
15
15
  return null;
16
16
  const o = t.options.ktx2Loader;
17
17
  if (!o)
18
- throw new Error(`${R.utils.consoleSspTitle}请使用 setModelKtx2DecoderPath 设置 ktx2 解压库路径`);
19
- return t.loadTextureImage(e, a, o);
18
+ throw new Error(`${I.utils.consoleSspTitle}请使用 setModelKtx2DecoderPath 设置 ktx2 解压库路径`);
19
+ return t.loadTextureImage(e, n, o);
20
20
  }
21
21
  }
22
- class Mt {
22
+ class bt {
23
23
  constructor(e) {
24
24
  this.ssp = e;
25
25
  const { controls: t, viewport: r } = e;
@@ -46,15 +46,15 @@ class Mt {
46
46
  downloadQueue = null;
47
47
  async loadTiles(e) {
48
48
  if (this.tilesMap.has(e)) {
49
- R.utils.warn(`${e} already loaded`);
49
+ I.utils.warn(`${e} already loaded`);
50
50
  return;
51
51
  }
52
52
  const { ssp: t, ssp: { viewport: r } } = this, i = new T(e);
53
53
  this.lruCache === null ? this.lruCache = i.lruCache : i.lruCache = this.lruCache, this.parseQueue === null ? this.parseQueue = i.parseQueue : i.parseQueue = this.parseQueue, this.downloadQueue === null ? this.downloadQueue = i.downloadQueue : i.downloadQueue = this.downloadQueue;
54
- const a = new oe(i.manager);
55
- a.register((h) => new Re(h));
56
- const { dracoLoader: n, ktx2Loader: o, meshoptDecoder: d } = t.manager.store.modelManager.gltfLoader;
57
- n && a.setDRACOLoader(n), o && a.setKTX2Loader(o), d && a.setMeshoptDecoder(d), i.manager.addHandler(/\.gltf$/, a), this.tilesMap.set(e, i), i.setCamera(this._tilesCamera), i.setResolutionFromRenderer(this._tilesCamera, r.renderer), i.lruCache.maxSize = 600, i.lruCache.minSize = 300, i.lruCache.unloadPercent = 0.8, t.addObject(i.group);
54
+ const n = new de(i.manager);
55
+ n.register((h) => new Ne(h));
56
+ const { dracoLoader: a, ktx2Loader: o, meshoptDecoder: d } = t.manager.store.modelManager.gltfLoader;
57
+ a && n.setDRACOLoader(a), o && n.setKTX2Loader(o), d && n.setMeshoptDecoder(d), i.manager.addHandler(/\.gltf$/, n), this.tilesMap.set(e, i), i.setCamera(this._tilesCamera), i.setResolutionFromRenderer(this._tilesCamera, r.renderer), i.lruCache.maxSize = 600, i.lruCache.minSize = 300, i.lruCache.unloadPercent = 0.8, t.addObject(i.group);
58
58
  const l = () => {
59
59
  this.cameraTransitionStart || (this.needsUpdate = !0, t.render());
60
60
  };
@@ -69,27 +69,27 @@ class Mt {
69
69
  return t ? (t.dispose(), this.tilesMap.delete(e), this.ssp.removeObject(t.group), !0) : !1;
70
70
  }
71
71
  }
72
- let Ne = class {
72
+ let Ae = class {
73
73
  priority = -999;
74
74
  processTileModel(e) {
75
75
  e.traverse((t) => {
76
- t.material && (t.material = new le());
76
+ t.material && (t.material = new he());
77
77
  });
78
78
  }
79
79
  };
80
- const Ae = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/";
81
- class wt {
80
+ const Le = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/";
81
+ class Pt {
82
82
  constructor(e) {
83
- this.ssp = e, this.tiles = new T(Ae), this.tiles.fetchData = async (t, r) => {
83
+ this.ssp = e, this.tiles = new T(Le), this.tiles.fetchData = async (t, r) => {
84
84
  if (/layer\.json$/.test(t)) {
85
- const i = await fetch(t, r).then((a) => a.json());
85
+ const i = await fetch(t, r).then((n) => n.json());
86
86
  return i.metadataAvailability = -1, new Response(JSON.stringify(i));
87
87
  }
88
88
  return fetch(t, r);
89
- }, this.tilesFadePlugin = new z({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new B(), this.quantizedPlugin = new U({}), this.customMaterialPlugin = new Ne(), this.imageOverlayPlugin = new he({
89
+ }, this.tilesFadePlugin = new B({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new H(), this.quantizedPlugin = new J({}), this.customMaterialPlugin = new Ae(), this.imageOverlayPlugin = new ce({
90
90
  renderer: e.viewport.renderer,
91
91
  overlays: [
92
- new ue({
92
+ new pe({
93
93
  url: "https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"
94
94
  })
95
95
  ]
@@ -124,16 +124,16 @@ class wt {
124
124
  }
125
125
  invalidate(e, t, r) {
126
126
  const i = () => {
127
- const n = f.degToRad(t), o = f.degToRad(e);
127
+ const a = f.degToRad(t), o = f.degToRad(e);
128
128
  this.reorientationPlugin.transformLatLonHeightToOrigin(
129
- n,
129
+ a,
130
130
  o,
131
131
  r
132
- ), this.ssp.render(), a();
133
- }, a = () => {
132
+ ), this.ssp.render(), n();
133
+ }, n = () => {
134
134
  this.tiles.removeEventListener("load-root-tileset", i), this.loedTilesSets.delete(i);
135
135
  };
136
- return this.tiles.addEventListener("load-root-tileset", i), this.loedTilesSets.add(i), this.tiles.root && i(), a;
136
+ return this.tiles.addEventListener("load-root-tileset", i), this.loedTilesSets.add(i), this.tiles.root && i(), n;
137
137
  }
138
138
  dispose() {
139
139
  this.disable(), this.loedTilesSets.forEach(
@@ -141,7 +141,7 @@ class wt {
141
141
  ), this.loedTilesSets.clear(), this.tiles.removeEventListener("needs-render", this.render), this.tiles.removeEventListener("needs-update", this.render), this.tiles.dispose();
142
142
  }
143
143
  }
144
- class Le {
144
+ class De {
145
145
  // 使用较低的 priority 确保在 ImageOverlayPlugin 之后执行
146
146
  // ImageOverlayPlugin 默认 priority 是 -1
147
147
  priority = -999;
@@ -152,7 +152,7 @@ class Le {
152
152
  */
153
153
  processTileModel(e) {
154
154
  e.traverse((t) => {
155
- t.material && (t.material = new le());
155
+ t.material && (t.material = new he());
156
156
  });
157
157
  }
158
158
  /**
@@ -210,17 +210,17 @@ class N {
210
210
  ...this._getGeoJSONModeFlags(r)
211
211
  };
212
212
  e.color !== void 0 && (i.color = new L(e.color));
213
- const a = new Z(i);
214
- return t.addOverlay(a, e.order), this._instances.set(e.id, {
213
+ const n = new K(i);
214
+ return t.addOverlay(n, e.order), this._instances.set(e.id, {
215
215
  id: e.id,
216
216
  type: e.type,
217
- instance: a,
217
+ instance: n,
218
218
  options: { ...e, mode: r }
219
219
  }), this.resourceManager?.addOverlay({
220
220
  id: e.id,
221
221
  type: e.type,
222
222
  options: e
223
- }), a;
223
+ }), n;
224
224
  }
225
225
  updateGeoJSONColor(e, t) {
226
226
  const r = this._instances.get(e);
@@ -231,62 +231,62 @@ class N {
231
231
  updateGeoJSONDefaultStyle(e, t) {
232
232
  const r = this._instances.get(e);
233
233
  if (!r || r.type !== u.GEOJSON) return !1;
234
- const i = r.instance, a = r.options, n = {
235
- ...a.defaultStyle || {},
234
+ const i = r.instance, n = r.options, a = {
235
+ ...n.defaultStyle || {},
236
236
  ...t
237
237
  }, o = {
238
- ...a,
239
- defaultStyle: n
238
+ ...n,
239
+ defaultStyle: a
240
240
  };
241
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { defaultStyle: n }), !0;
241
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { defaultStyle: a }), !0;
242
242
  }
243
243
  updateGeoJSONStrokeStyle(e, t) {
244
244
  const r = this._instances.get(e);
245
245
  if (!r || r.type !== u.GEOJSON) return !1;
246
- const i = r.instance, a = r.options, n = {
247
- ...a.defaultStyle || {},
246
+ const i = r.instance, n = r.options, a = {
247
+ ...n.defaultStyle || {},
248
248
  strokeStyle: t
249
249
  }, o = {
250
- ...a,
250
+ ...n,
251
251
  strokeStyle: t,
252
- defaultStyle: n
252
+ defaultStyle: a
253
253
  };
254
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeStyle: t, defaultStyle: n }), !0;
254
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeStyle: t, defaultStyle: a }), !0;
255
255
  }
256
256
  updateGeoJSONStrokeWidth(e, t) {
257
257
  const r = this._instances.get(e);
258
258
  if (!r || r.type !== u.GEOJSON) return !1;
259
- const i = r.instance, a = r.options, n = {
260
- ...a.defaultStyle || {},
259
+ const i = r.instance, n = r.options, a = {
260
+ ...n.defaultStyle || {},
261
261
  strokeWidth: t
262
262
  }, o = {
263
- ...a,
263
+ ...n,
264
264
  strokeWidth: t,
265
- defaultStyle: n
265
+ defaultStyle: a
266
266
  };
267
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeWidth: t, defaultStyle: n }), !0;
267
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { strokeWidth: t, defaultStyle: a }), !0;
268
268
  }
269
269
  updateGeoJSONFillStyle(e, t) {
270
270
  const r = this._instances.get(e);
271
271
  if (!r || r.type !== u.GEOJSON) return !1;
272
- const i = r.instance, a = r.options, n = {
273
- ...a.defaultStyle || {},
272
+ const i = r.instance, n = r.options, a = {
273
+ ...n.defaultStyle || {},
274
274
  fillStyle: t
275
275
  }, o = {
276
- ...a,
276
+ ...n,
277
277
  fillStyle: t,
278
- defaultStyle: n
278
+ defaultStyle: a
279
279
  };
280
- return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { fillStyle: t, defaultStyle: n }), !0;
280
+ return i.defaultStyle = this._buildGeoJSONDefaultStyle(o, o.mode ?? "overlay"), this._updateOverlayOptions(e, { fillStyle: t, defaultStyle: a }), !0;
281
281
  }
282
282
  updateGeoJSONMode(e, t) {
283
283
  const r = this._instances.get(e);
284
284
  if (!r || r.type !== u.GEOJSON) return !1;
285
- const i = r.instance, a = {
285
+ const i = r.instance, n = {
286
286
  ...r.options,
287
287
  mode: t
288
- }, n = this._getGeoJSONModeFlags(t);
289
- return i.alphaInvert = n.alphaInvert, i.alphaMask = n.alphaMask, i.defaultStyle = this._buildGeoJSONDefaultStyle(a, t), i.requestUpdate?.(), this._updateOverlayOptions(e, { mode: t }), !0;
288
+ }, a = this._getGeoJSONModeFlags(t);
289
+ return i.alphaInvert = a.alphaInvert, i.alphaMask = a.alphaMask, i.defaultStyle = this._buildGeoJSONDefaultStyle(n, t), i.requestUpdate?.(), this._updateOverlayOptions(e, { mode: t }), !0;
290
290
  }
291
291
  setGeoJSON(e, t) {
292
292
  const r = this._instances.get(e);
@@ -301,8 +301,8 @@ class N {
301
301
  setMergedGeoJSON(e, t, r) {
302
302
  const i = this._instances.get(e);
303
303
  if (!i || i.type !== u.GEOJSON) return null;
304
- const n = i.instance.setMergedGeoJSON(t, r);
305
- return this._updateOverlayOptions(e, { geojson: n }), n;
304
+ const a = i.instance.setMergedGeoJSON(t, r);
305
+ return this._updateOverlayOptions(e, { geojson: a }), a;
306
306
  }
307
307
  getGeoJSONFeatureById(e, t) {
308
308
  const r = this._instances.get(e);
@@ -328,7 +328,7 @@ class N {
328
328
  addCesiumIonOverlay(e) {
329
329
  const t = this._getImageOverlayPluginForAdd(e.id);
330
330
  if (!t) return null;
331
- const r = new Me({
331
+ const r = new we({
332
332
  assetId: e.assetId,
333
333
  apiToken: e.apiToken,
334
334
  autoRefreshToken: e.autoRefreshToken ?? !0,
@@ -350,7 +350,7 @@ class N {
350
350
  addTMSOverlay(e) {
351
351
  const t = this._getImageOverlayPluginForAdd(e.id);
352
352
  if (!t) return null;
353
- const r = new Se({
353
+ const r = new Ce({
354
354
  url: e.url,
355
355
  color: typeof e.color == "number" ? e.color : 16777215,
356
356
  opacity: e.opacity ?? 1
@@ -370,7 +370,7 @@ class N {
370
370
  addXYZOverlay(e) {
371
371
  const t = this._getImageOverlayPluginForAdd(e.id);
372
372
  if (!t) return null;
373
- const r = new ue({
373
+ const r = new pe({
374
374
  url: e.url,
375
375
  color: typeof e.color == "number" ? e.color : 16777215,
376
376
  opacity: e.opacity ?? 1
@@ -421,7 +421,7 @@ class N {
421
421
  addUrlTemplateOverlay(e) {
422
422
  const t = this._getImageOverlayPluginForAdd(e.id);
423
423
  if (!t) return null;
424
- const r = new we({
424
+ const r = new be({
425
425
  url: e.url,
426
426
  subdomains: e.subdomains,
427
427
  levels: e.levels,
@@ -453,7 +453,7 @@ class N {
453
453
  crs: e.crs || "EPSG:4326",
454
454
  format: e.format || "image/png",
455
455
  tileDimension: e.tileDimension || 256
456
- }, i = new Ce({
456
+ }, i = new Te({
457
457
  url: e.url,
458
458
  layer: r.layer,
459
459
  crs: r.crs,
@@ -478,14 +478,14 @@ class N {
478
478
  async addWMTSOverlay(e) {
479
479
  const t = this._getImageOverlayPluginForAdd(e.id);
480
480
  if (!t) return null;
481
- const r = await new be().loadAsync(e.url), i = ["EPSG:4326", "EPSG:3857"];
482
- let a = e.layer || "";
483
- r.layers.find((o) => o.identifier === a) || (a = r.layers.find(
481
+ const r = await new Pe().loadAsync(e.url), i = ["EPSG:4326", "EPSG:3857"];
482
+ let n = e.layer || "";
483
+ r.layers.find((o) => o.identifier === n) || (n = r.layers.find(
484
484
  (o) => o?.tileMatrixSets?.some((d) => i.includes(d.supportedCRS))
485
485
  )?.identifier || r.layers[0].identifier);
486
- const n = new Te({
486
+ const a = new Ee({
487
487
  capabilities: r,
488
- layer: a,
488
+ layer: n,
489
489
  dimensions: e.dimensions || null,
490
490
  style: e.style || void 0,
491
491
  tileMatrixSet: e.tileMatrixSet || null,
@@ -493,16 +493,16 @@ class N {
493
493
  color: new L(typeof e.color == "number" ? e.color : 16777215),
494
494
  opacity: e.opacity ?? 1
495
495
  });
496
- return t.addOverlay(n, e.order), this._instances.set(e.id, {
496
+ return t.addOverlay(a, e.order), this._instances.set(e.id, {
497
497
  id: e.id,
498
498
  type: e.type,
499
- instance: n,
499
+ instance: a,
500
500
  options: { ...e }
501
501
  }), this.resourceManager?.addOverlay({
502
502
  id: e.id,
503
503
  type: e.type,
504
504
  options: e
505
- }), n;
505
+ }), a;
506
506
  }
507
507
  // =============== 通用方法 ===============
508
508
  /**
@@ -570,8 +570,8 @@ class N {
570
570
  if (!t) return !1;
571
571
  const r = this.imageOverlayPlugin.overlayInfo;
572
572
  let i = 0;
573
- return r.forEach((a) => {
574
- a.order > i && (i = a.order);
573
+ return r.forEach((n) => {
574
+ n.order > i && (i = n.order);
575
575
  }), this.imageOverlayPlugin.setOverlayOrder(t.instance, i + 1), this._updateOverlayOptions(e, { order: i + 1 }), !0;
576
576
  }
577
577
  /**
@@ -583,8 +583,8 @@ class N {
583
583
  if (!t) return !1;
584
584
  const r = this.imageOverlayPlugin.overlayInfo;
585
585
  let i = 1 / 0;
586
- return r.forEach((a) => {
587
- a.order < i && (i = a.order);
586
+ return r.forEach((n) => {
587
+ n.order < i && (i = n.order);
588
588
  }), this.imageOverlayPlugin.setOverlayOrder(t.instance, i - 1), this._updateOverlayOptions(e, { order: i - 1 }), !0;
589
589
  }
590
590
  // =============== 资源恢复 ===============
@@ -668,7 +668,7 @@ class N {
668
668
  };
669
669
  }
670
670
  _getGeoJSONUtilityOverlay() {
671
- return this._geoJSONUtilityOverlay || (this._geoJSONUtilityOverlay = new Z({})), this._geoJSONUtilityOverlay;
671
+ return this._geoJSONUtilityOverlay || (this._geoJSONUtilityOverlay = new K({})), this._geoJSONUtilityOverlay;
672
672
  }
673
673
  _updateOverlayOptions(e, t) {
674
674
  const r = this._instances.get(e);
@@ -704,7 +704,7 @@ class N {
704
704
  this.disposeInstances(), this.resourceManager?.clear();
705
705
  }
706
706
  }
707
- class De {
707
+ class Ge {
708
708
  /** Overlay 资源配置 */
709
709
  _overlays = /* @__PURE__ */ new Map();
710
710
  // =============== Overlay 资源管理 ===============
@@ -794,7 +794,7 @@ class De {
794
794
  e.overlays && (this._overlays.clear(), e.overlays.forEach((t) => this._overlays.set(t.id, { ...t })));
795
795
  }
796
796
  }
797
- class Ge {
797
+ class Fe {
798
798
  /** 地形配置映射表 */
799
799
  _terrains = /* @__PURE__ */ new Map();
800
800
  /** 当前激活的地形 ID */
@@ -883,7 +883,7 @@ class Ge {
883
883
  this.clear();
884
884
  }
885
885
  }
886
- let Fe = 1;
886
+ let Ue = 1;
887
887
  class O {
888
888
  /** 自增字符串 id('1' / '2' / '3' ...) */
889
889
  id;
@@ -898,7 +898,7 @@ class O {
898
898
  */
899
899
  options;
900
900
  constructor(e) {
901
- this.id = String(Fe++), this.category = "", this.options = { ...e }, this.options.points && (this.options.points = this.options.points.map(
901
+ this.id = String(Ue++), this.category = "", this.options = { ...e }, this.options.points && (this.options.points = this.options.points.map(
902
902
  (t) => [t[0], t[1]]
903
903
  ));
904
904
  }
@@ -964,7 +964,7 @@ class Je extends O {
964
964
  return this.getCenterPoints();
965
965
  }
966
966
  }
967
- class Ue extends O {
967
+ class We extends O {
968
968
  category = "line";
969
969
  constructor(e) {
970
970
  super(e);
@@ -974,7 +974,7 @@ class Ue extends O {
974
974
  this.options = { ...this.options, ...e };
975
975
  }
976
976
  }
977
- class We extends O {
977
+ class $e extends O {
978
978
  category = "polygon";
979
979
  constructor(e) {
980
980
  super(e);
@@ -984,7 +984,7 @@ class We extends O {
984
984
  this.options = { ...this.options, ...e };
985
985
  }
986
986
  }
987
- class $e extends O {
987
+ class ze extends O {
988
988
  category = "rectangle";
989
989
  constructor(e) {
990
990
  super(e);
@@ -994,8 +994,8 @@ class $e extends O {
994
994
  this.options = { ...this.options, ...e };
995
995
  }
996
996
  }
997
- const ze = f.DEG2RAD, te = 111320;
998
- class Be extends O {
997
+ const Be = f.DEG2RAD, ie = 111320;
998
+ class He extends O {
999
999
  category = "sector";
1000
1000
  constructor(e) {
1001
1001
  super(e);
@@ -1008,10 +1008,10 @@ class Be extends O {
1008
1008
  getExtentPoints() {
1009
1009
  const e = this.options.points;
1010
1010
  if (!e || e.length === 0) return [];
1011
- const t = e[0][0], r = e[0][1], i = this.options.radius || 0, a = i / (te * Math.cos(r * ze)), n = i / te;
1011
+ const t = e[0][0], r = e[0][1], i = this.options.radius || 0, n = i / (ie * Math.cos(r * Be)), a = i / ie;
1012
1012
  return [
1013
- [t - a, r - n],
1014
- [t + a, r + n]
1013
+ [t - n, r - a],
1014
+ [t + n, r + a]
1015
1015
  ];
1016
1016
  }
1017
1017
  }
@@ -1046,16 +1046,16 @@ class je extends O {
1046
1046
  this.generatedCoords = W(e[0], e[1]);
1047
1047
  break;
1048
1048
  case "assaultDirection":
1049
- this.generatedCoords = ye(e[0], e[1]);
1049
+ this.generatedCoords = ve(e[0], e[1]);
1050
1050
  break;
1051
1051
  case "attack":
1052
- this.generatedCoords = fe(e);
1052
+ this.generatedCoords = me(e);
1053
1053
  break;
1054
1054
  case "swallowtailAttack":
1055
- this.generatedCoords = ge(e);
1055
+ this.generatedCoords = ye(e);
1056
1056
  break;
1057
1057
  case "curved":
1058
- this.generatedCoords = pe(e);
1058
+ this.generatedCoords = fe(e);
1059
1059
  break;
1060
1060
  default:
1061
1061
  this.generatedCoords = W(e[0], e[e.length - 1]);
@@ -1104,7 +1104,7 @@ class Qe extends O {
1104
1104
  return this.getCenterPoints();
1105
1105
  }
1106
1106
  }
1107
- const He = f.DEG2RAD, re = 111320;
1107
+ const Ye = f.DEG2RAD, se = 111320;
1108
1108
  class Xe extends O {
1109
1109
  category = "circle";
1110
1110
  constructor(e) {
@@ -1118,27 +1118,52 @@ class Xe extends O {
1118
1118
  getExtentPoints() {
1119
1119
  const e = this.options.points;
1120
1120
  if (!e || e.length === 0) return [];
1121
- const t = e[0][0], r = e[0][1], i = this.options.radius || 0, a = i / (re * Math.cos(r * He)), n = i / re;
1121
+ const t = e[0][0], r = e[0][1], i = this.options.radius || 0, n = i / (se * Math.cos(r * Ye)), a = i / se;
1122
1122
  return [
1123
- [t - a, r - n],
1124
- [t + a, r + n]
1123
+ [t - n, r - a],
1124
+ [t + n, r + a]
1125
1125
  ];
1126
1126
  }
1127
1127
  }
1128
- const Ye = 3, qe = 1e3;
1129
- function Ve(s) {
1128
+ const qe = 3, Ve = 1e3;
1129
+ function Ze(s) {
1130
1130
  return Number.isFinite(s) ? Math.max(Math.round(s), 0) : 0;
1131
1131
  }
1132
- function Ze(s) {
1133
- const e = Ve(s), t = qe + e * Ye;
1132
+ function Ke(s) {
1133
+ const e = Ze(s), t = Ve + e * qe;
1134
1134
  if (!Number.isSafeInteger(t))
1135
1135
  throw new Error("Plot renderOrder exceeded JavaScript safe integer range.");
1136
1136
  return t;
1137
1137
  }
1138
- function ie(s) {
1139
- return s instanceof I || s instanceof k ? s.group : s.classification.group;
1138
+ const $ = {
1139
+ OutdoorFireHydrant: "outdoor-hydrant.svg",
1140
+ UndergroundHydrant: "outdoor-hydrant-underground.svg",
1141
+ AboveGroundHydrant: "outdoor-hydrant-above-ground.svg",
1142
+ MunicipalFireHydrants: "municipal-hydrant.svg",
1143
+ FireWaterReservoir: "fire-water-pool.svg",
1144
+ NaturalWater: "natural-water-source.svg",
1145
+ HospitalResourcePoint: "hospital-resource.svg",
1146
+ PublicSecurityResourcePoint: "police-resource.svg",
1147
+ SupportMaterialPoint: "emergency-supplies.svg",
1148
+ FireStation: "fire-station.svg",
1149
+ LinkageUnit: "coordination-unit.svg"
1150
+ }, Et = Object.freeze(
1151
+ Object.keys($)
1152
+ ), et = "/node_modules/cesium-to-three/dist/icon/";
1153
+ function tt(s) {
1154
+ const e = s?.trim();
1155
+ return !e || !Object.prototype.hasOwnProperty.call(
1156
+ $,
1157
+ e
1158
+ ) ? null : et + $[e];
1140
1159
  }
1141
- function Ke(s) {
1160
+ function rt(s) {
1161
+ return s.imageUrl?.trim() || tt(s.ontologyId);
1162
+ }
1163
+ function ne(s) {
1164
+ return s instanceof R || s instanceof k ? s.group : s.classification.group;
1165
+ }
1166
+ function it(s) {
1142
1167
  const e = s.options, t = JSON.stringify(e.points ?? []);
1143
1168
  switch (s.category) {
1144
1169
  case "circle":
@@ -1146,7 +1171,7 @@ function Ke(s) {
1146
1171
  case "sector":
1147
1172
  return `sector|${t}|${e.radius}|${e.startAngle}|${e.sectorAngle}`;
1148
1173
  case "point":
1149
- return `point|${t}|${e.pointStyle}|${e.size}`;
1174
+ return `point|${t}|${e.pointStyle}|${e.size}|${e.imageUrl}|${e.ontologyId}|${e.imageWidth}|${e.imageHeight}|${e.rotation}`;
1150
1175
  case "arrow":
1151
1176
  return `arrow|${t}|${e.arrowType}`;
1152
1177
  case "line":
@@ -1157,27 +1182,27 @@ function Ke(s) {
1157
1182
  return `${s.category}|${t}`;
1158
1183
  }
1159
1184
  }
1160
- function se(s, e = "solid") {
1185
+ function ae(s, e = "solid") {
1161
1186
  return s === "unfilledArrow" ? "open" : s === "filledArrow" ? "solid" : e;
1162
1187
  }
1163
- function et(s) {
1188
+ function st(s) {
1164
1189
  if (s.showArrow === !1) return "none";
1165
1190
  const e = s.startArrowStyle !== void 0 && s.startArrowStyle !== null, t = s.endArrowStyle !== void 0 && s.endArrowStyle !== null;
1166
1191
  return e && t ? "both" : t ? "right" : e ? "left" : "none";
1167
1192
  }
1168
- function ae(s) {
1169
- const e = et(s), t = se(s.startArrowStyle), r = se(s.endArrowStyle);
1193
+ function oe(s) {
1194
+ const e = st(s), t = ae(s.startArrowStyle), r = ae(s.endArrowStyle);
1170
1195
  return {
1171
1196
  arrowMode: e,
1172
1197
  startArrowStyle: t,
1173
1198
  endArrowStyle: r
1174
1199
  };
1175
1200
  }
1176
- function tt(s, e) {
1201
+ function nt(s, e) {
1177
1202
  const t = s.options;
1178
1203
  return `${t.strokeColor}|${t.strokeWidth}|${t.strokeOpacity}|${t.fillColor}|${t.fillOpacity}|${e}|${t.fontColor ?? ""}|${t.fontSize ?? ""}`;
1179
1204
  }
1180
- class rt {
1205
+ class at {
1181
1206
  /** 标绘 id → 渲染记录 */
1182
1207
  _entries = /* @__PURE__ */ new Map();
1183
1208
  /** 由 GroundDecalManager 写入的标绘集合(引用共享) */
@@ -1221,23 +1246,23 @@ class rt {
1221
1246
  this._shapes.has(t) || (this._scene.remove(r.group), r.primitive.dispose(), this._entries.delete(t));
1222
1247
  let e = 0;
1223
1248
  for (const [t, r] of this._shapes) {
1224
- const i = Ze(e);
1249
+ const i = Ke(e);
1225
1250
  e += 1;
1226
- const a = this._entries.get(t), n = Ke(r), o = tt(r, this._opacity);
1227
- if (a !== void 0 && a.signature === n && (this._supportsStyleHotUpdate(a.primitive) || a.styleSignature === o)) {
1228
- this._refreshLightweight(a, i), a.styleSignature = o;
1251
+ const n = this._entries.get(t), a = it(r), o = nt(r, this._opacity);
1252
+ if (n !== void 0 && n.signature === a && (this._supportsStyleHotUpdate(n.primitive) || n.styleSignature === o)) {
1253
+ this._refreshLightweight(n, i), n.styleSignature = o;
1229
1254
  continue;
1230
1255
  }
1231
- a !== void 0 && (this._scene.remove(a.group), a.primitive.dispose(), this._entries.delete(t));
1256
+ n !== void 0 && (this._scene.remove(n.group), n.primitive.dispose(), this._entries.delete(t));
1232
1257
  const d = this._buildPrimitive(r, i);
1233
1258
  if (d === null) continue;
1234
- const l = ie(d);
1259
+ const l = ne(d);
1235
1260
  l.visible = r.options.visible !== !1, this._scene.add(l);
1236
1261
  const h = {
1237
1262
  plot: r,
1238
1263
  primitive: d,
1239
1264
  group: l,
1240
- signature: n,
1265
+ signature: a,
1241
1266
  styleSignature: o
1242
1267
  };
1243
1268
  this._entries.set(t, h), d instanceof k && this._refreshLightweight(h, i);
@@ -1265,7 +1290,7 @@ class rt {
1265
1290
  * 折线(setColor / setWidth)与文字(setText)支持;面类不支持,需重建。
1266
1291
  */
1267
1292
  _supportsStyleHotUpdate(e) {
1268
- return e instanceof I || e instanceof k;
1293
+ return e instanceof R || e instanceof k;
1269
1294
  }
1270
1295
  /**
1271
1296
  * 几何未变时的轻量刷新:
@@ -1274,18 +1299,18 @@ class rt {
1274
1299
  * - 文字:setText(内容 + 颜色 + 不透明度)/ setVisible(不重建图元)。
1275
1300
  */
1276
1301
  _refreshLightweight(e, t) {
1277
- if (e.group.visible = e.plot.options.visible !== !1, e.primitive.setRenderOrder?.(t), e.primitive instanceof I) {
1302
+ if (e.group.visible = e.plot.options.visible !== !1, e.primitive.setRenderOrder?.(t), e.primitive instanceof R) {
1278
1303
  const r = e.plot.options, {
1279
1304
  startArrowStyle: i,
1280
- endArrowStyle: a
1281
- } = ae(r);
1305
+ endArrowStyle: n
1306
+ } = oe(r);
1282
1307
  e.primitive.setColor(
1283
1308
  r.strokeColor,
1284
1309
  (r.strokeOpacity ?? 100) * this._opacity
1285
1310
  );
1286
- const n = typeof r.strokeWidth == "number" && r.strokeWidth > 0 ? r.strokeWidth : 5;
1287
- e.primitive.setWidth(n), e.primitive.setArrowStyles(i, a);
1288
- const o = Math.max(n * 4, 1), d = Math.max(n * 3, 0.8);
1311
+ const a = typeof r.strokeWidth == "number" && r.strokeWidth > 0 ? r.strokeWidth : 5;
1312
+ e.primitive.setWidth(a), e.primitive.setArrowStyles(i, n);
1313
+ const o = Math.max(a * 4, 1), d = Math.max(a * 3, 0.8);
1289
1314
  e.primitive.setArrowSizeMeters(o, d), e.primitive.setVisible(r.visible !== !1);
1290
1315
  }
1291
1316
  if (e.primitive instanceof k) {
@@ -1312,7 +1337,7 @@ class rt {
1312
1337
  offsetEastMeters: r.offsetX,
1313
1338
  offsetNorthMeters: r.offsetY,
1314
1339
  metersPerPixel: r.scale
1315
- }), e.primitive.setVisible(r.visible !== !1), e.group = ie(e.primitive), e.group.visible = r.visible !== !1;
1340
+ }), e.primitive.setVisible(r.visible !== !1), e.group = ne(e.primitive), e.group.visible = r.visible !== !1;
1316
1341
  }
1317
1342
  }
1318
1343
  // ── 内部:按 category 构建图元 ──
@@ -1323,18 +1348,36 @@ class rt {
1323
1348
  * @returns 渲染图元;未知类型 / 退化情况返回 null。
1324
1349
  */
1325
1350
  _buildPrimitive(e, t) {
1326
- const r = e.options, i = r.points ?? [], a = this._opacity, n = (r.strokeOpacity ?? 100) * a, o = (r.fillOpacity ?? 100) * a, d = r.visible !== !1;
1351
+ const r = e.options, i = r.points ?? [], n = this._opacity, a = (r.strokeOpacity ?? 100) * n, o = (r.fillOpacity ?? 100) * n, d = r.visible !== !1;
1327
1352
  switch (e.category) {
1328
1353
  case "point": {
1329
1354
  if (i.length === 0) return null;
1330
1355
  const l = r;
1331
- return new Pe({
1356
+ if (l.pointStyle === "image") {
1357
+ const h = rt(l);
1358
+ return h ? new re({
1359
+ position: i[0],
1360
+ shape: "image",
1361
+ imageUrl: h,
1362
+ imageWidth: l.imageWidth,
1363
+ imageHeight: l.imageHeight,
1364
+ rotation: l.rotation ?? 0,
1365
+ strokeColor: l.strokeColor,
1366
+ strokeWidth: l.strokeWidth ?? 0,
1367
+ strokeOpacity: a,
1368
+ fillColor: l.fillColor,
1369
+ fillOpacity: o,
1370
+ visible: d,
1371
+ renderOrder: t
1372
+ }) : (console.warn(`[soonspacejs] Unknown point image ontology id: ${l.ontologyId ?? ""}`), null);
1373
+ }
1374
+ return new re({
1332
1375
  position: i[0],
1333
1376
  shape: l.pointStyle ?? "circle",
1334
1377
  size: l.size ?? 100,
1335
1378
  strokeColor: l.strokeColor,
1336
1379
  strokeWidth: l.strokeWidth ?? 0,
1337
- strokeOpacity: n,
1380
+ strokeOpacity: a,
1338
1381
  fillColor: l.fillColor,
1339
1382
  fillOpacity: o,
1340
1383
  visible: d,
@@ -1344,12 +1387,12 @@ class rt {
1344
1387
  case "circle": {
1345
1388
  if (i.length === 0) return null;
1346
1389
  const l = r;
1347
- return new ee({
1390
+ return new te({
1348
1391
  center: i[0],
1349
1392
  radius: l.radius ?? 100,
1350
1393
  strokeColor: l.strokeColor,
1351
1394
  strokeWidth: l.strokeWidth ?? 0,
1352
- strokeOpacity: n,
1395
+ strokeOpacity: a,
1353
1396
  fillColor: l.fillColor,
1354
1397
  fillOpacity: o,
1355
1398
  visible: d,
@@ -1359,12 +1402,12 @@ class rt {
1359
1402
  case "sector": {
1360
1403
  if (i.length === 0) return null;
1361
1404
  const l = r;
1362
- return new ee({
1405
+ return new te({
1363
1406
  center: i[0],
1364
1407
  radius: l.radius ?? 100,
1365
1408
  strokeColor: l.strokeColor,
1366
1409
  strokeWidth: l.strokeWidth ?? 0,
1367
- strokeOpacity: n,
1410
+ strokeOpacity: a,
1368
1411
  fillColor: l.fillColor,
1369
1412
  fillOpacity: o,
1370
1413
  visible: d,
@@ -1375,11 +1418,11 @@ class rt {
1375
1418
  }
1376
1419
  case "polygon":
1377
1420
  case "rectangle":
1378
- return i.length < 3 ? null : new K({
1421
+ return i.length < 3 ? null : new ee({
1379
1422
  points: i,
1380
1423
  strokeColor: r.strokeColor,
1381
1424
  strokeWidth: r.strokeWidth ?? 0,
1382
- strokeOpacity: n,
1425
+ strokeOpacity: a,
1383
1426
  fillColor: r.fillColor,
1384
1427
  fillOpacity: o,
1385
1428
  visible: d,
@@ -1389,11 +1432,11 @@ class rt {
1389
1432
  const l = e.generateCoords();
1390
1433
  if (l.length < 3) return null;
1391
1434
  const h = r;
1392
- return new K({
1435
+ return new ee({
1393
1436
  points: l,
1394
1437
  strokeColor: h.strokeColor,
1395
1438
  strokeWidth: h.strokeWidth ?? 0,
1396
- strokeOpacity: n,
1439
+ strokeOpacity: a,
1397
1440
  fillColor: h.fillColor,
1398
1441
  fillOpacity: o,
1399
1442
  visible: d,
@@ -1406,11 +1449,11 @@ class rt {
1406
1449
  arrowMode: h,
1407
1450
  startArrowStyle: c,
1408
1451
  endArrowStyle: y
1409
- } = ae(l), _ = l.strokeStyle === "dashed", p = _ ? 60 : void 0, g = _ ? 40 : void 0, m = typeof l.strokeWidth == "number" && l.strokeWidth > 0 ? l.strokeWidth : 5, S = Math.max(m * 4, 1), w = Math.max(m * 3, 0.8);
1410
- return new I({
1452
+ } = oe(l), _ = l.strokeStyle === "dashed", p = _ ? 60 : void 0, g = _ ? 40 : void 0, m = typeof l.strokeWidth == "number" && l.strokeWidth > 0 ? l.strokeWidth : 5, S = Math.max(m * 4, 1), w = Math.max(m * 3, 0.8);
1453
+ return new R({
1411
1454
  points: i,
1412
1455
  strokeColor: l.strokeColor,
1413
- strokeOpacity: n,
1456
+ strokeOpacity: a,
1414
1457
  widthMode: "world",
1415
1458
  widthMeters: m,
1416
1459
  visible: d,
@@ -1437,7 +1480,7 @@ class rt {
1437
1480
  fillColor: l.fillColor,
1438
1481
  fillOpacity: o,
1439
1482
  strokeColor: l.strokeColor,
1440
- strokeOpacity: n,
1483
+ strokeOpacity: a,
1441
1484
  strokeWidth: l.strokeWidth ?? 0,
1442
1485
  textAlign: l.textAlign,
1443
1486
  verticalAlign: l.verticalAlign,
@@ -1463,7 +1506,7 @@ class rt {
1463
1506
  }
1464
1507
  }
1465
1508
  }
1466
- class it {
1509
+ class ot {
1467
1510
  /** 标绘 id → 实例;与桥接器的 shapes 共用同一引用 */
1468
1511
  _items = /* @__PURE__ */ new Map();
1469
1512
  /** 标绘管理器 id(对外常量,保持与参考项目一致) */
@@ -1477,7 +1520,7 @@ class it {
1477
1520
  /** 合并同一帧内多次 _markDirty,值为 requestAnimationFrame 句柄 */
1478
1521
  _redrawTimer = null;
1479
1522
  constructor(e) {
1480
- this.ssp = e.ssp, this._bridge = new rt({ scene: e.ssp.viewport.scene });
1523
+ this.ssp = e.ssp, this._bridge = new at({ scene: e.ssp.viewport.scene });
1481
1524
  }
1482
1525
  /** 暴露内部桥接器,业务若需自定义场景接入可选择性使用 */
1483
1526
  get bridge() {
@@ -1515,17 +1558,17 @@ class it {
1515
1558
  }
1516
1559
  case "line": {
1517
1560
  const { type: r, ...i } = e;
1518
- t = new Ue(i);
1561
+ t = new We(i);
1519
1562
  break;
1520
1563
  }
1521
1564
  case "polygon": {
1522
1565
  const { type: r, ...i } = e;
1523
- t = new We(i);
1566
+ t = new $e(i);
1524
1567
  break;
1525
1568
  }
1526
1569
  case "rectangle": {
1527
1570
  const { type: r, ...i } = e;
1528
- t = new $e(i);
1571
+ t = new ze(i);
1529
1572
  break;
1530
1573
  }
1531
1574
  case "circle": {
@@ -1535,7 +1578,7 @@ class it {
1535
1578
  }
1536
1579
  case "sector": {
1537
1580
  const { type: r, ...i } = e;
1538
- t = new Be(i);
1581
+ t = new He(i);
1539
1582
  break;
1540
1583
  }
1541
1584
  case "text": {
@@ -1615,8 +1658,8 @@ class it {
1615
1658
  insertCoord(e, t, r) {
1616
1659
  const i = this._items.get(e);
1617
1660
  if (!i || !i.options.points) return;
1618
- const a = Math.max(0, Math.min(t, i.options.points.length));
1619
- i.options.points.splice(a, 0, [...r]), this._markDirty();
1661
+ const n = Math.max(0, Math.min(t, i.options.points.length));
1662
+ i.options.points.splice(n, 0, [...r]), this._markDirty();
1620
1663
  }
1621
1664
  /**
1622
1665
  * 删除指定下标顶点。多边形至少保留 3 点,其余至少 2 点;越界 / 触底静默返回。
@@ -1633,8 +1676,8 @@ class it {
1633
1676
  translateCoords(e, t, r) {
1634
1677
  const i = this._items.get(e);
1635
1678
  if (!(!i || !i.options.points)) {
1636
- for (const a of i.options.points)
1637
- a[0] += t, a[1] += r;
1679
+ for (const n of i.options.points)
1680
+ n[0] += t, n[1] += r;
1638
1681
  this._markDirty();
1639
1682
  }
1640
1683
  }
@@ -1664,12 +1707,12 @@ class it {
1664
1707
  findNearestCoord(e, t, r) {
1665
1708
  const i = this._items.get(e);
1666
1709
  if (!i || !i.options.points || i.options.points.length === 0) return -1;
1667
- let a = 0, n = 1 / 0;
1710
+ let n = 0, a = 1 / 0;
1668
1711
  for (let o = 0; o < i.options.points.length; o++) {
1669
1712
  const d = i.options.points[o][0] - t, l = i.options.points[o][1] - r, h = d * d + l * l;
1670
- h < n && (n = h, a = o);
1713
+ h < a && (a = h, n = o);
1671
1714
  }
1672
- return a;
1715
+ return n;
1673
1716
  }
1674
1717
  // ── 渲染接入 ──
1675
1718
  /**
@@ -1702,20 +1745,20 @@ class it {
1702
1745
  }));
1703
1746
  }
1704
1747
  }
1705
- const st = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/", at = "https://c.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png";
1706
- class Ct {
1748
+ const lt = "https://sooncps.xwbuilders.com/api/ugis-dataprocess/v1/terrain/NhBLlMx3/", dt = "https://c.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png";
1749
+ class kt {
1707
1750
  constructor(e, t = {}) {
1708
1751
  this.ssp = e, this.options = t;
1709
- const r = t.baseUrl || st;
1710
- if (this.resourceManager = new De(), this.terrainManager = new Ge(), t.imageryUrl !== !1) {
1711
- const i = t.imageryUrl || at;
1752
+ const r = t.baseUrl || lt;
1753
+ if (this.resourceManager = new Ge(), this.terrainManager = new Fe(), t.imageryUrl !== !1) {
1754
+ const i = t.imageryUrl || dt;
1712
1755
  this.resourceManager.addOverlay({
1713
1756
  id: this.defaultImageryId,
1714
1757
  type: u.XYZ,
1715
1758
  options: { id: this.defaultImageryId, url: i, type: u.XYZ }
1716
1759
  });
1717
1760
  }
1718
- this.groundDecalManager = new it({ ssp: this.ssp }), xe(), this._alphaClipMode = t.alphaClipMode ?? "alphaTest", this._currentTerrainConfig = {
1761
+ this.groundDecalManager = new ot({ ssp: this.ssp }), ke(), this._alphaClipMode = t.alphaClipMode ?? "alphaTest", this._currentTerrainConfig = {
1719
1762
  id: this.defaultTerrainId,
1720
1763
  type: M.QUANTIZED_MESH,
1721
1764
  url: r
@@ -1736,9 +1779,9 @@ class Ct {
1736
1779
  * 供 cesium-to-three 标绘图元的 RTE 着色器使用。标绘几何烘焙在绝对 ECEF,只有用
1737
1780
  * ECEF 相机投影才能与「重定向后地形」对齐,同时保持 reorientation 开启(地形不抖)。
1738
1781
  */
1739
- _plotVirtualCamera = new q();
1782
+ _plotVirtualCamera = new V();
1740
1783
  _reorientInverse = new b();
1741
- _virtualScale = new ve();
1784
+ _virtualScale = new Oe();
1742
1785
  /** 资源管理器(存储配置) */
1743
1786
  resourceManager;
1744
1787
  /** 地形管理器(记录地形列表) */
@@ -1815,27 +1858,27 @@ class Ct {
1815
1858
  * @param config 地形配置
1816
1859
  */
1817
1860
  _initPlugins(e, t) {
1818
- if (this.tilesFadePlugin = new z({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new B(), e.registerPlugin(this.tilesFadePlugin), e.registerPlugin(this.updateOnChangePlugin), t.type === M.CESIUM_ION ? e.registerPlugin(
1819
- new ce({
1861
+ if (this.tilesFadePlugin = new B({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new H(), e.registerPlugin(this.tilesFadePlugin), e.registerPlugin(this.updateOnChangePlugin), t.type === M.CESIUM_ION ? e.registerPlugin(
1862
+ new ge({
1820
1863
  apiToken: t.apiToken,
1821
1864
  assetId: t.assetId || "1",
1822
1865
  autoRefreshToken: t.autoRefreshToken ?? !0,
1823
1866
  assetTypeHandler: (r, i) => {
1824
1867
  r === "TERRAIN" && i.getPluginByName("QUANTIZED_MESH_PLUGIN") === null && i.registerPlugin(
1825
- new U({ useRecommendedSettings: !0 })
1868
+ new J({ useRecommendedSettings: !0 })
1826
1869
  );
1827
1870
  }
1828
1871
  })
1829
1872
  ) : (e.registerPlugin(
1830
- new U({ useRecommendedSettings: !0 })
1873
+ new J({ useRecommendedSettings: !0 })
1831
1874
  ), e.fetchData = async (r) => {
1832
1875
  const i = { method: "GET", mode: "cors" };
1833
1876
  if (/layer\.json$/.test(r)) {
1834
- const a = await fetch(r, i).then((n) => n.json());
1835
- return a.metadataAvailability = -1, new Response(JSON.stringify(a));
1877
+ const n = await fetch(r, i).then((a) => a.json());
1878
+ return n.metadataAvailability = -1, new Response(JSON.stringify(n));
1836
1879
  }
1837
1880
  return fetch(r, i);
1838
- }), this.options.useCustomMaterial !== !1 && (this.customMaterialPlugin = new Le(), this.customMaterialPlugin.alphaClipMode = this._alphaClipMode, e.registerPlugin(this.customMaterialPlugin)), this.imageOverlayPlugin = new he({
1881
+ }), this.options.useCustomMaterial !== !1 && (this.customMaterialPlugin = new De(), this.customMaterialPlugin.alphaClipMode = this._alphaClipMode, e.registerPlugin(this.customMaterialPlugin)), this.imageOverlayPlugin = new ce({
1839
1882
  renderer: this.ssp.viewport.renderer,
1840
1883
  overlays: []
1841
1884
  }), e.registerPlugin(this.imageOverlayPlugin), this._ensureGlobeDepth(), this.overlayManager = new N(
@@ -2069,14 +2112,14 @@ class Ct {
2069
2112
  };
2070
2113
  beforeRenderHandler = () => {
2071
2114
  const { camera: e, renderer: t, scene: r } = this.ssp.viewport;
2072
- if (e.updateMatrixWorld(), this.tiles.setCamera(e), this.tiles.setResolutionFromRenderer(e, t), this.tiles.update(), this.groundDecalManager && e instanceof q) {
2073
- const i = this._ensureGlobeDepth(), a = t.domElement.width, n = t.domElement.height;
2074
- (i.target.width !== a || i.target.height !== n) && i.resize(a, n), ke(e.near, e.far), i.render(t, e, r, this.tiles.group);
2115
+ if (e.updateMatrixWorld(), this.tiles.setCamera(e), this.tiles.setResolutionFromRenderer(e, t), this.tiles.update(), this.groundDecalManager && e instanceof V) {
2116
+ const i = this._ensureGlobeDepth(), n = t.domElement.width, a = t.domElement.height;
2117
+ (i.target.width !== n || i.target.height !== a) && i.resize(n, a), xe(e.near, e.far), i.render(t, e, r, this.tiles.group);
2075
2118
  const o = this._buildPlotVirtualCamera(e);
2076
2119
  this.groundDecalManager.update({
2077
2120
  depthTexture: i.target.texture,
2078
- width: a,
2079
- height: n,
2121
+ width: n,
2122
+ height: a,
2080
2123
  camera: o,
2081
2124
  pixelRatio: t.getPixelRatio()
2082
2125
  });
@@ -2108,7 +2151,7 @@ class Ct {
2108
2151
  _ensureGlobeDepth() {
2109
2152
  if (!this._globeDepth) {
2110
2153
  const { renderer: e } = this.ssp.viewport;
2111
- this._globeDepth = new Ee(
2154
+ this._globeDepth = new Re(
2112
2155
  e.domElement.width,
2113
2156
  e.domElement.height
2114
2157
  );
@@ -2133,13 +2176,13 @@ class Ct {
2133
2176
  lat: t,
2134
2177
  height: r
2135
2178
  };
2136
- const a = () => {
2179
+ const n = () => {
2137
2180
  const o = f.degToRad(t), d = f.degToRad(e);
2138
- i.transformLatLonHeightToOrigin(o, d, r), this.render(), n();
2139
- }, n = () => {
2140
- this.tiles.removeEventListener("load-root-tileset", a), this.loedTilesSets.delete(a);
2181
+ i.transformLatLonHeightToOrigin(o, d, r), this.render(), a();
2182
+ }, a = () => {
2183
+ this.tiles.removeEventListener("load-root-tileset", n), this.loedTilesSets.delete(n);
2141
2184
  };
2142
- return this.tiles.addEventListener("load-root-tileset", a), this.loedTilesSets.add(a), this.tiles.root && a(), n;
2185
+ return this.tiles.addEventListener("load-root-tileset", n), this.loedTilesSets.add(n), this.tiles.root && n(), a;
2143
2186
  }
2144
2187
  dispose() {
2145
2188
  this.disable(), this.terrainManager.dispose(), this.overlayManager.dispose(), this.groundDecalManager?.dispose(), this._globeDepth?.dispose(), this._globeDepth = void 0, this.loedTilesSets.forEach(
@@ -2152,7 +2195,7 @@ const C = {
2152
2195
  GRADIENT: 1,
2153
2196
  TOPOGRAPHIC_LINES: 2,
2154
2197
  LIGHTING: 3
2155
- }, nt = {
2198
+ }, ht = {
2156
2199
  vertexShader: (
2157
2200
  /* glsl */
2158
2201
  `
@@ -2178,7 +2221,7 @@ const C = {
2178
2221
  }
2179
2222
  `
2180
2223
  )
2181
- }, ot = {
2224
+ }, ut = {
2182
2225
  vertexShader: (
2183
2226
  /* glsl */
2184
2227
  `
@@ -2225,7 +2268,7 @@ const C = {
2225
2268
  )
2226
2269
  };
2227
2270
  let D = null, G = null, F = null;
2228
- class lt {
2271
+ class ct {
2229
2272
  constructor(e, t) {
2230
2273
  this.ssp = e, this.options = t, "url" in this.options ? this.tiles = new T(this.options.url) : (this.tiles = new T(), this._initCesiumIon(this.options)), this._initBasePlugins(this.options);
2231
2274
  }
@@ -2235,8 +2278,8 @@ class lt {
2235
2278
  reorientationPlugin;
2236
2279
  options;
2237
2280
  // 用于模型居中
2238
- _box = new _e();
2239
- _sphere = new de();
2281
+ _box = new Me();
2282
+ _sphere = new ue();
2240
2283
  // 当前材质类型
2241
2284
  _materialType = C.DEFAULT;
2242
2285
  // 按需渲染标志
@@ -2248,7 +2291,7 @@ class lt {
2248
2291
  */
2249
2292
  _initCesiumIon(e) {
2250
2293
  this.tiles.registerPlugin(
2251
- new ce({
2294
+ new ge({
2252
2295
  apiToken: e.apiToken,
2253
2296
  assetId: e.assetId,
2254
2297
  autoRefreshToken: e.autoRefreshToken ?? !0
@@ -2259,7 +2302,7 @@ class lt {
2259
2302
  * 初始化基础插件
2260
2303
  */
2261
2304
  _initBasePlugins(e) {
2262
- if (e._managedByPlugin || (D === null ? D = this.tiles.lruCache : this.tiles.lruCache = D, G === null ? G = this.tiles.parseQueue : this.tiles.parseQueue = G, F === null ? F = this.tiles.downloadQueue : this.tiles.downloadQueue = F, this.tiles.lruCache.maxSize = 600, this.tiles.lruCache.minSize = 300, this.tiles.lruCache.unloadPercent = 0.8), this._setupGLTFLoader(), this.tilesFadePlugin = new z({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new B(), this.tiles.registerPlugin(this.tilesFadePlugin), this.tiles.registerPlugin(this.updateOnChangePlugin), this.tiles.maxDepth = e.maxDepth ?? 20, this.tiles.errorTarget = e.errorTarget ?? 2, this.options.reorientation) {
2305
+ if (e._managedByPlugin || (D === null ? D = this.tiles.lruCache : this.tiles.lruCache = D, G === null ? G = this.tiles.parseQueue : this.tiles.parseQueue = G, F === null ? F = this.tiles.downloadQueue : this.tiles.downloadQueue = F, this.tiles.lruCache.maxSize = 600, this.tiles.lruCache.minSize = 300, this.tiles.lruCache.unloadPercent = 0.8), this._setupGLTFLoader(), this.tilesFadePlugin = new B({ maximumFadeOutTiles: 200 }), this.updateOnChangePlugin = new H(), this.tiles.registerPlugin(this.tilesFadePlugin), this.tiles.registerPlugin(this.updateOnChangePlugin), this.tiles.maxDepth = e.maxDepth ?? 20, this.tiles.errorTarget = e.errorTarget ?? 2, this.options.reorientation) {
2263
2306
  const t = this.options.reorientation || { lon: 120, lat: 30 };
2264
2307
  this.reorientationPlugin = new j({
2265
2308
  lon: t.lon,
@@ -2277,10 +2320,10 @@ class lt {
2277
2320
  * 设置 GLTF Loader
2278
2321
  */
2279
2322
  _setupGLTFLoader() {
2280
- const e = new oe(this.tiles.manager), t = this.ssp.manager?.store?.modelManager;
2323
+ const e = new de(this.tiles.manager), t = this.ssp.manager?.store?.modelManager;
2281
2324
  if (t?.gltfLoader) {
2282
- const { dracoLoader: r, ktx2Loader: i, meshoptDecoder: a } = t.gltfLoader;
2283
- r && e.setDRACOLoader(r), i && e.setKTX2Loader(i), a && e.setMeshoptDecoder(a);
2325
+ const { dracoLoader: r, ktx2Loader: i, meshoptDecoder: n } = t.gltfLoader;
2326
+ r && e.setDRACOLoader(r), i && e.setKTX2Loader(i), n && e.setMeshoptDecoder(n);
2284
2327
  }
2285
2328
  this.tiles.manager.addHandler(/\.gltf$/, e);
2286
2329
  }
@@ -2335,15 +2378,15 @@ class lt {
2335
2378
  r.material = r.originalMaterial, r.material && (r.material.side = 2), r.receiveShadow = !1, r.castShadow = !1;
2336
2379
  break;
2337
2380
  case C.GRADIENT:
2338
- r.material = new V(nt), r.material.side = 2, r.receiveShadow = !1, r.castShadow = !1;
2381
+ r.material = new Z(ht), r.material.side = 2, r.receiveShadow = !1, r.castShadow = !1;
2339
2382
  break;
2340
2383
  case C.TOPOGRAPHIC_LINES: {
2341
- const i = new V(ot);
2384
+ const i = new Z(ut);
2342
2385
  i.extensions = { derivatives: !0 }, i.side = 2, r.material = i, r.receiveShadow = !1, r.castShadow = !1;
2343
2386
  break;
2344
2387
  }
2345
2388
  case C.LIGHTING:
2346
- r.material = new Oe(), r.material.side = 2, r.receiveShadow = !0, r.castShadow = !0;
2389
+ r.material = new Se(), r.material.side = 2, r.receiveShadow = !0, r.castShadow = !0;
2347
2390
  break;
2348
2391
  }
2349
2392
  });
@@ -2389,13 +2432,13 @@ class lt {
2389
2432
  lat: t,
2390
2433
  height: r
2391
2434
  };
2392
- const a = () => {
2435
+ const n = () => {
2393
2436
  const o = f.degToRad(t), d = f.degToRad(e);
2394
- i.transformLatLonHeightToOrigin(o, d, r), this.render(), n();
2395
- }, n = () => {
2396
- this.tiles.removeEventListener("load-root-tileset", a), this.loedTilesSets.delete(a);
2437
+ i.transformLatLonHeightToOrigin(o, d, r), this.render(), a();
2438
+ }, a = () => {
2439
+ this.tiles.removeEventListener("load-root-tileset", n), this.loedTilesSets.delete(n);
2397
2440
  };
2398
- return this.tiles.addEventListener("load-root-tileset", a), this.loedTilesSets.add(a), this.tiles.root && a(), n;
2441
+ return this.tiles.addEventListener("load-root-tileset", n), this.loedTilesSets.add(n), this.tiles.root && n(), a;
2399
2442
  }
2400
2443
  dispose() {
2401
2444
  this.disable(), this.loedTilesSets.forEach(
@@ -2403,8 +2446,8 @@ class lt {
2403
2446
  ), this.loedTilesSets.clear(), this.tiles.removeEventListener("load-model", this.onLoadModel), this.tiles.removeEventListener("dispose-model", this.onDisposeModel), this.options._managedByPlugin || (this.tiles.removeEventListener("load-model", this._onNeedsRender), this.tiles.removeEventListener("needs-render", this._onNeedsRender), this.tiles.removeEventListener("needs-update", this._onNeedsRender)), this.tiles.dispose();
2404
2447
  }
2405
2448
  }
2406
- const J = 2;
2407
- class bt {
2449
+ const U = 2;
2450
+ class xt {
2408
2451
  constructor(e) {
2409
2452
  this.ssp = e;
2410
2453
  const { controls: t, viewport: r } = e;
@@ -2430,7 +2473,7 @@ class bt {
2430
2473
  _sourceFrame = new b();
2431
2474
  _placementMatrix = new b();
2432
2475
  _upCorrectionMatrix = new b();
2433
- _boundingSphere = new de();
2476
+ _boundingSphere = new ue();
2434
2477
  _beforeRenderHandler = () => {
2435
2478
  this.needsUpdate && (this.needsUpdate = !1, this.ssp.viewport.camera.updateMatrixWorld(), this.tilesMap.forEach((e) => {
2436
2479
  e.tiles.setCamera(this.ssp.viewport.camera), e.tiles.setResolutionFromRenderer(this.ssp.viewport.camera, this.ssp.viewport.renderer), e.applyAutoCenter(), e.tiles.group.updateMatrixWorld(), e.tiles.update();
@@ -2454,8 +2497,8 @@ class bt {
2454
2497
  lat: e.lat,
2455
2498
  height: e.height ?? 0.1
2456
2499
  }, this.tilesMap.forEach((i) => {
2457
- const a = this._referencePlacements.get(i) ?? null;
2458
- this.applyReferencePlacement(i, a);
2500
+ const n = this._referencePlacements.get(i) ?? null;
2501
+ this.applyReferencePlacement(i, n);
2459
2502
  });
2460
2503
  }
2461
2504
  clearReferenceOrigin() {
@@ -2470,21 +2513,21 @@ class bt {
2470
2513
  async loadTiles(e) {
2471
2514
  const t = "url" in e ? e.url : e.assetId;
2472
2515
  if (this.tilesMap.has(t))
2473
- return R.utils.warn(`${t} already loaded`), this.tilesMap.get(t);
2474
- const { ssp: r } = this, i = this._getReferencePlacement(e), a = this._getTilesRendererOptions(e, i), n = new lt(r, {
2475
- ...a,
2516
+ return I.utils.warn(`${t} already loaded`), this.tilesMap.get(t);
2517
+ const { ssp: r } = this, i = this._getReferencePlacement(e), n = this._getTilesRendererOptions(e, i), a = new ct(r, {
2518
+ ...n,
2476
2519
  _managedByPlugin: !0
2477
2520
  });
2478
- i && (this._referencePlacements.set(n, i), n.options.reorientation = i);
2479
- const { tiles: o } = n;
2480
- this._lruCache === null ? this._lruCache = o.lruCache : o.lruCache = this._lruCache, this._parseQueue === null ? this._parseQueue = o.parseQueue : o.parseQueue = this._parseQueue, this._downloadQueue === null ? this._downloadQueue = o.downloadQueue : o.downloadQueue = this._downloadQueue, o.lruCache.maxSize = 600, o.lruCache.minSize = 300, o.lruCache.unloadPercent = 0.8, this.tilesMap.set(t, n), o.setCamera(this._tilesCamera), o.setResolutionFromRenderer(this._tilesCamera, r.viewport.renderer), r.addObject(o.group), this._referenceOrigin && this.applyReferencePlacement(n, i);
2521
+ i && (this._referencePlacements.set(a, i), a.options.reorientation = i);
2522
+ const { tiles: o } = a;
2523
+ this._lruCache === null ? this._lruCache = o.lruCache : o.lruCache = this._lruCache, this._parseQueue === null ? this._parseQueue = o.parseQueue : o.parseQueue = this._parseQueue, this._downloadQueue === null ? this._downloadQueue = o.downloadQueue : o.downloadQueue = this._downloadQueue, o.lruCache.maxSize = 600, o.lruCache.minSize = 300, o.lruCache.unloadPercent = 0.8, this.tilesMap.set(t, a), o.setCamera(this._tilesCamera), o.setResolutionFromRenderer(this._tilesCamera, r.viewport.renderer), r.addObject(o.group), this._referenceOrigin && this.applyReferencePlacement(a, i);
2481
2524
  const d = () => {
2482
2525
  this.cameraTransitionStart || (this.needsUpdate = !0, r.render());
2483
2526
  };
2484
2527
  return o.addEventListener("load-model", d), new Promise((l) => {
2485
2528
  o.addEventListener("load-tile-set", () => {
2486
- const h = this._referencePlacements.get(n);
2487
- this._referenceOrigin && this.applyReferencePlacement(n, h ?? null), d(), l(n);
2529
+ const h = this._referencePlacements.get(a);
2530
+ this._referenceOrigin && this.applyReferencePlacement(a, h ?? null), d(), l(a);
2488
2531
  });
2489
2532
  });
2490
2533
  }
@@ -2518,29 +2561,29 @@ class bt {
2518
2561
  }), this.tilesMap.clear();
2519
2562
  }
2520
2563
  invalidate(e, t, r, i) {
2521
- (i ? [i] : Array.from(this.tilesMap.values())).forEach((n) => {
2522
- const o = this._referencePlacements.get(n) ?? null;
2523
- this._referenceOrigin ? this.applyReferencePlacement(n, {
2564
+ (i ? [i] : Array.from(this.tilesMap.values())).forEach((a) => {
2565
+ const o = this._referencePlacements.get(a) ?? null;
2566
+ this._referenceOrigin ? this.applyReferencePlacement(a, {
2524
2567
  ...o ?? {},
2525
2568
  lon: e,
2526
2569
  lat: t,
2527
2570
  height: r
2528
- }) : n.invalidate(e, t, r);
2571
+ }) : a.invalidate(e, t, r);
2529
2572
  });
2530
2573
  }
2531
2574
  applyReferencePlacement(e, t) {
2532
2575
  if (!this._referenceOrigin)
2533
- return R.utils.warn("TilesRendererManager: reference origin is not set."), !1;
2534
- const { ellipsoid: r, group: i } = e.tiles, a = this._referenceOrigin, n = this._isGeoreferenced(e);
2576
+ return I.utils.warn("TilesRendererManager: reference origin is not set."), !1;
2577
+ const { ellipsoid: r, group: i } = e.tiles, n = this._referenceOrigin, a = this._isGeoreferenced(e);
2535
2578
  if (r.getObjectFrame(
2536
- f.degToRad(a.lat),
2537
- f.degToRad(a.lon),
2538
- a.height ?? 0.1,
2579
+ f.degToRad(n.lat),
2580
+ f.degToRad(n.lon),
2581
+ n.height ?? 0.1,
2539
2582
  0,
2540
2583
  0,
2541
2584
  0,
2542
2585
  this._referenceFrame,
2543
- J
2586
+ U
2544
2587
  ), this._placementMatrix.copy(this._referenceFrame).invert(), t)
2545
2588
  r.getObjectFrame(
2546
2589
  f.degToRad(t.lat),
@@ -2550,9 +2593,9 @@ class bt {
2550
2593
  0,
2551
2594
  0,
2552
2595
  this._targetFrame,
2553
- J
2554
- ), this._placementMatrix.multiply(this._targetFrame), n ? (this._sourceFrame.copy(this._getSourceFrame(e)).invert(), this._placementMatrix.multiply(this._sourceFrame)) : (this._getUpCorrectionMatrix(t.up ?? "+z"), this._placementMatrix.multiply(this._upCorrectionMatrix));
2555
- else if (!n)
2596
+ U
2597
+ ), this._placementMatrix.multiply(this._targetFrame), a ? (this._sourceFrame.copy(this._getSourceFrame(e)).invert(), this._placementMatrix.multiply(this._sourceFrame)) : (this._getUpCorrectionMatrix(t.up ?? "+z"), this._placementMatrix.multiply(this._upCorrectionMatrix));
2598
+ else if (!a)
2556
2599
  return !1;
2557
2600
  return i.matrix.copy(this._placementMatrix), i.matrix.decompose(i.position, i.quaternion, i.scale), i.updateMatrixWorld(!0), t && (this._referencePlacements.set(e, t), e.options.reorientation = t), this.needsUpdate = !0, e.render(), !0;
2558
2601
  }
@@ -2576,7 +2619,7 @@ class bt {
2576
2619
  0,
2577
2620
  0,
2578
2621
  this._sourceFrame,
2579
- J
2622
+ U
2580
2623
  ), this._sourceFrame;
2581
2624
  }
2582
2625
  _getReferencePlacement(e) {
@@ -2622,101 +2665,101 @@ class bt {
2622
2665
  this.clear(), this.ssp.signals.beforeRender.remove(this._beforeRenderHandler), this.ssp.signals.cameraObjectChange.remove(this._onCameraObjectChange), this._lruCache = null, this._parseQueue = null, this._downloadQueue = null;
2623
2666
  }
2624
2667
  }
2625
- function Tt(s) {
2668
+ function Rt(s) {
2626
2669
  if (s == null) return [0, 0, 0, 0];
2627
2670
  const e = String(s).trim().toLowerCase();
2628
2671
  if (e === "" || e === "transparent") return [0, 0, 0, 0];
2629
2672
  const t = /^rgba\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]*\.?[0-9]+)\s*\)$/.exec(e);
2630
2673
  if (t !== null) {
2631
- const i = Number(t[1]) / 255, a = Number(t[2]) / 255, n = Number(t[3]) / 255, o = Number(t[4]);
2632
- return [v(i), v(a), v(n), v(o)];
2674
+ const i = Number(t[1]) / 255, n = Number(t[2]) / 255, a = Number(t[3]) / 255, o = Number(t[4]);
2675
+ return [v(i), v(n), v(a), v(o)];
2633
2676
  }
2634
2677
  const r = /^rgb\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)$/.exec(e);
2635
2678
  if (r !== null) {
2636
- const i = Number(r[1]) / 255, a = Number(r[2]) / 255, n = Number(r[3]) / 255;
2637
- return [v(i), v(a), v(n), 1];
2679
+ const i = Number(r[1]) / 255, n = Number(r[2]) / 255, a = Number(r[3]) / 255;
2680
+ return [v(i), v(n), v(a), 1];
2638
2681
  }
2639
2682
  if (e.startsWith("#")) {
2640
2683
  const i = e.slice(1);
2641
2684
  if (i.length === 3) {
2642
- const a = parseInt(i[0] + i[0], 16) / 255, n = parseInt(i[1] + i[1], 16) / 255, o = parseInt(i[2] + i[2], 16) / 255;
2643
- if (Number.isFinite(a) && Number.isFinite(n) && Number.isFinite(o))
2644
- return [a, n, o, 1];
2685
+ const n = parseInt(i[0] + i[0], 16) / 255, a = parseInt(i[1] + i[1], 16) / 255, o = parseInt(i[2] + i[2], 16) / 255;
2686
+ if (Number.isFinite(n) && Number.isFinite(a) && Number.isFinite(o))
2687
+ return [n, a, o, 1];
2645
2688
  } else if (i.length === 6) {
2646
- const a = parseInt(i.slice(0, 2), 16) / 255, n = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255;
2647
- if (Number.isFinite(a) && Number.isFinite(n) && Number.isFinite(o))
2648
- return [a, n, o, 1];
2689
+ const n = parseInt(i.slice(0, 2), 16) / 255, a = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255;
2690
+ if (Number.isFinite(n) && Number.isFinite(a) && Number.isFinite(o))
2691
+ return [n, a, o, 1];
2649
2692
  } else if (i.length === 8) {
2650
- const a = parseInt(i.slice(0, 2), 16) / 255, n = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255, d = parseInt(i.slice(6, 8), 16) / 255;
2651
- if (Number.isFinite(a) && Number.isFinite(n) && Number.isFinite(o) && Number.isFinite(d))
2652
- return [a, n, o, d];
2693
+ const n = parseInt(i.slice(0, 2), 16) / 255, a = parseInt(i.slice(2, 4), 16) / 255, o = parseInt(i.slice(4, 6), 16) / 255, d = parseInt(i.slice(6, 8), 16) / 255;
2694
+ if (Number.isFinite(n) && Number.isFinite(a) && Number.isFinite(o) && Number.isFinite(d))
2695
+ return [n, a, o, d];
2653
2696
  }
2654
2697
  }
2655
2698
  return [1, 1, 1, 1];
2656
2699
  }
2657
- function Pt(s, e) {
2700
+ function It(s, e) {
2658
2701
  typeof s.fillOpacity == "number" && Number.isFinite(s.fillOpacity) ? e[0] = v(s.fillOpacity / 100) : typeof s.opacity == "number" && Number.isFinite(s.opacity) ? e[0] = v(s.opacity) : e[0] = 1, typeof s.strokeOpacity == "number" && Number.isFinite(s.strokeOpacity) ? e[1] = v(s.strokeOpacity / 100) : typeof s.opacity == "number" && Number.isFinite(s.opacity) ? e[1] = v(s.opacity) : e[1] = 1;
2659
2702
  }
2660
2703
  function v(s) {
2661
2704
  return !Number.isFinite(s) || s < 0 ? 0 : s > 1 ? 1 : s;
2662
2705
  }
2663
- const ne = 100, Q = 1e-4;
2706
+ const le = 100, Q = 1e-4;
2664
2707
  function P(s, e) {
2665
2708
  const t = s[0] - e[0], r = s[1] - e[1];
2666
2709
  return Math.sqrt(t * t + r * r);
2667
2710
  }
2668
- function dt(s) {
2711
+ function pt(s) {
2669
2712
  let e = 0;
2670
2713
  for (let t = 0; t < s.length - 1; t++)
2671
2714
  e += P(s[t], s[t + 1]);
2672
2715
  return e;
2673
2716
  }
2674
- function xt(s) {
2675
- return Math.pow(dt(s), 0.99);
2717
+ function Nt(s) {
2718
+ return Math.pow(pt(s), 0.99);
2676
2719
  }
2677
- function me(s, e) {
2720
+ function _e(s, e) {
2678
2721
  return [(s[0] + e[0]) / 2, (s[1] + e[1]) / 2];
2679
2722
  }
2680
- function $(s, e) {
2723
+ function z(s, e) {
2681
2724
  let t;
2682
2725
  const r = Math.asin(
2683
2726
  Math.abs(e[1] - s[1]) / P(s, e)
2684
2727
  );
2685
2728
  return e[1] >= s[1] && e[0] >= s[0] ? t = r + Math.PI : e[1] >= s[1] && e[0] < s[0] ? t = Math.PI * 2 - r : e[1] < s[1] && e[0] < s[0] ? t = r : t = Math.PI - r, t;
2686
2729
  }
2687
- function kt(s, e, t) {
2688
- const r = $(e, s) - $(e, t);
2730
+ function At(s, e, t) {
2731
+ const r = z(e, s) - z(e, t);
2689
2732
  return r < 0 ? r + Math.PI * 2 : r;
2690
2733
  }
2691
- function ht(s, e, t) {
2734
+ function gt(s, e, t) {
2692
2735
  return (t[1] - s[1]) * (e[0] - s[0]) > (e[1] - s[1]) * (t[0] - s[0]);
2693
2736
  }
2694
- function Et(s, e, t, r, i) {
2695
- const a = $(s, e), n = i ? a + t : a - t, o = r * Math.cos(n), d = r * Math.sin(n);
2737
+ function Lt(s, e, t, r, i) {
2738
+ const n = z(s, e), a = i ? n + t : n - t, o = r * Math.cos(a), d = r * Math.sin(a);
2696
2739
  return [e[0] + o, e[1] + d];
2697
2740
  }
2698
- function H(s, e, t) {
2741
+ function Y(s, e, t) {
2699
2742
  let r = s[0] - e[0], i = s[1] - e[1];
2700
- const a = Math.sqrt(r * r + i * i);
2701
- r /= a, i /= a;
2702
- let n = t[0] - e[0], o = t[1] - e[1];
2703
- const d = Math.sqrt(n * n + o * o);
2704
- return n /= d, o /= d, [r + n, i + o];
2743
+ const n = Math.sqrt(r * r + i * i);
2744
+ r /= n, i /= n;
2745
+ let a = t[0] - e[0], o = t[1] - e[1];
2746
+ const d = Math.sqrt(a * a + o * o);
2747
+ return a /= d, o /= d, [r + a, i + o];
2705
2748
  }
2706
2749
  function X(s, e, t, r) {
2707
- const i = H(e, t, r);
2708
- let a, n, o, d, l;
2750
+ const i = Y(e, t, r);
2751
+ let n, a, o, d, l;
2709
2752
  const h = Math.sqrt(i[0] * i[0] + i[1] * i[1]), c = i[0] / h, y = i[1] / h, _ = P(e, t), p = P(t, r);
2710
- return h > Q ? ht(e, t, r) ? (o = s * _, d = t[0] - o * y, l = t[1] + o * c, a = [d, l], o = s * p, d = t[0] + o * y, l = t[1] - o * c, n = [d, l]) : (o = s * _, d = t[0] + o * y, l = t[1] - o * c, a = [d, l], o = s * p, d = t[0] - o * y, l = t[1] + o * c, n = [d, l]) : (d = t[0] + s * (e[0] - t[0]), l = t[1] + s * (e[1] - t[1]), a = [d, l], d = t[0] + s * (r[0] - t[0]), l = t[1] + s * (r[1] - t[1]), n = [d, l]), [a, n];
2753
+ return h > Q ? gt(e, t, r) ? (o = s * _, d = t[0] - o * y, l = t[1] + o * c, n = [d, l], o = s * p, d = t[0] + o * y, l = t[1] - o * c, a = [d, l]) : (o = s * _, d = t[0] + o * y, l = t[1] - o * c, n = [d, l], o = s * p, d = t[0] - o * y, l = t[1] + o * c, a = [d, l]) : (d = t[0] + s * (e[0] - t[0]), l = t[1] + s * (e[1] - t[1]), n = [d, l], d = t[0] + s * (r[0] - t[0]), l = t[1] + s * (r[1] - t[1]), a = [d, l]), [n, a];
2711
2754
  }
2712
- function ut(s) {
2713
- const e = s[0], t = s[1], r = s[2], a = X(0, e, t, r)[0], n = H(e, t, r), o = Math.sqrt(n[0] * n[0] + n[1] * n[1]);
2755
+ function ft(s) {
2756
+ const e = s[0], t = s[1], r = s[2], n = X(0, e, t, r)[0], a = Y(e, t, r), o = Math.sqrt(a[0] * a[0] + a[1] * a[1]);
2714
2757
  let d;
2715
2758
  if (o > Q) {
2716
- const l = me(e, t), h = e[0] - l[0], c = e[1] - l[1], _ = 2 / P(e, t), p = -_ * c, g = _ * h, m = p * p - g * g, S = 2 * p * g, w = g * g - p * p, E = a[0] - l[0], x = a[1] - l[1];
2759
+ const l = _e(e, t), h = e[0] - l[0], c = e[1] - l[1], _ = 2 / P(e, t), p = -_ * c, g = _ * h, m = p * p - g * g, S = 2 * p * g, w = g * g - p * p, x = n[0] - l[0], E = n[1] - l[1];
2717
2760
  d = [
2718
- l[0] + m * E + S * x,
2719
- l[1] + S * E + w * x
2761
+ l[0] + m * x + S * E,
2762
+ l[1] + S * x + w * E
2720
2763
  ];
2721
2764
  } else
2722
2765
  d = [
@@ -2728,14 +2771,14 @@ function ut(s) {
2728
2771
  function A(s) {
2729
2772
  return 0.3 * s;
2730
2773
  }
2731
- function ct(s) {
2732
- const e = s.length, t = s[e - 3], r = s[e - 2], i = s[e - 1], n = X(0, t, r, i)[1], o = H(t, r, i), d = Math.sqrt(o[0] * o[0] + o[1] * o[1]);
2774
+ function yt(s) {
2775
+ const e = s.length, t = s[e - 3], r = s[e - 2], i = s[e - 1], a = X(0, t, r, i)[1], o = Y(t, r, i), d = Math.sqrt(o[0] * o[0] + o[1] * o[1]);
2733
2776
  let l;
2734
2777
  if (d > Q) {
2735
- const h = me(r, i), c = i[0] - h[0], y = i[1] - h[1], p = 2 / P(r, i), g = -p * y, m = p * c, S = g * g - m * m, w = 2 * g * m, E = m * m - g * g, x = n[0] - h[0], Y = n[1] - h[1];
2778
+ const h = _e(r, i), c = i[0] - h[0], y = i[1] - h[1], p = 2 / P(r, i), g = -p * y, m = p * c, S = g * g - m * m, w = 2 * g * m, x = m * m - g * g, E = a[0] - h[0], q = a[1] - h[1];
2736
2779
  l = [
2737
- h[0] + S * x + w * Y,
2738
- h[1] + w * x + E * Y
2780
+ h[0] + S * E + w * q,
2781
+ h[1] + w * E + x * q
2739
2782
  ];
2740
2783
  } else
2741
2784
  l = [
@@ -2744,102 +2787,106 @@ function ct(s) {
2744
2787
  ];
2745
2788
  return l;
2746
2789
  }
2747
- function It(s, e) {
2748
- const r = [ut(e)];
2749
- for (let n = 0; n < e.length - 2; n++) {
2750
- const o = e[n], d = e[n + 1], l = e[n + 2], h = X(s, o, d, l);
2790
+ function Dt(s, e) {
2791
+ const r = [ft(e)];
2792
+ for (let a = 0; a < e.length - 2; a++) {
2793
+ const o = e[a], d = e[a + 1], l = e[a + 2], h = X(s, o, d, l);
2751
2794
  r.push(h[0], h[1]);
2752
2795
  }
2753
- const i = ct(e);
2796
+ const i = yt(e);
2754
2797
  r.push(i);
2755
- const a = [];
2756
- for (let n = 0; n < e.length - 1; n++) {
2757
- const o = e[n], d = e[n + 1];
2758
- a.push(o);
2759
- for (let l = 0; l < ne; l++) {
2760
- const h = l / ne, c = Math.pow(1 - h, 3) * o[0] + 3 * h * Math.pow(1 - h, 2) * r[n * 2][0] + 3 * h * h * (1 - h) * r[n * 2 + 1][0] + Math.pow(h, 3) * d[0], y = Math.pow(1 - h, 3) * o[1] + 3 * h * Math.pow(1 - h, 2) * r[n * 2][1] + 3 * h * h * (1 - h) * r[n * 2 + 1][1] + Math.pow(h, 3) * d[1];
2761
- a.push([c, y]);
2798
+ const n = [];
2799
+ for (let a = 0; a < e.length - 1; a++) {
2800
+ const o = e[a], d = e[a + 1];
2801
+ n.push(o);
2802
+ for (let l = 0; l < le; l++) {
2803
+ const h = l / le, c = Math.pow(1 - h, 3) * o[0] + 3 * h * Math.pow(1 - h, 2) * r[a * 2][0] + 3 * h * h * (1 - h) * r[a * 2 + 1][0] + Math.pow(h, 3) * d[0], y = Math.pow(1 - h, 3) * o[1] + 3 * h * Math.pow(1 - h, 2) * r[a * 2][1] + 3 * h * h * (1 - h) * r[a * 2 + 1][1] + Math.pow(h, 3) * d[1];
2804
+ n.push([c, y]);
2762
2805
  }
2763
- a.push(d);
2806
+ n.push(d);
2764
2807
  }
2765
- return a;
2808
+ return n;
2766
2809
  }
2767
- function Rt(s) {
2810
+ function Gt(s) {
2768
2811
  if (s.length <= 2) return s;
2769
2812
  const e = 2, t = [], r = s.length - e - 1;
2770
2813
  t.push(s[0]);
2771
2814
  for (let i = 0; i <= r; i++)
2772
- for (let a = 0; a <= 1; a += 0.05) {
2773
- let n = 0, o = 0;
2815
+ for (let n = 0; n <= 1; n += 0.05) {
2816
+ let a = 0, o = 0;
2774
2817
  for (let d = 0; d <= e; d++) {
2775
- const l = pt(d, a);
2776
- n += l * s[i + d][0], o += l * s[i + d][1];
2818
+ const l = mt(d, n);
2819
+ a += l * s[i + d][0], o += l * s[i + d][1];
2777
2820
  }
2778
- t.push([n, o]);
2821
+ t.push([a, o]);
2779
2822
  }
2780
2823
  return t.push(s[s.length - 1]), t;
2781
2824
  }
2782
- function pt(s, e) {
2825
+ function mt(s, e) {
2783
2826
  return s === 0 ? Math.pow(e - 1, 2) / 2 : s === 1 ? (-2 * Math.pow(e, 2) + 2 * e + 1) / 2 : s === 2 ? Math.pow(e, 2) / 2 : 0;
2784
2827
  }
2785
- function Nt(s, e) {
2828
+ function Ft(s, e) {
2786
2829
  return W(s, e);
2787
2830
  }
2788
- function At(s, e) {
2789
- return ye(s, e);
2831
+ function Ut(s, e) {
2832
+ return ve(s, e);
2790
2833
  }
2791
- function Lt(s) {
2792
- return !s || s.length < 3 ? [] : fe(s);
2834
+ function Jt(s) {
2835
+ return !s || s.length < 3 ? [] : me(s);
2793
2836
  }
2794
- function Dt(s) {
2795
- return !s || s.length < 3 ? [] : ge(s);
2837
+ function Wt(s) {
2838
+ return !s || s.length < 3 ? [] : ye(s);
2796
2839
  }
2797
- function Gt(s) {
2798
- return !s || s.length < 2 ? [] : pe(s);
2840
+ function $t(s) {
2841
+ return !s || s.length < 2 ? [] : fe(s);
2799
2842
  }
2800
2843
  export {
2801
- wt as ArcgisTilesRenderer,
2802
- ne as FITTING_COUNT,
2844
+ Pt as ArcgisTilesRenderer,
2845
+ $ as EMERGENCY_RESOURCE_ICON_BY_ONTOLOGY_ID,
2846
+ Et as EMERGENCY_RESOURCE_ONTOLOGY_IDS,
2847
+ le as FITTING_COUNT,
2803
2848
  je as GisPlotArrow,
2804
2849
  O as GisPlotBase,
2805
2850
  Xe as GisPlotCircle,
2806
- Ue as GisPlotLine,
2851
+ We as GisPlotLine,
2807
2852
  Je as GisPlotPoint,
2808
- We as GisPlotPolygon,
2809
- $e as GisPlotRectangle,
2810
- Be as GisPlotSector,
2853
+ $e as GisPlotPolygon,
2854
+ ze as GisPlotRectangle,
2855
+ He as GisPlotSector,
2811
2856
  Qe as GisPlotText,
2812
- it as GroundDecalManager,
2857
+ ot as GroundDecalManager,
2813
2858
  C as MaterialType,
2814
2859
  P as MathDistance,
2815
- me as Mid,
2860
+ _e as Mid,
2816
2861
  N as OverlayManager,
2817
2862
  u as OverlayType,
2818
- rt as PlotPrimitiveBridge,
2819
- Ct as TerrainTilesRenderer,
2863
+ at as PlotPrimitiveBridge,
2864
+ kt as TerrainTilesRenderer,
2820
2865
  M as TerrainType,
2821
- Le as TileCustomMaterialPlugin,
2822
- lt as TilesRenderer,
2823
- bt as TilesRendererManager,
2866
+ De as TileCustomMaterialPlugin,
2867
+ ct as TilesRenderer,
2868
+ xt as TilesRendererManager,
2824
2869
  Q as ZERO_TOLERANCE,
2825
- At as createAssaultDirectionArrow,
2826
- Lt as createAttackArrow,
2827
- Gt as createCurvedArrow,
2828
- Nt as createFineArrow,
2829
- Dt as createSwallowtailAttackArrow,
2830
- Mt as default,
2831
- kt as getAngleOfThreePoints,
2832
- $ as getAzimuth,
2833
- xt as getBaseLength,
2870
+ Ut as createAssaultDirectionArrow,
2871
+ Jt as createAttackArrow,
2872
+ $t as createCurvedArrow,
2873
+ Ft as createFineArrow,
2874
+ Wt as createSwallowtailAttackArrow,
2875
+ bt as default,
2876
+ At as getAngleOfThreePoints,
2877
+ z as getAzimuth,
2878
+ Nt as getBaseLength,
2834
2879
  X as getBisectorNormals,
2835
- It as getCurvePoints,
2836
- H as getNormal,
2837
- Rt as getQBSplinePoints,
2838
- Et as getThirdPoint,
2839
- ht as isClockWise,
2840
- Tt as parseColorToRGBA,
2841
- Ze as plotOrderToRenderOrder,
2842
- Pt as resolveOpacity,
2843
- Ve as sanitizePlotOrder,
2844
- dt as wholeDistance
2880
+ Dt as getCurvePoints,
2881
+ Y as getNormal,
2882
+ Gt as getQBSplinePoints,
2883
+ Lt as getThirdPoint,
2884
+ gt as isClockWise,
2885
+ Rt as parseColorToRGBA,
2886
+ Ke as plotOrderToRenderOrder,
2887
+ tt as resolveEmergencyResourceIcon,
2888
+ It as resolveOpacity,
2889
+ rt as resolvePlotPointImageUrl,
2890
+ Ze as sanitizePlotOrder,
2891
+ pt as wholeDistance
2845
2892
  };