deeptwins-engine-3d 0.1.76 → 0.2.1
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/assets/Build/DeepTwins/Image/noise.png +0 -0
- package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
- package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
- package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
- package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
- package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
- package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
- package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
- package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
- package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
- package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
- package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
- package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
- package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
- package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
- package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
- package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
- package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
- package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
- package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
- package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
- package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
- package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
- package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
- package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
- package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
- package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
- package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
- package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
- package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
- package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
- package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
- package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
- package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
- package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
- package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
- package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
- package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
- package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
- package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
- package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
- package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
- package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
- package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
- package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
- package/dist/esm/analyze/SunLightAnalysis.js +1 -91
- package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
- package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
- package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
- package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
- package/dist/esm/cameraControl/Roam.js +1 -418
- package/dist/esm/cameraControl/Rotate.js +1 -134
- package/dist/esm/cameraControl/RotateInPlace.js +1 -99
- package/dist/esm/constant.d.ts +90 -0
- package/dist/esm/constant.js +1 -1287
- package/dist/esm/deepTwins/index.js +1 -121
- package/dist/esm/drawCommand/index.js +1 -3
- package/dist/esm/drawCommand/viewShed/Event.js +1 -142
- package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
- package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
- package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
- package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
- package/dist/esm/drawCommand/viewShed/config.js +1 -21
- package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
- package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
- package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
- package/dist/esm/drawer/algorithm.js +1 -314
- package/dist/esm/drawer/common.js +1 -965
- package/dist/esm/drawer/coordinate.js +1 -184
- package/dist/esm/drawer/index.js +1 -688
- package/dist/esm/drawer/plotUtil.js +1 -266
- package/dist/esm/drawer/shape/Assemble.js +1 -415
- package/dist/esm/drawer/shape/AttackArrow.js +1 -442
- package/dist/esm/drawer/shape/BaseShape.js +1 -383
- package/dist/esm/drawer/shape/Bow.js +1 -375
- package/dist/esm/drawer/shape/Circle.js +1 -461
- package/dist/esm/drawer/shape/Curve.js +1 -386
- package/dist/esm/drawer/shape/DragPoint.js +1 -211
- package/dist/esm/drawer/shape/Elliptic.js +1 -491
- package/dist/esm/drawer/shape/Formation.js +1 -395
- package/dist/esm/drawer/shape/PincerArrow.js +1 -445
- package/dist/esm/drawer/shape/Point.js +1 -131
- package/dist/esm/drawer/shape/Polygon.js +1 -368
- package/dist/esm/drawer/shape/Polyline.js +1 -325
- package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
- package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
- package/dist/esm/drawer/shape/Sector.js +1 -568
- package/dist/esm/drawer/shape/StraightArrow.js +1 -422
- package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
- package/dist/esm/drawer/types.js +1 -11
- package/dist/esm/drawer/utils.js +1 -381
- package/dist/esm/global.css +22 -1
- package/dist/esm/graphicLayer/BaseEntity.js +1 -51
- package/dist/esm/graphicLayer/BaseLayer.js +1 -730
- package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
- package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
- package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
- package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
- package/dist/esm/graphicLayer/BaseSource.js +1 -630
- package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
- package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
- package/dist/esm/graphicLayer/BoxEntity.js +1 -99
- package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
- package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
- package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
- package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
- package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
- package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
- package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
- package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
- package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
- package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
- package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
- package/dist/esm/graphicLayer/LabelEntity.js +1 -110
- package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
- package/dist/esm/graphicLayer/ModelEntity.js +1 -122
- package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
- package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
- package/dist/esm/graphicLayer/PointEntity.js +1 -94
- package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
- package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
- package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
- package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
- package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
- package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
- package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
- package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
- package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
- package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
- package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
- package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
- package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
- package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
- package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
- package/dist/esm/graphicLayer/WallEntity.js +1 -96
- package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
- package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +1 -175
- package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
- package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
- package/dist/esm/lowAltitude/FactorLayer.js +1 -199
- package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
- package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
- package/dist/esm/lowAltitude/GridDraw.js +1 -137
- package/dist/esm/lowAltitude/PoiLayer.js +1 -74
- package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
- package/dist/esm/lowAltitude/VisitLayer.js +1 -180
- package/dist/esm/map/Event.js +1 -377
- package/dist/esm/map/GroundSkyBox.js +1 -166
- package/dist/esm/map/Map.js +1 -881
- package/dist/esm/map/Property.js +1 -35
- package/dist/esm/material/AtmosphericDispersion.js +1 -569
- package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
- package/dist/esm/material/VolumeCloud.js +1 -115
- package/dist/esm/material/WeatherEffects.js +1 -351
- package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
- package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
- package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
- package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
- package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
- package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
- package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
- package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
- package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
- package/dist/esm/measure/Area.js +1 -220
- package/dist/esm/measure/BaseDraw.js +1 -105
- package/dist/esm/measure/Distance.js +1 -223
- package/dist/esm/measure/index.js +1 -266
- package/dist/esm/measure/types.js +1 -17
- package/dist/esm/measure/utils.js +1 -319
- package/dist/esm/particle/BaseParticle.js +1 -196
- package/dist/esm/particle/FireParticle.js +1 -65
- package/dist/esm/particle/FountainParticle.js +1 -80
- package/dist/esm/particle/SmokeParticle.js +1 -65
- package/dist/esm/particle/common.js +1 -23
- package/dist/esm/particle/index.js +1 -5
- package/dist/esm/property/PositionProperty.js +1 -56
- package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
- package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
- package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
- package/dist/esm/tileLayer/ImageryLayer.js +1 -44
- package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
- package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
- package/dist/esm/tileLayer/RasterLayer.js +1 -23
- package/dist/esm/tileLayer/WmsLayer.js +1 -26
- package/dist/esm/tileLayer/WmtsLayer.js +1 -23
- package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
- package/dist/esm/tool/Compass.js +1 -282
- package/dist/esm/tool/PrimitiveCluster.js +1 -706
- package/dist/esm/tool/TimerInterval.js +1 -58
- package/dist/esm/tool/common.js +1 -405
- package/dist/esm/tool/fetch.js +1 -222
- package/dist/esm/tool/heatmap.js +1 -631
- package/dist/esm/tool/utils.d.ts +1 -0
- package/dist/esm/tool/utils.js +1 -501
- package/dist/esm/toolTip/index.js +1 -79
- package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
- package/dist/esm/videoFusion/BaseVideo.js +1 -330
- package/dist/esm/videoFusion/VideoProject.js +1 -230
- package/dist/esm/videoFusion/VideoTexture.js +1 -163
- package/dist/esm/visualization/BaseHeatmap.js +1 -271
- package/dist/esm/visualization/BoundaryHighlight.d.ts +135 -0
- package/dist/esm/visualization/BoundaryHighlight.js +1 -0
- package/dist/esm/visualization/DynamicWater.js +1 -289
- package/dist/esm/visualization/Frustum.js +1 -248
- package/dist/esm/visualization/Heatmap2d.js +1 -97
- package/dist/esm/visualization/Heatmap3d.js +1 -281
- package/dist/esm/visualization/MigrationEffect.js +1 -397
- package/dist/esm/visualization/PointCluster.js +1 -220
- package/dist/esm/visualization/RadarScan.js +1 -333
- package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
- package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
- package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
- package/dist/esm/visualization/SampledTerrainWater.js +1 -0
- package/dist/esm/visualization/WindField.d.ts +72 -0
- package/dist/esm/visualization/WindField.js +1 -0
- package/dist/esm/visualization/windCore.d.ts +161 -0
- package/dist/esm/visualization/windCore.js +8 -0
- package/dist/umd/deeptwins-engine-3d.min.css +1 -1
- package/dist/umd/deeptwins-engine-3d.min.js +1 -1
- package/package.json +6 -4
|
@@ -1,874 +1 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
9
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
12
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
13
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
14
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
15
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
16
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
18
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
|
-
import * as Cesium from 'deeptwins-cesium';
|
|
20
|
-
import { cloneDeep, merge } from 'lodash';
|
|
21
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
22
|
-
import * as constant from "../constant";
|
|
23
|
-
import PolylineEntity from "../graphicLayer/PolylineEntity";
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* 位置信息
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* 路径段信息
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* 相机设置
|
|
35
|
-
*/
|
|
36
|
-
var ModelRoamRealTime = /*#__PURE__*/function () {
|
|
37
|
-
function ModelRoamRealTime(map, options) {
|
|
38
|
-
var _this = this,
|
|
39
|
-
_options$model;
|
|
40
|
-
_classCallCheck(this, ModelRoamRealTime);
|
|
41
|
-
_defineProperty(this, "_mapContext", void 0);
|
|
42
|
-
// 模型参数
|
|
43
|
-
_defineProperty(this, "modelOptions", void 0);
|
|
44
|
-
// 轨迹参数
|
|
45
|
-
_defineProperty(this, "polylineOptions", void 0);
|
|
46
|
-
// 视角
|
|
47
|
-
_defineProperty(this, "follow", null);
|
|
48
|
-
// 是否定位到模型位置
|
|
49
|
-
_defineProperty(this, "flyTo", false);
|
|
50
|
-
// 位置更新触发回调
|
|
51
|
-
_defineProperty(this, "_onPositionUpdate", null);
|
|
52
|
-
// 模型layer
|
|
53
|
-
_defineProperty(this, "modelLayer", void 0);
|
|
54
|
-
// 轨迹layer
|
|
55
|
-
_defineProperty(this, "polylineLayer", void 0);
|
|
56
|
-
// 历史轨迹layer
|
|
57
|
-
_defineProperty(this, "historyPolylineLayer", void 0);
|
|
58
|
-
// 上一帧时间
|
|
59
|
-
_defineProperty(this, "_lastFrameTime", performance.now());
|
|
60
|
-
// 累加器
|
|
61
|
-
_defineProperty(this, "_stepAccumulator", 0);
|
|
62
|
-
_defineProperty(this, "_frameCount", 0);
|
|
63
|
-
_defineProperty(this, "_fps", 'N/A');
|
|
64
|
-
// 当前位置
|
|
65
|
-
_defineProperty(this, "currentPos", null);
|
|
66
|
-
// 接收到的原始位置数据
|
|
67
|
-
_defineProperty(this, "receivedPositions", []);
|
|
68
|
-
// 已完成飞行的路径段
|
|
69
|
-
_defineProperty(this, "completedSegments", []);
|
|
70
|
-
// 当前正在飞行的路径段
|
|
71
|
-
_defineProperty(this, "currentSegment", null);
|
|
72
|
-
// 未来计划飞行的路径段队列
|
|
73
|
-
_defineProperty(this, "futureSegments", []);
|
|
74
|
-
// 当前在路径段中的索引位置
|
|
75
|
-
_defineProperty(this, "currentPointIndex", 0);
|
|
76
|
-
// 路径段计数器
|
|
77
|
-
_defineProperty(this, "segmentCounter", 0);
|
|
78
|
-
// 轨迹线数据量阈值
|
|
79
|
-
_defineProperty(this, "TRAIL_POSITIONS_THRESHOLD", 1000);
|
|
80
|
-
// 历史轨迹位置点
|
|
81
|
-
_defineProperty(this, "historyTrailPositions", []);
|
|
82
|
-
// 轨迹数据更新标志
|
|
83
|
-
_defineProperty(this, "trailDataUpdated", false);
|
|
84
|
-
// 帧率更新的事件
|
|
85
|
-
_defineProperty(this, "_eventPostUpdate", void 0);
|
|
86
|
-
// 模型参数
|
|
87
|
-
// 模型变换矩阵
|
|
88
|
-
_defineProperty(this, "modelMatrix", new Cesium.Matrix4());
|
|
89
|
-
// 模型姿态
|
|
90
|
-
_defineProperty(this, "hpRoll", new Cesium.HeadingPitchRoll());
|
|
91
|
-
// 漫游相关
|
|
92
|
-
// 状态
|
|
93
|
-
_defineProperty(this, "status", 'stop');
|
|
94
|
-
// 目标朝向角度
|
|
95
|
-
_defineProperty(this, "targetHeading", 0);
|
|
96
|
-
// 当前朝向角度
|
|
97
|
-
_defineProperty(this, "currentHeading", 0);
|
|
98
|
-
// 转向速度(弧度/帧)
|
|
99
|
-
_defineProperty(this, "rotationSpeed", 0.05);
|
|
100
|
-
// 第一人称视角设置
|
|
101
|
-
_defineProperty(this, "firstCameraSettings", {
|
|
102
|
-
distance: 0,
|
|
103
|
-
pitch: -45
|
|
104
|
-
});
|
|
105
|
-
// 第三人称视角设置
|
|
106
|
-
_defineProperty(this, "thirdPersonSettings", {
|
|
107
|
-
distance: 500,
|
|
108
|
-
pitch: -45
|
|
109
|
-
});
|
|
110
|
-
/**
|
|
111
|
-
* 渲染回调函数
|
|
112
|
-
* 更新模型位置、朝向和路径线
|
|
113
|
-
*/
|
|
114
|
-
_defineProperty(this, "updateModel", function () {
|
|
115
|
-
var currentTime = performance.now();
|
|
116
|
-
_this._frameCount++;
|
|
117
|
-
var elapsed = currentTime - _this._lastFrameTime;
|
|
118
|
-
if (elapsed > 60) {
|
|
119
|
-
_this._fps = Math.min(Math.round(_this._frameCount * 1000 / elapsed), _this.getMap().targetFrameRate);
|
|
120
|
-
_this._frameCount = 0;
|
|
121
|
-
_this._lastFrameTime = currentTime;
|
|
122
|
-
}
|
|
123
|
-
if (!_this.currentSegment || _this.status !== 'running') {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// 检查当前路径段是否完成
|
|
128
|
-
if (_this.currentPointIndex >= _this.currentSegment.interpolatedPoints.length) {
|
|
129
|
-
_this.completeCurrentSegment();
|
|
130
|
-
_this._stepAccumulator += 1;
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
_this.currentPos = _this.currentSegment.interpolatedPoints[_this.currentPointIndex];
|
|
134
|
-
|
|
135
|
-
// 计算朝向
|
|
136
|
-
if (_this.currentPointIndex > 0) {
|
|
137
|
-
var prevPos = _this.currentSegment.interpolatedPoints[_this.currentPointIndex - 1];
|
|
138
|
-
_this.getHeading(prevPos, _this.currentPos);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// 更新朝向
|
|
142
|
-
_this.updateHeading();
|
|
143
|
-
|
|
144
|
-
// 初始化轨迹线(如果还未创建)
|
|
145
|
-
_this.updateTrailLine();
|
|
146
|
-
|
|
147
|
-
// 重置轨迹数据更新标志
|
|
148
|
-
_this.trailDataUpdated = false;
|
|
149
|
-
|
|
150
|
-
// 更新模型位置
|
|
151
|
-
if (_this.modelLayer) {
|
|
152
|
-
// 只有位置真正发生变化时才更新矩阵
|
|
153
|
-
_this.modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(_this.currentPos, _this.hpRoll, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west'));
|
|
154
|
-
_this.modelLayer.modelMatrix = _this.modelMatrix;
|
|
155
|
-
|
|
156
|
-
// 调用位置更新回调
|
|
157
|
-
if (_this._onPositionUpdate) {
|
|
158
|
-
var cartographic = Cesium.Cartographic.fromCartesian(_this.currentPos);
|
|
159
|
-
_this._onPositionUpdate({
|
|
160
|
-
lng: Cesium.Math.toDegrees(cartographic.longitude),
|
|
161
|
-
lat: Cesium.Math.toDegrees(cartographic.latitude),
|
|
162
|
-
alt: cartographic.height
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
if (_this.follow) {
|
|
166
|
-
_this.updateCameraView();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (_this._fps === 'N/A') {
|
|
170
|
-
_this.currentPointIndex++;
|
|
171
|
-
} else {
|
|
172
|
-
// 每帧应飞的"点数"(允许小数)
|
|
173
|
-
var exactStep = _this._fps ? _this.getMap().targetFrameRate / _this._fps : 1;
|
|
174
|
-
// 累加步长
|
|
175
|
-
_this._stepAccumulator += exactStep;
|
|
176
|
-
// 取整:当前帧应飞的"完整点数"
|
|
177
|
-
var step = Math.max(1, Math.floor(_this._stepAccumulator));
|
|
178
|
-
// 剩余留给下帧
|
|
179
|
-
_this._stepAccumulator -= Math.min(step, _this._stepAccumulator);
|
|
180
|
-
_this.currentPointIndex += step;
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
if (!map) {
|
|
184
|
-
throw new Error('undefined map');
|
|
185
|
-
}
|
|
186
|
-
if (!options || !options.model || !((_options$model = options.model) !== null && _options$model !== void 0 && _options$model.url)) {
|
|
187
|
-
throw new Error('undefined model or invalid options');
|
|
188
|
-
}
|
|
189
|
-
var model = options.model,
|
|
190
|
-
polyline = options.polyline,
|
|
191
|
-
onPositionUpdate = options.onPositionUpdate,
|
|
192
|
-
flyTo = options.flyTo;
|
|
193
|
-
this._mapContext = map._mapContext;
|
|
194
|
-
this.modelOptions = model;
|
|
195
|
-
this.polylineOptions = polyline;
|
|
196
|
-
this.flyTo = flyTo || false;
|
|
197
|
-
this._onPositionUpdate = onPositionUpdate;
|
|
198
|
-
}
|
|
199
|
-
_createClass(ModelRoamRealTime, [{
|
|
200
|
-
key: "getMap",
|
|
201
|
-
value: function getMap() {
|
|
202
|
-
return this._mapContext && this._mapContext.getMap();
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* 实时添加点位
|
|
207
|
-
* @param newPosition 新位置点
|
|
208
|
-
*/
|
|
209
|
-
}, {
|
|
210
|
-
key: "updatePosition",
|
|
211
|
-
value: function updatePosition(newPosition) {
|
|
212
|
-
if (!newPosition) return;
|
|
213
|
-
if (this.status === 'destroy') return;
|
|
214
|
-
|
|
215
|
-
// 添加时间戳
|
|
216
|
-
if (!newPosition.timestamp) {
|
|
217
|
-
newPosition.timestamp = performance.now();
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// 如果是第一次接收数据,初始化模型
|
|
221
|
-
if (this.receivedPositions.length === 0) {
|
|
222
|
-
this.receivedPositions.push(newPosition);
|
|
223
|
-
this.currentPos = Cesium.Cartesian3.fromDegrees(newPosition.lng, newPosition.lat, newPosition.alt);
|
|
224
|
-
this.initModel(newPosition);
|
|
225
|
-
if (this._onPositionUpdate) {
|
|
226
|
-
this._onPositionUpdate({
|
|
227
|
-
lng: newPosition.lng,
|
|
228
|
-
lat: newPosition.lat,
|
|
229
|
-
alt: newPosition.alt
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// 检查是否与上一个位置相同
|
|
236
|
-
var lastPos = this.receivedPositions[this.receivedPositions.length - 1];
|
|
237
|
-
if (this.isSamePosition(newPosition, lastPos)) {
|
|
238
|
-
// 同位置数据只刷新最后一次采样时间,避免静止时长被并入下一段移动时间
|
|
239
|
-
if (newPosition.timestamp >= lastPos.timestamp) {
|
|
240
|
-
lastPos.timestamp = newPosition.timestamp;
|
|
241
|
-
lastPos.alt = newPosition.alt;
|
|
242
|
-
}
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// 添加新位置到接收队列
|
|
247
|
-
this.receivedPositions.push(newPosition);
|
|
248
|
-
|
|
249
|
-
// 创建新的路径段
|
|
250
|
-
this.createNewSegment(lastPos, newPosition);
|
|
251
|
-
|
|
252
|
-
// 如果模型还未开始运行,启动运行
|
|
253
|
-
if (this.status === 'stop') {
|
|
254
|
-
this.startRoaming();
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* 判断两个位置是否相同
|
|
260
|
-
*/
|
|
261
|
-
}, {
|
|
262
|
-
key: "isSamePosition",
|
|
263
|
-
value: function isSamePosition(pos1, pos2) {
|
|
264
|
-
return pos1.lng === pos2.lng && pos1.lat === pos2.lat && Math.abs(pos1.alt - pos2.alt) < 0.1;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* 创建新的路径段
|
|
269
|
-
*/
|
|
270
|
-
}, {
|
|
271
|
-
key: "createNewSegment",
|
|
272
|
-
value: function createNewSegment(startPos, endPos) {
|
|
273
|
-
var startC3 = Cesium.Cartesian3.fromDegrees(startPos.lng, startPos.lat, startPos.alt);
|
|
274
|
-
var endC3 = Cesium.Cartesian3.fromDegrees(endPos.lng, endPos.lat, endPos.alt);
|
|
275
|
-
|
|
276
|
-
// 计算飞行时间
|
|
277
|
-
var flightTime = Math.max(0, (endPos.timestamp - startPos.timestamp) / 1000);
|
|
278
|
-
|
|
279
|
-
// 计算插值点
|
|
280
|
-
var interpolatedPoints = this._getInterPosition(startC3, endC3, flightTime);
|
|
281
|
-
var newSegment = {
|
|
282
|
-
startPos: startPos,
|
|
283
|
-
endPos: endPos,
|
|
284
|
-
interpolatedPoints: interpolatedPoints,
|
|
285
|
-
segmentIndex: this.segmentCounter++,
|
|
286
|
-
isCompleted: false,
|
|
287
|
-
isMovedToHistory: false
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
// 如果当前没有正在飞行的路径段,则设为当前段
|
|
291
|
-
if (!this.currentSegment) {
|
|
292
|
-
this.currentSegment = newSegment;
|
|
293
|
-
this.currentPointIndex = 0;
|
|
294
|
-
} else {
|
|
295
|
-
// 否则加入未来路径段队列
|
|
296
|
-
this.futureSegments.push(newSegment);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* 开始漫游
|
|
302
|
-
*/
|
|
303
|
-
}, {
|
|
304
|
-
key: "startRoaming",
|
|
305
|
-
value: function startRoaming() {
|
|
306
|
-
if (this.status === 'running') return;
|
|
307
|
-
this.status = 'running';
|
|
308
|
-
// 监听帧率更新
|
|
309
|
-
this._eventPostUpdate = this.getMap().on(constant.SCENE_EVENT_TYPE.POST_UPDATE, this.updateModel);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
* 计算两点之间的路径点
|
|
314
|
-
* 使用插值算法生成平滑的路径
|
|
315
|
-
* @param startP 起始点
|
|
316
|
-
* @param endP 终点
|
|
317
|
-
* @param flightTime 飞行时间
|
|
318
|
-
* @returns 插值后的路径点数组
|
|
319
|
-
*/
|
|
320
|
-
}, {
|
|
321
|
-
key: "_getInterPosition",
|
|
322
|
-
value: function _getInterPosition(startP, endP, flightTime) {
|
|
323
|
-
var arr = [];
|
|
324
|
-
if (!startP || !endP) {
|
|
325
|
-
console.error('Invalid start or end position');
|
|
326
|
-
return arr;
|
|
327
|
-
}
|
|
328
|
-
var startCartographic = Cesium.Cartographic.fromCartesian(startP);
|
|
329
|
-
var endCartographic = Cesium.Cartographic.fromCartesian(endP);
|
|
330
|
-
var startLonLat = [Cesium.Math.toDegrees(startCartographic.longitude), Cesium.Math.toDegrees(startCartographic.latitude)];
|
|
331
|
-
var endLonLat = [Cesium.Math.toDegrees(endCartographic.longitude), Cesium.Math.toDegrees(endCartographic.latitude)];
|
|
332
|
-
|
|
333
|
-
// 计算水平距离和高度差
|
|
334
|
-
var heightDiff = endCartographic.height - startCartographic.height;
|
|
335
|
-
var horizontalDistance = Cesium.Cartesian3.distance(Cesium.Cartesian3.fromDegrees(startLonLat[0], startLonLat[1], startCartographic.height), Cesium.Cartesian3.fromDegrees(endLonLat[0], endLonLat[1], startCartographic.height));
|
|
336
|
-
|
|
337
|
-
// 计算总距离
|
|
338
|
-
var totalDistance = Math.sqrt(horizontalDistance * horizontalDistance + heightDiff * heightDiff);
|
|
339
|
-
if (totalDistance === 0) {
|
|
340
|
-
arr.push(startP);
|
|
341
|
-
return arr;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
// 计算总的插值点数 用最大帧率*时间计算点位
|
|
345
|
-
var numberOfPoints = Math.max(2, Math.floor(flightTime * this.getMap().targetFrameRate) - 1);
|
|
346
|
-
|
|
347
|
-
// 计算时间步长
|
|
348
|
-
var timeStep = 1.0 / (numberOfPoints - 1);
|
|
349
|
-
|
|
350
|
-
// 生成插值点
|
|
351
|
-
for (var i = 0; i < numberOfPoints; i++) {
|
|
352
|
-
var t = i * timeStep;
|
|
353
|
-
|
|
354
|
-
// 经纬度线性插值
|
|
355
|
-
var currentLon = startLonLat[0] + (endLonLat[0] - startLonLat[0]) * t;
|
|
356
|
-
var currentLat = startLonLat[1] + (endLonLat[1] - startLonLat[1]) * t;
|
|
357
|
-
|
|
358
|
-
// 高度使用余弦插值使过渡更平滑
|
|
359
|
-
var heightFactor = void 0;
|
|
360
|
-
if (Math.abs(heightDiff) > 0.1) {
|
|
361
|
-
// 使用余弦插值使高度变化更平滑
|
|
362
|
-
heightFactor = (1 - Math.cos(t * Math.PI)) / 2;
|
|
363
|
-
} else {
|
|
364
|
-
// 高度差很小时使用线性插值
|
|
365
|
-
heightFactor = t;
|
|
366
|
-
}
|
|
367
|
-
var currentHeight = startCartographic.height + heightDiff * heightFactor;
|
|
368
|
-
|
|
369
|
-
// 创建当前位置的笛卡尔坐标
|
|
370
|
-
var pos = Cesium.Cartesian3.fromDegrees(currentLon, currentLat, currentHeight);
|
|
371
|
-
arr.push(pos);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
// 确保最后一个点精确匹配终点
|
|
375
|
-
if (!arr[arr.length - 1].equals(endP)) {
|
|
376
|
-
arr.push(endP);
|
|
377
|
-
}
|
|
378
|
-
return arr;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* 初始化模型
|
|
383
|
-
* 加载模型到第一个位置
|
|
384
|
-
* @param initialPosition 初始位置
|
|
385
|
-
*/
|
|
386
|
-
}, {
|
|
387
|
-
key: "initModel",
|
|
388
|
-
value: (function () {
|
|
389
|
-
var _initModel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(initialPosition) {
|
|
390
|
-
var _this2 = this;
|
|
391
|
-
var pos, model;
|
|
392
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
393
|
-
while (1) switch (_context.prev = _context.next) {
|
|
394
|
-
case 0:
|
|
395
|
-
pos = Cesium.Cartesian3.fromDegrees(initialPosition.lng, initialPosition.lat, initialPosition.alt); // 创建模型矩阵
|
|
396
|
-
this.modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, this.hpRoll, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west'));
|
|
397
|
-
_context.next = 4;
|
|
398
|
-
return Cesium.Model.fromGltfAsync(_objectSpread({
|
|
399
|
-
id: uuidv4(),
|
|
400
|
-
modelMatrix: this.modelMatrix
|
|
401
|
-
}, this.modelOptions));
|
|
402
|
-
case 4:
|
|
403
|
-
model = _context.sent;
|
|
404
|
-
if (!(this.status === 'destroy')) {
|
|
405
|
-
_context.next = 7;
|
|
406
|
-
break;
|
|
407
|
-
}
|
|
408
|
-
return _context.abrupt("return");
|
|
409
|
-
case 7:
|
|
410
|
-
this.modelLayer = this.getMap().scene.primitives.add(model);
|
|
411
|
-
|
|
412
|
-
// 开启动画
|
|
413
|
-
this.modelLayer.readyEvent.addEventListener(function () {
|
|
414
|
-
if (_this2.flyTo) {
|
|
415
|
-
_this2._flyToModel();
|
|
416
|
-
}
|
|
417
|
-
if (_this2.follow) {
|
|
418
|
-
_this2.updateCameraView();
|
|
419
|
-
}
|
|
420
|
-
_this2.modelLayer.activeAnimations.addAll({
|
|
421
|
-
loop: Cesium.ModelAnimationLoop.REPEAT,
|
|
422
|
-
multiplier: 2
|
|
423
|
-
});
|
|
424
|
-
});
|
|
425
|
-
case 9:
|
|
426
|
-
case "end":
|
|
427
|
-
return _context.stop();
|
|
428
|
-
}
|
|
429
|
-
}, _callee, this);
|
|
430
|
-
}));
|
|
431
|
-
function initModel(_x) {
|
|
432
|
-
return _initModel.apply(this, arguments);
|
|
433
|
-
}
|
|
434
|
-
return initModel;
|
|
435
|
-
}())
|
|
436
|
-
}, {
|
|
437
|
-
key: "completeCurrentSegment",
|
|
438
|
-
value:
|
|
439
|
-
/**
|
|
440
|
-
* 完成当前路径段,切换到下一个路径段
|
|
441
|
-
*/
|
|
442
|
-
function completeCurrentSegment() {
|
|
443
|
-
if (!this.currentSegment) return;
|
|
444
|
-
|
|
445
|
-
// 标记当前段为已完成
|
|
446
|
-
this.currentSegment.isCompleted = true;
|
|
447
|
-
this.completedSegments.push(this.currentSegment);
|
|
448
|
-
|
|
449
|
-
// 从未来路径段队列中取出下一个路径段
|
|
450
|
-
if (this.futureSegments.length > 0) {
|
|
451
|
-
this.currentSegment = this.futureSegments.shift();
|
|
452
|
-
this.currentPointIndex = 0;
|
|
453
|
-
} else {
|
|
454
|
-
// 没有更多路径段,等待新数据
|
|
455
|
-
this.currentSegment = null;
|
|
456
|
-
this.currentPointIndex = 0;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* 初始化轨迹线Entity
|
|
462
|
-
*/
|
|
463
|
-
}, {
|
|
464
|
-
key: "initTrailLine",
|
|
465
|
-
value: function initTrailLine() {
|
|
466
|
-
var _this3 = this;
|
|
467
|
-
var mergeStyle = merge(constant.DEFAULT_POLYLINE_OPTIONS(), cloneDeep(this.polylineOptions || {}));
|
|
468
|
-
var currStyle = PolylineEntity.handleOptions(mergeStyle);
|
|
469
|
-
// 创建轨迹线Entity,使用callback动态更新位置
|
|
470
|
-
this.polylineLayer = this.getMap().entities.add({
|
|
471
|
-
id: uuidv4(),
|
|
472
|
-
polyline: _objectSpread({
|
|
473
|
-
positions: new Cesium.CallbackProperty(function () {
|
|
474
|
-
// 即使轨迹隐藏,也要更新数据
|
|
475
|
-
var positions = _this3.getTrailLinePositions();
|
|
476
|
-
_this3.trailDataUpdated = true;
|
|
477
|
-
return positions;
|
|
478
|
-
}, false)
|
|
479
|
-
}, currStyle)
|
|
480
|
-
});
|
|
481
|
-
this.polylineLayer.polyline.show = currStyle.show;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
/**
|
|
485
|
-
* 创建历史轨迹线Entity
|
|
486
|
-
*/
|
|
487
|
-
}, {
|
|
488
|
-
key: "createHistoryTrailLine",
|
|
489
|
-
value: function createHistoryTrailLine() {
|
|
490
|
-
var mergeStyle = merge(constant.DEFAULT_POLYLINE_OPTIONS(), cloneDeep(this.polylineOptions || {}));
|
|
491
|
-
var currStyle = PolylineEntity.handleOptions(mergeStyle);
|
|
492
|
-
// 创建历史轨迹线Entity,使用静态位置
|
|
493
|
-
this.historyPolylineLayer = this.getMap().entities.add({
|
|
494
|
-
id: uuidv4(),
|
|
495
|
-
polyline: _objectSpread({
|
|
496
|
-
positions: this.historyTrailPositions
|
|
497
|
-
}, currStyle)
|
|
498
|
-
});
|
|
499
|
-
|
|
500
|
-
// 同步当前轨迹线的显示状态
|
|
501
|
-
if (this.polylineLayer) {
|
|
502
|
-
this.historyPolylineLayer.polyline.show = this.polylineLayer.polyline.show;
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
/**
|
|
507
|
-
* 获取轨迹线位置点
|
|
508
|
-
* 返回:已完成路径段的起始点和结束点 + 当前路径段已飞行的插值点
|
|
509
|
-
*/
|
|
510
|
-
}, {
|
|
511
|
-
key: "getTrailLinePositions",
|
|
512
|
-
value: function getTrailLinePositions() {
|
|
513
|
-
var positions = [];
|
|
514
|
-
|
|
515
|
-
// 确保有基础数据
|
|
516
|
-
if (!Array.isArray(this.receivedPositions) || this.receivedPositions.length < 1) {
|
|
517
|
-
return positions;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
// 添加已完成路径段的起始点和结束点(只处理未移动到历史的路径段)
|
|
521
|
-
if (Array.isArray(this.completedSegments)) {
|
|
522
|
-
this.completedSegments.forEach(function (segment) {
|
|
523
|
-
if (segment.startPos && segment.endPos && !segment.isMovedToHistory) {
|
|
524
|
-
// 添加起始点(如果这是第一个路径段或者与上一个路径段不重复)
|
|
525
|
-
if (positions.length === 0) {
|
|
526
|
-
positions.push(Cesium.Cartesian3.fromDegrees(segment.startPos.lng, segment.startPos.lat, segment.startPos.alt));
|
|
527
|
-
}
|
|
528
|
-
// 添加结束点
|
|
529
|
-
positions.push(Cesium.Cartesian3.fromDegrees(segment.endPos.lng, segment.endPos.lat, segment.endPos.alt));
|
|
530
|
-
}
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
// 检查数据量是否超过阈值,如果超过则将部分数据移到历史轨迹
|
|
535
|
-
this.checkAndMoveToHistory(positions);
|
|
536
|
-
|
|
537
|
-
// 如果当前有正在飞行的路径段,添加已飞行过的插值点
|
|
538
|
-
if (this.currentSegment && Array.isArray(this.currentSegment.interpolatedPoints) && this.currentPointIndex >= 0) {
|
|
539
|
-
// 如果还没有添加过任何点,先添加当前路径段的起始点
|
|
540
|
-
if (positions.length === 0 && this.currentSegment.startPos) {
|
|
541
|
-
positions.push(Cesium.Cartesian3.fromDegrees(this.currentSegment.startPos.lng, this.currentSegment.startPos.lat, this.currentSegment.startPos.alt));
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
// 添加当前路径段中已经飞行过的插值点
|
|
545
|
-
for (var i = 0; i <= this.currentPointIndex && i < this.currentSegment.interpolatedPoints.length; i++) {
|
|
546
|
-
positions.push(this.currentSegment.interpolatedPoints[i]);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
return positions;
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
/**
|
|
553
|
-
* 检查并移动数据到历史轨迹
|
|
554
|
-
*/
|
|
555
|
-
}, {
|
|
556
|
-
key: "checkAndMoveToHistory",
|
|
557
|
-
value: function checkAndMoveToHistory(currentPositions) {
|
|
558
|
-
if (currentPositions.length > this.TRAIL_POSITIONS_THRESHOLD) {
|
|
559
|
-
var _this$historyTrailPos;
|
|
560
|
-
// 将所有超过阈值的点移动到历史轨迹
|
|
561
|
-
var positionsToHistory = currentPositions.slice(0, this.TRAIL_POSITIONS_THRESHOLD);
|
|
562
|
-
|
|
563
|
-
// 从当前轨迹中移除这些点
|
|
564
|
-
currentPositions.splice(0, this.TRAIL_POSITIONS_THRESHOLD);
|
|
565
|
-
|
|
566
|
-
// 标记已经移动到历史的路径段
|
|
567
|
-
this.markCompletedSegmentsAsMovedToHistory();
|
|
568
|
-
(_this$historyTrailPos = this.historyTrailPositions).push.apply(_this$historyTrailPos, _toConsumableArray(positionsToHistory));
|
|
569
|
-
|
|
570
|
-
// 如果历史轨迹图层不存在,创建它
|
|
571
|
-
if (!this.historyPolylineLayer) {
|
|
572
|
-
this.createHistoryTrailLine();
|
|
573
|
-
} else {
|
|
574
|
-
// 更新历史轨迹图层的位置
|
|
575
|
-
this.historyPolylineLayer.polyline.positions = this.historyTrailPositions;
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
// 同步显示状态
|
|
579
|
-
if (this.polylineLayer && this.historyPolylineLayer) {
|
|
580
|
-
this.historyPolylineLayer.polyline.show = this.polylineLayer.polyline.show;
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
/**
|
|
586
|
-
* 标记已经移动到历史的路径段
|
|
587
|
-
*/
|
|
588
|
-
}, {
|
|
589
|
-
key: "markCompletedSegmentsAsMovedToHistory",
|
|
590
|
-
value: function markCompletedSegmentsAsMovedToHistory() {
|
|
591
|
-
if (!Array.isArray(this.completedSegments) || this.completedSegments.length === 0) {
|
|
592
|
-
return;
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
// 标记除了最后一个路径段之外的所有已完成路径段
|
|
596
|
-
var segmentsToMark = this.completedSegments.length - 2;
|
|
597
|
-
for (var i = 0; i < segmentsToMark; i++) {
|
|
598
|
-
var segment = this.completedSegments[i];
|
|
599
|
-
if (segment.isCompleted && !segment.isMovedToHistory) {
|
|
600
|
-
segment.isMovedToHistory = true;
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* 更新轨迹线 - 现在由CallbackProperty自动更新
|
|
607
|
-
*/
|
|
608
|
-
}, {
|
|
609
|
-
key: "updateTrailLine",
|
|
610
|
-
value: function updateTrailLine() {
|
|
611
|
-
// 由于使用了CallbackProperty和getTrailLinePositions方法
|
|
612
|
-
// 轨迹线会自动更新显示:所有原始位置点 + 当前段已飞行的插值点
|
|
613
|
-
if (!this.polylineLayer && this.receivedPositions.length >= 2) {
|
|
614
|
-
this.initTrailLine();
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
// 强制更新轨迹数据,确保即使轨迹隐藏时数据也能正确更新
|
|
618
|
-
if (this.polylineLayer && !this.trailDataUpdated) {
|
|
619
|
-
// 手动触发一次数据更新
|
|
620
|
-
this.getTrailLinePositions();
|
|
621
|
-
this.trailDataUpdated = true;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
/**
|
|
626
|
-
* 计算模型朝向
|
|
627
|
-
* @param start 起始点
|
|
628
|
-
* @param end 终点
|
|
629
|
-
*/
|
|
630
|
-
}, {
|
|
631
|
-
key: "getHeading",
|
|
632
|
-
value: function getHeading(start, end) {
|
|
633
|
-
var startCartographic = Cesium.Cartographic.fromCartesian(start);
|
|
634
|
-
var endCartographic = Cesium.Cartographic.fromCartesian(end);
|
|
635
|
-
var startLonLat = [Cesium.Math.toDegrees(startCartographic.longitude), Cesium.Math.toDegrees(startCartographic.latitude)];
|
|
636
|
-
var endLonLat = [Cesium.Math.toDegrees(endCartographic.longitude), Cesium.Math.toDegrees(endCartographic.latitude)];
|
|
637
|
-
var horizontalDistance = Cesium.Cartesian3.distance(Cesium.Cartesian3.fromDegrees(startLonLat[0], startLonLat[1], startCartographic.height), Cesium.Cartesian3.fromDegrees(endLonLat[0], endLonLat[1], startCartographic.height));
|
|
638
|
-
if (horizontalDistance < 0.1) {
|
|
639
|
-
return;
|
|
640
|
-
}
|
|
641
|
-
var direction = Cesium.Cartesian3.subtract(end, start, new Cesium.Cartesian3());
|
|
642
|
-
Cesium.Cartesian3.normalize(direction, direction);
|
|
643
|
-
var transform = Cesium.Transforms.eastNorthUpToFixedFrame(start);
|
|
644
|
-
var localDirection = Cesium.Matrix4.multiplyByPointAsVector(Cesium.Matrix4.inverse(transform, new Cesium.Matrix4()), direction, new Cesium.Cartesian3());
|
|
645
|
-
this.targetHeading = Math.atan2(localDirection.x, localDirection.y);
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* 更新模型朝向
|
|
650
|
-
*/
|
|
651
|
-
}, {
|
|
652
|
-
key: "updateHeading",
|
|
653
|
-
value: function updateHeading() {
|
|
654
|
-
// 计算需要转向的最短角度
|
|
655
|
-
var deltaHeading = this.targetHeading - this.currentHeading;
|
|
656
|
-
|
|
657
|
-
// 确保角度在 -π 到 π 之间
|
|
658
|
-
while (deltaHeading > Math.PI) deltaHeading -= 2 * Math.PI;
|
|
659
|
-
while (deltaHeading < -Math.PI) deltaHeading += 2 * Math.PI;
|
|
660
|
-
|
|
661
|
-
// 平滑插值
|
|
662
|
-
if (Math.abs(deltaHeading) > this.rotationSpeed) {
|
|
663
|
-
this.currentHeading += Math.sign(deltaHeading) * this.rotationSpeed;
|
|
664
|
-
} else {
|
|
665
|
-
this.currentHeading = this.targetHeading;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
// 确保角度在 0 到 2π 之间
|
|
669
|
-
while (this.currentHeading < 0) this.currentHeading += 2 * Math.PI;
|
|
670
|
-
while (this.currentHeading > 2 * Math.PI) this.currentHeading -= 2 * Math.PI;
|
|
671
|
-
|
|
672
|
-
// 更新模型朝向
|
|
673
|
-
this.hpRoll = new Cesium.HeadingPitchRoll(this.currentHeading, 0.0, 0.0);
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
/**
|
|
677
|
-
* 更新相机视角
|
|
678
|
-
* 根据当前模式更新相机位置和朝向
|
|
679
|
-
*/
|
|
680
|
-
}, {
|
|
681
|
-
key: "updateCameraView",
|
|
682
|
-
value: function updateCameraView() {
|
|
683
|
-
if (!this.modelLayer && this.currentPos) {
|
|
684
|
-
return;
|
|
685
|
-
}
|
|
686
|
-
if (this.follow === 'first') {
|
|
687
|
-
this.updateFirstPersonView(this.currentPos);
|
|
688
|
-
} else if (this.follow === 'third') {
|
|
689
|
-
this.updateThirdPersonView(this.currentPos);
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
/**
|
|
694
|
-
* 更新第一人称视角
|
|
695
|
-
* @param position 模型当前位置
|
|
696
|
-
*/
|
|
697
|
-
}, {
|
|
698
|
-
key: "updateFirstPersonView",
|
|
699
|
-
value: function updateFirstPersonView(position) {
|
|
700
|
-
var heading = this.hpRoll.heading;
|
|
701
|
-
var pitch = Cesium.Math.toRadians(this.firstCameraSettings.pitch);
|
|
702
|
-
var roll = 0.0;
|
|
703
|
-
// 根据 heading/pitch/roll 计算旋转矩阵
|
|
704
|
-
var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
|
|
705
|
-
var orientationMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(position, hpr, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('east', 'north'));
|
|
706
|
-
|
|
707
|
-
// 获取局部 forward(朝前)方向
|
|
708
|
-
var forwardLocal = new Cesium.Cartesian3(0, 1, 0); // 注意:在Cesium中,局部Y是朝前
|
|
709
|
-
var rotation = Cesium.Matrix4.getMatrix3(orientationMatrix, new Cesium.Matrix3());
|
|
710
|
-
var forwardWorld = Cesium.Matrix3.multiplyByVector(rotation, forwardLocal, new Cesium.Cartesian3());
|
|
711
|
-
|
|
712
|
-
// 计算偏移(distance正往后)
|
|
713
|
-
var offset = Cesium.Cartesian3.multiplyByScalar(forwardWorld, -this.firstCameraSettings.distance, new Cesium.Cartesian3());
|
|
714
|
-
var cameraPosition = Cesium.Cartesian3.add(position, offset, new Cesium.Cartesian3());
|
|
715
|
-
this.getMap().camera.setView({
|
|
716
|
-
destination: cameraPosition,
|
|
717
|
-
orientation: {
|
|
718
|
-
heading: heading,
|
|
719
|
-
pitch: pitch,
|
|
720
|
-
roll: roll
|
|
721
|
-
}
|
|
722
|
-
});
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
/**
|
|
726
|
-
* 更新第三人称视角
|
|
727
|
-
* @param position 模型当前位置
|
|
728
|
-
*/
|
|
729
|
-
}, {
|
|
730
|
-
key: "updateThirdPersonView",
|
|
731
|
-
value: function updateThirdPersonView(position) {
|
|
732
|
-
// 计算相机位置(在模型后方一定距离)
|
|
733
|
-
var transform = Cesium.Transforms.headingPitchRollToFixedFrame(position, this.hpRoll, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west'));
|
|
734
|
-
var offset = new Cesium.Cartesian3(-this.thirdPersonSettings.distance, 0, 500);
|
|
735
|
-
var cameraPosition = Cesium.Matrix4.multiplyByPoint(transform, offset, new Cesium.Cartesian3());
|
|
736
|
-
|
|
737
|
-
// 设置相机位置和朝向
|
|
738
|
-
this.getMap().camera.setView({
|
|
739
|
-
destination: cameraPosition,
|
|
740
|
-
orientation: {
|
|
741
|
-
heading: this.hpRoll.heading,
|
|
742
|
-
pitch: Cesium.Math.toRadians(this.thirdPersonSettings.pitch),
|
|
743
|
-
roll: 0.0
|
|
744
|
-
}
|
|
745
|
-
});
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
/**
|
|
749
|
-
* 设置第一人称视角
|
|
750
|
-
*/
|
|
751
|
-
}, {
|
|
752
|
-
key: "setFollowFirst",
|
|
753
|
-
value: function setFollowFirst(options) {
|
|
754
|
-
if (this.status === 'destroy') return;
|
|
755
|
-
this.firstCameraSettings = _objectSpread(_objectSpread({}, this.firstCameraSettings), options);
|
|
756
|
-
this.follow = 'first';
|
|
757
|
-
this.updateCameraView();
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
/**
|
|
761
|
-
* 设置第三人称视角
|
|
762
|
-
*/
|
|
763
|
-
}, {
|
|
764
|
-
key: "setFollowThird",
|
|
765
|
-
value: function setFollowThird(options) {
|
|
766
|
-
if (this.status === 'destroy') return;
|
|
767
|
-
this.thirdPersonSettings = _objectSpread(_objectSpread({}, this.thirdPersonSettings), options);
|
|
768
|
-
this.follow = 'third';
|
|
769
|
-
this.updateCameraView();
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
/**
|
|
773
|
-
* 取消视角跟随
|
|
774
|
-
*/
|
|
775
|
-
}, {
|
|
776
|
-
key: "cancelFollow",
|
|
777
|
-
value: function cancelFollow() {
|
|
778
|
-
if (this.status === 'destroy') return;
|
|
779
|
-
this.follow = null;
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
/**
|
|
783
|
-
* 飞行定位到模型
|
|
784
|
-
*/
|
|
785
|
-
}, {
|
|
786
|
-
key: "_flyToModel",
|
|
787
|
-
value: function _flyToModel() {
|
|
788
|
-
var boundingSphere = this.modelLayer.boundingSphere;
|
|
789
|
-
boundingSphere.radius = Math.max(boundingSphere.radius || 100);
|
|
790
|
-
this.getMap().camera.flyToBoundingSphere(boundingSphere);
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
/**
|
|
794
|
-
* 显示隐藏飞行轨迹
|
|
795
|
-
* */
|
|
796
|
-
}, {
|
|
797
|
-
key: "showPolylineLayer",
|
|
798
|
-
value: function showPolylineLayer(isShow) {
|
|
799
|
-
this.polylineOptions.show = isShow;
|
|
800
|
-
if (this.polylineLayer) {
|
|
801
|
-
this.polylineLayer.polyline.show = isShow;
|
|
802
|
-
}
|
|
803
|
-
if (this.historyPolylineLayer) {
|
|
804
|
-
this.historyPolylineLayer.polyline.show = isShow;
|
|
805
|
-
}
|
|
806
|
-
|
|
807
|
-
// 如果显示轨迹,强制更新一次数据以确保轨迹连续性
|
|
808
|
-
if (isShow && this.polylineLayer) {
|
|
809
|
-
this.trailDataUpdated = false;
|
|
810
|
-
// 手动触发一次数据更新
|
|
811
|
-
this.getTrailLinePositions();
|
|
812
|
-
this.trailDataUpdated = true;
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
|
|
816
|
-
/**
|
|
817
|
-
* 强制更新轨迹数据
|
|
818
|
-
* 用于确保轨迹数据的连续性
|
|
819
|
-
*/
|
|
820
|
-
}, {
|
|
821
|
-
key: "forceUpdateTrailData",
|
|
822
|
-
value: function forceUpdateTrailData() {
|
|
823
|
-
if (this.polylineLayer) {
|
|
824
|
-
this.trailDataUpdated = false;
|
|
825
|
-
// 手动触发一次数据更新
|
|
826
|
-
this.getTrailLinePositions();
|
|
827
|
-
this.trailDataUpdated = true;
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
/**
|
|
832
|
-
* 监听
|
|
833
|
-
*/
|
|
834
|
-
}, {
|
|
835
|
-
key: "on",
|
|
836
|
-
value: function on(type, event) {
|
|
837
|
-
return this.getMap()._event.listenToModelRoam(type, event, this);
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
/**
|
|
841
|
-
* 销毁实例
|
|
842
|
-
* 清理所有资源
|
|
843
|
-
*/
|
|
844
|
-
}, {
|
|
845
|
-
key: "destroy",
|
|
846
|
-
value: function destroy() {
|
|
847
|
-
if (this.status === 'destroy') return;
|
|
848
|
-
this.status = 'destroy';
|
|
849
|
-
this._eventPostUpdate && this._eventPostUpdate.off();
|
|
850
|
-
if (this.modelLayer) {
|
|
851
|
-
this.getMap().scene.primitives.remove(this.modelLayer);
|
|
852
|
-
this.modelLayer = null;
|
|
853
|
-
}
|
|
854
|
-
if (this.polylineLayer) {
|
|
855
|
-
this.getMap().entities.remove(this.polylineLayer);
|
|
856
|
-
this.polylineLayer = null;
|
|
857
|
-
}
|
|
858
|
-
if (this.historyPolylineLayer) {
|
|
859
|
-
this.getMap().entities.remove(this.historyPolylineLayer);
|
|
860
|
-
this.historyPolylineLayer = null;
|
|
861
|
-
}
|
|
862
|
-
this.receivedPositions = [];
|
|
863
|
-
this.completedSegments = [];
|
|
864
|
-
this.currentSegment = null;
|
|
865
|
-
this.futureSegments = [];
|
|
866
|
-
this.currentPointIndex = 0;
|
|
867
|
-
this.segmentCounter = 0;
|
|
868
|
-
this.historyTrailPositions = [];
|
|
869
|
-
this.trailDataUpdated = false;
|
|
870
|
-
}
|
|
871
|
-
}]);
|
|
872
|
-
return ModelRoamRealTime;
|
|
873
|
-
}();
|
|
874
|
-
export { ModelRoamRealTime as default };
|
|
1
|
+
(function(_0x576edf,_0x58966f){var _0xdea55b=_0x17f6,_0x469c17=_0x576edf();while(!![]){try{var _0x394c5f=-parseInt(_0xdea55b(0xdd))/0x1+-parseInt(_0xdea55b(0xbb))/0x2*(parseInt(_0xdea55b(0x156))/0x3)+parseInt(_0xdea55b(0x142))/0x4*(-parseInt(_0xdea55b(0x10d))/0x5)+-parseInt(_0xdea55b(0xe2))/0x6*(parseInt(_0xdea55b(0x110))/0x7)+-parseInt(_0xdea55b(0xfe))/0x8*(parseInt(_0xdea55b(0x12f))/0x9)+-parseInt(_0xdea55b(0x141))/0xa+-parseInt(_0xdea55b(0x9d))/0xb*(-parseInt(_0xdea55b(0x116))/0xc);if(_0x394c5f===_0x58966f)break;else _0x469c17['push'](_0x469c17['shift']());}catch(_0x5919e5){_0x469c17['push'](_0x469c17['shift']());}}}(_0x3a1e,0xdd487));function _typeof(_0x278a56){'@babel/helpers - typeof';var _0x14fb1c=_0x17f6;return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x14fb1c(0x126)]?function(_0x1f3255){return typeof _0x1f3255;}:function(_0x18a7c4){var _0x22d54e=_0x14fb1c;return _0x18a7c4&&'function'==typeof Symbol&&_0x18a7c4['constructor']===Symbol&&_0x18a7c4!==Symbol[_0x22d54e(0x134)]?'symbol':typeof _0x18a7c4;},_typeof(_0x278a56);}function _toConsumableArray(_0x51f4bc){return _arrayWithoutHoles(_0x51f4bc)||_iterableToArray(_0x51f4bc)||_unsupportedIterableToArray(_0x51f4bc)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x3a7ed8,_0x68460b){var _0x161b53=_0x17f6;if(!_0x3a7ed8)return;if(typeof _0x3a7ed8===_0x161b53(0xf2))return _arrayLikeToArray(_0x3a7ed8,_0x68460b);var _0x41031a=Object[_0x161b53(0x134)]['toString'][_0x161b53(0xf8)](_0x3a7ed8)[_0x161b53(0x128)](0x8,-0x1);if(_0x41031a==='Object'&&_0x3a7ed8[_0x161b53(0x15b)])_0x41031a=_0x3a7ed8['constructor']['name'];if(_0x41031a===_0x161b53(0x9f)||_0x41031a==='Set')return Array['from'](_0x3a7ed8);if(_0x41031a==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x41031a))return _arrayLikeToArray(_0x3a7ed8,_0x68460b);}function _iterableToArray(_0x57b1f3){var _0x235ed7=_0x17f6;if(typeof Symbol!==_0x235ed7(0x9c)&&_0x57b1f3[Symbol['iterator']]!=null||_0x57b1f3[_0x235ed7(0xc9)]!=null)return Array['from'](_0x57b1f3);}function _arrayWithoutHoles(_0x5a0e63){if(Array['isArray'](_0x5a0e63))return _arrayLikeToArray(_0x5a0e63);}function _arrayLikeToArray(_0x58492a,_0x2ff59a){var _0x4a1b4d=_0x17f6;if(_0x2ff59a==null||_0x2ff59a>_0x58492a['length'])_0x2ff59a=_0x58492a[_0x4a1b4d(0xb8)];for(var _0x220a5c=0x0,_0x259ce1=new Array(_0x2ff59a);_0x220a5c<_0x2ff59a;_0x220a5c++)_0x259ce1[_0x220a5c]=_0x58492a[_0x220a5c];return _0x259ce1;}function _regeneratorRuntime(){'use strict';var _0xef439d=_0x17f6;_regeneratorRuntime=function _0xf4f464(){return _0x18a24d;};var _0x346a6f,_0x18a24d={},_0x26eb11=Object[_0xef439d(0x134)],_0x31a265=_0x26eb11['hasOwnProperty'],_0x478407=Object['defineProperty']||function(_0x80ab0b,_0x333d85,_0x35a3b4){_0x80ab0b[_0x333d85]=_0x35a3b4['value'];},_0x24acaa='function'==typeof Symbol?Symbol:{},_0x194053=_0x24acaa['iterator']||'@@iterator',_0x38fa94=_0x24acaa['asyncIterator']||_0xef439d(0x143),_0x32fa08=_0x24acaa['toStringTag']||'@@toStringTag';function _0x363d36(_0x562822,_0x3906be,_0x1a1e91){var _0x20b8d1=_0xef439d;return Object[_0x20b8d1(0x108)](_0x562822,_0x3906be,{'value':_0x1a1e91,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}),_0x562822[_0x3906be];}try{_0x363d36({},'');}catch(_0x198d8a){_0x363d36=function _0x34a933(_0x202e27,_0x3f8321,_0x85d5ca){return _0x202e27[_0x3f8321]=_0x85d5ca;};}function _0x565aca(_0x586750,_0x5a7114,_0xbde42b,_0x37b55f){var _0x1e6c52=_0xef439d,_0x8f0893=_0x5a7114&&_0x5a7114[_0x1e6c52(0x134)]instanceof _0x1be6e0?_0x5a7114:_0x1be6e0,_0x59e652=Object[_0x1e6c52(0xca)](_0x8f0893['prototype']),_0x300660=new _0x1b58aa(_0x37b55f||[]);return _0x478407(_0x59e652,_0x1e6c52(0xd6),{'value':_0x748e25(_0x586750,_0xbde42b,_0x300660)}),_0x59e652;}function _0x439559(_0x57073d,_0x2ec2aa,_0xa92f72){var _0x5a2bd0=_0xef439d;try{return{'type':'normal','arg':_0x57073d['call'](_0x2ec2aa,_0xa92f72)};}catch(_0x3afe9a){return{'type':_0x5a2bd0(0x11e),'arg':_0x3afe9a};}}_0x18a24d['wrap']=_0x565aca;var _0x10f23b='suspendedStart',_0x580f3a='suspendedYield',_0x4bddc2='executing',_0x4dc775=_0xef439d(0x13f),_0x398554={};function _0x1be6e0(){}function _0x19dba8(){}function _0x265efe(){}var _0x5c6431={};_0x363d36(_0x5c6431,_0x194053,function(){return this;});var _0x40525a=Object['getPrototypeOf'],_0x3a78dd=_0x40525a&&_0x40525a(_0x40525a(_0x433456([])));_0x3a78dd&&_0x3a78dd!==_0x26eb11&&_0x31a265[_0xef439d(0xf8)](_0x3a78dd,_0x194053)&&(_0x5c6431=_0x3a78dd);var _0x5440e3=_0x265efe[_0xef439d(0x134)]=_0x1be6e0['prototype']=Object[_0xef439d(0xca)](_0x5c6431);function _0x3b7671(_0x34aa39){var _0x3f70a0=_0xef439d;['next','throw',_0x3f70a0(0xff)][_0x3f70a0(0x147)](function(_0x588a25){_0x363d36(_0x34aa39,_0x588a25,function(_0x2cff40){var _0x48a22f=_0x17f6;return this[_0x48a22f(0xd6)](_0x588a25,_0x2cff40);});});}function _0x599800(_0x4840d7,_0x5e4526){var _0x22c940=_0xef439d;function _0x3eb3ef(_0x4bdebf,_0x359e8d,_0x2b65e6,_0x4f1c66){var _0x1dfccd=_0x17f6,_0x1fb20e=_0x439559(_0x4840d7[_0x4bdebf],_0x4840d7,_0x359e8d);if('throw'!==_0x1fb20e[_0x1dfccd(0xaf)]){var _0x4fcb8a=_0x1fb20e['arg'],_0xfcfcdb=_0x4fcb8a[_0x1dfccd(0xd0)];return _0xfcfcdb&&_0x1dfccd(0x118)==_typeof(_0xfcfcdb)&&_0x31a265['call'](_0xfcfcdb,_0x1dfccd(0xdb))?_0x5e4526['resolve'](_0xfcfcdb[_0x1dfccd(0xdb)])['then'](function(_0x436d0b){_0x3eb3ef('next',_0x436d0b,_0x2b65e6,_0x4f1c66);},function(_0x388a79){var _0x94602a=_0x1dfccd;_0x3eb3ef(_0x94602a(0x11e),_0x388a79,_0x2b65e6,_0x4f1c66);}):_0x5e4526['resolve'](_0xfcfcdb)[_0x1dfccd(0x99)](function(_0xa3d0a2){var _0x522201=_0x1dfccd;_0x4fcb8a[_0x522201(0xd0)]=_0xa3d0a2,_0x2b65e6(_0x4fcb8a);},function(_0x1b349f){return _0x3eb3ef('throw',_0x1b349f,_0x2b65e6,_0x4f1c66);});}_0x4f1c66(_0x1fb20e['arg']);}var _0x259f2a;_0x478407(this,_0x22c940(0xd6),{'value':function _0x51aad4(_0x2b175c,_0x42dc93){var _0x23c4b4=_0x22c940;function _0x488e29(){return new _0x5e4526(function(_0x2c140a,_0x28406b){_0x3eb3ef(_0x2b175c,_0x42dc93,_0x2c140a,_0x28406b);});}return _0x259f2a=_0x259f2a?_0x259f2a[_0x23c4b4(0x99)](_0x488e29,_0x488e29):_0x488e29();}});}function _0x748e25(_0x59a286,_0x4ed009,_0x47c31b){var _0x4e99f5=_0x10f23b;return function(_0x415884,_0x30f9bf){var _0x1fa0d3=_0x17f6;if(_0x4e99f5===_0x4bddc2)throw new Error('Generator\x20is\x20already\x20running');if(_0x4e99f5===_0x4dc775){if(_0x1fa0d3(0x11e)===_0x415884)throw _0x30f9bf;return{'value':_0x346a6f,'done':!0x0};}for(_0x47c31b[_0x1fa0d3(0xfa)]=_0x415884,_0x47c31b['arg']=_0x30f9bf;;){var _0x51c758=_0x47c31b['delegate'];if(_0x51c758){var _0x4fb2b1=_0x5a8e79(_0x51c758,_0x47c31b);if(_0x4fb2b1){if(_0x4fb2b1===_0x398554)continue;return _0x4fb2b1;}}if('next'===_0x47c31b['method'])_0x47c31b[_0x1fa0d3(0x115)]=_0x47c31b['_sent']=_0x47c31b[_0x1fa0d3(0xa8)];else{if('throw'===_0x47c31b[_0x1fa0d3(0xfa)]){if(_0x4e99f5===_0x10f23b)throw _0x4e99f5=_0x4dc775,_0x47c31b['arg'];_0x47c31b[_0x1fa0d3(0x13e)](_0x47c31b['arg']);}else'return'===_0x47c31b[_0x1fa0d3(0xfa)]&&_0x47c31b[_0x1fa0d3(0xa0)](_0x1fa0d3(0xff),_0x47c31b[_0x1fa0d3(0xa8)]);}_0x4e99f5=_0x4bddc2;var _0x29e3f7=_0x439559(_0x59a286,_0x4ed009,_0x47c31b);if(_0x1fa0d3(0x114)===_0x29e3f7[_0x1fa0d3(0xaf)]){if(_0x4e99f5=_0x47c31b['done']?_0x4dc775:_0x580f3a,_0x29e3f7[_0x1fa0d3(0xa8)]===_0x398554)continue;return{'value':_0x29e3f7['arg'],'done':_0x47c31b[_0x1fa0d3(0x157)]};}_0x1fa0d3(0x11e)===_0x29e3f7[_0x1fa0d3(0xaf)]&&(_0x4e99f5=_0x4dc775,_0x47c31b['method']=_0x1fa0d3(0x11e),_0x47c31b[_0x1fa0d3(0xa8)]=_0x29e3f7[_0x1fa0d3(0xa8)]);}};}function _0x5a8e79(_0x4dc9b6,_0x431f95){var _0x56f1ff=_0xef439d,_0x555cac=_0x431f95['method'],_0x1d6739=_0x4dc9b6[_0x56f1ff(0x126)][_0x555cac];if(_0x1d6739===_0x346a6f)return _0x431f95['delegate']=null,_0x56f1ff(0x11e)===_0x555cac&&_0x4dc9b6[_0x56f1ff(0x126)][_0x56f1ff(0xff)]&&(_0x431f95['method']='return',_0x431f95['arg']=_0x346a6f,_0x5a8e79(_0x4dc9b6,_0x431f95),'throw'===_0x431f95['method'])||_0x56f1ff(0xff)!==_0x555cac&&(_0x431f95[_0x56f1ff(0xfa)]=_0x56f1ff(0x11e),_0x431f95[_0x56f1ff(0xa8)]=new TypeError('The\x20iterator\x20does\x20not\x20provide\x20a\x20\x27'+_0x555cac+'\x27\x20method')),_0x398554;var _0x516a90=_0x439559(_0x1d6739,_0x4dc9b6[_0x56f1ff(0x126)],_0x431f95[_0x56f1ff(0xa8)]);if('throw'===_0x516a90[_0x56f1ff(0xaf)])return _0x431f95[_0x56f1ff(0xfa)]=_0x56f1ff(0x11e),_0x431f95[_0x56f1ff(0xa8)]=_0x516a90['arg'],_0x431f95['delegate']=null,_0x398554;var _0x42e5fa=_0x516a90['arg'];return _0x42e5fa?_0x42e5fa[_0x56f1ff(0x157)]?(_0x431f95[_0x4dc9b6['resultName']]=_0x42e5fa['value'],_0x431f95[_0x56f1ff(0x137)]=_0x4dc9b6[_0x56f1ff(0xba)],_0x56f1ff(0xff)!==_0x431f95[_0x56f1ff(0xfa)]&&(_0x431f95[_0x56f1ff(0xfa)]=_0x56f1ff(0x137),_0x431f95['arg']=_0x346a6f),_0x431f95['delegate']=null,_0x398554):_0x42e5fa:(_0x431f95['method']='throw',_0x431f95[_0x56f1ff(0xa8)]=new TypeError(_0x56f1ff(0x11f)),_0x431f95['delegate']=null,_0x398554);}function _0x430bbe(_0x5ab51b){var _0x6b3f6=_0xef439d,_0x6f7ff4={'tryLoc':_0x5ab51b[0x0]};0x1 in _0x5ab51b&&(_0x6f7ff4[_0x6b3f6(0xc4)]=_0x5ab51b[0x1]),0x2 in _0x5ab51b&&(_0x6f7ff4[_0x6b3f6(0xcd)]=_0x5ab51b[0x2],_0x6f7ff4[_0x6b3f6(0x9b)]=_0x5ab51b[0x3]),this[_0x6b3f6(0x123)]['push'](_0x6f7ff4);}function _0x5c23f5(_0x158de5){var _0x2d108d=_0xef439d,_0x10b1ec=_0x158de5[_0x2d108d(0xe6)]||{};_0x10b1ec['type']='normal',delete _0x10b1ec[_0x2d108d(0xa8)],_0x158de5['completion']=_0x10b1ec;}function _0x1b58aa(_0x221bee){this['tryEntries']=[{'tryLoc':'root'}],_0x221bee['forEach'](_0x430bbe,this),this['reset'](!0x0);}function _0x433456(_0x10ea7d){var _0x3f1f80=_0xef439d;if(_0x10ea7d||''===_0x10ea7d){var _0x5166fb=_0x10ea7d[_0x194053];if(_0x5166fb)return _0x5166fb[_0x3f1f80(0xf8)](_0x10ea7d);if(_0x3f1f80(0x9e)==typeof _0x10ea7d['next'])return _0x10ea7d;if(!isNaN(_0x10ea7d['length'])){var _0x4b1f65=-0x1,_0x1ce549=function _0x15f8e9(){var _0x1b532d=_0x3f1f80;for(;++_0x4b1f65<_0x10ea7d['length'];)if(_0x31a265[_0x1b532d(0xf8)](_0x10ea7d,_0x4b1f65))return _0x15f8e9['value']=_0x10ea7d[_0x4b1f65],_0x15f8e9['done']=!0x1,_0x15f8e9;return _0x15f8e9['value']=_0x346a6f,_0x15f8e9['done']=!0x0,_0x15f8e9;};return _0x1ce549['next']=_0x1ce549;}}throw new TypeError(_typeof(_0x10ea7d)+'\x20is\x20not\x20iterable');}return _0x19dba8['prototype']=_0x265efe,_0x478407(_0x5440e3,_0xef439d(0x15b),{'value':_0x265efe,'configurable':!0x0}),_0x478407(_0x265efe,_0xef439d(0x15b),{'value':_0x19dba8,'configurable':!0x0}),_0x19dba8[_0xef439d(0xe4)]=_0x363d36(_0x265efe,_0x32fa08,'GeneratorFunction'),_0x18a24d['isGeneratorFunction']=function(_0x2199e4){var _0x25bd90=_0xef439d,_0xe83294='function'==typeof _0x2199e4&&_0x2199e4['constructor'];return!!_0xe83294&&(_0xe83294===_0x19dba8||_0x25bd90(0xb4)===(_0xe83294[_0x25bd90(0xe4)]||_0xe83294['name']));},_0x18a24d[_0xef439d(0xf9)]=function(_0x36d011){var _0x4e4247=_0xef439d;return Object[_0x4e4247(0x127)]?Object[_0x4e4247(0x127)](_0x36d011,_0x265efe):(_0x36d011[_0x4e4247(0xb2)]=_0x265efe,_0x363d36(_0x36d011,_0x32fa08,'GeneratorFunction')),_0x36d011['prototype']=Object[_0x4e4247(0xca)](_0x5440e3),_0x36d011;},_0x18a24d['awrap']=function(_0x15cdfb){return{'__await':_0x15cdfb};},_0x3b7671(_0x599800['prototype']),_0x363d36(_0x599800['prototype'],_0x38fa94,function(){return this;}),_0x18a24d['AsyncIterator']=_0x599800,_0x18a24d[_0xef439d(0xf6)]=function(_0x5a9e76,_0x1eae0b,_0x524241,_0x1a5cd2,_0x31ba2c){var _0x1e430b=_0xef439d;void 0x0===_0x31ba2c&&(_0x31ba2c=Promise);var _0x2d13f6=new _0x599800(_0x565aca(_0x5a9e76,_0x1eae0b,_0x524241,_0x1a5cd2),_0x31ba2c);return _0x18a24d[_0x1e430b(0xef)](_0x1eae0b)?_0x2d13f6:_0x2d13f6['next']()[_0x1e430b(0x99)](function(_0x11d1dc){var _0x25d203=_0x1e430b;return _0x11d1dc['done']?_0x11d1dc[_0x25d203(0xd0)]:_0x2d13f6['next']();});},_0x3b7671(_0x5440e3),_0x363d36(_0x5440e3,_0x32fa08,'Generator'),_0x363d36(_0x5440e3,_0x194053,function(){return this;}),_0x363d36(_0x5440e3,'toString',function(){var _0x19b8a8=_0xef439d;return _0x19b8a8(0xc5);}),_0x18a24d['keys']=function(_0x459927){var _0x5c9131=_0xef439d,_0x1ff911=Object(_0x459927),_0x391980=[];for(var _0x1fd690 in _0x1ff911)_0x391980[_0x5c9131(0xeb)](_0x1fd690);return _0x391980[_0x5c9131(0x15e)](),function _0xe62e4a(){var _0x2e5e5f=_0x5c9131;for(;_0x391980[_0x2e5e5f(0xb8)];){var _0xaab00d=_0x391980['pop']();if(_0xaab00d in _0x1ff911)return _0xe62e4a['value']=_0xaab00d,_0xe62e4a[_0x2e5e5f(0x157)]=!0x1,_0xe62e4a;}return _0xe62e4a['done']=!0x0,_0xe62e4a;};},_0x18a24d['values']=_0x433456,_0x1b58aa[_0xef439d(0x134)]={'constructor':_0x1b58aa,'reset':function _0x1210a6(_0x461b8e){var _0x3adf9a=_0xef439d;if(this[_0x3adf9a(0x102)]=0x0,this['next']=0x0,this['sent']=this['_sent']=_0x346a6f,this['done']=!0x1,this['delegate']=null,this['method']=_0x3adf9a(0x137),this[_0x3adf9a(0xa8)]=_0x346a6f,this[_0x3adf9a(0x123)][_0x3adf9a(0x147)](_0x5c23f5),!_0x461b8e){for(var _0x1fd16a in this)'t'===_0x1fd16a[_0x3adf9a(0x135)](0x0)&&_0x31a265[_0x3adf9a(0xf8)](this,_0x1fd16a)&&!isNaN(+_0x1fd16a['slice'](0x1))&&(this[_0x1fd16a]=_0x346a6f);}},'stop':function _0x52a11f(){var _0x556a73=_0xef439d;this[_0x556a73(0x157)]=!0x0;var _0x2f0cbd=this['tryEntries'][0x0][_0x556a73(0xe6)];if(_0x556a73(0x11e)===_0x2f0cbd[_0x556a73(0xaf)])throw _0x2f0cbd['arg'];return this['rval'];},'dispatchException':function _0x4db19b(_0x61c3ad){var _0x5df3c2=_0xef439d;if(this[_0x5df3c2(0x157)])throw _0x61c3ad;var _0x44cb71=this;function _0x28ffb0(_0x39dd83,_0x149c44){var _0xbe767c=_0x5df3c2;return _0x225f21[_0xbe767c(0xaf)]=_0xbe767c(0x11e),_0x225f21[_0xbe767c(0xa8)]=_0x61c3ad,_0x44cb71['next']=_0x39dd83,_0x149c44&&(_0x44cb71[_0xbe767c(0xfa)]=_0xbe767c(0x137),_0x44cb71[_0xbe767c(0xa8)]=_0x346a6f),!!_0x149c44;}for(var _0x11a885=this['tryEntries'][_0x5df3c2(0xb8)]-0x1;_0x11a885>=0x0;--_0x11a885){var _0x29da9a=this[_0x5df3c2(0x123)][_0x11a885],_0x225f21=_0x29da9a['completion'];if(_0x5df3c2(0x121)===_0x29da9a['tryLoc'])return _0x28ffb0(_0x5df3c2(0x153));if(_0x29da9a['tryLoc']<=this[_0x5df3c2(0x102)]){var _0x46345a=_0x31a265[_0x5df3c2(0xf8)](_0x29da9a,_0x5df3c2(0xc4)),_0x41196c=_0x31a265[_0x5df3c2(0xf8)](_0x29da9a,_0x5df3c2(0xcd));if(_0x46345a&&_0x41196c){if(this[_0x5df3c2(0x102)]<_0x29da9a['catchLoc'])return _0x28ffb0(_0x29da9a[_0x5df3c2(0xc4)],!0x0);if(this['prev']<_0x29da9a['finallyLoc'])return _0x28ffb0(_0x29da9a['finallyLoc']);}else{if(_0x46345a){if(this['prev']<_0x29da9a[_0x5df3c2(0xc4)])return _0x28ffb0(_0x29da9a[_0x5df3c2(0xc4)],!0x0);}else{if(!_0x41196c)throw new Error('try\x20statement\x20without\x20catch\x20or\x20finally');if(this['prev']<_0x29da9a[_0x5df3c2(0xcd)])return _0x28ffb0(_0x29da9a['finallyLoc']);}}}}},'abrupt':function _0x89f7b2(_0x396985,_0x36e7b2){var _0x1e3497=_0xef439d;for(var _0x336c9b=this['tryEntries']['length']-0x1;_0x336c9b>=0x0;--_0x336c9b){var _0x3eb5c1=this[_0x1e3497(0x123)][_0x336c9b];if(_0x3eb5c1[_0x1e3497(0x117)]<=this['prev']&&_0x31a265[_0x1e3497(0xf8)](_0x3eb5c1,_0x1e3497(0xcd))&&this['prev']<_0x3eb5c1[_0x1e3497(0xcd)]){var _0x24e6c4=_0x3eb5c1;break;}}_0x24e6c4&&(_0x1e3497(0xa9)===_0x396985||_0x1e3497(0xe5)===_0x396985)&&_0x24e6c4['tryLoc']<=_0x36e7b2&&_0x36e7b2<=_0x24e6c4[_0x1e3497(0xcd)]&&(_0x24e6c4=null);var _0x442c1=_0x24e6c4?_0x24e6c4[_0x1e3497(0xe6)]:{};return _0x442c1[_0x1e3497(0xaf)]=_0x396985,_0x442c1[_0x1e3497(0xa8)]=_0x36e7b2,_0x24e6c4?(this[_0x1e3497(0xfa)]='next',this[_0x1e3497(0x137)]=_0x24e6c4['finallyLoc'],_0x398554):this['complete'](_0x442c1);},'complete':function _0x41f914(_0x53daac,_0x488d1a){var _0x420e8f=_0xef439d;if('throw'===_0x53daac['type'])throw _0x53daac['arg'];return'break'===_0x53daac[_0x420e8f(0xaf)]||_0x420e8f(0xe5)===_0x53daac[_0x420e8f(0xaf)]?this['next']=_0x53daac[_0x420e8f(0xa8)]:'return'===_0x53daac[_0x420e8f(0xaf)]?(this['rval']=this[_0x420e8f(0xa8)]=_0x53daac['arg'],this['method']='return',this[_0x420e8f(0x137)]=_0x420e8f(0x153)):'normal'===_0x53daac['type']&&_0x488d1a&&(this[_0x420e8f(0x137)]=_0x488d1a),_0x398554;},'finish':function _0x1d0cc9(_0x12a1b9){var _0x557d63=_0xef439d;for(var _0x19604d=this['tryEntries'][_0x557d63(0xb8)]-0x1;_0x19604d>=0x0;--_0x19604d){var _0x2ecde3=this['tryEntries'][_0x19604d];if(_0x2ecde3['finallyLoc']===_0x12a1b9)return this[_0x557d63(0x145)](_0x2ecde3['completion'],_0x2ecde3['afterLoc']),_0x5c23f5(_0x2ecde3),_0x398554;}},'catch':function _0x52b93a(_0x530186){var _0x5a9e99=_0xef439d;for(var _0x3fa9c6=this['tryEntries']['length']-0x1;_0x3fa9c6>=0x0;--_0x3fa9c6){var _0x13ce4=this[_0x5a9e99(0x123)][_0x3fa9c6];if(_0x13ce4['tryLoc']===_0x530186){var _0x1cdece=_0x13ce4['completion'];if('throw'===_0x1cdece['type']){var _0x2071bf=_0x1cdece['arg'];_0x5c23f5(_0x13ce4);}return _0x2071bf;}}throw new Error('illegal\x20catch\x20attempt');},'delegateYield':function _0x144368(_0x4625a1,_0x3b9152,_0x214670){var _0x40340c=_0xef439d;return this[_0x40340c(0xd5)]={'iterator':_0x433456(_0x4625a1),'resultName':_0x3b9152,'nextLoc':_0x214670},'next'===this[_0x40340c(0xfa)]&&(this['arg']=_0x346a6f),_0x398554;}},_0x18a24d;}function ownKeys(_0xce59d5,_0x5d41f0){var _0x5450a0=_0x17f6,_0x3da799=Object[_0x5450a0(0xcc)](_0xce59d5);if(Object[_0x5450a0(0x13d)]){var _0x3a79e9=Object[_0x5450a0(0x13d)](_0xce59d5);_0x5d41f0&&(_0x3a79e9=_0x3a79e9['filter'](function(_0x1eddda){var _0x18319e=_0x5450a0;return Object[_0x18319e(0xa3)](_0xce59d5,_0x1eddda)[_0x18319e(0xde)];})),_0x3da799[_0x5450a0(0xeb)]['apply'](_0x3da799,_0x3a79e9);}return _0x3da799;}function _objectSpread(_0x89a55){var _0x4bf6e2=_0x17f6;for(var _0x4f5d1f=0x1;_0x4f5d1f<arguments['length'];_0x4f5d1f++){var _0x3898aa=null!=arguments[_0x4f5d1f]?arguments[_0x4f5d1f]:{};_0x4f5d1f%0x2?ownKeys(Object(_0x3898aa),!0x0)['forEach'](function(_0x379fa1){_defineProperty(_0x89a55,_0x379fa1,_0x3898aa[_0x379fa1]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x89a55,Object['getOwnPropertyDescriptors'](_0x3898aa)):ownKeys(Object(_0x3898aa))[_0x4bf6e2(0x147)](function(_0x25b14d){var _0x2e2244=_0x4bf6e2;Object[_0x2e2244(0x108)](_0x89a55,_0x25b14d,Object['getOwnPropertyDescriptor'](_0x3898aa,_0x25b14d));});}return _0x89a55;}function asyncGeneratorStep(_0x8e42b5,_0x517bee,_0x542379,_0x276b05,_0x5d090c,_0x14ad47,_0x9724a7){var _0x28efad=_0x17f6;try{var _0x27502b=_0x8e42b5[_0x14ad47](_0x9724a7),_0xd159be=_0x27502b['value'];}catch(_0x4ab00e){_0x542379(_0x4ab00e);return;}_0x27502b[_0x28efad(0x157)]?_0x517bee(_0xd159be):Promise['resolve'](_0xd159be)['then'](_0x276b05,_0x5d090c);}function _asyncToGenerator(_0x1db282){return function(){var _0x5443f1=this,_0x354184=arguments;return new Promise(function(_0x5cbd04,_0x55ae4e){var _0x448812=_0x1db282['apply'](_0x5443f1,_0x354184);function _0x3d4275(_0x535eca){asyncGeneratorStep(_0x448812,_0x5cbd04,_0x55ae4e,_0x3d4275,_0x68d6f,'next',_0x535eca);}function _0x68d6f(_0x787a55){asyncGeneratorStep(_0x448812,_0x5cbd04,_0x55ae4e,_0x3d4275,_0x68d6f,'throw',_0x787a55);}_0x3d4275(undefined);});};}function _classCallCheck(_0x4884e2,_0x47dbd7){var _0x300b12=_0x17f6;if(!(_0x4884e2 instanceof _0x47dbd7))throw new TypeError(_0x300b12(0x146));}function _defineProperties(_0x2d5567,_0x372a42){var _0xd17f30=_0x17f6;for(var _0x5a5d02=0x0;_0x5a5d02<_0x372a42['length'];_0x5a5d02++){var _0xdb867=_0x372a42[_0x5a5d02];_0xdb867[_0xd17f30(0xde)]=_0xdb867['enumerable']||![],_0xdb867['configurable']=!![];if('value'in _0xdb867)_0xdb867[_0xd17f30(0x15d)]=!![];Object['defineProperty'](_0x2d5567,_toPropertyKey(_0xdb867[_0xd17f30(0xee)]),_0xdb867);}}function _createClass(_0xc92584,_0x70259c,_0x5aff19){var _0x504773=_0x17f6;if(_0x70259c)_defineProperties(_0xc92584['prototype'],_0x70259c);if(_0x5aff19)_defineProperties(_0xc92584,_0x5aff19);return Object['defineProperty'](_0xc92584,_0x504773(0x134),{'writable':![]}),_0xc92584;}function _defineProperty(_0x1fdc0d,_0x2df137,_0x3b9ba4){return _0x2df137=_toPropertyKey(_0x2df137),_0x2df137 in _0x1fdc0d?Object['defineProperty'](_0x1fdc0d,_0x2df137,{'value':_0x3b9ba4,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x1fdc0d[_0x2df137]=_0x3b9ba4,_0x1fdc0d;}function _toPropertyKey(_0x4716bf){var _0x4f383c=_0x17f6,_0xefea90=_toPrimitive(_0x4716bf,_0x4f383c(0xf2));return'symbol'==_typeof(_0xefea90)?_0xefea90:String(_0xefea90);}function _toPrimitive(_0x1d3c64,_0x10e7d9){var _0x3e2267=_0x17f6;if(_0x3e2267(0x118)!=_typeof(_0x1d3c64)||!_0x1d3c64)return _0x1d3c64;var _0x1fdcee=_0x1d3c64[Symbol[_0x3e2267(0xcf)]];if(void 0x0!==_0x1fdcee){var _0x43117d=_0x1fdcee['call'](_0x1d3c64,_0x10e7d9||_0x3e2267(0x13b));if('object'!=_typeof(_0x43117d))return _0x43117d;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return(_0x3e2267(0xf2)===_0x10e7d9?String:Number)(_0x1d3c64);}import*as _0x4d812e from'deeptwins-cesium';import{cloneDeep,merge}from'lodash';function _0x17f6(_0x5b56f1,_0xc8b7f5){_0x5b56f1=_0x5b56f1-0x96;var _0x3a1e33=_0x3a1e();var _0x17f67c=_0x3a1e33[_0x5b56f1];if(_0x17f6['oDSOxZ']===undefined){var _0x311bd1=function(_0x1c9f89){var _0x109c5f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4d812e='',_0x3b58bf='';for(var _0x5a7dad=0x0,_0x672675,_0x278a56,_0x1f3255=0x0;_0x278a56=_0x1c9f89['charAt'](_0x1f3255++);~_0x278a56&&(_0x672675=_0x5a7dad%0x4?_0x672675*0x40+_0x278a56:_0x278a56,_0x5a7dad++%0x4)?_0x4d812e+=String['fromCharCode'](0xff&_0x672675>>(-0x2*_0x5a7dad&0x6)):0x0){_0x278a56=_0x109c5f['indexOf'](_0x278a56);}for(var _0x18a7c4=0x0,_0x51f4bc=_0x4d812e['length'];_0x18a7c4<_0x51f4bc;_0x18a7c4++){_0x3b58bf+='%'+('00'+_0x4d812e['charCodeAt'](_0x18a7c4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b58bf);};_0x17f6['XPGMLB']=_0x311bd1,_0x17f6['gQIxkG']={},_0x17f6['oDSOxZ']=!![];}var _0x5628fd=_0x3a1e33[0x0],_0xee1b2d=_0x5b56f1+_0x5628fd,_0x21b892=_0x17f6['gQIxkG'][_0xee1b2d];return!_0x21b892?(_0x17f67c=_0x17f6['XPGMLB'](_0x17f67c),_0x17f6['gQIxkG'][_0xee1b2d]=_0x17f67c):_0x17f67c=_0x21b892,_0x17f67c;}import{v4 as _0x3b58bf}from'uuid';import*as _0x5a7dad from'../constant';import _0x672675 from'../graphicLayer/PolylineEntity';var ModelRoamRealTime=(function(){var _0x18e6a6=_0x17f6;function _0x5106a5(_0xbb3191,_0x1cbd65){var _0x329f29=_0x17f6,_0x1e82f8=this,_0x585141;_classCallCheck(this,_0x5106a5),_defineProperty(this,'_mapContext',void 0x0),_defineProperty(this,_0x329f29(0x14d),void 0x0),_defineProperty(this,_0x329f29(0xbf),void 0x0),_defineProperty(this,_0x329f29(0x105),null),_defineProperty(this,'flyTo',![]),_defineProperty(this,'_onPositionUpdate',null),_defineProperty(this,'modelLayer',void 0x0),_defineProperty(this,'polylineLayer',void 0x0),_defineProperty(this,'historyPolylineLayer',void 0x0),_defineProperty(this,_0x329f29(0xc3),performance[_0x329f29(0x11a)]()),_defineProperty(this,_0x329f29(0xa5),0x0),_defineProperty(this,'_frameCount',0x0),_defineProperty(this,_0x329f29(0xe9),'N/A'),_defineProperty(this,'currentPos',null),_defineProperty(this,'receivedPositions',[]),_defineProperty(this,'completedSegments',[]),_defineProperty(this,'currentSegment',null),_defineProperty(this,_0x329f29(0xa4),[]),_defineProperty(this,'currentPointIndex',0x0),_defineProperty(this,'segmentCounter',0x0),_defineProperty(this,'TRAIL_POSITIONS_THRESHOLD',0x3e8),_defineProperty(this,_0x329f29(0xb6),[]),_defineProperty(this,_0x329f29(0x119),![]),_defineProperty(this,_0x329f29(0xe0),void 0x0),_defineProperty(this,'modelMatrix',new _0x4d812e[(_0x329f29(0x98))]()),_defineProperty(this,_0x329f29(0x133),new _0x4d812e['HeadingPitchRoll']()),_defineProperty(this,_0x329f29(0x140),_0x329f29(0x96)),_defineProperty(this,_0x329f29(0xbd),0x0),_defineProperty(this,_0x329f29(0xc1),0x0),_defineProperty(this,'rotationSpeed',0.05),_defineProperty(this,'firstCameraSettings',{'distance':0x0,'pitch':-0x2d}),_defineProperty(this,'thirdPersonSettings',{'distance':0x1f4,'pitch':-0x2d}),_defineProperty(this,_0x329f29(0x10c),function(){var _0x127f3c=_0x329f29,_0x537d89=performance[_0x127f3c(0x11a)]();_0x1e82f8[_0x127f3c(0x14f)]++;var _0x472505=_0x537d89-_0x1e82f8[_0x127f3c(0xc3)];_0x472505>0x3c&&(_0x1e82f8[_0x127f3c(0xe9)]=Math['min'](Math['round'](_0x1e82f8[_0x127f3c(0x14f)]*0x3e8/_0x472505),_0x1e82f8[_0x127f3c(0xdf)]()['targetFrameRate']),_0x1e82f8['_frameCount']=0x0,_0x1e82f8['_lastFrameTime']=_0x537d89);if(!_0x1e82f8[_0x127f3c(0xaa)]||_0x1e82f8[_0x127f3c(0x140)]!==_0x127f3c(0xed))return;if(_0x1e82f8['currentPointIndex']>=_0x1e82f8[_0x127f3c(0xaa)][_0x127f3c(0x101)][_0x127f3c(0xb8)]){_0x1e82f8['completeCurrentSegment'](),_0x1e82f8['_stepAccumulator']+=0x1;return;}_0x1e82f8['currentPos']=_0x1e82f8['currentSegment']['interpolatedPoints'][_0x1e82f8['currentPointIndex']];if(_0x1e82f8['currentPointIndex']>0x0){var _0x521b17=_0x1e82f8[_0x127f3c(0xaa)][_0x127f3c(0x101)][_0x1e82f8[_0x127f3c(0xf1)]-0x1];_0x1e82f8['getHeading'](_0x521b17,_0x1e82f8['currentPos']);}_0x1e82f8[_0x127f3c(0xc6)](),_0x1e82f8['updateTrailLine'](),_0x1e82f8['trailDataUpdated']=![];if(_0x1e82f8[_0x127f3c(0xbe)]){_0x1e82f8[_0x127f3c(0x149)]=_0x4d812e[_0x127f3c(0xea)]['headingPitchRollToFixedFrame'](_0x1e82f8[_0x127f3c(0x11c)],_0x1e82f8[_0x127f3c(0x133)],_0x4d812e['Ellipsoid'][_0x127f3c(0x15a)],_0x4d812e['Transforms']['localFrameToFixedFrameGenerator']('north','west')),_0x1e82f8[_0x127f3c(0xbe)]['modelMatrix']=_0x1e82f8['modelMatrix'];if(_0x1e82f8[_0x127f3c(0x12e)]){var _0x51bf39=_0x4d812e[_0x127f3c(0xb5)]['fromCartesian'](_0x1e82f8['currentPos']);_0x1e82f8[_0x127f3c(0x12e)]({'lng':_0x4d812e['Math'][_0x127f3c(0xe3)](_0x51bf39[_0x127f3c(0xd4)]),'lat':_0x4d812e['Math']['toDegrees'](_0x51bf39['latitude']),'alt':_0x51bf39[_0x127f3c(0xa7)]});}_0x1e82f8[_0x127f3c(0x105)]&&_0x1e82f8['updateCameraView']();}if(_0x1e82f8[_0x127f3c(0xe9)]===_0x127f3c(0xae))_0x1e82f8['currentPointIndex']++;else{var _0x310c87=_0x1e82f8['_fps']?_0x1e82f8['getMap']()['targetFrameRate']/_0x1e82f8['_fps']:0x1;_0x1e82f8[_0x127f3c(0xa5)]+=_0x310c87;var _0x47a18b=Math['max'](0x1,Math[_0x127f3c(0x111)](_0x1e82f8[_0x127f3c(0xa5)]));_0x1e82f8['_stepAccumulator']-=Math[_0x127f3c(0x100)](_0x47a18b,_0x1e82f8['_stepAccumulator']),_0x1e82f8['currentPointIndex']+=_0x47a18b;}});if(!_0xbb3191)throw new Error('undefined\x20map');if(!_0x1cbd65||!_0x1cbd65[_0x329f29(0xb9)]||!((_0x585141=_0x1cbd65[_0x329f29(0xb9)])!==null&&_0x585141!==void 0x0&&_0x585141[_0x329f29(0x139)]))throw new Error(_0x329f29(0x131));var _0xc26418=_0x1cbd65[_0x329f29(0xb9)],_0x226264=_0x1cbd65[_0x329f29(0x136)],_0x3ed58f=_0x1cbd65['onPositionUpdate'],_0x2c45df=_0x1cbd65['flyTo'];this['_mapContext']=_0xbb3191[_0x329f29(0xe1)],this[_0x329f29(0x14d)]=_0xc26418,this['polylineOptions']=_0x226264,this[_0x329f29(0x150)]=_0x2c45df||![],this['_onPositionUpdate']=_0x3ed58f;}return _createClass(_0x5106a5,[{'key':'getMap','value':function _0x310174(){return this['_mapContext']&&this['_mapContext']['getMap']();}},{'key':'updatePosition','value':function _0x77b6f6(_0x2d31ed){var _0x1dc38b=_0x17f6;if(!_0x2d31ed)return;if(this['status']===_0x1dc38b(0x159))return;!_0x2d31ed[_0x1dc38b(0x14a)]&&(_0x2d31ed['timestamp']=performance['now']());if(this[_0x1dc38b(0x14b)]['length']===0x0){this[_0x1dc38b(0x14b)]['push'](_0x2d31ed),this['currentPos']=_0x4d812e[_0x1dc38b(0x113)]['fromDegrees'](_0x2d31ed['lng'],_0x2d31ed[_0x1dc38b(0x144)],_0x2d31ed['alt']),this[_0x1dc38b(0x15f)](_0x2d31ed);this[_0x1dc38b(0x12e)]&&this[_0x1dc38b(0x12e)]({'lng':_0x2d31ed[_0x1dc38b(0xa1)],'lat':_0x2d31ed[_0x1dc38b(0x144)],'alt':_0x2d31ed[_0x1dc38b(0x10a)]});return;}var _0xe2dd46=this['receivedPositions'][this['receivedPositions'][_0x1dc38b(0xb8)]-0x1];if(this['isSamePosition'](_0x2d31ed,_0xe2dd46)){_0x2d31ed[_0x1dc38b(0x14a)]>=_0xe2dd46['timestamp']&&(_0xe2dd46[_0x1dc38b(0x14a)]=_0x2d31ed['timestamp'],_0xe2dd46['alt']=_0x2d31ed['alt']);return;}this['receivedPositions'][_0x1dc38b(0xeb)](_0x2d31ed),this[_0x1dc38b(0xf5)](_0xe2dd46,_0x2d31ed),this[_0x1dc38b(0x140)]===_0x1dc38b(0x96)&&this[_0x1dc38b(0x11d)]();}},{'key':'isSamePosition','value':function _0x1f354d(_0x194eb5,_0x31ffe4){var _0x5e4e8f=_0x17f6;return _0x194eb5['lng']===_0x31ffe4['lng']&&_0x194eb5['lat']===_0x31ffe4[_0x5e4e8f(0x144)]&&Math[_0x5e4e8f(0x138)](_0x194eb5[_0x5e4e8f(0x10a)]-_0x31ffe4[_0x5e4e8f(0x10a)])<0.1;}},{'key':'createNewSegment','value':function _0x3c8453(_0x1d7b27,_0x204ee4){var _0x4c09a5=_0x17f6,_0x18a954=_0x4d812e[_0x4c09a5(0x113)]['fromDegrees'](_0x1d7b27[_0x4c09a5(0xa1)],_0x1d7b27[_0x4c09a5(0x144)],_0x1d7b27['alt']),_0x57e9e4=_0x4d812e[_0x4c09a5(0x113)][_0x4c09a5(0x124)](_0x204ee4[_0x4c09a5(0xa1)],_0x204ee4[_0x4c09a5(0x144)],_0x204ee4['alt']),_0x5b6587=Math[_0x4c09a5(0xf7)](0x0,(_0x204ee4['timestamp']-_0x1d7b27[_0x4c09a5(0x14a)])/0x3e8),_0x169cd6=this['_getInterPosition'](_0x18a954,_0x57e9e4,_0x5b6587),_0x1bf548={'startPos':_0x1d7b27,'endPos':_0x204ee4,'interpolatedPoints':_0x169cd6,'segmentIndex':this[_0x4c09a5(0x13c)]++,'isCompleted':![],'isMovedToHistory':![]};!this[_0x4c09a5(0xaa)]?(this['currentSegment']=_0x1bf548,this['currentPointIndex']=0x0):this[_0x4c09a5(0xa4)][_0x4c09a5(0xeb)](_0x1bf548);}},{'key':'startRoaming','value':function _0x16d60b(){var _0x3b777c=_0x17f6;if(this['status']==='running')return;this['status']='running',this['_eventPostUpdate']=this[_0x3b777c(0xdf)]()['on'](_0x5a7dad['SCENE_EVENT_TYPE']['POST_UPDATE'],this['updateModel']);}},{'key':_0x18e6a6(0x12b),'value':function _0x877a25(_0x5e734e,_0x41db16,_0x15b27e){var _0x34de94=_0x18e6a6,_0x5c4cc6=[];if(!_0x5e734e||!_0x41db16)return console['error'](_0x34de94(0xbc)),_0x5c4cc6;var _0x335c7a=_0x4d812e[_0x34de94(0xb5)][_0x34de94(0xb1)](_0x5e734e),_0x4967e9=_0x4d812e[_0x34de94(0xb5)][_0x34de94(0xb1)](_0x41db16),_0x1a8b5f=[_0x4d812e['Math']['toDegrees'](_0x335c7a[_0x34de94(0xd4)]),_0x4d812e[_0x34de94(0xe8)][_0x34de94(0xe3)](_0x335c7a['latitude'])],_0xa18b9a=[_0x4d812e[_0x34de94(0xe8)]['toDegrees'](_0x4967e9['longitude']),_0x4d812e[_0x34de94(0xe8)]['toDegrees'](_0x4967e9['latitude'])],_0x25b055=_0x4967e9['height']-_0x335c7a['height'],_0x5111d1=_0x4d812e['Cartesian3'][_0x34de94(0x9a)](_0x4d812e['Cartesian3']['fromDegrees'](_0x1a8b5f[0x0],_0x1a8b5f[0x1],_0x335c7a['height']),_0x4d812e[_0x34de94(0x113)][_0x34de94(0x124)](_0xa18b9a[0x0],_0xa18b9a[0x1],_0x335c7a[_0x34de94(0xa7)])),_0x486695=Math['sqrt'](_0x5111d1*_0x5111d1+_0x25b055*_0x25b055);if(_0x486695===0x0)return _0x5c4cc6['push'](_0x5e734e),_0x5c4cc6;var _0x54bfa3=Math[_0x34de94(0xf7)](0x2,Math['floor'](_0x15b27e*this[_0x34de94(0xdf)]()[_0x34de94(0xc0)])-0x1),_0x51caa9=0x1/(_0x54bfa3-0x1);for(var _0xd4c955=0x0;_0xd4c955<_0x54bfa3;_0xd4c955++){var _0x4db5fc=_0xd4c955*_0x51caa9,_0x564502=_0x1a8b5f[0x0]+(_0xa18b9a[0x0]-_0x1a8b5f[0x0])*_0x4db5fc,_0x180a55=_0x1a8b5f[0x1]+(_0xa18b9a[0x1]-_0x1a8b5f[0x1])*_0x4db5fc,_0x198b85=void 0x0;Math[_0x34de94(0x138)](_0x25b055)>0.1?_0x198b85=(0x1-Math[_0x34de94(0x154)](_0x4db5fc*Math['PI']))/0x2:_0x198b85=_0x4db5fc;var _0x494117=_0x335c7a[_0x34de94(0xa7)]+_0x25b055*_0x198b85,_0x247027=_0x4d812e[_0x34de94(0x113)]['fromDegrees'](_0x564502,_0x180a55,_0x494117);_0x5c4cc6['push'](_0x247027);}return!_0x5c4cc6[_0x5c4cc6['length']-0x1]['equals'](_0x41db16)&&_0x5c4cc6['push'](_0x41db16),_0x5c4cc6;}},{'key':_0x18e6a6(0x15f),'value':(function(){var _0x6e1d5b=_0x18e6a6,_0x434311=_asyncToGenerator(_regeneratorRuntime()[_0x6e1d5b(0xf9)](function _0x63d510(_0x5ab235){var _0x5ce4f4=_0x6e1d5b,_0x8bafdd=this,_0x52a41c,_0xac5bcb;return _regeneratorRuntime()[_0x5ce4f4(0xd2)](function _0x2a00e1(_0x1cb780){var _0x5eb3c9=_0x5ce4f4;while(0x1)switch(_0x1cb780['prev']=_0x1cb780['next']){case 0x0:_0x52a41c=_0x4d812e[_0x5eb3c9(0x113)]['fromDegrees'](_0x5ab235[_0x5eb3c9(0xa1)],_0x5ab235['lat'],_0x5ab235['alt']),this[_0x5eb3c9(0x149)]=_0x4d812e[_0x5eb3c9(0xea)]['headingPitchRollToFixedFrame'](_0x52a41c,this[_0x5eb3c9(0x133)],_0x4d812e[_0x5eb3c9(0xd1)]['WGS84'],_0x4d812e['Transforms'][_0x5eb3c9(0x14e)](_0x5eb3c9(0x103),_0x5eb3c9(0xac))),_0x1cb780['next']=0x4;return _0x4d812e[_0x5eb3c9(0xab)]['fromGltfAsync'](_objectSpread({'id':_0x3b58bf(),'modelMatrix':this[_0x5eb3c9(0x149)]},this[_0x5eb3c9(0x14d)]));case 0x4:_0xac5bcb=_0x1cb780['sent'];if(!(this['status']==='destroy')){_0x1cb780[_0x5eb3c9(0x137)]=0x7;break;}return _0x1cb780['abrupt'](_0x5eb3c9(0xff));case 0x7:this['modelLayer']=this['getMap']()['scene']['primitives'][_0x5eb3c9(0x97)](_0xac5bcb),this['modelLayer'][_0x5eb3c9(0xfb)]['addEventListener'](function(){var _0x8accff=_0x5eb3c9;_0x8bafdd[_0x8accff(0x150)]&&_0x8bafdd['_flyToModel'](),_0x8bafdd['follow']&&_0x8bafdd['updateCameraView'](),_0x8bafdd[_0x8accff(0xbe)][_0x8accff(0x132)][_0x8accff(0x107)]({'loop':_0x4d812e['ModelAnimationLoop'][_0x8accff(0xc8)],'multiplier':0x2});});case 0x9:case'end':return _0x1cb780['stop']();}},_0x63d510,this);}));function _0x1e30cf(_0xfc27ab){return _0x434311['apply'](this,arguments);}return _0x1e30cf;}())},{'key':'completeCurrentSegment','value':function _0x3333fa(){var _0x47cd6f=_0x18e6a6;if(!this[_0x47cd6f(0xaa)])return;this['currentSegment']['isCompleted']=!![],this[_0x47cd6f(0x11b)]['push'](this['currentSegment']),this['futureSegments'][_0x47cd6f(0xb8)]>0x0?(this[_0x47cd6f(0xaa)]=this['futureSegments']['shift'](),this['currentPointIndex']=0x0):(this[_0x47cd6f(0xaa)]=null,this[_0x47cd6f(0xf1)]=0x0);}},{'key':_0x18e6a6(0xb3),'value':function _0x5a2cca(){var _0x1c2657=_0x18e6a6,_0x57b302=this,_0x18fdd7=merge(_0x5a7dad['DEFAULT_POLYLINE_OPTIONS'](),cloneDeep(this['polylineOptions']||{})),_0x247291=_0x672675['handleOptions'](_0x18fdd7);this[_0x1c2657(0xe7)]=this['getMap']()['entities']['add']({'id':_0x3b58bf(),'polyline':_objectSpread({'positions':new _0x4d812e['CallbackProperty'](function(){var _0x46bcad=_0x57b302['getTrailLinePositions']();return _0x57b302['trailDataUpdated']=!![],_0x46bcad;},![])},_0x247291)}),this['polylineLayer'][_0x1c2657(0x136)]['show']=_0x247291['show'];}},{'key':'createHistoryTrailLine','value':function _0x296a8f(){var _0x14cab3=_0x18e6a6,_0x112b59=merge(_0x5a7dad[_0x14cab3(0x158)](),cloneDeep(this['polylineOptions']||{})),_0x480a3b=_0x672675['handleOptions'](_0x112b59);this[_0x14cab3(0xf0)]=this['getMap']()['entities']['add']({'id':_0x3b58bf(),'polyline':_objectSpread({'positions':this['historyTrailPositions']},_0x480a3b)}),this[_0x14cab3(0xe7)]&&(this['historyPolylineLayer']['polyline'][_0x14cab3(0x15c)]=this['polylineLayer'][_0x14cab3(0x136)][_0x14cab3(0x15c)]);}},{'key':'getTrailLinePositions','value':function _0x40889f(){var _0x363723=_0x18e6a6,_0x1cf04a=[];if(!Array['isArray'](this['receivedPositions'])||this['receivedPositions'][_0x363723(0xb8)]<0x1)return _0x1cf04a;Array[_0x363723(0xb7)](this['completedSegments'])&&this[_0x363723(0x11b)]['forEach'](function(_0x433f51){var _0x5630aa=_0x363723;_0x433f51[_0x5630aa(0x12a)]&&_0x433f51[_0x5630aa(0xc7)]&&!_0x433f51['isMovedToHistory']&&(_0x1cf04a['length']===0x0&&_0x1cf04a[_0x5630aa(0xeb)](_0x4d812e[_0x5630aa(0x113)][_0x5630aa(0x124)](_0x433f51['startPos']['lng'],_0x433f51['startPos']['lat'],_0x433f51['startPos'][_0x5630aa(0x10a)])),_0x1cf04a[_0x5630aa(0xeb)](_0x4d812e['Cartesian3'][_0x5630aa(0x124)](_0x433f51[_0x5630aa(0xc7)][_0x5630aa(0xa1)],_0x433f51[_0x5630aa(0xc7)][_0x5630aa(0x144)],_0x433f51['endPos']['alt'])));});this[_0x363723(0x10b)](_0x1cf04a);if(this['currentSegment']&&Array['isArray'](this[_0x363723(0xaa)]['interpolatedPoints'])&&this['currentPointIndex']>=0x0){_0x1cf04a['length']===0x0&&this['currentSegment'][_0x363723(0x12a)]&&_0x1cf04a[_0x363723(0xeb)](_0x4d812e[_0x363723(0x113)]['fromDegrees'](this[_0x363723(0xaa)]['startPos'][_0x363723(0xa1)],this[_0x363723(0xaa)][_0x363723(0x12a)][_0x363723(0x144)],this['currentSegment']['startPos']['alt']));for(var _0x125a61=0x0;_0x125a61<=this['currentPointIndex']&&_0x125a61<this['currentSegment']['interpolatedPoints']['length'];_0x125a61++){_0x1cf04a[_0x363723(0xeb)](this[_0x363723(0xaa)]['interpolatedPoints'][_0x125a61]);}}return _0x1cf04a;}},{'key':_0x18e6a6(0x10b),'value':function _0x3e4ff4(_0x59f947){var _0x50216e=_0x18e6a6;if(_0x59f947['length']>this[_0x50216e(0x148)]){var _0x3375b0,_0x41c270=_0x59f947[_0x50216e(0x128)](0x0,this['TRAIL_POSITIONS_THRESHOLD']);_0x59f947[_0x50216e(0xd3)](0x0,this['TRAIL_POSITIONS_THRESHOLD']),this[_0x50216e(0xa2)](),(_0x3375b0=this['historyTrailPositions'])['push']['apply'](_0x3375b0,_toConsumableArray(_0x41c270)),!this[_0x50216e(0xf0)]?this['createHistoryTrailLine']():this[_0x50216e(0xf0)][_0x50216e(0x136)]['positions']=this['historyTrailPositions'],this[_0x50216e(0xe7)]&&this[_0x50216e(0xf0)]&&(this['historyPolylineLayer']['polyline']['show']=this[_0x50216e(0xe7)]['polyline'][_0x50216e(0x15c)]);}}},{'key':_0x18e6a6(0xa2),'value':function _0x5ed5d4(){var _0xcede59=_0x18e6a6;if(!Array['isArray'](this['completedSegments'])||this[_0xcede59(0x11b)]['length']===0x0)return;var _0x2b6dc6=this['completedSegments'][_0xcede59(0xb8)]-0x2;for(var _0x495506=0x0;_0x495506<_0x2b6dc6;_0x495506++){var _0x4319f3=this[_0xcede59(0x11b)][_0x495506];_0x4319f3[_0xcede59(0xd8)]&&!_0x4319f3[_0xcede59(0xd7)]&&(_0x4319f3[_0xcede59(0xd7)]=!![]);}}},{'key':'updateTrailLine','value':function _0x1dda71(){var _0x2032ef=_0x18e6a6;!this[_0x2032ef(0xe7)]&&this[_0x2032ef(0x14b)]['length']>=0x2&&this[_0x2032ef(0xb3)](),this['polylineLayer']&&!this[_0x2032ef(0x119)]&&(this['getTrailLinePositions'](),this['trailDataUpdated']=!![]);}},{'key':_0x18e6a6(0x151),'value':function _0x2f4d1c(_0x2400f9,_0x413bf1){var _0x7395c2=_0x18e6a6,_0x435f57=_0x4d812e[_0x7395c2(0xb5)]['fromCartesian'](_0x2400f9),_0x5a33fe=_0x4d812e[_0x7395c2(0xb5)][_0x7395c2(0xb1)](_0x413bf1),_0x164d2f=[_0x4d812e[_0x7395c2(0xe8)][_0x7395c2(0xe3)](_0x435f57[_0x7395c2(0xd4)]),_0x4d812e[_0x7395c2(0xe8)][_0x7395c2(0xe3)](_0x435f57[_0x7395c2(0x10f)])],_0x1c1e22=[_0x4d812e['Math']['toDegrees'](_0x5a33fe['longitude']),_0x4d812e[_0x7395c2(0xe8)][_0x7395c2(0xe3)](_0x5a33fe['latitude'])],_0x22f67b=_0x4d812e[_0x7395c2(0x113)]['distance'](_0x4d812e['Cartesian3']['fromDegrees'](_0x164d2f[0x0],_0x164d2f[0x1],_0x435f57[_0x7395c2(0xa7)]),_0x4d812e['Cartesian3']['fromDegrees'](_0x1c1e22[0x0],_0x1c1e22[0x1],_0x435f57['height']));if(_0x22f67b<0.1)return;var _0x389825=_0x4d812e[_0x7395c2(0x113)][_0x7395c2(0x13a)](_0x413bf1,_0x2400f9,new _0x4d812e[(_0x7395c2(0x113))]());_0x4d812e[_0x7395c2(0x113)]['normalize'](_0x389825,_0x389825);var _0xf642c5=_0x4d812e['Transforms'][_0x7395c2(0x12c)](_0x2400f9),_0xcb6d75=_0x4d812e[_0x7395c2(0x98)]['multiplyByPointAsVector'](_0x4d812e['Matrix4'][_0x7395c2(0x125)](_0xf642c5,new _0x4d812e['Matrix4']()),_0x389825,new _0x4d812e['Cartesian3']());this[_0x7395c2(0xbd)]=Math['atan2'](_0xcb6d75['x'],_0xcb6d75['y']);}},{'key':'updateHeading','value':function _0x5905c2(){var _0x163a8e=_0x18e6a6,_0x231c8b=this['targetHeading']-this[_0x163a8e(0xc1)];while(_0x231c8b>Math['PI'])_0x231c8b-=0x2*Math['PI'];while(_0x231c8b<-Math['PI'])_0x231c8b+=0x2*Math['PI'];Math[_0x163a8e(0x138)](_0x231c8b)>this[_0x163a8e(0xb0)]?this['currentHeading']+=Math[_0x163a8e(0xa6)](_0x231c8b)*this['rotationSpeed']:this[_0x163a8e(0xc1)]=this[_0x163a8e(0xbd)];while(this['currentHeading']<0x0)this['currentHeading']+=0x2*Math['PI'];while(this[_0x163a8e(0xc1)]>0x2*Math['PI'])this[_0x163a8e(0xc1)]-=0x2*Math['PI'];this['hpRoll']=new _0x4d812e['HeadingPitchRoll'](this[_0x163a8e(0xc1)],0x0,0x0);}},{'key':'updateCameraView','value':function _0x1abbf7(){var _0x38f85f=_0x18e6a6;if(!this[_0x38f85f(0xbe)]&&this[_0x38f85f(0x11c)])return;if(this['follow']===_0x38f85f(0xda))this['updateFirstPersonView'](this[_0x38f85f(0x11c)]);else this[_0x38f85f(0x105)]==='third'&&this['updateThirdPersonView'](this[_0x38f85f(0x11c)]);}},{'key':_0x18e6a6(0x130),'value':function _0x2ca940(_0x2aeeb9){var _0x2b1731=_0x18e6a6,_0x412f94=this[_0x2b1731(0x133)][_0x2b1731(0x109)],_0x3410a0=_0x4d812e[_0x2b1731(0xe8)][_0x2b1731(0x129)](this['firstCameraSettings']['pitch']),_0x40b3b8=0x0,_0x2a6389=new _0x4d812e['HeadingPitchRoll'](_0x412f94,_0x3410a0,_0x40b3b8),_0x3f6872=_0x4d812e[_0x2b1731(0xea)][_0x2b1731(0x106)](_0x2aeeb9,_0x2a6389,_0x4d812e[_0x2b1731(0xd1)]['WGS84'],_0x4d812e['Transforms']['localFrameToFixedFrameGenerator'](_0x2b1731(0x112),_0x2b1731(0x103))),_0x1be05a=new _0x4d812e['Cartesian3'](0x0,0x1,0x0),_0x56cb0f=_0x4d812e['Matrix4'][_0x2b1731(0xce)](_0x3f6872,new _0x4d812e['Matrix3']()),_0x4a82df=_0x4d812e['Matrix3'][_0x2b1731(0xf4)](_0x56cb0f,_0x1be05a,new _0x4d812e[(_0x2b1731(0x113))]()),_0x230409=_0x4d812e['Cartesian3']['multiplyByScalar'](_0x4a82df,-this['firstCameraSettings']['distance'],new _0x4d812e[(_0x2b1731(0x113))]()),_0x42c2ae=_0x4d812e[_0x2b1731(0x113)][_0x2b1731(0x97)](_0x2aeeb9,_0x230409,new _0x4d812e['Cartesian3']());this['getMap']()[_0x2b1731(0xd9)]['setView']({'destination':_0x42c2ae,'orientation':{'heading':_0x412f94,'pitch':_0x3410a0,'roll':_0x40b3b8}});}},{'key':_0x18e6a6(0xad),'value':function _0x304c04(_0x3ff23a){var _0x48642a=_0x18e6a6,_0x16cac5=_0x4d812e['Transforms']['headingPitchRollToFixedFrame'](_0x3ff23a,this['hpRoll'],_0x4d812e[_0x48642a(0xd1)][_0x48642a(0x15a)],_0x4d812e[_0x48642a(0xea)]['localFrameToFixedFrameGenerator']('north',_0x48642a(0xac))),_0x5763fb=new _0x4d812e[(_0x48642a(0x113))](-this['thirdPersonSettings']['distance'],0x0,0x1f4),_0x1f3ee6=_0x4d812e['Matrix4'][_0x48642a(0x10e)](_0x16cac5,_0x5763fb,new _0x4d812e[(_0x48642a(0x113))]());this[_0x48642a(0xdf)]()['camera']['setView']({'destination':_0x1f3ee6,'orientation':{'heading':this[_0x48642a(0x133)][_0x48642a(0x109)],'pitch':_0x4d812e['Math']['toRadians'](this[_0x48642a(0xfc)]['pitch']),'roll':0x0}});}},{'key':'setFollowFirst','value':function _0xc3c300(_0x1ae647){var _0x2633ce=_0x18e6a6;if(this['status']==='destroy')return;this[_0x2633ce(0xdc)]=_objectSpread(_objectSpread({},this[_0x2633ce(0xdc)]),_0x1ae647),this['follow']=_0x2633ce(0xda),this['updateCameraView']();}},{'key':'setFollowThird','value':function _0x50b345(_0x2844d3){var _0x396206=_0x18e6a6;if(this[_0x396206(0x140)]==='destroy')return;this['thirdPersonSettings']=_objectSpread(_objectSpread({},this['thirdPersonSettings']),_0x2844d3),this[_0x396206(0x105)]=_0x396206(0x14c),this[_0x396206(0x122)]();}},{'key':'cancelFollow','value':function _0x234124(){var _0x44406d=_0x18e6a6;if(this[_0x44406d(0x140)]===_0x44406d(0x159))return;this['follow']=null;}},{'key':'_flyToModel','value':function _0x307069(){var _0x2cfe2b=_0x18e6a6,_0x223706=this['modelLayer'][_0x2cfe2b(0x155)];_0x223706[_0x2cfe2b(0xf3)]=Math[_0x2cfe2b(0xf7)](_0x223706[_0x2cfe2b(0xf3)]||0x64),this['getMap']()[_0x2cfe2b(0xd9)][_0x2cfe2b(0x104)](_0x223706);}},{'key':_0x18e6a6(0xec),'value':function _0xb5ba64(_0x5e68c0){var _0x130094=_0x18e6a6;this['polylineOptions'][_0x130094(0x15c)]=_0x5e68c0,this[_0x130094(0xe7)]&&(this[_0x130094(0xe7)][_0x130094(0x136)]['show']=_0x5e68c0),this[_0x130094(0xf0)]&&(this[_0x130094(0xf0)]['polyline'][_0x130094(0x15c)]=_0x5e68c0),_0x5e68c0&&this[_0x130094(0xe7)]&&(this[_0x130094(0x119)]=![],this[_0x130094(0x120)](),this['trailDataUpdated']=!![]);}},{'key':'forceUpdateTrailData','value':function _0x5a7ecb(){var _0x4f014c=_0x18e6a6;this['polylineLayer']&&(this[_0x4f014c(0x119)]=![],this[_0x4f014c(0x120)](),this[_0x4f014c(0x119)]=!![]);}},{'key':'on','value':function _0x509797(_0x251677,_0x4487fb){var _0x2c90e9=_0x18e6a6;return this['getMap']()['_event'][_0x2c90e9(0xfd)](_0x251677,_0x4487fb,this);}},{'key':'destroy','value':function _0x2cbf82(){var _0x2ce359=_0x18e6a6;if(this[_0x2ce359(0x140)]===_0x2ce359(0x159))return;this[_0x2ce359(0x140)]='destroy',this['_eventPostUpdate']&&this['_eventPostUpdate'][_0x2ce359(0x152)](),this['modelLayer']&&(this[_0x2ce359(0xdf)]()[_0x2ce359(0xcb)]['primitives'][_0x2ce359(0xc2)](this[_0x2ce359(0xbe)]),this[_0x2ce359(0xbe)]=null),this[_0x2ce359(0xe7)]&&(this['getMap']()['entities']['remove'](this['polylineLayer']),this[_0x2ce359(0xe7)]=null),this[_0x2ce359(0xf0)]&&(this[_0x2ce359(0xdf)]()[_0x2ce359(0x12d)]['remove'](this['historyPolylineLayer']),this['historyPolylineLayer']=null),this['receivedPositions']=[],this[_0x2ce359(0x11b)]=[],this['currentSegment']=null,this[_0x2ce359(0xa4)]=[],this['currentPointIndex']=0x0,this[_0x2ce359(0x13c)]=0x0,this[_0x2ce359(0xb6)]=[],this['trailDataUpdated']=![];}}]),_0x5106a5;}());export{ModelRoamRealTime as default};function _0x3a1e(){var _0xa8d1f5=['Aw5PDfrYywLStgLUzq','r2vUzxjHDg9YrNvUy3rPB24','q2fYDg9NCMfWAgLJ','AgLZDg9YEvrYywLSug9ZAxrPB25Z','AxnbCNjHEq','BgvUz3rO','Bw9KzwW','BMv4DeXVyW','mtyXnJq4AerPt2zu','sw52ywXPzcbZDgfYDcbVCIbLBMqGCg9ZAxrPB24','DgfYz2v0sgvHzgLUzW','Bw9KzwXmyxLLCG','Cg9SEwXPBMvpChrPB25Z','DgfYz2v0rNjHBwvsyxrL','y3vYCMvUDeHLywrPBMC','CMvTB3zL','x2XHC3rgCMfTzvrPBwu','y2f0y2HmB2m','w29IAMvJDcbhzw5LCMf0B3jD','DxbKyxrLsgvHzgLUzW','zw5Kug9Z','uKvqrufu','qebPDgvYyxrVCG','y3jLyxrL','C2nLBMu','A2v5CW','zMLUywXSEuXVyW','z2v0twf0CML4mW','Dg9qCMLTAxrPDMu','DMfSDwu','rwXSAxbZB2LK','D3jHCa','C3bSAwnL','Bg9Uz2L0DwrL','zgvSzwDHDgu','x2LUDM9Rzq','AxnnB3zLzfrVsgLZDg9YEq','AxndB21WBgv0zwq','y2fTzxjH','zMLYC3q','x19HD2fPDa','zMLYC3rdyw1LCMftzxr0Aw5NCW','nZuYndG2EhzcuKHq','zw51BwvYywjSzq','z2v0twfW','x2v2zw50ug9ZDfvWzgf0zq','x21HCenVBNrLEhq','nK5Rzw5Nqq','Dg9ezwDYzwvZ','zgLZCgXHEu5HBwu','y29UDgLUDwu','y29TCgXLDgLVBG','Cg9SEwXPBMvmyxLLCG','twf0Aa','x2zWCW','vhjHBNnMB3jTCW','ChvZAa','C2HVD1bVBhLSAw5Ltgf5zxi','CNvUBMLUzW','A2v5','Axnhzw5LCMf0B3jgDw5JDgLVBG','AgLZDg9YEvbVBhLSAw5Ltgf5zxi','y3vYCMvUDfbVAw50sw5KzxG','C3rYAw5N','CMfKAxvZ','BxvSDgLWBhLcEvzLy3rVCG','y3jLyxrLtMv3u2vNBwvUDa','yxn5BMm','Bwf4','y2fSBa','BwfYAW','Bwv0Ag9K','CMvHzhLfDMvUDa','DgHPCMrqzxjZB25tzxr0Aw5NCW','BgLZDgvUvg9nB2rLBfjVyw0','mtiWmti4qvzwEM5o','CMv0DxjU','BwLU','Aw50zxjWB2XHDgvKug9PBNrZ','ChjLDG','BM9YDgG','zMX5vg9cB3vUzgLUz1nWAgvYzq','zM9SBg93','AgvHzgLUz1bPDgnOuM9SBfrVrML4zwrgCMfTzq','ywrKqwXS','zgvMAw5LuhjVCgvYDhK','AgvHzgLUzW','ywX0','y2HLy2TbBMrnB3zLvg9iAxn0B3j5','DxbKyxrLtw9KzwW','mJv1rMHjqvC','BxvSDgLWBhLcEvbVAw50','Bgf0Axr1zgu','nJKYodK0m0nOCvDKsq','zMXVB3i','zwfZDa','q2fYDgvZAwfUmW','BM9YBwfS','C2vUDa','mZeZnZaYoe1byNfvDW','Dhj5tg9J','B2jQzwn0','DhjHAwXeyxrHvxbKyxrLza','BM93','y29TCgXLDgvKu2vNBwvUDhm','y3vYCMvUDfbVCW','C3rHCNrsB2fTAw5N','DgHYB3C','AxrLCMf0B3iGCMvZDwX0igLZig5VDcbHBIbVyMPLy3q','z2v0vhjHAwXmAw5Lug9ZAxrPB25Z','CM9VDa','DxbKyxrLq2fTzxjHvMLLDW','Dhj5rw50CMLLCW','zNjVBurLz3jLzxm','Aw52zxjZzq','AxrLCMf0B3i','C2v0uhjVDg90ExbLt2y','C2XPy2u','Dg9sywrPyw5Z','C3rHCNrqB3m','x2DLDeLUDgvYug9ZAxrPB24','zwfZDe5VCNrOvxbuB0zPEgvKrNjHBwu','zw50AxrPzxm','x29Uug9ZAxrPB25vCgrHDgu','ndvLrKzYAg8','DxbKyxrLrMLYC3rqzxjZB25wAwv3','Dw5KzwzPBMvKig1VzgvSig9YigLUDMfSAwqGB3b0Aw9UCW','ywn0AxzLqw5PBwf0Aw9UCW','AhbsB2XS','ChjVDg90ExbL','y2HHCKf0','Cg9SEwXPBMu','BMv4Da','ywjZ','DxjS','C3vIDhjHy3q','zgvMyxvSDa','C2vNBwvUDenVDw50zxi','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','zgLZCgf0y2HfEgnLChrPB24','y29TCgXLDgvK','C3rHDhvZ','ntu3otuWmgf6vwjuuG','mta4otu0mgjmq2nLuq','qebHC3LUy0L0zxjHDg9Y','Bgf0','y29TCgXLDgu','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','zM9YrwfJAa','vfjbsuXFue9tsvrjt05tx1riuKvtse9mra','Bw9KzwXnyxrYAxG','DgLTzxn0yw1W','CMvJzwL2zwrqB3nPDgLVBNm','DgHPCMq','Bw9KzwXpChrPB25Z','Bg9JywXgCMfTzvrVrML4zwrgCMfTzuDLBMvYyxrVCG','x2zYyw1Lq291BNq','zMX5vg8','z2v0sgvHzgLUzW','B2zM','zw5K','y29Z','yM91BMrPBMDtCgHLCMu','mtjeuKPwtfK','zg9Uzq','revgqvvmvf9qt0XzteLorv9pufrjt05t','zgvZDhjVEq','v0Dtodq','y29UC3rYDwn0B3i','C2HVDW','D3jPDgfIBgu','CMv2zxjZzq','Aw5PDe1VzgvS','C3rVCa','ywrK','twf0CML4na','DgHLBG','zgLZDgfUy2u','ywz0zxjmB2m','Dw5KzwzPBMvK','mJa5AujrELvd','zNvUy3rPB24','twfW','ywjYDxb0','Bg5N','BwfYA0nVBxbSzxrLzfnLz21LBNrZqxnnB3zLzfrVsgLZDg9YEq','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','zNv0DxjLu2vNBwvUDhm','x3n0zxbby2n1BxvSyxrVCG','C2LNBG','AgvPz2H0','yxjN','yNjLywS','y3vYCMvUDfnLz21LBNq','tw9KzwW','D2vZDa','DxbKyxrLvgHPCMrqzxjZB25wAwv3','tI9b','DhLWzq','CM90yxrPB25tCgvLza','zNjVBunHCNrLC2LHBG','x19WCM90B19F'];_0x3a1e=function(){return _0xa8d1f5;};return _0x3a1e();}
|