deeptwins-engine-3d 0.1.76 → 0.2.0
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.d.ts +1 -1
- 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 +136 -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,1136 +1 @@
|
|
|
1
|
-
var _excluded = ["tilingScheme"];
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
5
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
6
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
7
|
-
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); } }
|
|
8
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
9
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
|
10
|
-
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
|
11
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
12
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
13
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
14
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
15
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
16
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
17
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
18
|
-
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; }
|
|
19
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
20
|
-
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); }
|
|
21
|
-
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); }
|
|
22
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
23
|
-
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."); }
|
|
24
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
25
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
26
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
27
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
28
|
-
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); }
|
|
29
|
-
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; }
|
|
30
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
31
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
32
|
-
import * as turf from '@turf/turf';
|
|
33
|
-
import * as Cesium from 'deeptwins-cesium';
|
|
34
|
-
import proj4 from 'proj4';
|
|
35
|
-
import CustomRasterClipWorkerClient from "./CustomRasterClipWorkerClient";
|
|
36
|
-
import ImageryLayer from "./ImageryLayer";
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* CustomRasterLayer 是一个通用栅格瓦片图层:
|
|
40
|
-
* - 使用 Cesium.UrlTemplateImageryProvider 加载任意 URL 模板瓦片。
|
|
41
|
-
* - 使用 proj4 将瓦片范围和裁剪 GeoJSON 从各自 CRS 转到 renderCrs。
|
|
42
|
-
* - GCJ02 渲染时按 tileLayer/test 的瓦片坐标方案计算瓦片范围。
|
|
43
|
-
* - 可选按 GeoJSON 面要素裁剪瓦片。
|
|
44
|
-
* - 裁剪前先求瓦片 bbox 与裁剪面的交集,避免多面重叠时误裁。
|
|
45
|
-
* - 可选输出调试事件,便于排查范围、瓦片加载、裁剪和丢弃行为。
|
|
46
|
-
*
|
|
47
|
-
* @example 基础瓦片图层
|
|
48
|
-
* ```ts
|
|
49
|
-
* const layer = new DeepTwinsEngine3D.CustomRasterLayer({
|
|
50
|
-
* id: 'base-raster',
|
|
51
|
-
* source: {
|
|
52
|
-
* url: 'https://example.com/tiles/{z}/{x}/{y}.png',
|
|
53
|
-
* minimumLevel: 0,
|
|
54
|
-
* maximumLevel: 18,
|
|
55
|
-
* },
|
|
56
|
-
* debug: true,
|
|
57
|
-
* });
|
|
58
|
-
* map.imageryLayers.add(layer);
|
|
59
|
-
* ```
|
|
60
|
-
*
|
|
61
|
-
* @example 带范围、坐标转换和裁剪的图层
|
|
62
|
-
* ```ts
|
|
63
|
-
* const layer = new DeepTwinsEngine3D.CustomRasterLayer({
|
|
64
|
-
* id: 'project-raster',
|
|
65
|
-
* source: {
|
|
66
|
-
* url: 'https://example.com/project/{z}/{x}/{y}.png',
|
|
67
|
-
* maximumLevel: 20,
|
|
68
|
-
* },
|
|
69
|
-
* // bounds 格式:[minX, minY, maxX, maxY],这里表示 EPSG:3857 米制范围。
|
|
70
|
-
* bounds: [13210000, 3520000, 13230000, 3540000],
|
|
71
|
-
* dataCrs: 'EPSG:3857',
|
|
72
|
-
* renderCrs: 'EPSG:4326',
|
|
73
|
-
* clipFeature: geoJsonPolygon,
|
|
74
|
-
* debug: (event) => console.debug(event),
|
|
75
|
-
* });
|
|
76
|
-
* map.imageryLayers.add(layer);
|
|
77
|
-
* ```
|
|
78
|
-
*
|
|
79
|
-
* @remarks API 文档
|
|
80
|
-
* - `source`:必填,Cesium.UrlTemplateImageryProvider 原生配置。
|
|
81
|
-
* - `layerOptions`:可选,Cesium.ImageryLayer 原生配置。
|
|
82
|
-
* - `bounds`:可选,瓦片范围 `[minX, minY, maxX, maxY]`。
|
|
83
|
-
* - `dataCrs`:可选,bounds 的原始坐标系,默认 `EPSG:4326`。
|
|
84
|
-
* - `clipFeatureCrs`:可选,clipFeature 的原始坐标系,默认跟随 dataCrs。
|
|
85
|
-
* - `renderCrs`:可选,bounds、clipFeature 和瓦片范围转换后的目标坐标系,默认 `EPSG:4326`。
|
|
86
|
-
* - `projectionDefs`:可选,自定义 proj4 坐标系定义。
|
|
87
|
-
* - `clipFeature`:可选,GeoJSON Polygon/MultiPolygon/Feature/FeatureCollection,`null` 等同未传。
|
|
88
|
-
* - `autoFitBounds`:可选,创建后自动将相机定位到最终范围,需同时传入 `map`。
|
|
89
|
-
* - `clipWithWorker`:可选,裁剪几何计算优先使用 Worker,默认 `true`。
|
|
90
|
-
* - `clipWorkerUrl`:可选,自定义裁剪 Worker 地址。
|
|
91
|
-
* - `debug`:可选,`true` 使用 console.log 输出调试信息,函数则接收结构化调试事件。
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
/** 通用范围格式:[minX, minY, maxX, maxY]。 */
|
|
95
|
-
|
|
96
|
-
/** 调试事件类型,覆盖范围初始化、瓦片加载和裁剪决策。 */
|
|
97
|
-
|
|
98
|
-
/** 瓦片 debug 状态。 */
|
|
99
|
-
|
|
100
|
-
/** debug 回调收到的结构化事件。 */
|
|
101
|
-
|
|
102
|
-
/** debug 配置:关闭、console.log 输出,或自定义事件处理函数。 */
|
|
103
|
-
|
|
104
|
-
/** 内置切片方案名称,或 Cesium 原生 TilingScheme 实例。 */
|
|
105
|
-
|
|
106
|
-
/** CustomRasterLayer 数据源配置,扩展 tilingScheme 字符串默认选项。 */
|
|
107
|
-
|
|
108
|
-
/** CustomRasterLayer 构造配置。 */
|
|
109
|
-
|
|
110
|
-
var DEFAULT_CRS = 'EPSG:4326';
|
|
111
|
-
var GCJ02_CRS = 'GCJ02';
|
|
112
|
-
var WEB_MERCATOR_DEFINITION = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 ' + '+x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs';
|
|
113
|
-
var WGS84_DEFINITION = '+proj=longlat +datum=WGS84 +no_defs +type=crs';
|
|
114
|
-
var GCJ02_A = 6378245.0;
|
|
115
|
-
var GCJ02_EE = 0.006693421622965943;
|
|
116
|
-
|
|
117
|
-
/** 从 EPSG:xxxx、EPSG/0/xxxx 或纯数字 CRS 中提取 EPSG code。 */
|
|
118
|
-
var getEpsgCode = function getEpsgCode(crs) {
|
|
119
|
-
var match = crs.match(/EPSG(?::|\/0\/|::)(\d+)/i) || crs.match(/^(\d+)$/);
|
|
120
|
-
return match === null || match === void 0 ? void 0 : match[1];
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
/** 统一 CRS 名称。 */
|
|
124
|
-
var normalizeCrs = function normalizeCrs() {
|
|
125
|
-
var crs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_CRS;
|
|
126
|
-
if (/^(gcj02|gcj-02)$/i.test(crs)) {
|
|
127
|
-
return GCJ02_CRS;
|
|
128
|
-
}
|
|
129
|
-
var code = getEpsgCode(crs);
|
|
130
|
-
return code ? "EPSG:".concat(code) : crs;
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
/** 注册调用方传入的 proj4 自定义坐标系定义。 */
|
|
134
|
-
var registerProjectionDefs = function registerProjectionDefs(projectionDefs) {
|
|
135
|
-
Object.entries(projectionDefs || {}).forEach(function (_ref) {
|
|
136
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
137
|
-
name = _ref2[0],
|
|
138
|
-
definition = _ref2[1];
|
|
139
|
-
proj4.defs(normalizeCrs(name), definition);
|
|
140
|
-
});
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
/** 确保常用 CRS 可被 proj4 识别,其他 CRS 由 projectionDefs 显式注册。 */
|
|
144
|
-
var ensureProjDefinition = function ensureProjDefinition(crs) {
|
|
145
|
-
var projName = normalizeCrs(crs);
|
|
146
|
-
if (projName === GCJ02_CRS) {
|
|
147
|
-
return projName;
|
|
148
|
-
}
|
|
149
|
-
if (proj4.defs(projName)) {
|
|
150
|
-
return projName;
|
|
151
|
-
}
|
|
152
|
-
var code = getEpsgCode(projName);
|
|
153
|
-
if (code === '4326') {
|
|
154
|
-
proj4.defs(projName, WGS84_DEFINITION);
|
|
155
|
-
return projName;
|
|
156
|
-
}
|
|
157
|
-
if (code === '3857') {
|
|
158
|
-
proj4.defs(projName, WEB_MERCATOR_DEFINITION);
|
|
159
|
-
return projName;
|
|
160
|
-
}
|
|
161
|
-
if (code && /^326\d{2}$/.test(code)) {
|
|
162
|
-
var zone = Number(code.slice(3));
|
|
163
|
-
proj4.defs(projName, "+proj=utm +zone=".concat(zone, " +datum=WGS84 +units=m +no_defs +type=crs"));
|
|
164
|
-
return projName;
|
|
165
|
-
}
|
|
166
|
-
if (code && /^327\d{2}$/.test(code)) {
|
|
167
|
-
var _zone = Number(code.slice(3));
|
|
168
|
-
proj4.defs(projName, "+proj=utm +zone=".concat(_zone, " +south +datum=WGS84 +units=m +no_defs +type=crs"));
|
|
169
|
-
return projName;
|
|
170
|
-
}
|
|
171
|
-
throw new Error("Missing proj definition for CRS: ".concat(crs));
|
|
172
|
-
};
|
|
173
|
-
var isWgs84Crs = function isWgs84Crs(crs) {
|
|
174
|
-
return normalizeCrs(crs) === DEFAULT_CRS;
|
|
175
|
-
};
|
|
176
|
-
var isWgs84LikeCrs = function isWgs84LikeCrs(crs) {
|
|
177
|
-
return isWgs84Crs(crs);
|
|
178
|
-
};
|
|
179
|
-
var isOutOfChina = function isOutOfChina(lng, lat) {
|
|
180
|
-
return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55);
|
|
181
|
-
};
|
|
182
|
-
var transformGcj02Lat = function transformGcj02Lat(lng, lat) {
|
|
183
|
-
var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
|
|
184
|
-
ret += (20.0 * Math.sin(6.0 * lng * Math.PI) + 20.0 * Math.sin(2.0 * lng * Math.PI)) * 2.0 / 3.0;
|
|
185
|
-
ret += (20.0 * Math.sin(lat * Math.PI) + 40.0 * Math.sin(lat / 3.0 * Math.PI)) * 2.0 / 3.0;
|
|
186
|
-
ret += (160.0 * Math.sin(lat / 12.0 * Math.PI) + 320 * Math.sin(lat * Math.PI / 30.0)) * 2.0 / 3.0;
|
|
187
|
-
return ret;
|
|
188
|
-
};
|
|
189
|
-
var transformGcj02Lng = function transformGcj02Lng(lng, lat) {
|
|
190
|
-
var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
|
|
191
|
-
ret += (20.0 * Math.sin(6.0 * lng * Math.PI) + 20.0 * Math.sin(2.0 * lng * Math.PI)) * 2.0 / 3.0;
|
|
192
|
-
ret += (20.0 * Math.sin(lng * Math.PI) + 40.0 * Math.sin(lng / 3.0 * Math.PI)) * 2.0 / 3.0;
|
|
193
|
-
ret += (150.0 * Math.sin(lng / 12.0 * Math.PI) + 300.0 * Math.sin(lng / 30.0 * Math.PI)) * 2.0 / 3.0;
|
|
194
|
-
return ret;
|
|
195
|
-
};
|
|
196
|
-
var wgs84ToGcj02 = function wgs84ToGcj02(lng, lat) {
|
|
197
|
-
if (isOutOfChina(lng, lat)) {
|
|
198
|
-
return [lng, lat];
|
|
199
|
-
}
|
|
200
|
-
var dLat = transformGcj02Lat(lng - 105.0, lat - 35.0);
|
|
201
|
-
var dLng = transformGcj02Lng(lng - 105.0, lat - 35.0);
|
|
202
|
-
var radLat = lat / 180.0 * Math.PI;
|
|
203
|
-
var magic = Math.sin(radLat);
|
|
204
|
-
magic = 1 - GCJ02_EE * magic * magic;
|
|
205
|
-
var sqrtMagic = Math.sqrt(magic);
|
|
206
|
-
dLat = dLat * 180.0 / (GCJ02_A * (1 - GCJ02_EE) / (magic * sqrtMagic) * Math.PI);
|
|
207
|
-
dLng = dLng * 180.0 / (GCJ02_A / sqrtMagic * Math.cos(radLat) * Math.PI);
|
|
208
|
-
return [lng + dLng, lat + dLat];
|
|
209
|
-
};
|
|
210
|
-
var gcj02ToWgs84 = function gcj02ToWgs84(lng, lat) {
|
|
211
|
-
if (isOutOfChina(lng, lat)) {
|
|
212
|
-
return [lng, lat];
|
|
213
|
-
}
|
|
214
|
-
var _wgs84ToGcj = wgs84ToGcj02(lng, lat),
|
|
215
|
-
_wgs84ToGcj2 = _slicedToArray(_wgs84ToGcj, 2),
|
|
216
|
-
gcjLng = _wgs84ToGcj2[0],
|
|
217
|
-
gcjLat = _wgs84ToGcj2[1];
|
|
218
|
-
return [lng * 2 - gcjLng, lat * 2 - gcjLat];
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
/** 转换单个坐标点,保留第三维及后续附加值。 */
|
|
222
|
-
var transformPoint = function transformPoint(point, sourceCrs, targetCrs) {
|
|
223
|
-
var normalizedSourceCrs = normalizeCrs(sourceCrs);
|
|
224
|
-
var normalizedTargetCrs = normalizeCrs(targetCrs);
|
|
225
|
-
if (normalizedSourceCrs === normalizedTargetCrs) {
|
|
226
|
-
return _toConsumableArray(point);
|
|
227
|
-
}
|
|
228
|
-
if (normalizedSourceCrs === GCJ02_CRS) {
|
|
229
|
-
var wgs84Point = gcj02ToWgs84(point[0], point[1]);
|
|
230
|
-
if (isWgs84LikeCrs(normalizedTargetCrs)) {
|
|
231
|
-
return [].concat(_toConsumableArray(wgs84Point), _toConsumableArray(point.slice(2)));
|
|
232
|
-
}
|
|
233
|
-
var _targetProj = ensureProjDefinition(normalizedTargetCrs);
|
|
234
|
-
var _proj = proj4(DEFAULT_CRS, _targetProj, wgs84Point),
|
|
235
|
-
_proj2 = _slicedToArray(_proj, 2),
|
|
236
|
-
_x = _proj2[0],
|
|
237
|
-
_y = _proj2[1];
|
|
238
|
-
return [_x, _y].concat(_toConsumableArray(point.slice(2)));
|
|
239
|
-
}
|
|
240
|
-
if (normalizedTargetCrs === GCJ02_CRS) {
|
|
241
|
-
var _wgs84Point = isWgs84LikeCrs(normalizedSourceCrs) ? [point[0], point[1]] : proj4(ensureProjDefinition(normalizedSourceCrs), DEFAULT_CRS, [point[0], point[1]]);
|
|
242
|
-
var _wgs84ToGcj3 = wgs84ToGcj02(_wgs84Point[0], _wgs84Point[1]),
|
|
243
|
-
_wgs84ToGcj4 = _slicedToArray(_wgs84ToGcj3, 2),
|
|
244
|
-
_x2 = _wgs84ToGcj4[0],
|
|
245
|
-
_y2 = _wgs84ToGcj4[1];
|
|
246
|
-
return [_x2, _y2].concat(_toConsumableArray(point.slice(2)));
|
|
247
|
-
}
|
|
248
|
-
var sourceProj = ensureProjDefinition(normalizedSourceCrs);
|
|
249
|
-
var targetProj = ensureProjDefinition(normalizedTargetCrs);
|
|
250
|
-
var _proj3 = proj4(sourceProj, targetProj, [point[0], point[1]]),
|
|
251
|
-
_proj4 = _slicedToArray(_proj3, 2),
|
|
252
|
-
x = _proj4[0],
|
|
253
|
-
y = _proj4[1];
|
|
254
|
-
return [x, y].concat(_toConsumableArray(point.slice(2)));
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
/** 转换 bbox 四角后重新计算外接范围,避免旋转/投影畸变导致范围不足。 */
|
|
258
|
-
var transformBounds = function transformBounds(bounds, sourceCrs, targetCrs) {
|
|
259
|
-
var corners = [[bounds[0], bounds[1]], [bounds[0], bounds[3]], [bounds[2], bounds[1]], [bounds[2], bounds[3]]].map(function (point) {
|
|
260
|
-
return transformPoint(point, sourceCrs, targetCrs);
|
|
261
|
-
});
|
|
262
|
-
var xList = corners.map(function (_ref3) {
|
|
263
|
-
var _ref4 = _slicedToArray(_ref3, 1),
|
|
264
|
-
x = _ref4[0];
|
|
265
|
-
return x;
|
|
266
|
-
});
|
|
267
|
-
var yList = corners.map(function (_ref5) {
|
|
268
|
-
var _ref6 = _slicedToArray(_ref5, 2),
|
|
269
|
-
y = _ref6[1];
|
|
270
|
-
return y;
|
|
271
|
-
});
|
|
272
|
-
return [Math.min.apply(Math, _toConsumableArray(xList)), Math.min.apply(Math, _toConsumableArray(yList)), Math.max.apply(Math, _toConsumableArray(xList)), Math.max.apply(Math, _toConsumableArray(yList))];
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
/** Cesium.Rectangle 弧度范围转经纬度 bbox。 */
|
|
276
|
-
var rectangleToBounds = function rectangleToBounds(rectangle) {
|
|
277
|
-
return [Cesium.Math.toDegrees(rectangle.west), Cesium.Math.toDegrees(rectangle.south), Cesium.Math.toDegrees(rectangle.east), Cesium.Math.toDegrees(rectangle.north)];
|
|
278
|
-
};
|
|
279
|
-
var boundsToRectangle = function boundsToRectangle(bounds, result) {
|
|
280
|
-
return Cesium.Rectangle.fromDegrees(bounds[0], bounds[1], bounds[2], bounds[3], result);
|
|
281
|
-
};
|
|
282
|
-
var normalizeBounds = function normalizeBounds(bounds) {
|
|
283
|
-
if (!bounds || bounds.length < 4 || bounds.slice(0, 4).some(function (value) {
|
|
284
|
-
return !Number.isFinite(value);
|
|
285
|
-
})) {
|
|
286
|
-
return undefined;
|
|
287
|
-
}
|
|
288
|
-
return [bounds[0], bounds[1], bounds[2], bounds[3]];
|
|
289
|
-
};
|
|
290
|
-
var transformRectangle = function transformRectangle(rectangle, sourceCrs, targetCrs, result) {
|
|
291
|
-
return boundsToRectangle(transformBounds(rectangleToBounds(rectangle), sourceCrs, targetCrs), result);
|
|
292
|
-
};
|
|
293
|
-
|
|
294
|
-
/** 将内置 tilingScheme 名称解析为 Cesium 原生切片方案实例。 */
|
|
295
|
-
var createSourceTilingScheme = function createSourceTilingScheme(tilingScheme) {
|
|
296
|
-
if (!tilingScheme || tilingScheme === 'webMercator') {
|
|
297
|
-
return new Cesium.WebMercatorTilingScheme();
|
|
298
|
-
}
|
|
299
|
-
if (tilingScheme === 'geographic') {
|
|
300
|
-
return new Cesium.GeographicTilingScheme();
|
|
301
|
-
}
|
|
302
|
-
return tilingScheme;
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
/** 创建按目标坐标系渲染的瓦片坐标方案,逻辑对齐 tileLayer/test。 */
|
|
306
|
-
var createRenderTilingScheme = function createRenderTilingScheme(tilingScheme, renderCrs) {
|
|
307
|
-
if (isWgs84Crs(renderCrs)) {
|
|
308
|
-
return tilingScheme;
|
|
309
|
-
}
|
|
310
|
-
return {
|
|
311
|
-
get ellipsoid() {
|
|
312
|
-
return tilingScheme.ellipsoid;
|
|
313
|
-
},
|
|
314
|
-
get rectangle() {
|
|
315
|
-
return transformRectangle(tilingScheme.rectangle, DEFAULT_CRS, renderCrs);
|
|
316
|
-
},
|
|
317
|
-
get projection() {
|
|
318
|
-
return tilingScheme.projection;
|
|
319
|
-
},
|
|
320
|
-
getNumberOfXTilesAtLevel: function getNumberOfXTilesAtLevel(level) {
|
|
321
|
-
return tilingScheme.getNumberOfXTilesAtLevel(level);
|
|
322
|
-
},
|
|
323
|
-
getNumberOfYTilesAtLevel: function getNumberOfYTilesAtLevel(level) {
|
|
324
|
-
return tilingScheme.getNumberOfYTilesAtLevel(level);
|
|
325
|
-
},
|
|
326
|
-
tileXYToNativeRectangle: function tileXYToNativeRectangle(x, y, level, result) {
|
|
327
|
-
return tilingScheme.tileXYToNativeRectangle(x, y, level, result);
|
|
328
|
-
},
|
|
329
|
-
rectangleToNativeRectangle: function rectangleToNativeRectangle(rectangle, result) {
|
|
330
|
-
return tilingScheme.rectangleToNativeRectangle(transformRectangle(rectangle, renderCrs, DEFAULT_CRS), result);
|
|
331
|
-
},
|
|
332
|
-
tileXYToRectangle: function tileXYToRectangle(x, y, level, result) {
|
|
333
|
-
return transformRectangle(tilingScheme.tileXYToRectangle(x, y, level), DEFAULT_CRS, renderCrs, result);
|
|
334
|
-
},
|
|
335
|
-
positionToTileXY: function positionToTileXY(position, level, result) {
|
|
336
|
-
var _transformPoint = transformPoint([Cesium.Math.toDegrees(position.longitude), Cesium.Math.toDegrees(position.latitude)], renderCrs, DEFAULT_CRS),
|
|
337
|
-
_transformPoint2 = _slicedToArray(_transformPoint, 2),
|
|
338
|
-
lng = _transformPoint2[0],
|
|
339
|
-
lat = _transformPoint2[1];
|
|
340
|
-
return tilingScheme.positionToTileXY(Cesium.Cartographic.fromDegrees(lng, lat), level, result);
|
|
341
|
-
}
|
|
342
|
-
};
|
|
343
|
-
};
|
|
344
|
-
|
|
345
|
-
/** 递归转换 GeoJSON coordinates,兼容点、线、面、多面等嵌套结构。 */
|
|
346
|
-
var transformCoordinates = function transformCoordinates(coordinates, sourceCrs, targetCrs) {
|
|
347
|
-
if (!Array.isArray(coordinates)) {
|
|
348
|
-
return coordinates;
|
|
349
|
-
}
|
|
350
|
-
if (typeof coordinates[0] === 'number' && typeof coordinates[1] === 'number') {
|
|
351
|
-
return transformPoint(coordinates, sourceCrs, targetCrs);
|
|
352
|
-
}
|
|
353
|
-
return coordinates.map(function (item) {
|
|
354
|
-
return transformCoordinates(item, sourceCrs, targetCrs);
|
|
355
|
-
});
|
|
356
|
-
};
|
|
357
|
-
|
|
358
|
-
/** 转换 GeoJSON Geometry,包含 GeometryCollection。 */
|
|
359
|
-
var transformGeometry = function transformGeometry(geometry, sourceCrs, targetCrs) {
|
|
360
|
-
if (!geometry) {
|
|
361
|
-
return;
|
|
362
|
-
}
|
|
363
|
-
if (geometry.type === 'GeometryCollection') {
|
|
364
|
-
var _geometry$geometries;
|
|
365
|
-
(_geometry$geometries = geometry.geometries) === null || _geometry$geometries === void 0 || _geometry$geometries.forEach(function (item) {
|
|
366
|
-
return transformGeometry(item, sourceCrs, targetCrs);
|
|
367
|
-
});
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
if (geometry.coordinates) {
|
|
371
|
-
geometry.coordinates = transformCoordinates(geometry.coordinates, sourceCrs, targetCrs);
|
|
372
|
-
}
|
|
373
|
-
};
|
|
374
|
-
|
|
375
|
-
/** 深拷贝并转换 GeoJSON,避免修改调用方持有的原始对象。 */
|
|
376
|
-
var transformGeoJson = function transformGeoJson(geoJson, sourceCrs, targetCrs) {
|
|
377
|
-
if (!geoJson) {
|
|
378
|
-
return geoJson;
|
|
379
|
-
}
|
|
380
|
-
var clonedGeoJson = JSON.parse(JSON.stringify(geoJson));
|
|
381
|
-
if (normalizeCrs(sourceCrs) === normalizeCrs(targetCrs)) {
|
|
382
|
-
return clonedGeoJson;
|
|
383
|
-
}
|
|
384
|
-
if (clonedGeoJson.type === 'FeatureCollection') {
|
|
385
|
-
var _clonedGeoJson$featur;
|
|
386
|
-
(_clonedGeoJson$featur = clonedGeoJson.features) === null || _clonedGeoJson$featur === void 0 || _clonedGeoJson$featur.forEach(function (feature) {
|
|
387
|
-
return transformGeometry(feature.geometry, sourceCrs, targetCrs);
|
|
388
|
-
});
|
|
389
|
-
return clonedGeoJson;
|
|
390
|
-
}
|
|
391
|
-
if (clonedGeoJson.type === 'Feature') {
|
|
392
|
-
transformGeometry(clonedGeoJson.geometry, sourceCrs, targetCrs);
|
|
393
|
-
return clonedGeoJson;
|
|
394
|
-
}
|
|
395
|
-
transformGeometry(clonedGeoJson, sourceCrs, targetCrs);
|
|
396
|
-
return clonedGeoJson;
|
|
397
|
-
};
|
|
398
|
-
|
|
399
|
-
/** 将 null、undefined 和非 GeoJSON 对象统一视为未传裁剪面。 */
|
|
400
|
-
var normalizeClipFeature = function normalizeClipFeature(clipFeature) {
|
|
401
|
-
if (!clipFeature || _typeof(clipFeature) !== 'object' || Array.isArray(clipFeature)) {
|
|
402
|
-
return undefined;
|
|
403
|
-
}
|
|
404
|
-
return clipFeature;
|
|
405
|
-
};
|
|
406
|
-
|
|
407
|
-
/** 将 Geometry 包装为 Turf 可处理的 Feature。 */
|
|
408
|
-
var createFeature = function createFeature(geometry) {
|
|
409
|
-
var properties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
410
|
-
return {
|
|
411
|
-
type: 'Feature',
|
|
412
|
-
properties: properties,
|
|
413
|
-
geometry: geometry
|
|
414
|
-
};
|
|
415
|
-
};
|
|
416
|
-
|
|
417
|
-
/**
|
|
418
|
-
* 收集可裁剪的 Polygon,忽略点线等非面要素。
|
|
419
|
-
* MultiPolygon 会拆成多个 Polygon,避免重叠面在 canvas evenodd 填充时互相抵消。
|
|
420
|
-
*/
|
|
421
|
-
var collectPolygonFeatures = function collectPolygonFeatures(geoJson) {
|
|
422
|
-
var properties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
423
|
-
if (!geoJson) {
|
|
424
|
-
return [];
|
|
425
|
-
}
|
|
426
|
-
if (geoJson.type === 'FeatureCollection') {
|
|
427
|
-
return geoJson.features.flatMap(function (feature) {
|
|
428
|
-
return collectPolygonFeatures(feature);
|
|
429
|
-
});
|
|
430
|
-
}
|
|
431
|
-
if (geoJson.type === 'Feature') {
|
|
432
|
-
return collectPolygonFeatures(geoJson.geometry, geoJson.properties || {});
|
|
433
|
-
}
|
|
434
|
-
if (geoJson.type === 'GeometryCollection') {
|
|
435
|
-
return geoJson.geometries.flatMap(function (geometry) {
|
|
436
|
-
return collectPolygonFeatures(geometry, properties);
|
|
437
|
-
});
|
|
438
|
-
}
|
|
439
|
-
if (geoJson.type === 'Polygon') {
|
|
440
|
-
return [createFeature(geoJson, properties)];
|
|
441
|
-
}
|
|
442
|
-
if (geoJson.type === 'MultiPolygon') {
|
|
443
|
-
return geoJson.coordinates.map(function (coordinates) {
|
|
444
|
-
return createFeature({
|
|
445
|
-
type: 'Polygon',
|
|
446
|
-
coordinates: coordinates
|
|
447
|
-
}, properties);
|
|
448
|
-
});
|
|
449
|
-
}
|
|
450
|
-
return [];
|
|
451
|
-
};
|
|
452
|
-
|
|
453
|
-
/** 使用 turf 计算裁剪面的 bbox,作为裁剪范围。 */
|
|
454
|
-
var getClipFeatureBounds = function getClipFeatureBounds(clipFeatures) {
|
|
455
|
-
if (!clipFeatures.length) {
|
|
456
|
-
return undefined;
|
|
457
|
-
}
|
|
458
|
-
var bbox = turf.bbox(turf.featureCollection(clipFeatures));
|
|
459
|
-
if (bbox.length < 4 || bbox.some(function (value) {
|
|
460
|
-
return !Number.isFinite(value);
|
|
461
|
-
})) {
|
|
462
|
-
return undefined;
|
|
463
|
-
}
|
|
464
|
-
return normalizeBounds(bbox);
|
|
465
|
-
};
|
|
466
|
-
var boundsIntersects = function boundsIntersects(left, right) {
|
|
467
|
-
return left[0] <= right[2] && left[2] >= right[0] && left[1] <= right[3] && left[3] >= right[1];
|
|
468
|
-
};
|
|
469
|
-
|
|
470
|
-
/** 计算两个 bbox 的有效交集范围;仅边界相切时不视为可飞行区域。 */
|
|
471
|
-
var intersectBounds = function intersectBounds(left, right) {
|
|
472
|
-
var bounds = normalizeBounds([Math.max(left[0], right[0]), Math.max(left[1], right[1]), Math.min(left[2], right[2]), Math.min(left[3], right[3])]);
|
|
473
|
-
if (!bounds || bounds[0] >= bounds[2] || bounds[1] >= bounds[3]) {
|
|
474
|
-
return undefined;
|
|
475
|
-
}
|
|
476
|
-
return bounds;
|
|
477
|
-
};
|
|
478
|
-
|
|
479
|
-
/** 为裁剪面预计算 bbox,供瓦片级粗过滤使用。 */
|
|
480
|
-
var createClipFeatureEntries = function createClipFeatureEntries(clipFeatures) {
|
|
481
|
-
return clipFeatures.flatMap(function (feature) {
|
|
482
|
-
var bbox = normalizeBounds(turf.bbox(feature));
|
|
483
|
-
return bbox ? [{
|
|
484
|
-
feature: feature,
|
|
485
|
-
bbox: bbox
|
|
486
|
-
}] : [];
|
|
487
|
-
});
|
|
488
|
-
};
|
|
489
|
-
|
|
490
|
-
/** 高 minimumLevel 必须配合明确范围,避免 Cesium 初始化过多根瓦片。 */
|
|
491
|
-
var validateRasterSchedulingRange = function validateRasterSchedulingRange(options) {
|
|
492
|
-
if ((options.minimumLevel || 0) > 0 && !options.hasRenderBounds && !options.hasSourceRectangle) {
|
|
493
|
-
throw new Error('CustomRasterLayer source.minimumLevel > 0 requires bounds, source.rectangle, or a valid clipFeature bounds.');
|
|
494
|
-
}
|
|
495
|
-
};
|
|
496
|
-
var getImageSize = function getImageSize(image) {
|
|
497
|
-
return {
|
|
498
|
-
width: image.width,
|
|
499
|
-
height: image.height
|
|
500
|
-
};
|
|
501
|
-
};
|
|
502
|
-
var DEBUG_STATUS_STYLES = {
|
|
503
|
-
loaded: {
|
|
504
|
-
label: '瓦片已加载',
|
|
505
|
-
consoleColor: '#16a34a'
|
|
506
|
-
},
|
|
507
|
-
kept: {
|
|
508
|
-
label: '瓦片已保留',
|
|
509
|
-
consoleColor: '#16a34a'
|
|
510
|
-
},
|
|
511
|
-
clipped: {
|
|
512
|
-
label: '瓦片已裁剪',
|
|
513
|
-
consoleColor: '#eab308'
|
|
514
|
-
},
|
|
515
|
-
filtered: {
|
|
516
|
-
label: '瓦片已过滤',
|
|
517
|
-
consoleColor: '#dc2626'
|
|
518
|
-
},
|
|
519
|
-
error: {
|
|
520
|
-
label: '瓦片处理异常',
|
|
521
|
-
consoleColor: '#b91c1c'
|
|
522
|
-
}
|
|
523
|
-
};
|
|
524
|
-
|
|
525
|
-
/**
|
|
526
|
-
* 通用自定义栅格图层。
|
|
527
|
-
*
|
|
528
|
-
* 继承项目现有 ImageryLayer 封装,内部使用 UrlTemplateImageryProvider。
|
|
529
|
-
* 若传入 clipFeature,会在 Cesium 创建纹理前用 canvas 对瓦片进行透明裁剪。
|
|
530
|
-
*/
|
|
531
|
-
var CustomRasterLayer = /*#__PURE__*/function (_ImageryLayer) {
|
|
532
|
-
_inherits(CustomRasterLayer, _ImageryLayer);
|
|
533
|
-
var _super = _createSuper(CustomRasterLayer);
|
|
534
|
-
/** 创建通用栅格图层。 */
|
|
535
|
-
function CustomRasterLayer(options) {
|
|
536
|
-
var _options$clipWithWork, _options$clipWorkerUr, _options$map;
|
|
537
|
-
var _this;
|
|
538
|
-
_classCallCheck(this, CustomRasterLayer);
|
|
539
|
-
if (!(options !== null && options !== void 0 && options.source)) {
|
|
540
|
-
throw new Error('CustomRasterLayer source is required.');
|
|
541
|
-
}
|
|
542
|
-
registerProjectionDefs(options.projectionDefs);
|
|
543
|
-
var dataCrs = normalizeCrs(options.dataCrs || DEFAULT_CRS);
|
|
544
|
-
var clipFeatureCrs = normalizeCrs(options.clipFeatureCrs || dataCrs);
|
|
545
|
-
var renderCrs = normalizeCrs(options.renderCrs || DEFAULT_CRS);
|
|
546
|
-
var normalizedClipFeature = normalizeClipFeature(options.clipFeature);
|
|
547
|
-
var transformedClipFeature = normalizedClipFeature ? transformGeoJson(normalizedClipFeature, clipFeatureCrs, renderCrs) : undefined;
|
|
548
|
-
var clipFeatures = collectPolygonFeatures(transformedClipFeature);
|
|
549
|
-
var clipFeatureEntries = createClipFeatureEntries(clipFeatures);
|
|
550
|
-
var effectiveClipFeatures = clipFeatureEntries.map(function (entry) {
|
|
551
|
-
return entry.feature;
|
|
552
|
-
});
|
|
553
|
-
var _options$source = options.source,
|
|
554
|
-
sourceTilingSchemeOption = _options$source.tilingScheme,
|
|
555
|
-
sourceOptionsRest = _objectWithoutProperties(_options$source, _excluded);
|
|
556
|
-
var tileBounds = options.bounds ? transformBounds(options.bounds, dataCrs, renderCrs) : undefined;
|
|
557
|
-
var clipBounds = getClipFeatureBounds(effectiveClipFeatures);
|
|
558
|
-
var boundsIntersection = tileBounds && clipBounds ? intersectBounds(tileBounds, clipBounds) : undefined;
|
|
559
|
-
var renderBounds = boundsIntersection || clipBounds || tileBounds;
|
|
560
|
-
var sourceRectangleBounds = sourceOptionsRest.rectangle ? rectangleToBounds(sourceOptionsRest.rectangle) : undefined;
|
|
561
|
-
validateRasterSchedulingRange({
|
|
562
|
-
minimumLevel: sourceOptionsRest.minimumLevel,
|
|
563
|
-
hasRenderBounds: !!renderBounds,
|
|
564
|
-
hasSourceRectangle: !!sourceOptionsRest.rectangle
|
|
565
|
-
});
|
|
566
|
-
var fitBounds = renderBounds || sourceRectangleBounds;
|
|
567
|
-
var tilingScheme = createRenderTilingScheme(createSourceTilingScheme(sourceTilingSchemeOption), renderCrs);
|
|
568
|
-
var sourceOptions = _objectSpread(_objectSpread({}, sourceOptionsRest), {}, {
|
|
569
|
-
tilingScheme: tilingScheme
|
|
570
|
-
}, renderBounds ? {
|
|
571
|
-
rectangle: boundsToRectangle(renderBounds)
|
|
572
|
-
} : {});
|
|
573
|
-
var imageProvider = new Cesium.UrlTemplateImageryProvider(sourceOptions);
|
|
574
|
-
_this = _super.call(this, imageProvider, options.layerOptions);
|
|
575
|
-
/** 图层 id,方便业务图层集合按 id 管理。 */
|
|
576
|
-
_defineProperty(_assertThisInitialized(_this), "id", void 0);
|
|
577
|
-
/** 图层层级,方便业务图层集合排序。 */
|
|
578
|
-
_defineProperty(_assertThisInitialized(_this), "zIndex", void 0);
|
|
579
|
-
/** Cesium 瓦片数据源实例。 */
|
|
580
|
-
_defineProperty(_assertThisInitialized(_this), "source", void 0);
|
|
581
|
-
_defineProperty(_assertThisInitialized(_this), "_debug", void 0);
|
|
582
|
-
_defineProperty(_assertThisInitialized(_this), "_clipFeatures", void 0);
|
|
583
|
-
_defineProperty(_assertThisInitialized(_this), "_clipFeatureEntries", void 0);
|
|
584
|
-
_defineProperty(_assertThisInitialized(_this), "_fitBounds", void 0);
|
|
585
|
-
_defineProperty(_assertThisInitialized(_this), "_clipWorkerUrl", void 0);
|
|
586
|
-
_defineProperty(_assertThisInitialized(_this), "_clipWithWorker", void 0);
|
|
587
|
-
_defineProperty(_assertThisInitialized(_this), "_clipWorkerClient", void 0);
|
|
588
|
-
_defineProperty(_assertThisInitialized(_this), "_mapContext", void 0);
|
|
589
|
-
_defineProperty(_assertThisInitialized(_this), "_destroyed", void 0);
|
|
590
|
-
_this.id = options.id;
|
|
591
|
-
_this.zIndex = options.zIndex;
|
|
592
|
-
_this.source = imageProvider;
|
|
593
|
-
_this._debug = options.debug;
|
|
594
|
-
_this._clipFeatures = effectiveClipFeatures;
|
|
595
|
-
_this._clipFeatureEntries = clipFeatureEntries;
|
|
596
|
-
_this._fitBounds = fitBounds;
|
|
597
|
-
_this._clipWithWorker = (_options$clipWithWork = options.clipWithWorker) !== null && _options$clipWithWork !== void 0 ? _options$clipWithWork : true;
|
|
598
|
-
_this._clipWorkerUrl = (_options$clipWorkerUr = options.clipWorkerUrl) !== null && _options$clipWorkerUr !== void 0 ? _options$clipWorkerUr : '';
|
|
599
|
-
_this._clipWorkerClient = null;
|
|
600
|
-
_this._mapContext = (_options$map = options.map) === null || _options$map === void 0 ? void 0 : _options$map._mapContext;
|
|
601
|
-
_this._destroyed = false;
|
|
602
|
-
_this.logDebug({
|
|
603
|
-
type: 'range',
|
|
604
|
-
bounds: options.bounds,
|
|
605
|
-
tileBounds: tileBounds,
|
|
606
|
-
clipBounds: clipBounds,
|
|
607
|
-
renderBounds: renderBounds,
|
|
608
|
-
clipFeature: transformedClipFeature,
|
|
609
|
-
dataCrs: dataCrs,
|
|
610
|
-
clipFeatureCrs: clipFeatureCrs,
|
|
611
|
-
renderCrs: renderCrs
|
|
612
|
-
});
|
|
613
|
-
if (options.autoFitBounds && normalizeBounds(fitBounds)) {
|
|
614
|
-
_this.fitToBounds(options.map, options.fitBoundsOptions);
|
|
615
|
-
}
|
|
616
|
-
return _this;
|
|
617
|
-
}
|
|
618
|
-
_createClass(CustomRasterLayer, [{
|
|
619
|
-
key: "getMap",
|
|
620
|
-
value: function getMap() {
|
|
621
|
-
return this._mapContext && this._mapContext.getMap();
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
/** 将相机定位到当前图层最终渲染范围。 */
|
|
625
|
-
}, {
|
|
626
|
-
key: "fitToBounds",
|
|
627
|
-
value: function fitToBounds() {
|
|
628
|
-
var _map$camera;
|
|
629
|
-
var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getMap();
|
|
630
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
631
|
-
duration: 0
|
|
632
|
-
};
|
|
633
|
-
if (!map) {
|
|
634
|
-
throw new Error('CustomRasterLayer fitToBounds requires a map.');
|
|
635
|
-
}
|
|
636
|
-
var fitBounds = normalizeBounds(this._fitBounds);
|
|
637
|
-
if (!fitBounds) {
|
|
638
|
-
throw new Error('CustomRasterLayer fitToBounds requires valid bounds.');
|
|
639
|
-
}
|
|
640
|
-
var fitOptions = options || {
|
|
641
|
-
duration: 0
|
|
642
|
-
};
|
|
643
|
-
if (typeof map.setCameraViewByBbox === 'function') {
|
|
644
|
-
map.setCameraViewByBbox(fitBounds, fitOptions);
|
|
645
|
-
return this;
|
|
646
|
-
}
|
|
647
|
-
if ((_map$camera = map.camera) !== null && _map$camera !== void 0 && _map$camera.flyTo) {
|
|
648
|
-
map.camera.flyTo(_objectSpread({
|
|
649
|
-
destination: boundsToRectangle(fitBounds)
|
|
650
|
-
}, fitOptions));
|
|
651
|
-
return this;
|
|
652
|
-
}
|
|
653
|
-
throw new Error('CustomRasterLayer fitToBounds requires a map camera.');
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
/** 销毁图层并释放裁剪 Worker。 */
|
|
657
|
-
}, {
|
|
658
|
-
key: "destroy",
|
|
659
|
-
value: function destroy() {
|
|
660
|
-
this._destroyed = true;
|
|
661
|
-
this.destroyClipWorkerClient();
|
|
662
|
-
return _get(_getPrototypeOf(CustomRasterLayer.prototype), "destroy", this).call(this);
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
/**
|
|
666
|
-
* Cesium 内部纹理创建钩子。
|
|
667
|
-
*
|
|
668
|
-
* 这里按 tileLayer/test 的 ClipLayer 逻辑处理裁剪:
|
|
669
|
-
* - 完全在裁剪面内:原图保留。
|
|
670
|
-
* - 完全不相交:替换为空透明 canvas。
|
|
671
|
-
* - 部分相交:按瓦片与裁剪面的交集裁剪 canvas。
|
|
672
|
-
*/
|
|
673
|
-
}, {
|
|
674
|
-
key: "_createTexture",
|
|
675
|
-
value: function _createTexture(context, imagery) {
|
|
676
|
-
var tileBbox = rectangleToBounds(imagery.rectangle);
|
|
677
|
-
this.logDebug({
|
|
678
|
-
type: 'tile-loaded',
|
|
679
|
-
x: imagery.x,
|
|
680
|
-
y: imagery.y,
|
|
681
|
-
level: imagery.level,
|
|
682
|
-
bbox: tileBbox,
|
|
683
|
-
imageSize: getImageSize(imagery.image)
|
|
684
|
-
});
|
|
685
|
-
if (!this._clipFeatureEntries.length) {
|
|
686
|
-
return this.createTexture(context, imagery);
|
|
687
|
-
}
|
|
688
|
-
try {
|
|
689
|
-
return this.createClippedTexture(context, imagery, tileBbox);
|
|
690
|
-
} catch (error) {
|
|
691
|
-
this.logDebug({
|
|
692
|
-
type: 'tile-error',
|
|
693
|
-
x: imagery.x,
|
|
694
|
-
y: imagery.y,
|
|
695
|
-
level: imagery.level,
|
|
696
|
-
bbox: tileBbox,
|
|
697
|
-
error: error
|
|
698
|
-
});
|
|
699
|
-
return this.createTexture(context, imagery);
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
/** 调用 Cesium 原始纹理创建逻辑。 */
|
|
704
|
-
}, {
|
|
705
|
-
key: "createTexture",
|
|
706
|
-
value: function createTexture(context, imagery) {
|
|
707
|
-
return ImageryLayer.prototype._createTexture.call(this, context, imagery);
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
/** 根据裁剪面 bbox 粗过滤当前瓦片可能相交的面。 */
|
|
711
|
-
}, {
|
|
712
|
-
key: "getCandidateClipFeatureIndexes",
|
|
713
|
-
value: function getCandidateClipFeatureIndexes(tileBbox) {
|
|
714
|
-
var candidateIndexes = [];
|
|
715
|
-
this._clipFeatureEntries.forEach(function (entry, index) {
|
|
716
|
-
if (boundsIntersects(tileBbox, entry.bbox)) {
|
|
717
|
-
candidateIndexes.push(index);
|
|
718
|
-
}
|
|
719
|
-
});
|
|
720
|
-
return candidateIndexes;
|
|
721
|
-
}
|
|
722
|
-
}, {
|
|
723
|
-
key: "getClipFeatures",
|
|
724
|
-
value: function getClipFeatures(candidateIndexes) {
|
|
725
|
-
var _this2 = this;
|
|
726
|
-
var features = [];
|
|
727
|
-
candidateIndexes.forEach(function (index) {
|
|
728
|
-
var _this2$_clipFeatureEn;
|
|
729
|
-
var feature = (_this2$_clipFeatureEn = _this2._clipFeatureEntries[index]) === null || _this2$_clipFeatureEn === void 0 ? void 0 : _this2$_clipFeatureEn.feature;
|
|
730
|
-
if (feature) {
|
|
731
|
-
features.push(feature);
|
|
732
|
-
}
|
|
733
|
-
});
|
|
734
|
-
return features;
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
// 按需创建裁剪 Worker;初始化失败时自动回退主线程裁剪。
|
|
738
|
-
}, {
|
|
739
|
-
key: "getClipWorkerClient",
|
|
740
|
-
value: function getClipWorkerClient() {
|
|
741
|
-
if (!this._clipWithWorker || this._destroyed || !this._clipFeatureEntries.length) {
|
|
742
|
-
return null;
|
|
743
|
-
}
|
|
744
|
-
if (this._clipWorkerClient) {
|
|
745
|
-
return this._clipWorkerClient;
|
|
746
|
-
}
|
|
747
|
-
try {
|
|
748
|
-
this._clipWorkerClient = new CustomRasterClipWorkerClient({
|
|
749
|
-
features: this._clipFeatureEntries,
|
|
750
|
-
workerUrl: this._clipWorkerUrl || undefined
|
|
751
|
-
});
|
|
752
|
-
return this._clipWorkerClient;
|
|
753
|
-
} catch (error) {
|
|
754
|
-
this._clipWithWorker = false;
|
|
755
|
-
console.warn('栅格裁剪 Worker 初始化失败,已回退主线程裁剪', error);
|
|
756
|
-
return null;
|
|
757
|
-
}
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
// 销毁当前裁剪 Worker,避免销毁后仍有挂起任务占用资源。
|
|
761
|
-
}, {
|
|
762
|
-
key: "destroyClipWorkerClient",
|
|
763
|
-
value: function destroyClipWorkerClient() {
|
|
764
|
-
var _this$_clipWorkerClie;
|
|
765
|
-
(_this$_clipWorkerClie = this._clipWorkerClient) === null || _this$_clipWorkerClie === void 0 || _this$_clipWorkerClie.destroy();
|
|
766
|
-
this._clipWorkerClient = null;
|
|
767
|
-
}
|
|
768
|
-
}, {
|
|
769
|
-
key: "createClippedTexture",
|
|
770
|
-
value: function createClippedTexture(context, imagery, tileBbox) {
|
|
771
|
-
var _this3 = this;
|
|
772
|
-
var candidateIndexes = this.getCandidateClipFeatureIndexes(tileBbox);
|
|
773
|
-
if (!candidateIndexes.length) {
|
|
774
|
-
return this.applyClipResult(context, imagery, tileBbox, {
|
|
775
|
-
status: 'discarded',
|
|
776
|
-
reason: 'outside-clip'
|
|
777
|
-
});
|
|
778
|
-
}
|
|
779
|
-
var clipWorkerClient = this.getClipWorkerClient();
|
|
780
|
-
if (!clipWorkerClient) {
|
|
781
|
-
return this.applyClipResult(context, imagery, tileBbox, this.clipTileOnMainThread(tileBbox, candidateIndexes, imagery));
|
|
782
|
-
}
|
|
783
|
-
void clipWorkerClient.clip({
|
|
784
|
-
tileBbox: tileBbox,
|
|
785
|
-
candidateIndexes: candidateIndexes,
|
|
786
|
-
width: imagery.image.width,
|
|
787
|
-
height: imagery.image.height
|
|
788
|
-
}).then(function (result) {
|
|
789
|
-
if (_this3._destroyed) {
|
|
790
|
-
return;
|
|
791
|
-
}
|
|
792
|
-
_this3.applyClipResult(context, imagery, tileBbox, result);
|
|
793
|
-
}).catch(function (error) {
|
|
794
|
-
_this3.destroyClipWorkerClient();
|
|
795
|
-
_this3._clipWithWorker = false;
|
|
796
|
-
if (_this3._destroyed) {
|
|
797
|
-
return;
|
|
798
|
-
}
|
|
799
|
-
_this3.logDebug({
|
|
800
|
-
type: 'tile-error',
|
|
801
|
-
x: imagery.x,
|
|
802
|
-
y: imagery.y,
|
|
803
|
-
level: imagery.level,
|
|
804
|
-
bbox: tileBbox,
|
|
805
|
-
error: error
|
|
806
|
-
});
|
|
807
|
-
try {
|
|
808
|
-
_this3.applyClipResult(context, imagery, tileBbox, _this3.clipTileOnMainThread(tileBbox, candidateIndexes, imagery));
|
|
809
|
-
} catch (fallbackError) {
|
|
810
|
-
_this3.logDebug({
|
|
811
|
-
type: 'tile-error',
|
|
812
|
-
x: imagery.x,
|
|
813
|
-
y: imagery.y,
|
|
814
|
-
level: imagery.level,
|
|
815
|
-
bbox: tileBbox,
|
|
816
|
-
error: fallbackError
|
|
817
|
-
});
|
|
818
|
-
_this3.createTexture(context, imagery);
|
|
819
|
-
}
|
|
820
|
-
});
|
|
821
|
-
return undefined;
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
/** 主线程裁剪回退逻辑,保持与 Worker 返回结构一致。 */
|
|
825
|
-
}, {
|
|
826
|
-
key: "clipTileOnMainThread",
|
|
827
|
-
value: function clipTileOnMainThread(tileBbox, candidateIndexes, imagery) {
|
|
828
|
-
var _this4 = this;
|
|
829
|
-
var clipFeatures = this.getClipFeatures(candidateIndexes);
|
|
830
|
-
if (!clipFeatures.length) {
|
|
831
|
-
return {
|
|
832
|
-
status: 'discarded',
|
|
833
|
-
reason: 'outside-clip'
|
|
834
|
-
};
|
|
835
|
-
}
|
|
836
|
-
var tileFeature = turf.bboxPolygon(tileBbox);
|
|
837
|
-
var isWithin = clipFeatures.some(function (feature) {
|
|
838
|
-
return turf.booleanWithin(tileFeature, feature);
|
|
839
|
-
});
|
|
840
|
-
if (isWithin) {
|
|
841
|
-
return {
|
|
842
|
-
status: 'kept',
|
|
843
|
-
reason: 'within-clip'
|
|
844
|
-
};
|
|
845
|
-
}
|
|
846
|
-
var intersections = this.getClipIntersections(tileFeature, clipFeatures);
|
|
847
|
-
if (!intersections.length) {
|
|
848
|
-
return {
|
|
849
|
-
status: 'discarded',
|
|
850
|
-
reason: 'outside-clip'
|
|
851
|
-
};
|
|
852
|
-
}
|
|
853
|
-
return {
|
|
854
|
-
status: 'clipped',
|
|
855
|
-
reason: 'intersects-clip',
|
|
856
|
-
paths: intersections.flatMap(function (intersection) {
|
|
857
|
-
return _this4.geometryToPathArray({
|
|
858
|
-
boundPolygon: intersection,
|
|
859
|
-
bbox: tileBbox,
|
|
860
|
-
width: imagery.image.width,
|
|
861
|
-
height: imagery.image.height
|
|
862
|
-
});
|
|
863
|
-
})
|
|
864
|
-
};
|
|
865
|
-
}
|
|
866
|
-
}, {
|
|
867
|
-
key: "applyClipResult",
|
|
868
|
-
value: function applyClipResult(context, imagery, tileBbox, result) {
|
|
869
|
-
var _this5 = this;
|
|
870
|
-
if (result.status === 'kept') {
|
|
871
|
-
this.logDebug({
|
|
872
|
-
type: 'tile-kept',
|
|
873
|
-
x: imagery.x,
|
|
874
|
-
y: imagery.y,
|
|
875
|
-
level: imagery.level,
|
|
876
|
-
bbox: tileBbox,
|
|
877
|
-
reason: result.reason
|
|
878
|
-
});
|
|
879
|
-
return this.createTexture(context, imagery);
|
|
880
|
-
}
|
|
881
|
-
if (result.status === 'discarded') {
|
|
882
|
-
this.logDebug({
|
|
883
|
-
type: 'tile-discarded',
|
|
884
|
-
x: imagery.x,
|
|
885
|
-
y: imagery.y,
|
|
886
|
-
level: imagery.level,
|
|
887
|
-
bbox: tileBbox,
|
|
888
|
-
reason: result.reason
|
|
889
|
-
});
|
|
890
|
-
imagery.image = this.createTileCanvas(imagery);
|
|
891
|
-
return this.createTexture(context, imagery);
|
|
892
|
-
}
|
|
893
|
-
var canvas = this.createTileCanvas(imagery);
|
|
894
|
-
var canvasContext = canvas.getContext('2d');
|
|
895
|
-
if (!canvasContext) {
|
|
896
|
-
return this.createTexture(context, imagery);
|
|
897
|
-
}
|
|
898
|
-
canvasContext.drawImage(imagery.image, 0, 0, imagery.image.width, imagery.image.height);
|
|
899
|
-
this.clip(canvasContext, result.paths);
|
|
900
|
-
this.logDebug({
|
|
901
|
-
type: 'tile-clipped',
|
|
902
|
-
x: imagery.x,
|
|
903
|
-
y: imagery.y,
|
|
904
|
-
level: imagery.level,
|
|
905
|
-
bbox: tileBbox,
|
|
906
|
-
reason: result.reason
|
|
907
|
-
});
|
|
908
|
-
if (typeof createImageBitmap !== 'function') {
|
|
909
|
-
imagery.image = canvas;
|
|
910
|
-
return this.createTexture(context, imagery);
|
|
911
|
-
}
|
|
912
|
-
void createImageBitmap(canvas).then(function (image) {
|
|
913
|
-
if (_this5._destroyed) {
|
|
914
|
-
return;
|
|
915
|
-
}
|
|
916
|
-
imagery.image = image;
|
|
917
|
-
_this5.createTexture(context, imagery);
|
|
918
|
-
}).catch(function (error) {
|
|
919
|
-
if (_this5._destroyed) {
|
|
920
|
-
return;
|
|
921
|
-
}
|
|
922
|
-
_this5.logDebug({
|
|
923
|
-
type: 'tile-error',
|
|
924
|
-
x: imagery.x,
|
|
925
|
-
y: imagery.y,
|
|
926
|
-
level: imagery.level,
|
|
927
|
-
bbox: tileBbox,
|
|
928
|
-
error: error
|
|
929
|
-
});
|
|
930
|
-
imagery.image = canvas;
|
|
931
|
-
_this5.createTexture(context, imagery);
|
|
932
|
-
});
|
|
933
|
-
return undefined;
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
/** 获取当前瓦片与候选裁剪面的交集,用交集路径裁剪当前瓦片。 */
|
|
937
|
-
}, {
|
|
938
|
-
key: "getClipIntersections",
|
|
939
|
-
value: function getClipIntersections(tileFeature, clipFeatures) {
|
|
940
|
-
var intersections = [];
|
|
941
|
-
clipFeatures.forEach(function (feature) {
|
|
942
|
-
if (!turf.booleanIntersects(tileFeature, feature)) {
|
|
943
|
-
return;
|
|
944
|
-
}
|
|
945
|
-
var intersection = turf.intersect(tileFeature, feature);
|
|
946
|
-
if (intersection !== null && intersection !== void 0 && intersection.geometry) {
|
|
947
|
-
intersections.push(intersection);
|
|
948
|
-
}
|
|
949
|
-
});
|
|
950
|
-
return intersections;
|
|
951
|
-
}
|
|
952
|
-
|
|
953
|
-
/** 创建与当前瓦片同尺寸的透明 canvas。 */
|
|
954
|
-
}, {
|
|
955
|
-
key: "createTileCanvas",
|
|
956
|
-
value: function createTileCanvas(imagery) {
|
|
957
|
-
var canvas = document.createElement('canvas');
|
|
958
|
-
canvas.width = imagery.image.width;
|
|
959
|
-
canvas.height = imagery.image.height;
|
|
960
|
-
return canvas;
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
/** 将地理坐标转换为当前瓦片画布像素坐标。 */
|
|
964
|
-
}, {
|
|
965
|
-
key: "pointToPixel",
|
|
966
|
-
value: function pointToPixel(options) {
|
|
967
|
-
for (var i = 0; i < options.coors.length; i += 1) {
|
|
968
|
-
var coorTmp = options.coors[i];
|
|
969
|
-
var pointTmp = [];
|
|
970
|
-
for (var j = 0; j < coorTmp.length; j += 1) {
|
|
971
|
-
pointTmp.push([(coorTmp[j][0] - options.bbox[0]) / (options.bbox[2] - options.bbox[0]) * options.width, options.height - (options.bbox[3] - coorTmp[j][1]) / (options.bbox[3] - options.bbox[1]) * options.height]);
|
|
972
|
-
}
|
|
973
|
-
options.pointArr.push(pointTmp);
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
|
|
977
|
-
/** 将裁剪后的 geometry 转换为画布 path 坐标数组。 */
|
|
978
|
-
}, {
|
|
979
|
-
key: "geometryToPathArray",
|
|
980
|
-
value: function geometryToPathArray(options) {
|
|
981
|
-
var _this6 = this;
|
|
982
|
-
var featureType = options.boundPolygon.geometry.type;
|
|
983
|
-
var pointArr = [];
|
|
984
|
-
if (featureType === 'Polygon') {
|
|
985
|
-
this.pointToPixel({
|
|
986
|
-
pointArr: pointArr,
|
|
987
|
-
coors: options.boundPolygon.geometry.coordinates,
|
|
988
|
-
bbox: options.bbox,
|
|
989
|
-
width: options.width,
|
|
990
|
-
height: options.height
|
|
991
|
-
});
|
|
992
|
-
} else if (featureType === 'MultiPolygon') {
|
|
993
|
-
options.boundPolygon.geometry.coordinates.forEach(function (polygon) {
|
|
994
|
-
_this6.pointToPixel({
|
|
995
|
-
pointArr: pointArr,
|
|
996
|
-
coors: polygon,
|
|
997
|
-
bbox: options.bbox,
|
|
998
|
-
width: options.width,
|
|
999
|
-
height: options.height
|
|
1000
|
-
});
|
|
1001
|
-
});
|
|
1002
|
-
}
|
|
1003
|
-
return pointArr;
|
|
1004
|
-
}
|
|
1005
|
-
|
|
1006
|
-
/** 按 path 坐标裁剪当前瓦片画布。 */
|
|
1007
|
-
}, {
|
|
1008
|
-
key: "clip",
|
|
1009
|
-
value: function clip(context, pointArr) {
|
|
1010
|
-
context.save();
|
|
1011
|
-
context.globalCompositeOperation = 'destination-in';
|
|
1012
|
-
context.beginPath();
|
|
1013
|
-
for (var i = 0; i < pointArr.length; i += 1) {
|
|
1014
|
-
var pointTmp = pointArr[i];
|
|
1015
|
-
for (var j = 0; j < pointTmp.length; j += 1) {
|
|
1016
|
-
if (j === 0) {
|
|
1017
|
-
context.moveTo(pointTmp[j][0], pointTmp[j][1]);
|
|
1018
|
-
} else {
|
|
1019
|
-
context.lineTo(pointTmp[j][0], pointTmp[j][1]);
|
|
1020
|
-
}
|
|
1021
|
-
}
|
|
1022
|
-
}
|
|
1023
|
-
context.closePath();
|
|
1024
|
-
context.fillStyle = '#000000';
|
|
1025
|
-
context.fill();
|
|
1026
|
-
context.restore();
|
|
1027
|
-
}
|
|
1028
|
-
}, {
|
|
1029
|
-
key: "getTileKey",
|
|
1030
|
-
value: function getTileKey(event) {
|
|
1031
|
-
if (event.x === undefined || event.y === undefined || event.level === undefined) {
|
|
1032
|
-
return undefined;
|
|
1033
|
-
}
|
|
1034
|
-
return "".concat(event.level, "/").concat(event.x, "/").concat(event.y);
|
|
1035
|
-
}
|
|
1036
|
-
}, {
|
|
1037
|
-
key: "getDebugStatus",
|
|
1038
|
-
value: function getDebugStatus(event) {
|
|
1039
|
-
if (event.status) {
|
|
1040
|
-
return event.status;
|
|
1041
|
-
}
|
|
1042
|
-
if (event.type === 'tile-loaded') {
|
|
1043
|
-
return 'loaded';
|
|
1044
|
-
}
|
|
1045
|
-
if (event.type === 'tile-kept') {
|
|
1046
|
-
return 'kept';
|
|
1047
|
-
}
|
|
1048
|
-
if (event.type === 'tile-clipped') {
|
|
1049
|
-
return 'clipped';
|
|
1050
|
-
}
|
|
1051
|
-
if (event.type === 'tile-discarded') {
|
|
1052
|
-
return 'filtered';
|
|
1053
|
-
}
|
|
1054
|
-
if (event.type === 'tile-error') {
|
|
1055
|
-
return 'error';
|
|
1056
|
-
}
|
|
1057
|
-
return undefined;
|
|
1058
|
-
}
|
|
1059
|
-
}, {
|
|
1060
|
-
key: "normalizeDebugEvent",
|
|
1061
|
-
value: function normalizeDebugEvent(event) {
|
|
1062
|
-
var status = this.getDebugStatus(event);
|
|
1063
|
-
return _objectSpread(_objectSpread(_objectSpread({}, event), this.getTileKey(event) ? {
|
|
1064
|
-
tileKey: this.getTileKey(event)
|
|
1065
|
-
} : {}), status ? {
|
|
1066
|
-
status: status,
|
|
1067
|
-
loaded: true,
|
|
1068
|
-
clipped: status === 'clipped',
|
|
1069
|
-
filtered: status === 'filtered'
|
|
1070
|
-
} : {});
|
|
1071
|
-
}
|
|
1072
|
-
}, {
|
|
1073
|
-
key: "logBuiltInDebug",
|
|
1074
|
-
value: function logBuiltInDebug(event) {
|
|
1075
|
-
if (event.type === 'range') {
|
|
1076
|
-
console.log('[CustomRasterLayer] 渲染范围/裁剪范围', {
|
|
1077
|
-
renderBounds: event.renderBounds,
|
|
1078
|
-
clipBounds: event.clipBounds,
|
|
1079
|
-
clipFeature: event.clipFeature,
|
|
1080
|
-
tileBounds: event.tileBounds,
|
|
1081
|
-
bounds: event.bounds,
|
|
1082
|
-
dataCrs: event.dataCrs,
|
|
1083
|
-
clipFeatureCrs: event.clipFeatureCrs,
|
|
1084
|
-
renderCrs: event.renderCrs
|
|
1085
|
-
});
|
|
1086
|
-
return;
|
|
1087
|
-
}
|
|
1088
|
-
if (!event.status) {
|
|
1089
|
-
return;
|
|
1090
|
-
}
|
|
1091
|
-
if (event.type === 'tile-loaded' && this._clipFeatures.length) {
|
|
1092
|
-
return;
|
|
1093
|
-
}
|
|
1094
|
-
var style = DEBUG_STATUS_STYLES[event.status];
|
|
1095
|
-
var title = "[CustomRasterLayer] ".concat(style.label);
|
|
1096
|
-
var consoleStyle = "color: ".concat(style.consoleColor, "; font-weight: bold;");
|
|
1097
|
-
var tileInfo = "z=".concat(event.level, " x=").concat(event.x, " y=").concat(event.y);
|
|
1098
|
-
if (event.type === 'tile-error') {
|
|
1099
|
-
console.error("%c".concat(title, " ").concat(tileInfo), consoleStyle, event.error, event);
|
|
1100
|
-
return;
|
|
1101
|
-
}
|
|
1102
|
-
console.log("%c".concat(title, " ").concat(tileInfo), consoleStyle, {
|
|
1103
|
-
tileKey: event.tileKey,
|
|
1104
|
-
z: event.level,
|
|
1105
|
-
x: event.x,
|
|
1106
|
-
y: event.y,
|
|
1107
|
-
loaded: event.loaded,
|
|
1108
|
-
clipped: event.clipped,
|
|
1109
|
-
filtered: event.filtered,
|
|
1110
|
-
status: event.status,
|
|
1111
|
-
reason: event.reason,
|
|
1112
|
-
bbox: event.bbox,
|
|
1113
|
-
imageSize: event.imageSize
|
|
1114
|
-
});
|
|
1115
|
-
}
|
|
1116
|
-
|
|
1117
|
-
/** 输出结构化 debug 事件。 */
|
|
1118
|
-
}, {
|
|
1119
|
-
key: "logDebug",
|
|
1120
|
-
value: function logDebug(event) {
|
|
1121
|
-
if (!this._debug) {
|
|
1122
|
-
return;
|
|
1123
|
-
}
|
|
1124
|
-
var debugEvent = this.normalizeDebugEvent(_objectSpread({
|
|
1125
|
-
layerId: this.id
|
|
1126
|
-
}, event));
|
|
1127
|
-
if (typeof this._debug === 'function') {
|
|
1128
|
-
this._debug(debugEvent);
|
|
1129
|
-
return;
|
|
1130
|
-
}
|
|
1131
|
-
this.logBuiltInDebug(debugEvent);
|
|
1132
|
-
}
|
|
1133
|
-
}]);
|
|
1134
|
-
return CustomRasterLayer;
|
|
1135
|
-
}(ImageryLayer);
|
|
1136
|
-
export { CustomRasterLayer as default };
|
|
1
|
+
var _0x232263=_0x3e65;(function(_0x2e777c,_0x24faf3){var _0x27833a=_0x3e65,_0x38dfb3=_0x2e777c();while(!![]){try{var _0xca916c=-parseInt(_0x27833a(0x163))/0x1*(-parseInt(_0x27833a(0x13e))/0x2)+-parseInt(_0x27833a(0x18c))/0x3+parseInt(_0x27833a(0x1db))/0x4+parseInt(_0x27833a(0x184))/0x5+-parseInt(_0x27833a(0x141))/0x6+parseInt(_0x27833a(0x139))/0x7+parseInt(_0x27833a(0x1c8))/0x8*(parseInt(_0x27833a(0x183))/0x9);if(_0xca916c===_0x24faf3)break;else _0x38dfb3['push'](_0x38dfb3['shift']());}catch(_0x402cdc){_0x38dfb3['push'](_0x38dfb3['shift']());}}}(_0x184e,0x2f4d5));var _excluded=[_0x232263(0x11b)];function ownKeys(_0x4d8c47,_0x369635){var _0x4ec059=_0x232263,_0x27d4e0=Object['keys'](_0x4d8c47);if(Object[_0x4ec059(0x175)]){var _0x37741f=Object[_0x4ec059(0x175)](_0x4d8c47);_0x369635&&(_0x37741f=_0x37741f['filter'](function(_0x5831d9){var _0x2ecfc7=_0x4ec059;return Object['getOwnPropertyDescriptor'](_0x4d8c47,_0x5831d9)[_0x2ecfc7(0x169)];})),_0x27d4e0['push']['apply'](_0x27d4e0,_0x37741f);}return _0x27d4e0;}function _objectSpread(_0x26fa02){var _0xad1956=_0x232263;for(var _0x2f7579=0x1;_0x2f7579<arguments[_0xad1956(0x199)];_0x2f7579++){var _0x2d6009=null!=arguments[_0x2f7579]?arguments[_0x2f7579]:{};_0x2f7579%0x2?ownKeys(Object(_0x2d6009),!0x0)[_0xad1956(0x1c4)](function(_0x30cb2f){_defineProperty(_0x26fa02,_0x30cb2f,_0x2d6009[_0x30cb2f]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x26fa02,Object['getOwnPropertyDescriptors'](_0x2d6009)):ownKeys(Object(_0x2d6009))[_0xad1956(0x1c4)](function(_0x26f661){var _0x23c7f1=_0xad1956;Object['defineProperty'](_0x26fa02,_0x26f661,Object[_0x23c7f1(0x1dd)](_0x2d6009,_0x26f661));});}return _0x26fa02;}function _objectWithoutProperties(_0x45adc6,_0x2c2949){var _0x1abd62=_0x232263;if(_0x45adc6==null)return{};var _0x68df9f=_objectWithoutPropertiesLoose(_0x45adc6,_0x2c2949),_0x5e7a67,_0x5193f9;if(Object['getOwnPropertySymbols']){var _0x12c99e=Object['getOwnPropertySymbols'](_0x45adc6);for(_0x5193f9=0x0;_0x5193f9<_0x12c99e[_0x1abd62(0x199)];_0x5193f9++){_0x5e7a67=_0x12c99e[_0x5193f9];if(_0x2c2949[_0x1abd62(0x1bf)](_0x5e7a67)>=0x0)continue;if(!Object[_0x1abd62(0x1d5)]['propertyIsEnumerable']['call'](_0x45adc6,_0x5e7a67))continue;_0x68df9f[_0x5e7a67]=_0x45adc6[_0x5e7a67];}}return _0x68df9f;}function _objectWithoutPropertiesLoose(_0x458f09,_0x8ece28){var _0x3346b4=_0x232263;if(_0x458f09==null)return{};var _0x34d417={},_0x535ad6=Object[_0x3346b4(0x1a5)](_0x458f09),_0x3ec5e1,_0x1e9465;for(_0x1e9465=0x0;_0x1e9465<_0x535ad6['length'];_0x1e9465++){_0x3ec5e1=_0x535ad6[_0x1e9465];if(_0x8ece28[_0x3346b4(0x1bf)](_0x3ec5e1)>=0x0)continue;_0x34d417[_0x3ec5e1]=_0x458f09[_0x3ec5e1];}return _0x34d417;}function _classCallCheck(_0x2852f0,_0x426cc0){var _0x1fe612=_0x232263;if(!(_0x2852f0 instanceof _0x426cc0))throw new TypeError(_0x1fe612(0x15f));}function _defineProperties(_0x42c7f4,_0x5036e2){var _0x3adf77=_0x232263;for(var _0x3f31d2=0x0;_0x3f31d2<_0x5036e2['length'];_0x3f31d2++){var _0x2c4125=_0x5036e2[_0x3f31d2];_0x2c4125['enumerable']=_0x2c4125['enumerable']||![],_0x2c4125[_0x3adf77(0x1d6)]=!![];if('value'in _0x2c4125)_0x2c4125[_0x3adf77(0x135)]=!![];Object['defineProperty'](_0x42c7f4,_toPropertyKey(_0x2c4125[_0x3adf77(0x19b)]),_0x2c4125);}}function _createClass(_0x56de08,_0x29b863,_0x28e66c){var _0xb69512=_0x232263;if(_0x29b863)_defineProperties(_0x56de08['prototype'],_0x29b863);if(_0x28e66c)_defineProperties(_0x56de08,_0x28e66c);return Object[_0xb69512(0x12c)](_0x56de08,'prototype',{'writable':![]}),_0x56de08;}function _get(){var _0x4cc7f9=_0x232263;return typeof Reflect!=='undefined'&&Reflect['get']?_get=Reflect[_0x4cc7f9(0x1be)]['bind']():_get=function _0x19ffc6(_0x351ed9,_0x46b01a,_0x18ad1b){var _0x20a249=_0x4cc7f9,_0x223380=_superPropBase(_0x351ed9,_0x46b01a);if(!_0x223380)return;var _0x3b71cb=Object[_0x20a249(0x1dd)](_0x223380,_0x46b01a);if(_0x3b71cb[_0x20a249(0x1be)])return _0x3b71cb[_0x20a249(0x1be)][_0x20a249(0x194)](arguments['length']<0x3?_0x351ed9:_0x18ad1b);return _0x3b71cb[_0x20a249(0x187)];},_get['apply'](this,arguments);}function _superPropBase(_0xcb853d,_0x1f2f6e){while(!Object['prototype']['hasOwnProperty']['call'](_0xcb853d,_0x1f2f6e)){_0xcb853d=_getPrototypeOf(_0xcb853d);if(_0xcb853d===null)break;}return _0xcb853d;}function _inherits(_0x4721e6,_0x49a297){var _0x36dac0=_0x232263;if(typeof _0x49a297!==_0x36dac0(0x152)&&_0x49a297!==null)throw new TypeError(_0x36dac0(0x126));_0x4721e6[_0x36dac0(0x1d5)]=Object['create'](_0x49a297&&_0x49a297[_0x36dac0(0x1d5)],{'constructor':{'value':_0x4721e6,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x4721e6,'prototype',{'writable':![]});if(_0x49a297)_setPrototypeOf(_0x4721e6,_0x49a297);}function _setPrototypeOf(_0x39a5bf,_0x5440b8){var _0x2d7178=_0x232263;return _setPrototypeOf=Object[_0x2d7178(0x17e)]?Object['setPrototypeOf'][_0x2d7178(0x15e)]():function _0x2ce628(_0x3ba6bd,_0xdaee40){var _0x4d003b=_0x2d7178;return _0x3ba6bd[_0x4d003b(0x1ca)]=_0xdaee40,_0x3ba6bd;},_setPrototypeOf(_0x39a5bf,_0x5440b8);}function _createSuper(_0x5b51aa){var _0x544045=_isNativeReflectConstruct();return function _0x479967(){var _0x12084d=_0x3e65,_0x397f93=_getPrototypeOf(_0x5b51aa),_0x414db2;if(_0x544045){var _0x17480b=_getPrototypeOf(this)['constructor'];_0x414db2=Reflect[_0x12084d(0x12b)](_0x397f93,arguments,_0x17480b);}else _0x414db2=_0x397f93[_0x12084d(0x1c0)](this,arguments);return _possibleConstructorReturn(this,_0x414db2);};}function _possibleConstructorReturn(_0x1fafbd,_0x12707a){var _0x3c2000=_0x232263;if(_0x12707a&&(_typeof(_0x12707a)===_0x3c2000(0x193)||typeof _0x12707a===_0x3c2000(0x152)))return _0x12707a;else{if(_0x12707a!==void 0x0)throw new TypeError(_0x3c2000(0x1c5));}return _assertThisInitialized(_0x1fafbd);}function _assertThisInitialized(_0x3776ec){if(_0x3776ec===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x3776ec;}function _isNativeReflectConstruct(){var _0x1af2fc=_0x232263;if(typeof Reflect==='undefined'||!Reflect[_0x1af2fc(0x12b)])return![];if(Reflect[_0x1af2fc(0x12b)][_0x1af2fc(0x11c)])return![];if(typeof Proxy===_0x1af2fc(0x152))return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x2a6360){return![];}}function _getPrototypeOf(_0x457ac1){return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf']['bind']():function _0x4ab2fc(_0x3878e8){var _0x322f1c=_0x3e65;return _0x3878e8[_0x322f1c(0x1ca)]||Object[_0x322f1c(0x144)](_0x3878e8);},_getPrototypeOf(_0x457ac1);}function _0x3e65(_0x57c93c,_0x43886b){_0x57c93c=_0x57c93c-0x11a;var _0x184e80=_0x184e();var _0x3e65f1=_0x184e80[_0x57c93c];if(_0x3e65['MzRVBY']===undefined){var _0x11d7ab=function(_0x508c57){var _0x4ec79c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x35f2e8='',_0x51ba69='';for(var _0x24f2d0=0x0,_0x333acb,_0x2a7f80,_0x4d8c47=0x0;_0x2a7f80=_0x508c57['charAt'](_0x4d8c47++);~_0x2a7f80&&(_0x333acb=_0x24f2d0%0x4?_0x333acb*0x40+_0x2a7f80:_0x2a7f80,_0x24f2d0++%0x4)?_0x35f2e8+=String['fromCharCode'](0xff&_0x333acb>>(-0x2*_0x24f2d0&0x6)):0x0){_0x2a7f80=_0x4ec79c['indexOf'](_0x2a7f80);}for(var _0x369635=0x0,_0x27d4e0=_0x35f2e8['length'];_0x369635<_0x27d4e0;_0x369635++){_0x51ba69+='%'+('00'+_0x35f2e8['charCodeAt'](_0x369635)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51ba69);};_0x3e65['wotVGq']=_0x11d7ab,_0x3e65['vmRHfD']={},_0x3e65['MzRVBY']=!![];}var _0x127299=_0x184e80[0x0],_0x5d5615=_0x57c93c+_0x127299,_0x33872a=_0x3e65['vmRHfD'][_0x5d5615];return!_0x33872a?(_0x3e65f1=_0x3e65['wotVGq'](_0x3e65f1),_0x3e65['vmRHfD'][_0x5d5615]=_0x3e65f1):_0x3e65f1=_0x33872a,_0x3e65f1;}function _defineProperty(_0x623e63,_0x3c0b29,_0x18d4b3){return _0x3c0b29=_toPropertyKey(_0x3c0b29),_0x3c0b29 in _0x623e63?Object['defineProperty'](_0x623e63,_0x3c0b29,{'value':_0x18d4b3,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x623e63[_0x3c0b29]=_0x18d4b3,_0x623e63;}function _toPropertyKey(_0x4fc964){var _0x400120=_0x232263,_0x1b224b=_toPrimitive(_0x4fc964,_0x400120(0x160));return'symbol'==_typeof(_0x1b224b)?_0x1b224b:String(_0x1b224b);}function _0x184e(){var _0x4ec52c=['Bw92zvrV','zM9YrwfJAa','rgvYAxzLzcbJB25ZDhj1y3rVCNmGBwf5ig9UBhKGCMv0DxjUig9IAMvJDcbVCIb1BMrLzMLUzwq','zg9Uzq','x2rLC3rYB3LLza','ogPnCeTUAW','zgLZy2fYzgvK','x19WCM90B19F','rMvHDhvYzunVBgXLy3rPB24','k3bYB2O9BwvYyYaRyt02mZC4mtm3icTIptyZnZGXmZCGk2XHDf90CZ0WicTSB25Fmd0Wia','w0n1C3rVBvjHC3rLCKXHEwvYxsdMUllMN5pOJipLM7qV6kob5yMQ6iYd5zU0','y29UC3rYDwn0B3i','Dg9ezwDYzwvZ','D2vItwvYy2f0B3i','y2XVC2vqyxrO','rMvHDhvYzq','C291DgG','k3HFmd0WicT5xZa9mcaRAZ0XicT1BML0CZ1TicTUywrNCMLKCZ1aBNvSBcaRD2T0zxH0icTUB19KzwzZicT0ExbLpwnYCW','ChjVDg90ExbL','y29UzMLNDxjHyMXL','ChjVAMvJDgLVBG','rvbtrZO','Cg9PBNruB1bPEgvS','iZe2ytm0yq','ndm4mdyWt2Tev0fS','C3rHDhvZ','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','z2v0q2XPCezLyxr1CMvZ','DgLSAw5Nu2nOzw1L','C2HHBq','y3jLyxrLvgLSzunHBNzHCW','BgLUzvrV','y2XPCezLyxr1CMu','x2nYzwf0zvrLEhr1CMu','z2v0vgLSzuTLEq','v2vItwvYy2f0B3juAwXPBMDty2HLBwu','txvSDgLqB2X5z29U','icTZB3v0AcaRzgf0Dw09v0DtodqGk3vUAxrZpw0Gk25Vx2rLzNmGk3r5Cgu9y3jZ','yxbWBhLdBgLWuMvZDwX0','u3vWzxiGzxHWCMvZC2LVBIbTDxn0igvPDgHLCIbIzsbUDwXSig9YigeGzNvUy3rPB24','DhLWzq','zNjVBurLz3jLzxm','BwfW','vxjSvgvTCgXHDgvjBwfNzxj5uhjVDMLKzxi','y29UC3rYDwn0','zgvMAw5LuhjVCgvYDhK','C3LTyM9S','55oM54Mh5Ase55cg5BYc5BI4','y2XPCfrPBgvpBK1HAw5uAhjLywq','Aw1Hz2u','AgvPz2H0','zNjVBq','zgvMyxvSDa','DgLSzs1Rzxb0','D3jPDgfIBgu','z2v0twfW','sw52ywXPzcbHDhrLBxb0ihrVihnWCMvHzcbUB24TAxrLCMfIBguGAw5ZDgfUy2uUcKLUig9YzgvYihrVigjLigL0zxjHyMXLlcbUB24TyxjYyxKGB2jQzwn0CYbTDxn0igHHDMuGysbBu3LTyM9SlML0zxjHDg9YxsGPig1LDgHVzc4','q3vZDg9TuMfZDgvYtgf5zxiGC291CMnLlM1PBMLTDw1mzxzLBca+idaGCMvXDwLYzxmGyM91BMrZlcbZB3vYy2uUCMvJDgfUz2XLlcbVCIbHihzHBgLKignSAxbgzwf0DxjLigjVDw5KCY4','mJKZmZKXyNrQDKX4','yM91BMrqB2X5z29U','zwXSAxbZB2LK','zgvZDhjVEq','DgLSzvHzvg9szwn0yw5NBgu','mZC0ntblu25Qt0i','w0n1C3rVBvjHC3rLCKXHEwvYxsa','DgvZDa','nda0ndmWzwDVvLDY','y2XPChbLza','r2vVBwv0CNLdB2XSzwn0Aw9U','z2v0uhjVDg90ExbLt2y','C3fYDa','yM9VBgvHBKLUDgvYC2vJDhm','BNvTyMvY','y29Uy2f0','y3jLyxrLvgv4DhvYzq','C2LU','x2nSAxbgzwf0DxjLCW','zgvMCW','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','CMvUzgvYq3jZ','CMfUz2u','BMfTzq','zMX5vg8','zNvUy3rPB24','y2f0y2G','CMv0DxjU','Bg9NqNvPBhrjBKrLyNvN','zML0vg9cB3vUzhm','zgf0yunYCW','DgLSzuTLEq','z2vVBwv0CNLuB1bHDgHbCNjHEq','Aw50zxjZzwn0CY1JBgLW','ug9SEwDVBG','Dw5KzwzPBMvK','y2XPCejVDw5KCW','yMLUza','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','C3rYAw5N','CMvJDgfUz2XLvg9oyxrPDMvszwn0yw5NBgu','mZG1nW','mtzOCufosg8','C29Tzq','CMvJDgfUz2XL','BwLU','CMvHC29U','AxngAw5PDgu','zw51BwvYywjSzq','yxv0B0zPDejVDw5KCW','zhjHD0LTywDL','AgfZu291CMnLuMvJDgfUz2XL','C291CMnL','k3bYB2O9DxrTicT6B25Lpq','DgLSzs1LCNjVCG','y2XPCa','BMv4Da','x21HCenVBNrLEhq','zMLSBfn0EwXL','AxnbCNjHEq','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','z2v0tNvTyMvYt2zyvgLSzxnbDeXLDMvS','BwLUAw11BuXLDMvS','zgvZDhjVEunSAxbxB3jRzxjdBgLLBNq','DgLSzs1JBgLWCgvK','z2vVBwv0CNK','DgLSzs1SB2fKzwq','z2v0q29UDgv4Da','z2v0q2fUzgLKyxrLq2XPCezLyxr1CMvjBMrLEgvZ','C2v0uhjVDg90ExbLt2y','icTKyxr1Bt1xr1m4ncaRDw5PDhm9BsaRBM9FzgvMCYaRDhLWzt1JCNm','q3vZDg9TuMfZDgvYtgf5zxiGzML0vg9cB3vUzhmGCMvXDwLYzxmGysbTyxaU','ChvZAa','y29Z','ndiXntC4yw9Lr3Pt','nJaZmJyWugLbBvHv','Bwf0y2G','A2vWDa','DMfSDwu','zMvHDhvYzq','Bg9NrgvIDwC','AxrLCMf0B3i','q3vZDg9TuMfZDgvYtgf5zxiGC291CMnLigLZihjLCxvPCMvKlG','mta3mJeWneTeDgHivG','twf0Aa','twfW','Bg9HzgvK','z2v0rgvIDwDtDgf0Dxm','zMXHDe1HCa','x2nSAxbxB3jRzxjdBgLLBNq','B2jQzwn0','y2fSBa','Bg9N','x2nSAxbxAxrOv29YA2vY','x2nSAxbgzwf0DxjLrw50CMLLCW','y2fTzxjH','BgvUz3rO','Bwf4','A2v5','r0nkmdi','C3rYAw5NAwz5','Bg9Uz2L0DwrL','ywjZ','D2LKDgG','zgvIDwC','B3v0C2LKzs1JBgLW','zxjYB3i','z2v0q2XPCfDVCMTLCKnSAwvUDa','A2v5CW','zwfZDa','Bgv2zwW','D2L0AgLUlwnSAxa','CMvZDg9Yzq','zMvHDhvYzxm','Cg9PBNrbCNi','y2XPCezLyxr1CMvdCNm','zMLSDgvYzwq','yMjVEa','BM9YBwfSAxPLrgvIDwDfDMvUDa','x2zPDejVDw5KCW','x2nSAxbxB3jRzxjvCMW','DgLSzujVDw5KCW','C2XPy2u','ChjVAMvJDgLVBKrLzNm','i2vHyJmWoa','yM91BMrZ','C2v0q2fTzxjHvMLLD0j5qMjVEa','AgfZuMvUzgvYqM91BMrZ','y29VCMrPBMf0zxm','D2fYBG','x2rLyNvN','yMvNAw5qyxrO','oYbMB250lxDLAwDODdOGyM9SzdS','z2v0','Aw5KzxHpzG','yxbWBhK','EKLUzgv4','zw50CMLLCW'];_0x184e=function(){return _0x4ec52c;};return _0x184e();}function _toPrimitive(_0x4bdb5d,_0xb1c0ea){var _0x49996e=_0x232263;if(_0x49996e(0x193)!=_typeof(_0x4bdb5d)||!_0x4bdb5d)return _0x4bdb5d;var _0x2366aa=_0x4bdb5d[Symbol['toPrimitive']];if(void 0x0!==_0x2366aa){var _0x5e3271=_0x2366aa['call'](_0x4bdb5d,_0xb1c0ea||_0x49996e(0x133));if(_0x49996e(0x193)!=_typeof(_0x5e3271))return _0x5e3271;throw new TypeError(_0x49996e(0x14d));}return('string'===_0xb1c0ea?String:Number)(_0x4bdb5d);}function _typeof(_0x37d9e0){'@babel/helpers - typeof';var _0x919fd9=_0x232263;return _typeof=_0x919fd9(0x152)==typeof Symbol&&_0x919fd9(0x12d)==typeof Symbol[_0x919fd9(0x18a)]?function(_0x19a4a9){return typeof _0x19a4a9;}:function(_0x2a11ce){var _0x57ba94=_0x919fd9;return _0x2a11ce&&_0x57ba94(0x152)==typeof Symbol&&_0x2a11ce[_0x57ba94(0x1ce)]===Symbol&&_0x2a11ce!==Symbol[_0x57ba94(0x1d5)]?_0x57ba94(0x12d):typeof _0x2a11ce;},_typeof(_0x37d9e0);}function _toConsumableArray(_0x1f5d85){return _arrayWithoutHoles(_0x1f5d85)||_iterableToArray(_0x1f5d85)||_unsupportedIterableToArray(_0x1f5d85)||_nonIterableSpread();}function _nonIterableSpread(){var _0x90084=_0x232263;throw new TypeError(_0x90084(0x137));}function _iterableToArray(_0x15b4df){var _0x31e9a3=_0x232263;if(typeof Symbol!=='undefined'&&_0x15b4df[Symbol['iterator']]!=null||_0x15b4df['@@iterator']!=null)return Array[_0x31e9a3(0x132)](_0x15b4df);}function _arrayWithoutHoles(_0x46929d){var _0xecdbf=_0x232263;if(Array[_0xecdbf(0x174)](_0x46929d))return _arrayLikeToArray(_0x46929d);}function _slicedToArray(_0x54b072,_0x6308f8){return _arrayWithHoles(_0x54b072)||_iterableToArrayLimit(_0x54b072,_0x6308f8)||_unsupportedIterableToArray(_0x54b072,_0x6308f8)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x1526b7,_0xc07d36){var _0x332bbf=_0x232263;if(!_0x1526b7)return;if(typeof _0x1526b7===_0x332bbf(0x160))return _arrayLikeToArray(_0x1526b7,_0xc07d36);var _0x1d24ae=Object['prototype']['toString'][_0x332bbf(0x194)](_0x1526b7)[_0x332bbf(0x1b3)](0x8,-0x1);if(_0x1d24ae==='Object'&&_0x1526b7[_0x332bbf(0x1ce)])_0x1d24ae=_0x1526b7[_0x332bbf(0x1ce)][_0x332bbf(0x150)];if(_0x1d24ae===_0x332bbf(0x18e)||_0x1d24ae==='Set')return Array[_0x332bbf(0x132)](_0x1526b7);if(_0x1d24ae==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x332bbf(0x140)](_0x1d24ae))return _arrayLikeToArray(_0x1526b7,_0xc07d36);}function _arrayLikeToArray(_0x20eff6,_0x1e4fb9){var _0x19cdb4=_0x232263;if(_0x1e4fb9==null||_0x1e4fb9>_0x20eff6[_0x19cdb4(0x199)])_0x1e4fb9=_0x20eff6['length'];for(var _0x1057d9=0x0,_0xd4a58a=new Array(_0x1e4fb9);_0x1057d9<_0x1e4fb9;_0x1057d9++)_0xd4a58a[_0x1057d9]=_0x20eff6[_0x1057d9];return _0xd4a58a;}function _iterableToArrayLimit(_0x290f95,_0x5ab62f){var _0x215782=_0x232263,_0x5f3f4f=null==_0x290f95?null:_0x215782(0x15c)!=typeof Symbol&&_0x290f95[Symbol['iterator']]||_0x290f95['@@iterator'];if(null!=_0x5f3f4f){var _0x5d5b21,_0x567287,_0x81c00b,_0x1415c3,_0x2005d6=[],_0xabad5c=!0x0,_0x2a1192=!0x1;try{if(_0x81c00b=(_0x5f3f4f=_0x5f3f4f['call'](_0x290f95))[_0x215782(0x171)],0x0===_0x5ab62f){if(Object(_0x5f3f4f)!==_0x5f3f4f)return;_0xabad5c=!0x1;}else{for(;!(_0xabad5c=(_0x5d5b21=_0x81c00b['call'](_0x5f3f4f))[_0x215782(0x1c6)])&&(_0x2005d6['push'](_0x5d5b21[_0x215782(0x187)]),_0x2005d6[_0x215782(0x199)]!==_0x5ab62f);_0xabad5c=!0x0);}}catch(_0x59edeb){_0x2a1192=!0x0,_0x567287=_0x59edeb;}finally{try{if(!_0xabad5c&&null!=_0x5f3f4f[_0x215782(0x154)]&&(_0x1415c3=_0x5f3f4f['return'](),Object(_0x1415c3)!==_0x1415c3))return;}finally{if(_0x2a1192)throw _0x567287;}}return _0x2005d6;}}function _arrayWithHoles(_0x117221){if(Array['isArray'](_0x117221))return _0x117221;}import*as _0x35f2e8 from'@turf/turf';import*as _0x51ba69 from'deeptwins-cesium';import _0x24f2d0 from'proj4';import _0x333acb from'./CustomRasterClipWorkerClient';import _0x2a7f80 from'./ImageryLayer';var DEFAULT_CRS='EPSG:4326',GCJ02_CRS=_0x232263(0x19c),WEB_MERCATOR_DEFINITION=_0x232263(0x1cc)+_0x232263(0x1d4),WGS84_DEFINITION='+proj=longlat\x20+datum=WGS84\x20+no_defs\x20+type=crs',GCJ02_A=0x615305,GCJ02_EE=0.006693421622965943,getEpsgCode=function getEpsgCode(_0x5f5a37){var _0x43d5e5=_0x232263,_0x3cc319=_0x5f5a37[_0x43d5e5(0x185)](/EPSG(?::|\/0\/|::)(\d+)/i)||_0x5f5a37[_0x43d5e5(0x185)](/^(\d+)$/);return _0x3cc319===null||_0x3cc319===void 0x0?void 0x0:_0x3cc319[0x1];},normalizeCrs=function normalizeCrs(){var _0x9fb288=_0x232263,_0x898bc6=arguments[_0x9fb288(0x199)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:DEFAULT_CRS;if(/^(gcj02|gcj-02)$/i['test'](_0x898bc6))return GCJ02_CRS;var _0x3807b5=getEpsgCode(_0x898bc6);return _0x3807b5?_0x9fb288(0x1d8)['concat'](_0x3807b5):_0x898bc6;},registerProjectionDefs=function registerProjectionDefs(_0x2a7cbe){var _0x487cf0=_0x232263;Object[_0x487cf0(0x1c2)](_0x2a7cbe||{})['forEach'](function(_0x45bfbb){var _0x3dc6a6=_slicedToArray(_0x45bfbb,0x2),_0x5891f3=_0x3dc6a6[0x0],_0x27f0c5=_0x3dc6a6[0x1];_0x24f2d0['defs'](normalizeCrs(_0x5891f3),_0x27f0c5);});},ensureProjDefinition=function ensureProjDefinition(_0x3ea7da){var _0x455968=_0x232263,_0x1d0024=normalizeCrs(_0x3ea7da);if(_0x1d0024===GCJ02_CRS)return _0x1d0024;if(_0x24f2d0['defs'](_0x1d0024))return _0x1d0024;var _0xf76a78=getEpsgCode(_0x1d0024);if(_0xf76a78==='4326')return _0x24f2d0['defs'](_0x1d0024,WGS84_DEFINITION),_0x1d0024;if(_0xf76a78===_0x455968(0x162))return _0x24f2d0['defs'](_0x1d0024,WEB_MERCATOR_DEFINITION),_0x1d0024;if(_0xf76a78&&/^326\d{2}$/['test'](_0xf76a78)){var _0xbd1b4d=Number(_0xf76a78['slice'](0x3));return _0x24f2d0[_0x455968(0x14c)](_0x1d0024,'+proj=utm\x20+zone='['concat'](_0xbd1b4d,_0x455968(0x17f))),_0x1d0024;}if(_0xf76a78&&/^327\d{2}$/[_0x455968(0x140)](_0xf76a78)){var _0x31bba0=Number(_0xf76a78['slice'](0x3));return _0x24f2d0[_0x455968(0x14c)](_0x1d0024,_0x455968(0x16e)['concat'](_0x31bba0,_0x455968(0x124))),_0x1d0024;}throw new Error('Missing\x20proj\x20definition\x20for\x20CRS:\x20'['concat'](_0x3ea7da));},isWgs84Crs=function isWgs84Crs(_0x430af9){return normalizeCrs(_0x430af9)===DEFAULT_CRS;},isWgs84LikeCrs=function isWgs84LikeCrs(_0x3ce247){return isWgs84Crs(_0x3ce247);},isOutOfChina=function isOutOfChina(_0x10c84e,_0x4a2616){return!(_0x10c84e>73.66&&_0x10c84e<135.05&&_0x4a2616>3.86&&_0x4a2616<53.55);},transformGcj02Lat=function transformGcj02Lat(_0x11efdd,_0x4d4b58){var _0x3df144=_0x232263,_0x203684=-0x64+0x2*_0x11efdd+0x3*_0x4d4b58+0.2*_0x4d4b58*_0x4d4b58+0.1*_0x11efdd*_0x4d4b58+0.2*Math['sqrt'](Math['abs'](_0x11efdd));return _0x203684+=(0x14*Math['sin'](0x6*_0x11efdd*Math['PI'])+0x14*Math[_0x3df144(0x14a)](0x2*_0x11efdd*Math['PI']))*0x2/0x3,_0x203684+=(0x14*Math[_0x3df144(0x14a)](_0x4d4b58*Math['PI'])+0x28*Math['sin'](_0x4d4b58/0x3*Math['PI']))*0x2/0x3,_0x203684+=(0xa0*Math[_0x3df144(0x14a)](_0x4d4b58/0xc*Math['PI'])+0x140*Math['sin'](_0x4d4b58*Math['PI']/0x1e))*0x2/0x3,_0x203684;},transformGcj02Lng=function transformGcj02Lng(_0x1ef8cc,_0x4878f2){var _0x11bb2a=_0x232263,_0x365ab9=0x12c+_0x1ef8cc+0x2*_0x4878f2+0.1*_0x1ef8cc*_0x1ef8cc+0.1*_0x1ef8cc*_0x4878f2+0.1*Math[_0x11bb2a(0x145)](Math[_0x11bb2a(0x19f)](_0x1ef8cc));return _0x365ab9+=(0x14*Math['sin'](0x6*_0x1ef8cc*Math['PI'])+0x14*Math['sin'](0x2*_0x1ef8cc*Math['PI']))*0x2/0x3,_0x365ab9+=(0x14*Math['sin'](_0x1ef8cc*Math['PI'])+0x28*Math[_0x11bb2a(0x14a)](_0x1ef8cc/0x3*Math['PI']))*0x2/0x3,_0x365ab9+=(0x96*Math['sin'](_0x1ef8cc/0xc*Math['PI'])+0x12c*Math['sin'](_0x1ef8cc/0x1e*Math['PI']))*0x2/0x3,_0x365ab9;},wgs84ToGcj02=function wgs84ToGcj02(_0x285271,_0x39c43f){var _0x167d6a=_0x232263;if(isOutOfChina(_0x285271,_0x39c43f))return[_0x285271,_0x39c43f];var _0x401531=transformGcj02Lat(_0x285271-0x69,_0x39c43f-0x23),_0xa190dd=transformGcj02Lng(_0x285271-0x69,_0x39c43f-0x23),_0xdbb0ed=_0x39c43f/0xb4*Math['PI'],_0x227301=Math['sin'](_0xdbb0ed);_0x227301=0x1-GCJ02_EE*_0x227301*_0x227301;var _0x5300f8=Math[_0x167d6a(0x145)](_0x227301);return _0x401531=_0x401531*0xb4/(GCJ02_A*(0x1-GCJ02_EE)/(_0x227301*_0x5300f8)*Math['PI']),_0xa190dd=_0xa190dd*0xb4/(GCJ02_A/_0x5300f8*Math[_0x167d6a(0x182)](_0xdbb0ed)*Math['PI']),[_0x285271+_0xa190dd,_0x39c43f+_0x401531];},gcj02ToWgs84=function gcj02ToWgs84(_0x370dda,_0x5d94ae){if(isOutOfChina(_0x370dda,_0x5d94ae))return[_0x370dda,_0x5d94ae];var _0x232065=wgs84ToGcj02(_0x370dda,_0x5d94ae),_0x35f48d=_slicedToArray(_0x232065,0x2),_0x30c144=_0x35f48d[0x0],_0x413f80=_0x35f48d[0x1];return[_0x370dda*0x2-_0x30c144,_0x5d94ae*0x2-_0x413f80];},transformPoint=function transformPoint(_0x186038,_0x34aec0,_0x1ec15c){var _0x3a9be7=_0x232263,_0x19b29=normalizeCrs(_0x34aec0),_0x42c320=normalizeCrs(_0x1ec15c);if(_0x19b29===_0x42c320)return _toConsumableArray(_0x186038);if(_0x19b29===GCJ02_CRS){var _0x3a5126=gcj02ToWgs84(_0x186038[0x0],_0x186038[0x1]);if(isWgs84LikeCrs(_0x42c320))return[][_0x3a9be7(0x148)](_toConsumableArray(_0x3a5126),_toConsumableArray(_0x186038['slice'](0x2)));var _0x526835=ensureProjDefinition(_0x42c320),_0x29b0ca=_0x24f2d0(DEFAULT_CRS,_0x526835,_0x3a5126),_0x8caa33=_slicedToArray(_0x29b0ca,0x2),_0x4d7efd=_0x8caa33[0x0],_0x31de74=_0x8caa33[0x1];return[_0x4d7efd,_0x31de74][_0x3a9be7(0x148)](_toConsumableArray(_0x186038[_0x3a9be7(0x1b3)](0x2)));}if(_0x42c320===GCJ02_CRS){var _0x4b5552=isWgs84LikeCrs(_0x19b29)?[_0x186038[0x0],_0x186038[0x1]]:_0x24f2d0(ensureProjDefinition(_0x19b29),DEFAULT_CRS,[_0x186038[0x0],_0x186038[0x1]]),_0x21a55e=wgs84ToGcj02(_0x4b5552[0x0],_0x4b5552[0x1]),_0x1f5a79=_slicedToArray(_0x21a55e,0x2),_0x12b534=_0x1f5a79[0x0],_0x4e8fef=_0x1f5a79[0x1];return[_0x12b534,_0x4e8fef][_0x3a9be7(0x148)](_toConsumableArray(_0x186038[_0x3a9be7(0x1b3)](0x2)));}var _0x827952=ensureProjDefinition(_0x19b29),_0x5afeb8=ensureProjDefinition(_0x42c320),_0x395b13=_0x24f2d0(_0x827952,_0x5afeb8,[_0x186038[0x0],_0x186038[0x1]]),_0x3e22db=_slicedToArray(_0x395b13,0x2),_0x10e9a6=_0x3e22db[0x0],_0x2d237e=_0x3e22db[0x1];return[_0x10e9a6,_0x2d237e]['concat'](_toConsumableArray(_0x186038['slice'](0x2)));},transformBounds=function transformBounds(_0xc75074,_0x6b87fb,_0x3d8b0f){var _0x3ca73e=_0x232263,_0x4521fc=[[_0xc75074[0x0],_0xc75074[0x1]],[_0xc75074[0x0],_0xc75074[0x3]],[_0xc75074[0x2],_0xc75074[0x1]],[_0xc75074[0x2],_0xc75074[0x3]]]['map'](function(_0x519c9a){return transformPoint(_0x519c9a,_0x6b87fb,_0x3d8b0f);}),_0x50c3d7=_0x4521fc['map'](function(_0x6178b9){var _0x2d7667=_slicedToArray(_0x6178b9,0x1),_0x57e473=_0x2d7667[0x0];return _0x57e473;}),_0x4dedfc=_0x4521fc['map'](function(_0xe9c7f8){var _0x4283bf=_slicedToArray(_0xe9c7f8,0x2),_0x2dd82a=_0x4283bf[0x1];return _0x2dd82a;});return[Math[_0x3ca73e(0x166)]['apply'](Math,_toConsumableArray(_0x50c3d7)),Math['min'][_0x3ca73e(0x1c0)](Math,_toConsumableArray(_0x4dedfc)),Math[_0x3ca73e(0x19a)][_0x3ca73e(0x1c0)](Math,_toConsumableArray(_0x50c3d7)),Math[_0x3ca73e(0x19a)][_0x3ca73e(0x1c0)](Math,_toConsumableArray(_0x4dedfc))];},rectangleToBounds=function rectangleToBounds(_0x1710d1){var _0x3d82a8=_0x232263;return[_0x51ba69['Math'][_0x3d82a8(0x1cf)](_0x1710d1['west']),_0x51ba69[_0x3d82a8(0x18d)][_0x3d82a8(0x1cf)](_0x1710d1[_0x3d82a8(0x1d3)]),_0x51ba69[_0x3d82a8(0x18d)][_0x3d82a8(0x1cf)](_0x1710d1[_0x3d82a8(0x1a6)]),_0x51ba69[_0x3d82a8(0x18d)]['toDegrees'](_0x1710d1['north'])];},boundsToRectangle=function boundsToRectangle(_0x2ad18d,_0x2719fd){var _0x22c0b4=_0x232263;return _0x51ba69['Rectangle'][_0x22c0b4(0x128)](_0x2ad18d[0x0],_0x2ad18d[0x1],_0x2ad18d[0x2],_0x2ad18d[0x3],_0x2719fd);},normalizeBounds=function normalizeBounds(_0x129dc7){var _0x3be004=_0x232263;if(!_0x129dc7||_0x129dc7[_0x3be004(0x199)]<0x4||_0x129dc7[_0x3be004(0x1b3)](0x0,0x4)[_0x3be004(0x164)](function(_0x5453be){var _0x93bfca=_0x3be004;return!Number[_0x93bfca(0x168)](_0x5453be);}))return undefined;return[_0x129dc7[0x0],_0x129dc7[0x1],_0x129dc7[0x2],_0x129dc7[0x3]];},transformRectangle=function transformRectangle(_0xc5852b,_0x3e827a,_0x116b12,_0x240ac8){return boundsToRectangle(transformBounds(rectangleToBounds(_0xc5852b),_0x3e827a,_0x116b12),_0x240ac8);},createSourceTilingScheme=function createSourceTilingScheme(_0x3a3542){var _0x17ac54=_0x232263;if(!_0x3a3542||_0x3a3542===_0x17ac54(0x1d0))return new _0x51ba69[(_0x17ac54(0x122))]();if(_0x3a3542==='geographic')return new _0x51ba69['GeographicTilingScheme']();return _0x3a3542;},createRenderTilingScheme=function createRenderTilingScheme(_0xd76aca,_0x27b1){if(isWgs84Crs(_0x27b1))return _0xd76aca;return{get 'ellipsoid'(){var _0x3fcbd5=_0x3e65;return _0xd76aca[_0x3fcbd5(0x13b)];},get 'rectangle'(){return transformRectangle(_0xd76aca['rectangle'],DEFAULT_CRS,_0x27b1);},get 'projection'(){var _0xdda8ed=_0x3e65;return _0xd76aca[_0xdda8ed(0x1d7)];},'getNumberOfXTilesAtLevel':function _0x5d8efe(_0x31ae4d){var _0x8c78fd=_0x3e65;return _0xd76aca[_0x8c78fd(0x176)](_0x31ae4d);},'getNumberOfYTilesAtLevel':function _0x13e3f8(_0x443f01){return _0xd76aca['getNumberOfYTilesAtLevel'](_0x443f01);},'tileXYToNativeRectangle':function _0x3f1c5a(_0x2daea7,_0x40e457,_0x3335ff,_0x223104){return _0xd76aca['tileXYToNativeRectangle'](_0x2daea7,_0x40e457,_0x3335ff,_0x223104);},'rectangleToNativeRectangle':function _0x71fd84(_0x5d15c0,_0x6be196){var _0x28fd91=_0x3e65;return _0xd76aca[_0x28fd91(0x161)](transformRectangle(_0x5d15c0,_0x27b1,DEFAULT_CRS),_0x6be196);},'tileXYToRectangle':function _0x20829a(_0x3891cc,_0x19062f,_0x37ff5f,_0x12c786){var _0x5beae0=_0x3e65;return transformRectangle(_0xd76aca[_0x5beae0(0x13d)](_0x3891cc,_0x19062f,_0x37ff5f),DEFAULT_CRS,_0x27b1,_0x12c786);},'positionToTileXY':function _0x340e14(_0x445b82,_0x1b2ac2,_0xc5d913){var _0x5862c1=_0x3e65,_0x20c71f=transformPoint([_0x51ba69['Math']['toDegrees'](_0x445b82[_0x5862c1(0x19e)]),_0x51ba69[_0x5862c1(0x18d)][_0x5862c1(0x1cf)](_0x445b82['latitude'])],_0x27b1,DEFAULT_CRS),_0x422e8c=_slicedToArray(_0x20c71f,0x2),_0x22437a=_0x422e8c[0x0],_0x175dcd=_0x422e8c[0x1];return _0xd76aca['positionToTileXY'](_0x51ba69['Cartographic']['fromDegrees'](_0x22437a,_0x175dcd),_0x1b2ac2,_0xc5d913);}};},transformCoordinates=function transformCoordinates(_0x62366b,_0xf295af,_0x307e32){var _0x504261=_0x232263;if(!Array['isArray'](_0x62366b))return _0x62366b;if(typeof _0x62366b[0x0]===_0x504261(0x147)&&typeof _0x62366b[0x1]===_0x504261(0x147))return transformPoint(_0x62366b,_0xf295af,_0x307e32);return _0x62366b[_0x504261(0x129)](function(_0x2eceb1){return transformCoordinates(_0x2eceb1,_0xf295af,_0x307e32);});},transformGeometry=function transformGeometry(_0x5d45c0,_0x2fd655,_0x6457eb){var _0x2f98bc=_0x232263;if(!_0x5d45c0)return;if(_0x5d45c0[_0x2f98bc(0x127)]===_0x2f98bc(0x143)){var _0x314cce;(_0x314cce=_0x5d45c0['geometries'])===null||_0x314cce===void 0x0||_0x314cce[_0x2f98bc(0x1c4)](function(_0x888fb1){return transformGeometry(_0x888fb1,_0x2fd655,_0x6457eb);});return;}_0x5d45c0[_0x2f98bc(0x1b9)]&&(_0x5d45c0['coordinates']=transformCoordinates(_0x5d45c0['coordinates'],_0x2fd655,_0x6457eb));},transformGeoJson=function transformGeoJson(_0x2b0093,_0x54579d,_0x2c28a9){var _0x4cf926=_0x232263;if(!_0x2b0093)return _0x2b0093;var _0x1aa8c5=JSON['parse'](JSON[_0x4cf926(0x19d)](_0x2b0093));if(normalizeCrs(_0x54579d)===normalizeCrs(_0x2c28a9))return _0x1aa8c5;if(_0x1aa8c5[_0x4cf926(0x127)]===_0x4cf926(0x1cb)){var _0x3800d0;return(_0x3800d0=_0x1aa8c5['features'])===null||_0x3800d0===void 0x0||_0x3800d0[_0x4cf926(0x1c4)](function(_0x3d72b0){var _0x5d4b40=_0x4cf926;return transformGeometry(_0x3d72b0[_0x5d4b40(0x17a)],_0x54579d,_0x2c28a9);}),_0x1aa8c5;}if(_0x1aa8c5[_0x4cf926(0x127)]==='Feature')return transformGeometry(_0x1aa8c5[_0x4cf926(0x17a)],_0x54579d,_0x2c28a9),_0x1aa8c5;return transformGeometry(_0x1aa8c5,_0x54579d,_0x2c28a9),_0x1aa8c5;},normalizeClipFeature=function normalizeClipFeature(_0x16c3a2){if(!_0x16c3a2||_typeof(_0x16c3a2)!=='object'||Array['isArray'](_0x16c3a2))return undefined;return _0x16c3a2;},createFeature=function createFeature(_0x4cefdb){var _0x43dbe8=_0x232263,_0x39b310=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};return{'type':_0x43dbe8(0x1d2),'properties':_0x39b310,'geometry':_0x4cefdb};},collectPolygonFeatures=function collectPolygonFeatures(_0x1de06b){var _0x1d0bf6=_0x232263,_0x558c95=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};if(!_0x1de06b)return[];if(_0x1de06b[_0x1d0bf6(0x127)]==='FeatureCollection')return _0x1de06b[_0x1d0bf6(0x1aa)][_0x1d0bf6(0x191)](function(_0xcce5a1){return collectPolygonFeatures(_0xcce5a1);});if(_0x1de06b[_0x1d0bf6(0x127)]==='Feature')return collectPolygonFeatures(_0x1de06b[_0x1d0bf6(0x17a)],_0x1de06b['properties']||{});if(_0x1de06b[_0x1d0bf6(0x127)]===_0x1d0bf6(0x143))return _0x1de06b['geometries'][_0x1d0bf6(0x191)](function(_0x5592f2){return collectPolygonFeatures(_0x5592f2,_0x558c95);});if(_0x1de06b['type']===_0x1d0bf6(0x15b))return[createFeature(_0x1de06b,_0x558c95)];if(_0x1de06b['type']===_0x1d0bf6(0x123))return _0x1de06b[_0x1d0bf6(0x1b9)]['map'](function(_0x523807){var _0x2809cf=_0x1d0bf6;return createFeature({'type':_0x2809cf(0x15b),'coordinates':_0x523807},_0x558c95);});return[];},getClipFeatureBounds=function getClipFeatureBounds(_0x2943e7){var _0x5f3580=_0x232263;if(!_0x2943e7[_0x5f3580(0x199)])return undefined;var _0x578422=_0x35f2e8[_0x5f3580(0x1ae)](_0x35f2e8['featureCollection'](_0x2943e7));if(_0x578422[_0x5f3580(0x199)]<0x4||_0x578422['some'](function(_0x3cb881){var _0x5d8336=_0x5f3580;return!Number[_0x5d8336(0x168)](_0x3cb881);}))return undefined;return normalizeBounds(_0x578422);},boundsIntersects=function boundsIntersects(_0x5ad524,_0x199d5c){return _0x5ad524[0x0]<=_0x199d5c[0x2]&&_0x5ad524[0x2]>=_0x199d5c[0x0]&&_0x5ad524[0x1]<=_0x199d5c[0x3]&&_0x5ad524[0x3]>=_0x199d5c[0x1];},intersectBounds=function intersectBounds(_0x53e451,_0x1b3733){var _0x9ab5bb=_0x232263,_0x213250=normalizeBounds([Math['max'](_0x53e451[0x0],_0x1b3733[0x0]),Math[_0x9ab5bb(0x19a)](_0x53e451[0x1],_0x1b3733[0x1]),Math['min'](_0x53e451[0x2],_0x1b3733[0x2]),Math[_0x9ab5bb(0x166)](_0x53e451[0x3],_0x1b3733[0x3])]);if(!_0x213250||_0x213250[0x0]>=_0x213250[0x2]||_0x213250[0x1]>=_0x213250[0x3])return undefined;return _0x213250;},createClipFeatureEntries=function createClipFeatureEntries(_0x3a1ae0){return _0x3a1ae0['flatMap'](function(_0x4f42e4){var _0x2a8a99=normalizeBounds(_0x35f2e8['bbox'](_0x4f42e4));return _0x2a8a99?[{'feature':_0x4f42e4,'bbox':_0x2a8a99}]:[];});},validateRasterSchedulingRange=function validateRasterSchedulingRange(_0x582e3c){var _0x443b6f=_0x232263;if((_0x582e3c[_0x443b6f(0x177)]||0x0)>0x0&&!_0x582e3c[_0x443b6f(0x1b8)]&&!_0x582e3c[_0x443b6f(0x16c)])throw new Error(_0x443b6f(0x138));},getImageSize=function getImageSize(_0x2e3534){var _0x57c23d=_0x232263;return{'width':_0x2e3534[_0x57c23d(0x1a0)],'height':_0x2e3534['height']};},DEBUG_STATUS_STYLES={'loaded':{'label':'瓦片已加载','consoleColor':'#16a34a'},'kept':{'label':'瓦片已保留','consoleColor':_0x232263(0x1da)},'clipped':{'label':'瓦片已裁剪','consoleColor':_0x232263(0x1b5)},'filtered':{'label':'瓦片已过滤','consoleColor':'#dc2626'},'error':{'label':_0x232263(0x12e),'consoleColor':'#b91c1c'}},CustomRasterLayer=function(_0x14d6f9){var _0x464d47=_0x232263;_inherits(_0x4ee27f,_0x14d6f9);var _0x551123=_createSuper(_0x4ee27f);function _0x4ee27f(_0x2ed601){var _0x3a5320=_0x3e65,_0x8109c6,_0x3dc141,_0x2f739a,_0x4d0b3b;_classCallCheck(this,_0x4ee27f);if(!(_0x2ed601!==null&&_0x2ed601!==void 0x0&&_0x2ed601[_0x3a5320(0x16d)]))throw new Error(_0x3a5320(0x18b));registerProjectionDefs(_0x2ed601[_0x3a5320(0x1b4)]);var _0x369a1b=normalizeCrs(_0x2ed601['dataCrs']||DEFAULT_CRS),_0x54ac3a=normalizeCrs(_0x2ed601[_0x3a5320(0x1ac)]||_0x369a1b),_0x42f793=normalizeCrs(_0x2ed601['renderCrs']||DEFAULT_CRS),_0x499d0c=normalizeClipFeature(_0x2ed601[_0x3a5320(0x11f)]),_0x471eef=_0x499d0c?transformGeoJson(_0x499d0c,_0x54ac3a,_0x42f793):undefined,_0xa42547=collectPolygonFeatures(_0x471eef),_0x52ae83=createClipFeatureEntries(_0xa42547),_0x1df2e4=_0x52ae83['map'](function(_0xcb2477){var _0x2fff8c=_0x3a5320;return _0xcb2477[_0x2fff8c(0x188)];}),_0x1886d9=_0x2ed601[_0x3a5320(0x16d)],_0x2897f6=_0x1886d9[_0x3a5320(0x11b)],_0x8114cb=_objectWithoutProperties(_0x1886d9,_excluded),_0x3615b2=_0x2ed601[_0x3a5320(0x1b6)]?transformBounds(_0x2ed601['bounds'],_0x369a1b,_0x42f793):undefined,_0x19af5d=getClipFeatureBounds(_0x1df2e4),_0x1a8dd4=_0x3615b2&&_0x19af5d?intersectBounds(_0x3615b2,_0x19af5d):undefined,_0x3a6691=_0x1a8dd4||_0x19af5d||_0x3615b2,_0x4d65ca=_0x8114cb['rectangle']?rectangleToBounds(_0x8114cb[_0x3a5320(0x165)]):undefined;validateRasterSchedulingRange({'minimumLevel':_0x8114cb['minimumLevel'],'hasRenderBounds':!!_0x3a6691,'hasSourceRectangle':!!_0x8114cb[_0x3a5320(0x165)]});var _0x1460cb=_0x3a6691||_0x4d65ca,_0x27d096=createRenderTilingScheme(createSourceTilingScheme(_0x2897f6),_0x42f793),_0x279dad=_objectSpread(_objectSpread({},_0x8114cb),{},{'tilingScheme':_0x27d096},_0x3a6691?{'rectangle':boundsToRectangle(_0x3a6691)}:{}),_0x4b7028=new _0x51ba69[(_0x3a5320(0x12a))](_0x279dad);return _0x4d0b3b=_0x551123['call'](this,_0x4b7028,_0x2ed601['layerOptions']),_defineProperty(_assertThisInitialized(_0x4d0b3b),'id',void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),'zIndex',void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),_0x3a5320(0x16d),void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),'_debug',void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),_0x3a5320(0x14b),void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),_0x3a5320(0x197),void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),'_fitBounds',void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),_0x3a5320(0x1b1),void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),_0x3a5320(0x196),void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),'_clipWorkerClient',void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),'_mapContext',void 0x0),_defineProperty(_assertThisInitialized(_0x4d0b3b),'_destroyed',void 0x0),_0x4d0b3b['id']=_0x2ed601['id'],_0x4d0b3b[_0x3a5320(0x1c1)]=_0x2ed601['zIndex'],_0x4d0b3b[_0x3a5320(0x16d)]=_0x4b7028,_0x4d0b3b[_0x3a5320(0x1bb)]=_0x2ed601[_0x3a5320(0x1a1)],_0x4d0b3b[_0x3a5320(0x14b)]=_0x1df2e4,_0x4d0b3b['_clipFeatureEntries']=_0x52ae83,_0x4d0b3b['_fitBounds']=_0x1460cb,_0x4d0b3b['_clipWithWorker']=(_0x8109c6=_0x2ed601['clipWithWorker'])!==null&&_0x8109c6!==void 0x0?_0x8109c6:!![],_0x4d0b3b['_clipWorkerUrl']=(_0x3dc141=_0x2ed601['clipWorkerUrl'])!==null&&_0x3dc141!==void 0x0?_0x3dc141:'',_0x4d0b3b[_0x3a5320(0x192)]=null,_0x4d0b3b['_mapContext']=(_0x2f739a=_0x2ed601[_0x3a5320(0x129)])===null||_0x2f739a===void 0x0?void 0x0:_0x2f739a[_0x3a5320(0x172)],_0x4d0b3b[_0x3a5320(0x1c7)]=![],_0x4d0b3b['logDebug']({'type':_0x3a5320(0x14f),'bounds':_0x2ed601['bounds'],'tileBounds':_0x3615b2,'clipBounds':_0x19af5d,'renderBounds':_0x3a6691,'clipFeature':_0x471eef,'dataCrs':_0x369a1b,'clipFeatureCrs':_0x54ac3a,'renderCrs':_0x42f793}),_0x2ed601[_0x3a5320(0x16a)]&&normalizeBounds(_0x1460cb)&&_0x4d0b3b['fitToBounds'](_0x2ed601['map'],_0x2ed601['fitBoundsOptions']),_0x4d0b3b;}return _createClass(_0x4ee27f,[{'key':_0x464d47(0x136),'value':function _0x54e871(){var _0x5ac350=_0x464d47;return this[_0x5ac350(0x172)]&&this[_0x5ac350(0x172)]['getMap']();}},{'key':_0x464d47(0x156),'value':function _0x566772(){var _0x22f599=_0x464d47,_0x40bbb4,_0x1dc471=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:this[_0x22f599(0x136)](),_0x57845a=arguments[_0x22f599(0x199)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{'duration':0x0};if(!_0x1dc471)throw new Error(_0x22f599(0x180));var _0x6a71e3=normalizeBounds(this[_0x22f599(0x1b0)]);if(!_0x6a71e3)throw new Error('CustomRasterLayer\x20fitToBounds\x20requires\x20valid\x20bounds.');var _0x5ba79f=_0x57845a||{'duration':0x0};if(typeof _0x1dc471['setCameraViewByBbox']===_0x22f599(0x152))return _0x1dc471[_0x22f599(0x1b7)](_0x6a71e3,_0x5ba79f),this;if((_0x40bbb4=_0x1dc471['camera'])!==null&&_0x40bbb4!==void 0x0&&_0x40bbb4['flyTo'])return _0x1dc471[_0x22f599(0x198)][_0x22f599(0x151)](_objectSpread({'destination':boundsToRectangle(_0x6a71e3)},_0x5ba79f)),this;throw new Error('CustomRasterLayer\x20fitToBounds\x20requires\x20a\x20map\x20camera.');}},{'key':_0x464d47(0x13c),'value':function _0x238eb5(){var _0x510afa=_0x464d47;return this['_destroyed']=!![],this['destroyClipWorkerClient'](),_get(_getPrototypeOf(_0x4ee27f[_0x510afa(0x1d5)]),_0x510afa(0x13c),this)['call'](this);}},{'key':_0x464d47(0x120),'value':function _0x23590a(_0x183495,_0x3000bc){var _0x4e31c7=_0x464d47,_0x20cbc2=rectangleToBounds(_0x3000bc[_0x4e31c7(0x165)]);this['logDebug']({'type':'tile-loaded','x':_0x3000bc['x'],'y':_0x3000bc['y'],'level':_0x3000bc['level'],'bbox':_0x20cbc2,'imageSize':getImageSize(_0x3000bc['image'])});if(!this['_clipFeatureEntries'][_0x4e31c7(0x199)])return this['createTexture'](_0x183495,_0x3000bc);try{return this['createClippedTexture'](_0x183495,_0x3000bc,_0x20cbc2);}catch(_0x3f9fa7){return this[_0x4e31c7(0x189)]({'type':_0x4e31c7(0x16f),'x':_0x3000bc['x'],'y':_0x3000bc['y'],'level':_0x3000bc['level'],'bbox':_0x20cbc2,'error':_0x3f9fa7}),this[_0x4e31c7(0x149)](_0x183495,_0x3000bc);}}},{'key':'createTexture','value':function _0x4398c6(_0x333d93,_0x48a01b){var _0x33f710=_0x464d47;return _0x2a7f80['prototype'][_0x33f710(0x120)]['call'](this,_0x333d93,_0x48a01b);}},{'key':_0x464d47(0x17d),'value':function _0x82c395(_0x3d805a){var _0x244729=[];return this['_clipFeatureEntries']['forEach'](function(_0xf86b92,_0x20eafb){var _0x471459=_0x3e65;boundsIntersects(_0x3d805a,_0xf86b92['bbox'])&&_0x244729[_0x471459(0x181)](_0x20eafb);}),_0x244729;}},{'key':'getClipFeatures','value':function _0x20d68e(_0x577d6d){var _0x4c5120=this,_0x329856=[];return _0x577d6d['forEach'](function(_0x3c9084){var _0xcd37e2=_0x3e65,_0x36d6f3,_0x335dd5=(_0x36d6f3=_0x4c5120[_0xcd37e2(0x197)][_0x3c9084])===null||_0x36d6f3===void 0x0?void 0x0:_0x36d6f3[_0xcd37e2(0x188)];_0x335dd5&&_0x329856[_0xcd37e2(0x181)](_0x335dd5);}),_0x329856;}},{'key':_0x464d47(0x1a4),'value':function _0x1330da(){var _0x18d341=_0x464d47;if(!this['_clipWithWorker']||this['_destroyed']||!this['_clipFeatureEntries'][_0x18d341(0x199)])return null;if(this['_clipWorkerClient'])return this['_clipWorkerClient'];try{return this['_clipWorkerClient']=new _0x333acb({'features':this[_0x18d341(0x197)],'workerUrl':this[_0x18d341(0x1b1)]||undefined}),this[_0x18d341(0x192)];}catch(_0xf99df3){return this['_clipWithWorker']=![],console[_0x18d341(0x1ba)]('栅格裁剪\x20Worker\x20初始化失败,已回退主线程裁剪',_0xf99df3),null;}}},{'key':'destroyClipWorkerClient','value':function _0x357b70(){var _0x311785=_0x464d47,_0x25fda9;(_0x25fda9=this['_clipWorkerClient'])===null||_0x25fda9===void 0x0||_0x25fda9[_0x311785(0x13c)](),this['_clipWorkerClient']=null;}},{'key':'createClippedTexture','value':function _0x16d577(_0x1686ac,_0xd1f6a2,_0x5d80b0){var _0x27a476=_0x464d47,_0x47f6cc=this,_0x261063=this['getCandidateClipFeatureIndexes'](_0x5d80b0);if(!_0x261063[_0x27a476(0x199)])return this['applyClipResult'](_0x1686ac,_0xd1f6a2,_0x5d80b0,{'status':'discarded','reason':_0x27a476(0x1a2)});var _0x4c673c=this[_0x27a476(0x1a4)]();if(!_0x4c673c)return this['applyClipResult'](_0x1686ac,_0xd1f6a2,_0x5d80b0,this[_0x27a476(0x12f)](_0x5d80b0,_0x261063,_0xd1f6a2));return void _0x4c673c[_0x27a476(0x170)]({'tileBbox':_0x5d80b0,'candidateIndexes':_0x261063,'width':_0xd1f6a2['image'][_0x27a476(0x1a0)],'height':_0xd1f6a2[_0x27a476(0x130)][_0x27a476(0x131)]})['then'](function(_0x3f4e2c){var _0x41ae1e=_0x27a476;if(_0x47f6cc['_destroyed'])return;_0x47f6cc[_0x41ae1e(0x125)](_0x1686ac,_0xd1f6a2,_0x5d80b0,_0x3f4e2c);})['catch'](function(_0x2b754b){var _0x1f3c65=_0x27a476;_0x47f6cc[_0x1f3c65(0x178)](),_0x47f6cc['_clipWithWorker']=![];if(_0x47f6cc[_0x1f3c65(0x1c7)])return;_0x47f6cc['logDebug']({'type':'tile-error','x':_0xd1f6a2['x'],'y':_0xd1f6a2['y'],'level':_0xd1f6a2[_0x1f3c65(0x1a7)],'bbox':_0x5d80b0,'error':_0x2b754b});try{_0x47f6cc['applyClipResult'](_0x1686ac,_0xd1f6a2,_0x5d80b0,_0x47f6cc[_0x1f3c65(0x12f)](_0x5d80b0,_0x261063,_0xd1f6a2));}catch(_0x3d3ccc){_0x47f6cc['logDebug']({'type':_0x1f3c65(0x16f),'x':_0xd1f6a2['x'],'y':_0xd1f6a2['y'],'level':_0xd1f6a2['level'],'bbox':_0x5d80b0,'error':_0x3d3ccc}),_0x47f6cc[_0x1f3c65(0x149)](_0x1686ac,_0xd1f6a2);}}),undefined;}},{'key':_0x464d47(0x12f),'value':function _0x5b7ca7(_0x56ddef,_0x1a865c,_0x4c56b2){var _0x253682=_0x464d47,_0x3d39c4=this,_0x3650cb=this[_0x253682(0x11a)](_0x1a865c);if(!_0x3650cb['length'])return{'status':_0x253682(0x1c9),'reason':_0x253682(0x1a2)};var _0x2233ce=_0x35f2e8['bboxPolygon'](_0x56ddef),_0x277dc7=_0x3650cb['some'](function(_0x338857){return _0x35f2e8['booleanWithin'](_0x2233ce,_0x338857);});if(_0x277dc7)return{'status':_0x253682(0x186),'reason':_0x253682(0x1a8)};var _0x595b12=this['getClipIntersections'](_0x2233ce,_0x3650cb);if(!_0x595b12[_0x253682(0x199)])return{'status':_0x253682(0x1c9),'reason':_0x253682(0x1a2)};return{'status':'clipped','reason':_0x253682(0x15a),'paths':_0x595b12['flatMap'](function(_0x5bd392){var _0x419bb7=_0x253682;return _0x3d39c4[_0x419bb7(0x159)]({'boundPolygon':_0x5bd392,'bbox':_0x56ddef,'width':_0x4c56b2['image'][_0x419bb7(0x1a0)],'height':_0x4c56b2[_0x419bb7(0x130)]['height']});})};}},{'key':_0x464d47(0x125),'value':function _0x2dfeb4(_0x282a45,_0x3b32ca,_0x59f0f1,_0x48e8ae){var _0x52d5f4=_0x464d47,_0x19c6b6=this;if(_0x48e8ae[_0x52d5f4(0x1dc)]===_0x52d5f4(0x186))return this['logDebug']({'type':_0x52d5f4(0x134),'x':_0x3b32ca['x'],'y':_0x3b32ca['y'],'level':_0x3b32ca[_0x52d5f4(0x1a7)],'bbox':_0x59f0f1,'reason':_0x48e8ae[_0x52d5f4(0x167)]}),this['createTexture'](_0x282a45,_0x3b32ca);if(_0x48e8ae[_0x52d5f4(0x1dc)]==='discarded')return this[_0x52d5f4(0x189)]({'type':'tile-discarded','x':_0x3b32ca['x'],'y':_0x3b32ca['y'],'level':_0x3b32ca[_0x52d5f4(0x1a7)],'bbox':_0x59f0f1,'reason':_0x48e8ae['reason']}),_0x3b32ca[_0x52d5f4(0x130)]=this[_0x52d5f4(0x11d)](_0x3b32ca),this[_0x52d5f4(0x149)](_0x282a45,_0x3b32ca);var _0x5b5438=this[_0x52d5f4(0x11d)](_0x3b32ca),_0x566c8f=_0x5b5438[_0x52d5f4(0x17c)]('2d');if(!_0x566c8f)return this[_0x52d5f4(0x149)](_0x282a45,_0x3b32ca);_0x566c8f[_0x52d5f4(0x16b)](_0x3b32ca[_0x52d5f4(0x130)],0x0,0x0,_0x3b32ca['image'][_0x52d5f4(0x1a0)],_0x3b32ca[_0x52d5f4(0x130)]['height']),this['clip'](_0x566c8f,_0x48e8ae['paths']),this[_0x52d5f4(0x189)]({'type':'tile-clipped','x':_0x3b32ca['x'],'y':_0x3b32ca['y'],'level':_0x3b32ca[_0x52d5f4(0x1a7)],'bbox':_0x59f0f1,'reason':_0x48e8ae[_0x52d5f4(0x167)]});if(typeof createImageBitmap!==_0x52d5f4(0x152))return _0x3b32ca['image']=_0x5b5438,this[_0x52d5f4(0x149)](_0x282a45,_0x3b32ca);return void createImageBitmap(_0x5b5438)['then'](function(_0x1f320d){var _0x5a1f19=_0x52d5f4;if(_0x19c6b6['_destroyed'])return;_0x3b32ca[_0x5a1f19(0x130)]=_0x1f320d,_0x19c6b6[_0x5a1f19(0x149)](_0x282a45,_0x3b32ca);})[_0x52d5f4(0x153)](function(_0x286170){var _0xfc908c=_0x52d5f4;if(_0x19c6b6[_0xfc908c(0x1c7)])return;_0x19c6b6['logDebug']({'type':'tile-error','x':_0x3b32ca['x'],'y':_0x3b32ca['y'],'level':_0x3b32ca['level'],'bbox':_0x59f0f1,'error':_0x286170}),_0x3b32ca['image']=_0x5b5438,_0x19c6b6['createTexture'](_0x282a45,_0x3b32ca);}),undefined;}},{'key':'getClipIntersections','value':function _0x261dab(_0x278142,_0x2ce330){var _0x3a0892=_0x464d47,_0x4145fa=[];return _0x2ce330[_0x3a0892(0x1c4)](function(_0x592aff){var _0x3b83d1=_0x3a0892;if(!_0x35f2e8[_0x3b83d1(0x146)](_0x278142,_0x592aff))return;var _0x58d60c=_0x35f2e8['intersect'](_0x278142,_0x592aff);_0x58d60c!==null&&_0x58d60c!==void 0x0&&_0x58d60c['geometry']&&_0x4145fa['push'](_0x58d60c);}),_0x4145fa;}},{'key':'createTileCanvas','value':function _0x10206f(_0x2587e9){var _0x7d2bd=_0x464d47,_0x46e92c=document['createElement']('canvas');return _0x46e92c['width']=_0x2587e9['image'][_0x7d2bd(0x1a0)],_0x46e92c[_0x7d2bd(0x131)]=_0x2587e9['image']['height'],_0x46e92c;}},{'key':_0x464d47(0x1d9),'value':function _0x47ad1d(_0x51a5b1){var _0x5c0bc2=_0x464d47;for(var _0x507f0e=0x0;_0x507f0e<_0x51a5b1['coors'][_0x5c0bc2(0x199)];_0x507f0e+=0x1){var _0x4206e3=_0x51a5b1['coors'][_0x507f0e],_0xc33c8d=[];for(var _0x1dd92c=0x0;_0x1dd92c<_0x4206e3[_0x5c0bc2(0x199)];_0x1dd92c+=0x1){_0xc33c8d[_0x5c0bc2(0x181)]([(_0x4206e3[_0x1dd92c][0x0]-_0x51a5b1[_0x5c0bc2(0x1ae)][0x0])/(_0x51a5b1['bbox'][0x2]-_0x51a5b1['bbox'][0x0])*_0x51a5b1[_0x5c0bc2(0x1a0)],_0x51a5b1['height']-(_0x51a5b1['bbox'][0x3]-_0x4206e3[_0x1dd92c][0x1])/(_0x51a5b1[_0x5c0bc2(0x1ae)][0x3]-_0x51a5b1[_0x5c0bc2(0x1ae)][0x1])*_0x51a5b1['height']]);}_0x51a5b1[_0x5c0bc2(0x1ab)]['push'](_0xc33c8d);}}},{'key':'geometryToPathArray','value':function _0x47e556(_0x2925dd){var _0x5184c3=_0x464d47,_0x36b121=this,_0x2e502d=_0x2925dd['boundPolygon']['geometry'][_0x5184c3(0x127)],_0x191210=[];if(_0x2e502d==='Polygon')this['pointToPixel']({'pointArr':_0x191210,'coors':_0x2925dd[_0x5184c3(0x13a)]['geometry'][_0x5184c3(0x1b9)],'bbox':_0x2925dd['bbox'],'width':_0x2925dd['width'],'height':_0x2925dd[_0x5184c3(0x131)]});else _0x2e502d==='MultiPolygon'&&_0x2925dd['boundPolygon'][_0x5184c3(0x17a)]['coordinates'][_0x5184c3(0x1c4)](function(_0x26b3ba){var _0x1c8dbe=_0x5184c3;_0x36b121['pointToPixel']({'pointArr':_0x191210,'coors':_0x26b3ba,'bbox':_0x2925dd[_0x1c8dbe(0x1ae)],'width':_0x2925dd[_0x1c8dbe(0x1a0)],'height':_0x2925dd[_0x1c8dbe(0x131)]});});return _0x191210;}},{'key':'clip','value':function _0x42a1cc(_0x56b9eb,_0x20851a){var _0x2e02f8=_0x464d47;_0x56b9eb['save'](),_0x56b9eb['globalCompositeOperation']='destination-in',_0x56b9eb[_0x2e02f8(0x1bc)]();for(var _0x617638=0x0;_0x617638<_0x20851a['length'];_0x617638+=0x1){var _0x43b893=_0x20851a[_0x617638];for(var _0x25c00c=0x0;_0x25c00c<_0x43b893[_0x2e02f8(0x199)];_0x25c00c+=0x1){_0x25c00c===0x0?_0x56b9eb[_0x2e02f8(0x1c3)](_0x43b893[_0x25c00c][0x0],_0x43b893[_0x25c00c][0x1]):_0x56b9eb[_0x2e02f8(0x11e)](_0x43b893[_0x25c00c][0x0],_0x43b893[_0x25c00c][0x1]);}}_0x56b9eb[_0x2e02f8(0x1d1)](),_0x56b9eb[_0x2e02f8(0x173)]='#000000',_0x56b9eb['fill'](),_0x56b9eb[_0x2e02f8(0x1a9)]();}},{'key':'getTileKey','value':function _0x10f222(_0x14917f){var _0xc9b96d=_0x464d47;if(_0x14917f['x']===undefined||_0x14917f['y']===undefined||_0x14917f[_0xc9b96d(0x1a7)]===undefined)return undefined;return''[_0xc9b96d(0x148)](_0x14917f[_0xc9b96d(0x1a7)],'/')[_0xc9b96d(0x148)](_0x14917f['x'],'/')['concat'](_0x14917f['y']);}},{'key':_0x464d47(0x190),'value':function _0x26dd68(_0x425550){var _0x1120f3=_0x464d47;if(_0x425550['status'])return _0x425550['status'];if(_0x425550[_0x1120f3(0x127)]===_0x1120f3(0x17b))return _0x1120f3(0x18f);if(_0x425550[_0x1120f3(0x127)]===_0x1120f3(0x134))return'kept';if(_0x425550[_0x1120f3(0x127)]===_0x1120f3(0x179))return'clipped';if(_0x425550[_0x1120f3(0x127)]==='tile-discarded')return'filtered';if(_0x425550['type']===_0x1120f3(0x16f))return _0x1120f3(0x1a3);return undefined;}},{'key':_0x464d47(0x1af),'value':function _0x33af58(_0x23af01){var _0x4abede=_0x464d47,_0x1b537b=this['getDebugStatus'](_0x23af01);return _objectSpread(_objectSpread(_objectSpread({},_0x23af01),this['getTileKey'](_0x23af01)?{'tileKey':this[_0x4abede(0x121)](_0x23af01)}:{}),_0x1b537b?{'status':_0x1b537b,'loaded':!![],'clipped':_0x1b537b===_0x4abede(0x142),'filtered':_0x1b537b===_0x4abede(0x1ad)}:{});}},{'key':_0x464d47(0x155),'value':function _0x42aa3c(_0x551f35){var _0x14895c=_0x464d47;if(_0x551f35['type']==='range'){console[_0x14895c(0x195)](_0x14895c(0x1cd),{'renderBounds':_0x551f35['renderBounds'],'clipBounds':_0x551f35[_0x14895c(0x15d)],'clipFeature':_0x551f35[_0x14895c(0x11f)],'tileBounds':_0x551f35[_0x14895c(0x1b2)],'bounds':_0x551f35['bounds'],'dataCrs':_0x551f35[_0x14895c(0x157)],'clipFeatureCrs':_0x551f35[_0x14895c(0x1ac)],'renderCrs':_0x551f35[_0x14895c(0x14e)]});return;}if(!_0x551f35['status'])return;if(_0x551f35[_0x14895c(0x127)]===_0x14895c(0x17b)&&this['_clipFeatures'][_0x14895c(0x199)])return;var _0x1a5b9b=DEBUG_STATUS_STYLES[_0x551f35['status']],_0x3f57c9=_0x14895c(0x13f)[_0x14895c(0x148)](_0x1a5b9b['label']),_0x382534='color:\x20'['concat'](_0x1a5b9b['consoleColor'],_0x14895c(0x1bd)),_0x1e41ce='z='['concat'](_0x551f35[_0x14895c(0x1a7)],'\x20x=')['concat'](_0x551f35['x'],'\x20y=')[_0x14895c(0x148)](_0x551f35['y']);if(_0x551f35['type']==='tile-error'){console['error']('%c'['concat'](_0x3f57c9,'\x20')[_0x14895c(0x148)](_0x1e41ce),_0x382534,_0x551f35['error'],_0x551f35);return;}console[_0x14895c(0x195)]('%c'['concat'](_0x3f57c9,'\x20')[_0x14895c(0x148)](_0x1e41ce),_0x382534,{'tileKey':_0x551f35[_0x14895c(0x158)],'z':_0x551f35['level'],'x':_0x551f35['x'],'y':_0x551f35['y'],'loaded':_0x551f35[_0x14895c(0x18f)],'clipped':_0x551f35[_0x14895c(0x142)],'filtered':_0x551f35[_0x14895c(0x1ad)],'status':_0x551f35[_0x14895c(0x1dc)],'reason':_0x551f35[_0x14895c(0x167)],'bbox':_0x551f35[_0x14895c(0x1ae)],'imageSize':_0x551f35['imageSize']});}},{'key':'logDebug','value':function _0xd12e40(_0x2945f7){var _0x169d9b=_0x464d47;if(!this['_debug'])return;var _0xd56721=this['normalizeDebugEvent'](_objectSpread({'layerId':this['id']},_0x2945f7));if(typeof this[_0x169d9b(0x1bb)]===_0x169d9b(0x152)){this[_0x169d9b(0x1bb)](_0xd56721);return;}this[_0x169d9b(0x155)](_0xd56721);}}]),_0x4ee27f;}(_0x2a7f80);export{CustomRasterLayer as default};
|