deeptwins-engine-3d 0.1.76 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/assets/Build/DeepTwins/Image/noise.png +0 -0
  2. package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
  3. package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
  4. package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
  5. package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
  6. package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
  7. package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
  8. package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
  9. package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
  10. package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
  11. package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
  12. package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
  13. package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
  14. package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
  15. package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
  16. package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
  17. package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
  18. package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
  19. package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
  20. package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
  21. package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
  22. package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
  23. package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
  24. package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
  25. package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
  26. package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
  27. package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
  28. package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
  29. package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
  30. package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
  31. package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
  32. package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
  33. package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
  34. package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
  35. package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
  36. package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
  37. package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
  38. package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
  39. package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
  40. package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
  41. package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
  42. package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
  43. package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
  44. package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
  45. package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
  46. package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
  47. package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
  48. package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
  49. package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
  50. package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
  51. package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
  52. package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
  53. package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
  54. package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
  55. package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
  56. package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
  57. package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
  58. package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
  59. package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
  60. package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
  61. package/dist/esm/analyze/SunLightAnalysis.js +1 -91
  62. package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
  63. package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
  64. package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
  65. package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
  66. package/dist/esm/cameraControl/Roam.js +1 -418
  67. package/dist/esm/cameraControl/Rotate.js +1 -134
  68. package/dist/esm/cameraControl/RotateInPlace.js +1 -99
  69. package/dist/esm/constant.d.ts +90 -0
  70. package/dist/esm/constant.js +1 -1287
  71. package/dist/esm/deepTwins/index.js +1 -121
  72. package/dist/esm/drawCommand/index.js +1 -3
  73. package/dist/esm/drawCommand/viewShed/Event.js +1 -142
  74. package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
  75. package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
  76. package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
  77. package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
  78. package/dist/esm/drawCommand/viewShed/config.js +1 -21
  79. package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
  80. package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
  81. package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
  82. package/dist/esm/drawer/algorithm.js +1 -314
  83. package/dist/esm/drawer/common.js +1 -965
  84. package/dist/esm/drawer/coordinate.js +1 -184
  85. package/dist/esm/drawer/index.js +1 -688
  86. package/dist/esm/drawer/plotUtil.js +1 -266
  87. package/dist/esm/drawer/shape/Assemble.js +1 -415
  88. package/dist/esm/drawer/shape/AttackArrow.js +1 -442
  89. package/dist/esm/drawer/shape/BaseShape.js +1 -383
  90. package/dist/esm/drawer/shape/Bow.js +1 -375
  91. package/dist/esm/drawer/shape/Circle.js +1 -461
  92. package/dist/esm/drawer/shape/Curve.js +1 -386
  93. package/dist/esm/drawer/shape/DragPoint.js +1 -211
  94. package/dist/esm/drawer/shape/Elliptic.js +1 -491
  95. package/dist/esm/drawer/shape/Formation.js +1 -395
  96. package/dist/esm/drawer/shape/PincerArrow.js +1 -445
  97. package/dist/esm/drawer/shape/Point.js +1 -131
  98. package/dist/esm/drawer/shape/Polygon.js +1 -368
  99. package/dist/esm/drawer/shape/Polyline.js +1 -325
  100. package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
  101. package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
  102. package/dist/esm/drawer/shape/Sector.js +1 -568
  103. package/dist/esm/drawer/shape/StraightArrow.js +1 -422
  104. package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
  105. package/dist/esm/drawer/types.js +1 -11
  106. package/dist/esm/drawer/utils.js +1 -381
  107. package/dist/esm/global.css +22 -1
  108. package/dist/esm/graphicLayer/BaseEntity.js +1 -51
  109. package/dist/esm/graphicLayer/BaseLayer.js +1 -730
  110. package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
  111. package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
  112. package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
  113. package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
  114. package/dist/esm/graphicLayer/BaseSource.js +1 -630
  115. package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
  116. package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
  117. package/dist/esm/graphicLayer/BoxEntity.js +1 -99
  118. package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
  119. package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
  120. package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
  121. package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
  122. package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
  123. package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
  124. package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
  125. package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
  126. package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
  127. package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
  128. package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
  129. package/dist/esm/graphicLayer/LabelEntity.js +1 -110
  130. package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
  131. package/dist/esm/graphicLayer/ModelEntity.js +1 -122
  132. package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
  133. package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
  134. package/dist/esm/graphicLayer/PointEntity.js +1 -94
  135. package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
  136. package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
  137. package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
  138. package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
  139. package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
  140. package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
  141. package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
  142. package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
  143. package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
  144. package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
  145. package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
  146. package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
  147. package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
  148. package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
  149. package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
  150. package/dist/esm/graphicLayer/WallEntity.js +1 -96
  151. package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
  152. package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
  153. package/dist/esm/index.d.ts +4 -0
  154. package/dist/esm/index.js +1 -175
  155. package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
  156. package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
  157. package/dist/esm/lowAltitude/FactorLayer.js +1 -199
  158. package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
  159. package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
  160. package/dist/esm/lowAltitude/GridDraw.js +1 -137
  161. package/dist/esm/lowAltitude/PoiLayer.js +1 -74
  162. package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
  163. package/dist/esm/lowAltitude/VisitLayer.js +1 -180
  164. package/dist/esm/map/Event.js +1 -377
  165. package/dist/esm/map/GroundSkyBox.js +1 -166
  166. package/dist/esm/map/Map.js +1 -881
  167. package/dist/esm/map/Property.js +1 -35
  168. package/dist/esm/material/AtmosphericDispersion.js +1 -569
  169. package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
  170. package/dist/esm/material/VolumeCloud.js +1 -115
  171. package/dist/esm/material/WeatherEffects.js +1 -351
  172. package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
  173. package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
  174. package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
  175. package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
  176. package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
  177. package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
  178. package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
  179. package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
  180. package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
  181. package/dist/esm/measure/Area.js +1 -220
  182. package/dist/esm/measure/BaseDraw.js +1 -105
  183. package/dist/esm/measure/Distance.js +1 -223
  184. package/dist/esm/measure/index.js +1 -266
  185. package/dist/esm/measure/types.js +1 -17
  186. package/dist/esm/measure/utils.js +1 -319
  187. package/dist/esm/particle/BaseParticle.js +1 -196
  188. package/dist/esm/particle/FireParticle.js +1 -65
  189. package/dist/esm/particle/FountainParticle.js +1 -80
  190. package/dist/esm/particle/SmokeParticle.js +1 -65
  191. package/dist/esm/particle/common.js +1 -23
  192. package/dist/esm/particle/index.js +1 -5
  193. package/dist/esm/property/PositionProperty.js +1 -56
  194. package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
  195. package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
  196. package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
  197. package/dist/esm/tileLayer/ImageryLayer.js +1 -44
  198. package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
  199. package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
  200. package/dist/esm/tileLayer/RasterLayer.js +1 -23
  201. package/dist/esm/tileLayer/WmsLayer.js +1 -26
  202. package/dist/esm/tileLayer/WmtsLayer.js +1 -23
  203. package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
  204. package/dist/esm/tool/Compass.js +1 -282
  205. package/dist/esm/tool/PrimitiveCluster.js +1 -706
  206. package/dist/esm/tool/TimerInterval.js +1 -58
  207. package/dist/esm/tool/common.js +1 -405
  208. package/dist/esm/tool/fetch.js +1 -222
  209. package/dist/esm/tool/heatmap.js +1 -631
  210. package/dist/esm/tool/utils.d.ts +1 -0
  211. package/dist/esm/tool/utils.js +1 -501
  212. package/dist/esm/toolTip/index.js +1 -79
  213. package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
  214. package/dist/esm/videoFusion/BaseVideo.js +1 -330
  215. package/dist/esm/videoFusion/VideoProject.js +1 -230
  216. package/dist/esm/videoFusion/VideoTexture.js +1 -163
  217. package/dist/esm/visualization/BaseHeatmap.js +1 -271
  218. package/dist/esm/visualization/BoundaryHighlight.d.ts +135 -0
  219. package/dist/esm/visualization/BoundaryHighlight.js +1 -0
  220. package/dist/esm/visualization/DynamicWater.js +1 -289
  221. package/dist/esm/visualization/Frustum.js +1 -248
  222. package/dist/esm/visualization/Heatmap2d.js +1 -97
  223. package/dist/esm/visualization/Heatmap3d.js +1 -281
  224. package/dist/esm/visualization/MigrationEffect.js +1 -397
  225. package/dist/esm/visualization/PointCluster.js +1 -220
  226. package/dist/esm/visualization/RadarScan.js +1 -333
  227. package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
  228. package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
  229. package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
  230. package/dist/esm/visualization/SampledTerrainWater.js +1 -0
  231. package/dist/esm/visualization/WindField.d.ts +72 -0
  232. package/dist/esm/visualization/WindField.js +1 -0
  233. package/dist/esm/visualization/windCore.d.ts +161 -0
  234. package/dist/esm/visualization/windCore.js +8 -0
  235. package/dist/umd/deeptwins-engine-3d.min.css +1 -1
  236. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  237. 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 _0x42075f=_0x5739;(function(_0x1c3aff,_0x53d69f){var _0x410810=_0x5739,_0x24ba09=_0x1c3aff();while(!![]){try{var _0x5f41c7=-parseInt(_0x410810(0x1bd))/0x1+-parseInt(_0x410810(0x1f0))/0x2+parseInt(_0x410810(0x159))/0x3*(-parseInt(_0x410810(0x191))/0x4)+parseInt(_0x410810(0x172))/0x5*(parseInt(_0x410810(0x1d9))/0x6)+parseInt(_0x410810(0x1b4))/0x7+-parseInt(_0x410810(0x196))/0x8+-parseInt(_0x410810(0x18c))/0x9*(-parseInt(_0x410810(0x211))/0xa);if(_0x5f41c7===_0x53d69f)break;else _0x24ba09['push'](_0x24ba09['shift']());}catch(_0x4790c1){_0x24ba09['push'](_0x24ba09['shift']());}}}(_0x466c,0x46579));var _excluded=[_0x42075f(0x1bc)];function ownKeys(_0x279f05,_0xc77c05){var _0x7f5101=_0x42075f,_0x5e2dc3=Object[_0x7f5101(0x1c2)](_0x279f05);if(Object[_0x7f5101(0x18e)]){var _0x44aac3=Object['getOwnPropertySymbols'](_0x279f05);_0xc77c05&&(_0x44aac3=_0x44aac3[_0x7f5101(0x212)](function(_0x402cec){var _0x365f6a=_0x7f5101;return Object[_0x365f6a(0x17c)](_0x279f05,_0x402cec)[_0x365f6a(0x1ab)];})),_0x5e2dc3[_0x7f5101(0x1ef)]['apply'](_0x5e2dc3,_0x44aac3);}return _0x5e2dc3;}function _objectSpread(_0x5415b1){var _0x556d5b=_0x42075f;for(var _0x50db1e=0x1;_0x50db1e<arguments['length'];_0x50db1e++){var _0x56e33b=null!=arguments[_0x50db1e]?arguments[_0x50db1e]:{};_0x50db1e%0x2?ownKeys(Object(_0x56e33b),!0x0)[_0x556d5b(0x20f)](function(_0x3335da){_defineProperty(_0x5415b1,_0x3335da,_0x56e33b[_0x3335da]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x5415b1,Object[_0x556d5b(0x1b6)](_0x56e33b)):ownKeys(Object(_0x56e33b))[_0x556d5b(0x20f)](function(_0x3076e6){var _0x418e0a=_0x556d5b;Object['defineProperty'](_0x5415b1,_0x3076e6,Object[_0x418e0a(0x17c)](_0x56e33b,_0x3076e6));});}return _0x5415b1;}function _objectWithoutProperties(_0x41779c,_0x47347f){var _0x300240=_0x42075f;if(_0x41779c==null)return{};var _0x439e85=_objectWithoutPropertiesLoose(_0x41779c,_0x47347f),_0x3a76b1,_0x47309a;if(Object['getOwnPropertySymbols']){var _0x33c21c=Object[_0x300240(0x18e)](_0x41779c);for(_0x47309a=0x0;_0x47309a<_0x33c21c[_0x300240(0x208)];_0x47309a++){_0x3a76b1=_0x33c21c[_0x47309a];if(_0x47347f['indexOf'](_0x3a76b1)>=0x0)continue;if(!Object[_0x300240(0x184)]['propertyIsEnumerable']['call'](_0x41779c,_0x3a76b1))continue;_0x439e85[_0x3a76b1]=_0x41779c[_0x3a76b1];}}return _0x439e85;}function _objectWithoutPropertiesLoose(_0x5ee2af,_0x1dbc4c){var _0x1eef6e=_0x42075f;if(_0x5ee2af==null)return{};var _0x4c7ad2={},_0x3b3f45=Object['keys'](_0x5ee2af),_0x2bdb61,_0x3ec2db;for(_0x3ec2db=0x0;_0x3ec2db<_0x3b3f45[_0x1eef6e(0x208)];_0x3ec2db++){_0x2bdb61=_0x3b3f45[_0x3ec2db];if(_0x1dbc4c[_0x1eef6e(0x167)](_0x2bdb61)>=0x0)continue;_0x4c7ad2[_0x2bdb61]=_0x5ee2af[_0x2bdb61];}return _0x4c7ad2;}function _classCallCheck(_0x525f0b,_0x52b0f6){if(!(_0x525f0b instanceof _0x52b0f6))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x38fd87,_0x2ccfa6){var _0x4910c6=_0x42075f;for(var _0x5a6e5a=0x0;_0x5a6e5a<_0x2ccfa6[_0x4910c6(0x208)];_0x5a6e5a++){var _0x58c5e5=_0x2ccfa6[_0x5a6e5a];_0x58c5e5[_0x4910c6(0x1ab)]=_0x58c5e5[_0x4910c6(0x1ab)]||![],_0x58c5e5[_0x4910c6(0x1bf)]=!![];if(_0x4910c6(0x183)in _0x58c5e5)_0x58c5e5[_0x4910c6(0x18f)]=!![];Object['defineProperty'](_0x38fd87,_toPropertyKey(_0x58c5e5['key']),_0x58c5e5);}}function _createClass(_0x4418c4,_0x173eab,_0x10b892){var _0x511e8e=_0x42075f;if(_0x173eab)_defineProperties(_0x4418c4['prototype'],_0x173eab);if(_0x10b892)_defineProperties(_0x4418c4,_0x10b892);return Object[_0x511e8e(0x18d)](_0x4418c4,_0x511e8e(0x184),{'writable':![]}),_0x4418c4;}function _get(){var _0x485415=_0x42075f;return typeof Reflect!==_0x485415(0x1c6)&&Reflect['get']?_get=Reflect['get'][_0x485415(0x1d3)]():_get=function _0x53a849(_0x46612a,_0x526402,_0x555c57){var _0x4c72e6=_0x485415,_0x1a1e62=_superPropBase(_0x46612a,_0x526402);if(!_0x1a1e62)return;var _0x2e8ccd=Object['getOwnPropertyDescriptor'](_0x1a1e62,_0x526402);if(_0x2e8ccd['get'])return _0x2e8ccd['get'][_0x4c72e6(0x1c0)](arguments[_0x4c72e6(0x208)]<0x3?_0x46612a:_0x555c57);return _0x2e8ccd['value'];},_get['apply'](this,arguments);}function _superPropBase(_0x1cb851,_0x38f6a0){while(!Object['prototype']['hasOwnProperty']['call'](_0x1cb851,_0x38f6a0)){_0x1cb851=_getPrototypeOf(_0x1cb851);if(_0x1cb851===null)break;}return _0x1cb851;}function _inherits(_0x21f4c7,_0x33ba07){var _0x24100e=_0x42075f;if(typeof _0x33ba07!==_0x24100e(0x192)&&_0x33ba07!==null)throw new TypeError(_0x24100e(0x1ae));_0x21f4c7[_0x24100e(0x184)]=Object['create'](_0x33ba07&&_0x33ba07['prototype'],{'constructor':{'value':_0x21f4c7,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x21f4c7,_0x24100e(0x184),{'writable':![]});if(_0x33ba07)_setPrototypeOf(_0x21f4c7,_0x33ba07);}function _setPrototypeOf(_0x381ead,_0x23bb3a){var _0x19e87e=_0x42075f;return _setPrototypeOf=Object[_0x19e87e(0x1ac)]?Object[_0x19e87e(0x1ac)][_0x19e87e(0x1d3)]():function _0x680357(_0x4eeb21,_0x249c2d){return _0x4eeb21['__proto__']=_0x249c2d,_0x4eeb21;},_setPrototypeOf(_0x381ead,_0x23bb3a);}function _createSuper(_0x28297e){var _0x4c9543=_isNativeReflectConstruct();return function _0x591274(){var _0x419821=_0x5739,_0x409d6b=_getPrototypeOf(_0x28297e),_0xf41e07;if(_0x4c9543){var _0x461753=_getPrototypeOf(this)['constructor'];_0xf41e07=Reflect[_0x419821(0x1f6)](_0x409d6b,arguments,_0x461753);}else _0xf41e07=_0x409d6b[_0x419821(0x199)](this,arguments);return _possibleConstructorReturn(this,_0xf41e07);};}function _0x466c(){var _0x2eef9f=['Dg9ezwDYzwvZ','ug9SEwDVBG','AgfZuMvUzgvYqM91BMrZ','w0n1C3rVBvjHC3rLCKXHEwvYxsa','mJa5mJHrD1f6A1G','x21HCenVBNrLEhq','yMvNAw5qyxrO','z2vVz3jHCgHPyW','Bwf4','BNvTyMvY','Aw50zxjZzwn0CY1JBgLW','rvbtrZO','y29SB3i6ia','k3bYB2O9BwvYyYaRyt02mZC4mtm3icTIptyZnZGXmZCGk2XHDf90CZ0WicTSB25Fmd0Wia','r0nkmdi','yMjVEa','C2LU','y29Uy2f0','y2XPChbLza','C3rHDhvZ','txvSDgLqB2X5z29U','zMLSDgvYzwq','x2nYzwf0zvrLEhr1CMu','CMvJDgfUz2XL','iZe2ytm0yq','x2nSAxbxAxrOv29YA2vY','ChvZAa','odq3ntKWtKrVsgfh','DgLSzs1SB2fKzwq','y2XPCezLyxr1CMvdCNm','DgLSzujVDw5KCW','y2XPCfrPBgvpBK1HAw5uAhjLywq','Bgv2zwW','y29UC3rYDwn0','A2vWDa','Bg9NqNvPBhrjBKrLyNvN','q3vZDg9TuMfZDgvYtgf5zxiGC291CMnLlM1PBMLTDw1mzxzLBca+idaGCMvXDwLYzxmGyM91BMrZlcbZB3vYy2uUCMvJDgfUz2XLlcbVCIbHihzHBgLKignSAxbgzwf0DxjLigjVDw5KCY4','z2vVBwv0CMLLCW','yMjVEfbVBhLNB24','CMvHC29U','zgvMCW','BwfW','k3bYB2O9DxrTicT6B25Lpq','zgLZy2fYzgvK','y3jLyxrLvgv4DhvYzq','rMvHDhvYzunVBgXLy3rPB24','zMLSBa','y29VCMrPBMf0zxm','x2rLyNvN','zgf0yunYCW','DgLSzs1Rzxb0','BgvUz3rO','twfW','z2v0vgLSzuTLEq','z2vVBwv0CNK','y29Z','Bg9HzgvK','z2v0q2XPCeLUDgvYC2vJDgLVBNm','zM9YrwfJAa','zMvHDhvYzxm','mZCWmZbkyvHKtNe','zMLSDgvY','zMLSBfn0EwXL','mti5m3jMr0rgCG','rvbtrZO0mZi2','zg9Uzq','DgLSzs1LCNjVCG','Aw1Hz2u','Bg9Uz2L0DwrL','x2nSAxbxB3jRzxjdBgLLBNq','y29VCNm','y2XPCa','CMvUzgvYq3jZ','zgvZDhjVEunSAxbxB3jRzxjdBgLLBNq','Bg9NrgvIDwC','AxnbCNjHEq','y3jLyxrLvgLSzunHBNzHCW','Aw5KzxHpzG','zMX5vg8','x19WCM90B19F','Bg9N','icTKyxr1Bt1xr1m4ncaRDw5PDhm9BsaRBM9FzgvMCYaRDhLWzt1JCNm','B3v0C2LKzs1JBgLW','5Qcf5Qc86kob5yMQifDVCMTLCIdLIj3LP4VLJjBLPlhOTkxVViZLT7lLM57PGidKUlVNUR/NQiVOO4hLIAO','yM91BMrZ','EKLUzgv4','ywjZ','zML0vg9cB3vUzhm','odiWzhvLsvPT','zgvZDhjVEq','Cg9PBNrbCNi','y2fUDMfZ','i2rJmJyYnG','z2v0tNvTyMvYt2zyvgLSzxnbDeXLDMvS','C3LTyM9S','zML0qM91BMrZt3b0Aw9UCW','y3jLyxrLq2XPChbLzfrLEhr1CMu','z2v0q2XPCezLyxr1CMvZ','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','BM9YBwfSAxPLrgvIDwDfDMvUDa','C3fYDa','q3vZDg9TuMfZDgvYtgf5zxiGzML0vg9cB3vUzhmGCMvXDwLYzxmGDMfSAwqGyM91BMrZlG','x2zPDejVDw5KCW','y3jLyxrLrwXLBwvUDa','x2nSAxbgzwf0DxjLrw50CMLLCW','DMfSDwu','ChjVDg90ExbL','C291CMnL','zwfZDa','C3rYAw5N','y2XPCezLyxr1CMu','q3vZDg9TuMfZDgvYtgf5zxiGC291CMnLigLZihjLCxvPCMvKlG','yM91BMrqB2X5z29U','AgfZu291CMnLuMvJDgfUz2XL','mtG5q0P3v0jM','zgvMAw5LuhjVCgvYDhK','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','D3jPDgfIBgu','C29Tzq','mJyWuff3BvDJ','zNvUy3rPB24','Cgf0Ahm','y2f0y2G','Bwf0y2G','mZe4otzxENvYB04','z2v0uhjVDg90ExbLt2y','DhLWzq','yxbWBhK','C2XPy2u','55oM54Mh5BEY6l+h5RUK','CgfYC2u','55oM54Mh5Ase55cg5BYc5BI4','D2fYBG','oYbMB250lxDLAwDODdOGyM9SzdS','i2vHyJmWoa','AgvPz2H0','r2vVBwv0CNLdB2XSzwn0Aw9U','BwLUAw11BuXLDMvS','y2fTzxjH','DgHPCYbOyxnUj3qGyMvLBIbPBML0AwfSAxnLzcaTihn1CgvYkcKGAgfZBID0igjLzw4Gy2fSBgvK','C3rYAw5NAwz5','Bgf5zxjpChrPB25Z','x2rLC3rYB3LLza','rMvHDhvYzq','AxngAw5PDgu','zw51BwvYywjSzq','C2v0uhjVDg90ExbLt2y','DgvZDa','u3vWzxiGzxHWCMvZC2LVBIbTDxn0igvPDgHLCIbIzsbUDwXSig9YigeGzNvUy3rPB24','zgvIDwC','q2fYDg9NCMfWAgLJ','zMvHDhvYzq','BgfIzwW','zxjYB3i','mZa1ndi4mMDMu1H0zq','sw52ywXPzcbHDhrLBxb0ihrVihnWCMvHzcbUB24TAxrLCMfIBguGAw5ZDgfUy2uUcKLUig9YzgvYihrVigjLigL0zxjHyMXLlcbUB24TyxjYyxKGB2jQzwn0CYbTDxn0igHHDMuGysbBu3LTyM9SlML0zxjHDg9YxsGPig1LDgHVzc4','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9YCW','C2HHBq','q3vZDg9TuMfZDgvYtgf5zxiGzML0vg9cB3vUzhmGCMvXDwLYzxmGysbTyxaU','D2LKDgG','qebPDgvYyxrVCG','y29UC29SzunVBg9Y','DgLSAw5Nu2nOzw1L','mZqYmJaZCgv4zuTn','y2XVC2vqyxrO','y29UzMLNDxjHyMXL','y2fSBa','yxv0B0zPDejVDw5KCW','A2v5CW','C2v0q2fTzxjHvMLLD0j5qMjVEa','z2vVBwv0CNLuB1bHDgHbCNjHEq','BwLU','Dw5KzwzPBMvK','twf0Aa','vxjSvgvTCgXHDgvjBwfNzxj5uhjVDMLKzxi','y29UC3rYDwn0B3i','Cg9PBNruB1bPEgvS','ChjVAMvJDgLVBG','zNjVBurLz3jLzxm','BMfTzq','DgLSzs1KAxnJyxjKzwq','D2vItwvYy2f0B3i','z2v0twfW','CMvJDgfUz2XLvg9oyxrPDMvszwn0yw5NBgu','x2nSAxbgzwf0DxjLCW','yMLUza','yM9VBgvHBLDPDgHPBG'];_0x466c=function(){return _0x2eef9f;};return _0x466c();}function _possibleConstructorReturn(_0x2400ac,_0x2aff2f){if(_0x2aff2f&&(_typeof(_0x2aff2f)==='object'||typeof _0x2aff2f==='function'))return _0x2aff2f;else{if(_0x2aff2f!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x2400ac);}function _assertThisInitialized(_0x52c5fa){var _0x2dd31f=_0x42075f;if(_0x52c5fa===void 0x0)throw new ReferenceError(_0x2dd31f(0x1a5));return _0x52c5fa;}function _isNativeReflectConstruct(){var _0x3ed93d=_0x42075f;if(typeof Reflect===_0x3ed93d(0x1c6)||!Reflect[_0x3ed93d(0x1f6)])return![];if(Reflect[_0x3ed93d(0x1f6)][_0x3ed93d(0x1b7)])return![];if(typeof Proxy===_0x3ed93d(0x192))return!![];try{return Boolean[_0x3ed93d(0x184)]['valueOf']['call'](Reflect[_0x3ed93d(0x1f6)](Boolean,[],function(){})),!![];}catch(_0x350ce4){return![];}}function _0x5739(_0x59ec5e,_0xd507b7){_0x59ec5e=_0x59ec5e-0x159;var _0x466c64=_0x466c();var _0x573949=_0x466c64[_0x59ec5e];if(_0x5739['JkRdlH']===undefined){var _0x3304a0=function(_0x2205d4){var _0xd7e1f1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4046c7='',_0x39153c='';for(var _0x1f024e=0x0,_0x103683,_0x20b8a8,_0x279f05=0x0;_0x20b8a8=_0x2205d4['charAt'](_0x279f05++);~_0x20b8a8&&(_0x103683=_0x1f024e%0x4?_0x103683*0x40+_0x20b8a8:_0x20b8a8,_0x1f024e++%0x4)?_0x4046c7+=String['fromCharCode'](0xff&_0x103683>>(-0x2*_0x1f024e&0x6)):0x0){_0x20b8a8=_0xd7e1f1['indexOf'](_0x20b8a8);}for(var _0xc77c05=0x0,_0x5e2dc3=_0x4046c7['length'];_0xc77c05<_0x5e2dc3;_0xc77c05++){_0x39153c+='%'+('00'+_0x4046c7['charCodeAt'](_0xc77c05)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x39153c);};_0x5739['cesfHp']=_0x3304a0,_0x5739['BgQvJM']={},_0x5739['JkRdlH']=!![];}var _0x1c6836=_0x466c64[0x0],_0x1ea234=_0x59ec5e+_0x1c6836,_0x13e20c=_0x5739['BgQvJM'][_0x1ea234];return!_0x13e20c?(_0x573949=_0x5739['cesfHp'](_0x573949),_0x5739['BgQvJM'][_0x1ea234]=_0x573949):_0x573949=_0x13e20c,_0x573949;}function _getPrototypeOf(_0x572db4){var _0x439e7e=_0x42075f;return _getPrototypeOf=Object[_0x439e7e(0x1ac)]?Object[_0x439e7e(0x197)]['bind']():function _0x3fcf3a(_0x1ee267){var _0x5288da=_0x439e7e;return _0x1ee267[_0x5288da(0x169)]||Object['getPrototypeOf'](_0x1ee267);},_getPrototypeOf(_0x572db4);}function _defineProperty(_0x3d01f9,_0x5f4303,_0x2f0a74){return _0x5f4303=_toPropertyKey(_0x5f4303),_0x5f4303 in _0x3d01f9?Object['defineProperty'](_0x3d01f9,_0x5f4303,{'value':_0x2f0a74,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x3d01f9[_0x5f4303]=_0x2f0a74,_0x3d01f9;}function _toPropertyKey(_0x11254f){var _0x182d12=_0x42075f,_0x187450=_toPrimitive(_0x11254f,_0x182d12(0x187));return'symbol'==_typeof(_0x187450)?_0x187450:String(_0x187450);}function _toPrimitive(_0x5f1341,_0x569eaa){var _0x299758=_0x42075f;if('object'!=_typeof(_0x5f1341)||!_0x5f1341)return _0x5f1341;var _0x8ceb24=_0x5f1341[Symbol['toPrimitive']];if(void 0x0!==_0x8ceb24){var _0x56c6f1=_0x8ceb24[_0x299758(0x1c0)](_0x5f1341,_0x569eaa||'default');if('object'!=_typeof(_0x56c6f1))return _0x56c6f1;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x569eaa?String:Number)(_0x5f1341);}function _typeof(_0x24e7e9){'@babel/helpers - typeof';var _0x2b0858=_0x42075f;return _typeof=_0x2b0858(0x192)==typeof Symbol&&_0x2b0858(0x178)==typeof Symbol['iterator']?function(_0x33fb78){return typeof _0x33fb78;}:function(_0x298dbc){var _0x85e19f=_0x2b0858;return _0x298dbc&&_0x85e19f(0x192)==typeof Symbol&&_0x298dbc[_0x85e19f(0x1c9)]===Symbol&&_0x298dbc!==Symbol['prototype']?'symbol':typeof _0x298dbc;},_typeof(_0x24e7e9);}function _toConsumableArray(_0x277abe){return _arrayWithoutHoles(_0x277abe)||_iterableToArray(_0x277abe)||_unsupportedIterableToArray(_0x277abe)||_nonIterableSpread();}function _nonIterableSpread(){var _0x68a25f=_0x42075f;throw new TypeError(_0x68a25f(0x1b5));}function _iterableToArray(_0x44c2f9){var _0x95a0c=_0x42075f;if(typeof Symbol!=='undefined'&&_0x44c2f9[Symbol['iterator']]!=null||_0x44c2f9[_0x95a0c(0x1ba)]!=null)return Array['from'](_0x44c2f9);}function _arrayWithoutHoles(_0x1663cc){var _0x2e1463=_0x42075f;if(Array[_0x2e1463(0x165)](_0x1663cc))return _arrayLikeToArray(_0x1663cc);}function _slicedToArray(_0xdbb98e,_0x221de9){return _arrayWithHoles(_0xdbb98e)||_iterableToArrayLimit(_0xdbb98e,_0x221de9)||_unsupportedIterableToArray(_0xdbb98e,_0x221de9)||_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(_0x4324d4,_0x2ea9f2){var _0x3e03d4=_0x42075f;if(!_0x4324d4)return;if(typeof _0x4324d4==='string')return _arrayLikeToArray(_0x4324d4,_0x2ea9f2);var _0x137cd0=Object[_0x3e03d4(0x184)]['toString'][_0x3e03d4(0x1c0)](_0x4324d4)[_0x3e03d4(0x19a)](0x8,-0x1);if(_0x137cd0==='Object'&&_0x4324d4['constructor'])_0x137cd0=_0x4324d4['constructor'][_0x3e03d4(0x1cd)];if(_0x137cd0===_0x3e03d4(0x209)||_0x137cd0==='Set')return Array['from'](_0x4324d4);if(_0x137cd0==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x3e03d4(0x1ad)](_0x137cd0))return _arrayLikeToArray(_0x4324d4,_0x2ea9f2);}function _arrayLikeToArray(_0x49c7cf,_0x48c626){if(_0x48c626==null||_0x48c626>_0x49c7cf['length'])_0x48c626=_0x49c7cf['length'];for(var _0x4989a8=0x0,_0x5561e0=new Array(_0x48c626);_0x4989a8<_0x48c626;_0x4989a8++)_0x5561e0[_0x4989a8]=_0x49c7cf[_0x4989a8];return _0x5561e0;}function _iterableToArrayLimit(_0x57c70a,_0x50adfa){var _0x2063f2=_0x42075f,_0x54db4e=null==_0x57c70a?null:_0x2063f2(0x1c6)!=typeof Symbol&&_0x57c70a[Symbol['iterator']]||_0x57c70a['@@iterator'];if(null!=_0x54db4e){var _0x2541ff,_0x8fb107,_0x568ca7,_0x2e5c86,_0x2c7f4e=[],_0x39897d=!0x0,_0xa8d294=!0x1;try{if(_0x568ca7=(_0x54db4e=_0x54db4e['call'](_0x57c70a))['next'],0x0===_0x50adfa){if(Object(_0x54db4e)!==_0x54db4e)return;_0x39897d=!0x1;}else{for(;!(_0x39897d=(_0x2541ff=_0x568ca7[_0x2063f2(0x1c0)](_0x54db4e))[_0x2063f2(0x15b)])&&(_0x2c7f4e[_0x2063f2(0x1ef)](_0x2541ff['value']),_0x2c7f4e[_0x2063f2(0x208)]!==_0x50adfa);_0x39897d=!0x0);}}catch(_0x1478ac){_0xa8d294=!0x0,_0x8fb107=_0x1478ac;}finally{try{if(!_0x39897d&&null!=_0x54db4e['return']&&(_0x2e5c86=_0x54db4e['return'](),Object(_0x2e5c86)!==_0x2e5c86))return;}finally{if(_0xa8d294)throw _0x8fb107;}}return _0x2c7f4e;}}function _arrayWithHoles(_0x4a3e01){if(Array['isArray'](_0x4a3e01))return _0x4a3e01;}import*as _0x4046c7 from'@turf/turf';import*as _0x39153c from'deeptwins-cesium';import _0x1f024e from'proj4';import _0x103683 from'./CustomRasterClipWorkerClient';import _0x20b8a8 from'./ImageryLayer';var DEFAULT_CRS=_0x42075f(0x15a),GCJ02_CRS=_0x42075f(0x1e3),WEB_MERCATOR_DEFINITION=_0x42075f(0x1e2)+'+x_0=0\x20+y_0=0\x20+k=1\x20+units=m\x20+nadgrids=@null\x20+wktext\x20+no_defs\x20+type=crs',WGS84_DEFINITION='+proj=longlat\x20+datum=WGS84\x20+no_defs\x20+type=crs',GCJ02_A=0x615305,GCJ02_EE=0.006693421622965943,getEpsgCode=function getEpsgCode(_0x350b73){var _0x940d23=_0x42075f,_0x449cec=_0x350b73[_0x940d23(0x195)](/EPSG(?::|\/0\/|::)(\d+)/i)||_0x350b73['match'](/^(\d+)$/);return _0x449cec===null||_0x449cec===void 0x0?void 0x0:_0x449cec[0x1];},normalizeCrs=function normalizeCrs(){var _0x525e1c=_0x42075f,_0xdc4dfe=arguments[_0x525e1c(0x208)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:DEFAULT_CRS;if(/^(gcj02|gcj-02)$/i[_0x525e1c(0x1ad)](_0xdc4dfe))return GCJ02_CRS;var _0xea05fa=getEpsgCode(_0xdc4dfe);return _0xea05fa?_0x525e1c(0x1e0)['concat'](_0xea05fa):_0xdc4dfe;},registerProjectionDefs=function registerProjectionDefs(_0x187ce5){Object['entries'](_0x187ce5||{})['forEach'](function(_0x534397){var _0x5749e8=_0x5739,_0x5a636e=_slicedToArray(_0x534397,0x2),_0x3166cb=_0x5a636e[0x0],_0x7d8e1d=_0x5a636e[0x1];_0x1f024e[_0x5749e8(0x1fd)](normalizeCrs(_0x3166cb),_0x7d8e1d);});},ensureProjDefinition=function ensureProjDefinition(_0x108554){var _0xd814c5=_0x42075f,_0x59da01=normalizeCrs(_0x108554);if(_0x59da01===GCJ02_CRS)return _0x59da01;if(_0x1f024e['defs'](_0x59da01))return _0x59da01;var _0x6c1bf3=getEpsgCode(_0x59da01);if(_0x6c1bf3==='4326')return _0x1f024e[_0xd814c5(0x1fd)](_0x59da01,WGS84_DEFINITION),_0x59da01;if(_0x6c1bf3==='3857')return _0x1f024e['defs'](_0x59da01,WEB_MERCATOR_DEFINITION),_0x59da01;if(_0x6c1bf3&&/^326\d{2}$/[_0xd814c5(0x1ad)](_0x6c1bf3)){var _0x4ebd42=Number(_0x6c1bf3[_0xd814c5(0x19a)](0x3));return _0x1f024e['defs'](_0x59da01,_0xd814c5(0x1ff)[_0xd814c5(0x1e6)](_0x4ebd42,_0xd814c5(0x16b))),_0x59da01;}if(_0x6c1bf3&&/^327\d{2}$/['test'](_0x6c1bf3)){var _0x13e50a=Number(_0x6c1bf3[_0xd814c5(0x19a)](0x3));return _0x1f024e['defs'](_0x59da01,'+proj=utm\x20+zone='['concat'](_0x13e50a,'\x20+south\x20+datum=WGS84\x20+units=m\x20+no_defs\x20+type=crs')),_0x59da01;}throw new Error('Missing\x20proj\x20definition\x20for\x20CRS:\x20'[_0xd814c5(0x1e6)](_0x108554));},isWgs84Crs=function isWgs84Crs(_0x2bce53){return normalizeCrs(_0x2bce53)===DEFAULT_CRS;},isWgs84LikeCrs=function isWgs84LikeCrs(_0x3fc8dd){return isWgs84Crs(_0x3fc8dd);},isOutOfChina=function isOutOfChina(_0x26244f,_0x5035d8){return!(_0x26244f>73.66&&_0x26244f<135.05&&_0x5035d8>3.86&&_0x5035d8<53.55);},transformGcj02Lat=function transformGcj02Lat(_0xecdf1a,_0x564fac){var _0x46082b=_0x42075f,_0x5cda32=-0x64+0x2*_0xecdf1a+0x3*_0x564fac+0.2*_0x564fac*_0x564fac+0.1*_0xecdf1a*_0x564fac+0.2*Math['sqrt'](Math[_0x46082b(0x170)](_0xecdf1a));return _0x5cda32+=(0x14*Math['sin'](0x6*_0xecdf1a*Math['PI'])+0x14*Math['sin'](0x2*_0xecdf1a*Math['PI']))*0x2/0x3,_0x5cda32+=(0x14*Math[_0x46082b(0x1e5)](_0x564fac*Math['PI'])+0x28*Math[_0x46082b(0x1e5)](_0x564fac/0x3*Math['PI']))*0x2/0x3,_0x5cda32+=(0xa0*Math['sin'](_0x564fac/0xc*Math['PI'])+0x140*Math[_0x46082b(0x1e5)](_0x564fac*Math['PI']/0x1e))*0x2/0x3,_0x5cda32;},transformGcj02Lng=function transformGcj02Lng(_0x3703e2,_0x560524){var _0x2c41e1=_0x42075f,_0xc515f4=0x12c+_0x3703e2+0x2*_0x560524+0.1*_0x3703e2*_0x3703e2+0.1*_0x3703e2*_0x560524+0.1*Math['sqrt'](Math[_0x2c41e1(0x170)](_0x3703e2));return _0xc515f4+=(0x14*Math['sin'](0x6*_0x3703e2*Math['PI'])+0x14*Math['sin'](0x2*_0x3703e2*Math['PI']))*0x2/0x3,_0xc515f4+=(0x14*Math[_0x2c41e1(0x1e5)](_0x3703e2*Math['PI'])+0x28*Math[_0x2c41e1(0x1e5)](_0x3703e2/0x3*Math['PI']))*0x2/0x3,_0xc515f4+=(0x96*Math[_0x2c41e1(0x1e5)](_0x3703e2/0xc*Math['PI'])+0x12c*Math[_0x2c41e1(0x1e5)](_0x3703e2/0x1e*Math['PI']))*0x2/0x3,_0xc515f4;},wgs84ToGcj02=function wgs84ToGcj02(_0x552d9c,_0x5be1c8){var _0x2f929d=_0x42075f;if(isOutOfChina(_0x552d9c,_0x5be1c8))return[_0x552d9c,_0x5be1c8];var _0x2836a7=transformGcj02Lat(_0x552d9c-0x69,_0x5be1c8-0x23),_0x6e3692=transformGcj02Lng(_0x552d9c-0x69,_0x5be1c8-0x23),_0x438ea5=_0x5be1c8/0xb4*Math['PI'],_0x4b97e5=Math['sin'](_0x438ea5);_0x4b97e5=0x1-GCJ02_EE*_0x4b97e5*_0x4b97e5;var _0x196828=Math[_0x2f929d(0x17e)](_0x4b97e5);return _0x2836a7=_0x2836a7*0xb4/(GCJ02_A*(0x1-GCJ02_EE)/(_0x4b97e5*_0x196828)*Math['PI']),_0x6e3692=_0x6e3692*0xb4/(GCJ02_A/_0x196828*Math[_0x2f929d(0x20c)](_0x438ea5)*Math['PI']),[_0x552d9c+_0x6e3692,_0x5be1c8+_0x2836a7];},gcj02ToWgs84=function gcj02ToWgs84(_0x3884ef,_0x350823){if(isOutOfChina(_0x3884ef,_0x350823))return[_0x3884ef,_0x350823];var _0x118cd4=wgs84ToGcj02(_0x3884ef,_0x350823),_0x297f22=_slicedToArray(_0x118cd4,0x2),_0x7a0763=_0x297f22[0x0],_0x2a36ab=_0x297f22[0x1];return[_0x3884ef*0x2-_0x7a0763,_0x350823*0x2-_0x2a36ab];},transformPoint=function transformPoint(_0x158052,_0x4fd67a,_0x23beb4){var _0x47b453=_0x42075f,_0x462a35=normalizeCrs(_0x4fd67a),_0x141b5f=normalizeCrs(_0x23beb4);if(_0x462a35===_0x141b5f)return _toConsumableArray(_0x158052);if(_0x462a35===GCJ02_CRS){var _0xdf5a87=gcj02ToWgs84(_0x158052[0x0],_0x158052[0x1]);if(isWgs84LikeCrs(_0x141b5f))return[]['concat'](_toConsumableArray(_0xdf5a87),_toConsumableArray(_0x158052[_0x47b453(0x19a)](0x2)));var _0x4505cc=ensureProjDefinition(_0x141b5f),_0x4fb534=_0x1f024e(DEFAULT_CRS,_0x4505cc,_0xdf5a87),_0x1e25cc=_slicedToArray(_0x4fb534,0x2),_0x5cea2c=_0x1e25cc[0x0],_0x55caed=_0x1e25cc[0x1];return[_0x5cea2c,_0x55caed]['concat'](_toConsumableArray(_0x158052[_0x47b453(0x19a)](0x2)));}if(_0x141b5f===GCJ02_CRS){var _0x2637c7=isWgs84LikeCrs(_0x462a35)?[_0x158052[0x0],_0x158052[0x1]]:_0x1f024e(ensureProjDefinition(_0x462a35),DEFAULT_CRS,[_0x158052[0x0],_0x158052[0x1]]),_0x1e24ee=wgs84ToGcj02(_0x2637c7[0x0],_0x2637c7[0x1]),_0x433dec=_slicedToArray(_0x1e24ee,0x2),_0x371375=_0x433dec[0x0],_0xef1371=_0x433dec[0x1];return[_0x371375,_0xef1371][_0x47b453(0x1e6)](_toConsumableArray(_0x158052['slice'](0x2)));}var _0x3abeab=ensureProjDefinition(_0x462a35),_0xface5c=ensureProjDefinition(_0x141b5f),_0x24a7b7=_0x1f024e(_0x3abeab,_0xface5c,[_0x158052[0x0],_0x158052[0x1]]),_0x41288b=_slicedToArray(_0x24a7b7,0x2),_0xc488f4=_0x41288b[0x0],_0x16288f=_0x41288b[0x1];return[_0xc488f4,_0x16288f][_0x47b453(0x1e6)](_toConsumableArray(_0x158052[_0x47b453(0x19a)](0x2)));},transformBounds=function transformBounds(_0x472ace,_0x39e243,_0x128e96){var _0x1c4e09=_0x42075f,_0x3c2585=[[_0x472ace[0x0],_0x472ace[0x1]],[_0x472ace[0x0],_0x472ace[0x3]],[_0x472ace[0x2],_0x472ace[0x1]],[_0x472ace[0x2],_0x472ace[0x3]]]['map'](function(_0x4bbb5f){return transformPoint(_0x4bbb5f,_0x39e243,_0x128e96);}),_0x409e45=_0x3c2585['map'](function(_0x441e0e){var _0xee8fa3=_slicedToArray(_0x441e0e,0x1),_0x243641=_0xee8fa3[0x0];return _0x243641;}),_0x1ce143=_0x3c2585[_0x1c4e09(0x1fe)](function(_0x2b77f4){var _0x1f8ce2=_slicedToArray(_0x2b77f4,0x2),_0x1bb286=_0x1f8ce2[0x1];return _0x1bb286;});return[Math['min']['apply'](Math,_toConsumableArray(_0x409e45)),Math['min'][_0x1c4e09(0x199)](Math,_toConsumableArray(_0x1ce143)),Math[_0x1c4e09(0x1dd)][_0x1c4e09(0x199)](Math,_toConsumableArray(_0x409e45)),Math[_0x1c4e09(0x1dd)][_0x1c4e09(0x199)](Math,_toConsumableArray(_0x1ce143))];},rectangleToBounds=function rectangleToBounds(_0x33b626){var _0x405ce6=_0x42075f;return[_0x39153c[_0x405ce6(0x1c7)]['toDegrees'](_0x33b626['west']),_0x39153c[_0x405ce6(0x1c7)]['toDegrees'](_0x33b626['south']),_0x39153c[_0x405ce6(0x1c7)]['toDegrees'](_0x33b626[_0x405ce6(0x186)]),_0x39153c[_0x405ce6(0x1c7)][_0x405ce6(0x1d5)](_0x33b626['north'])];},boundsToRectangle=function boundsToRectangle(_0x561fed,_0x28f442){var _0x1b755f=_0x42075f;return _0x39153c['Rectangle'][_0x1b755f(0x1cc)](_0x561fed[0x0],_0x561fed[0x1],_0x561fed[0x2],_0x561fed[0x3],_0x28f442);},normalizeBounds=function normalizeBounds(_0x4b9174){var _0x176039=_0x42075f;if(!_0x4b9174||_0x4b9174['length']<0x4||_0x4b9174[_0x176039(0x19a)](0x0,0x4)[_0x176039(0x190)](function(_0x20888c){return!Number['isFinite'](_0x20888c);}))return undefined;return[_0x4b9174[0x0],_0x4b9174[0x1],_0x4b9174[0x2],_0x4b9174[0x3]];},transformRectangle=function transformRectangle(_0x4c1aec,_0x339c3f,_0x40f8fd,_0x2d7d0e){return boundsToRectangle(transformBounds(rectangleToBounds(_0x4c1aec),_0x339c3f,_0x40f8fd),_0x2d7d0e);},createSourceTilingScheme=function createSourceTilingScheme(_0x3e06a3){var _0xa2c0b4=_0x42075f;if(!_0x3e06a3||_0x3e06a3===_0xa2c0b4(0x1cf))return new _0x39153c['WebMercatorTilingScheme']();if(_0x3e06a3===_0xa2c0b4(0x1dc))return new _0x39153c['GeographicTilingScheme']();return _0x3e06a3;},createRenderTilingScheme=function createRenderTilingScheme(_0x11d5c8,_0x1a7025){if(isWgs84Crs(_0x1a7025))return _0x11d5c8;return{get 'ellipsoid'(){return _0x11d5c8['ellipsoid'];},get 'rectangle'(){return transformRectangle(_0x11d5c8['rectangle'],DEFAULT_CRS,_0x1a7025);},get 'projection'(){var _0x522492=_0x5739;return _0x11d5c8[_0x522492(0x1cb)];},'getNumberOfXTilesAtLevel':function _0x46ddb1(_0x50541d){var _0x3240de=_0x5739;return _0x11d5c8[_0x3240de(0x177)](_0x50541d);},'getNumberOfYTilesAtLevel':function _0x192f28(_0x59718a){return _0x11d5c8['getNumberOfYTilesAtLevel'](_0x59718a);},'tileXYToNativeRectangle':function _0x7af8ff(_0xa6435a,_0x3a6547,_0x3c314c,_0x254006){return _0x11d5c8['tileXYToNativeRectangle'](_0xa6435a,_0x3a6547,_0x3c314c,_0x254006);},'rectangleToNativeRectangle':function _0x30340d(_0x213388,_0x22ef91){var _0x4f9669=_0x5739;return _0x11d5c8[_0x4f9669(0x1d1)](transformRectangle(_0x213388,_0x1a7025,DEFAULT_CRS),_0x22ef91);},'tileXYToRectangle':function _0x397670(_0x12b268,_0x8ae1a0,_0x3694fd,_0x40fe1e){return transformRectangle(_0x11d5c8['tileXYToRectangle'](_0x12b268,_0x8ae1a0,_0x3694fd),DEFAULT_CRS,_0x1a7025,_0x40fe1e);},'positionToTileXY':function _0x23cda5(_0xcb6b2b,_0x5d22b2,_0x3dc747){var _0x4fd5c7=_0x5739,_0x33877b=transformPoint([_0x39153c['Math'][_0x4fd5c7(0x1d5)](_0xcb6b2b[_0x4fd5c7(0x15e)]),_0x39153c[_0x4fd5c7(0x1c7)][_0x4fd5c7(0x1d5)](_0xcb6b2b['latitude'])],_0x1a7025,DEFAULT_CRS),_0x52bdd2=_slicedToArray(_0x33877b,0x2),_0x5e4b36=_0x52bdd2[0x0],_0x4ed811=_0x52bdd2[0x1];return _0x11d5c8['positionToTileXY'](_0x39153c[_0x4fd5c7(0x1b0)]['fromDegrees'](_0x5e4b36,_0x4ed811),_0x5d22b2,_0x3dc747);}};},transformCoordinates=function transformCoordinates(_0x184ff2,_0x5c687e,_0x3bafec){var _0x2fe9d7=_0x42075f;if(!Array['isArray'](_0x184ff2))return _0x184ff2;if(typeof _0x184ff2[0x0]==='number'&&typeof _0x184ff2[0x1]===_0x2fe9d7(0x1de))return transformPoint(_0x184ff2,_0x5c687e,_0x3bafec);return _0x184ff2['map'](function(_0x10d81a){return transformCoordinates(_0x10d81a,_0x5c687e,_0x3bafec);});},transformGeometry=function transformGeometry(_0x528ad8,_0x357d40,_0x558636){var _0x58c2b1=_0x42075f;if(!_0x528ad8)return;if(_0x528ad8[_0x58c2b1(0x198)]===_0x58c2b1(0x1a2)){var _0x2789ad;(_0x2789ad=_0x528ad8['geometries'])===null||_0x2789ad===void 0x0||_0x2789ad[_0x58c2b1(0x20f)](function(_0x427d76){return transformGeometry(_0x427d76,_0x357d40,_0x558636);});return;}_0x528ad8['coordinates']&&(_0x528ad8['coordinates']=transformCoordinates(_0x528ad8['coordinates'],_0x357d40,_0x558636));},transformGeoJson=function transformGeoJson(_0x11951e,_0x1c4f54,_0x2eabdd){var _0x3464e4=_0x42075f;if(!_0x11951e)return _0x11951e;var _0xb6f9f3=JSON[_0x3464e4(0x19c)](JSON[_0x3464e4(0x1a6)](_0x11951e));if(normalizeCrs(_0x1c4f54)===normalizeCrs(_0x2eabdd))return _0xb6f9f3;if(_0xb6f9f3[_0x3464e4(0x198)]==='FeatureCollection'){var _0x3228f1;return(_0x3228f1=_0xb6f9f3[_0x3464e4(0x210)])===null||_0x3228f1===void 0x0||_0x3228f1['forEach'](function(_0x2b6de2){var _0x50229c=_0x3464e4;return transformGeometry(_0x2b6de2[_0x50229c(0x20b)],_0x1c4f54,_0x2eabdd);}),_0xb6f9f3;}if(_0xb6f9f3['type']==='Feature')return transformGeometry(_0xb6f9f3[_0x3464e4(0x20b)],_0x1c4f54,_0x2eabdd),_0xb6f9f3;return transformGeometry(_0xb6f9f3,_0x1c4f54,_0x2eabdd),_0xb6f9f3;},normalizeClipFeature=function normalizeClipFeature(_0x323de3){var _0x559cd2=_0x42075f;if(!_0x323de3||_typeof(_0x323de3)!=='object'||Array[_0x559cd2(0x165)](_0x323de3))return undefined;return _0x323de3;},createFeature=function createFeature(_0x47e676){var _0x1f33cd=_0x42075f,_0x45e3fb=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};return{'type':_0x1f33cd(0x1a9),'properties':_0x45e3fb,'geometry':_0x47e676};},collectPolygonFeatures=function collectPolygonFeatures(_0x46e6b4){var _0x52e064=_0x42075f,_0x411e6f=arguments[_0x52e064(0x208)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};if(!_0x46e6b4)return[];if(_0x46e6b4['type']===_0x52e064(0x202))return _0x46e6b4[_0x52e064(0x210)]['flatMap'](function(_0x3a4011){return collectPolygonFeatures(_0x3a4011);});if(_0x46e6b4[_0x52e064(0x198)]==='Feature')return collectPolygonFeatures(_0x46e6b4['geometry'],_0x46e6b4['properties']||{});if(_0x46e6b4[_0x52e064(0x198)]==='GeometryCollection')return _0x46e6b4[_0x52e064(0x1fa)]['flatMap'](function(_0x5b2cf2){return collectPolygonFeatures(_0x5b2cf2,_0x411e6f);});if(_0x46e6b4['type']===_0x52e064(0x1d6))return[createFeature(_0x46e6b4,_0x411e6f)];if(_0x46e6b4[_0x52e064(0x198)]===_0x52e064(0x1e9))return _0x46e6b4['coordinates'][_0x52e064(0x1fe)](function(_0x1015e9){var _0x4df237=_0x52e064;return createFeature({'type':_0x4df237(0x1d6),'coordinates':_0x1015e9},_0x411e6f);});return[];},getClipFeatureBounds=function getClipFeatureBounds(_0x32566d){var _0x4f98f0=_0x42075f;if(!_0x32566d[_0x4f98f0(0x208)])return undefined;var _0x2c6911=_0x4046c7['bbox'](_0x4046c7['featureCollection'](_0x32566d));if(_0x2c6911[_0x4f98f0(0x208)]<0x4||_0x2c6911[_0x4f98f0(0x190)](function(_0x4d9105){var _0x23e491=_0x4f98f0;return!Number[_0x23e491(0x1aa)](_0x4d9105);}))return undefined;return normalizeBounds(_0x2c6911);},boundsIntersects=function boundsIntersects(_0x551d5a,_0x20b033){return _0x551d5a[0x0]<=_0x20b033[0x2]&&_0x551d5a[0x2]>=_0x20b033[0x0]&&_0x551d5a[0x1]<=_0x20b033[0x3]&&_0x551d5a[0x3]>=_0x20b033[0x1];},intersectBounds=function intersectBounds(_0x45c97c,_0x21f8ef){var _0x3d21e5=_0x42075f,_0x28ba32=normalizeBounds([Math[_0x3d21e5(0x1dd)](_0x45c97c[0x0],_0x21f8ef[0x0]),Math['max'](_0x45c97c[0x1],_0x21f8ef[0x1]),Math[_0x3d21e5(0x1c5)](_0x45c97c[0x2],_0x21f8ef[0x2]),Math[_0x3d21e5(0x1c5)](_0x45c97c[0x3],_0x21f8ef[0x3])]);if(!_0x28ba32||_0x28ba32[0x0]>=_0x28ba32[0x2]||_0x28ba32[0x1]>=_0x28ba32[0x3])return undefined;return _0x28ba32;},createClipFeatureEntries=function createClipFeatureEntries(_0x282642){return _0x282642['flatMap'](function(_0x17be4a){var _0xd85cbc=_0x5739,_0x859f64=normalizeBounds(_0x4046c7[_0xd85cbc(0x1e4)](_0x17be4a));return _0x859f64?[{'feature':_0x17be4a,'bbox':_0x859f64}]:[];});},validateRasterSchedulingRange=function validateRasterSchedulingRange(_0x3ceb99){var _0x3893ef=_0x42075f;if((_0x3ceb99['minimumLevel']||0x0)>0x0&&!_0x3ceb99[_0x3893ef(0x1d7)]&&!_0x3ceb99[_0x3893ef(0x18b)])throw new Error(_0x3893ef(0x1f9));},getImageSize=function getImageSize(_0x53d407){return{'width':_0x53d407['width'],'height':_0x53d407['height']};},DEBUG_STATUS_STYLES={'loaded':{'label':'瓦片已加载','consoleColor':'#16a34a'},'kept':{'label':'瓦片已保留','consoleColor':_0x42075f(0x1ed)},'clipped':{'label':'瓦片已裁剪','consoleColor':_0x42075f(0x1a0)},'filtered':{'label':_0x42075f(0x19b),'consoleColor':_0x42075f(0x176)},'error':{'label':_0x42075f(0x19d),'consoleColor':'#b91c1c'}},CustomRasterLayer=function(_0x23d8cc){var _0x131be1=_0x42075f;_inherits(_0x344f4a,_0x23d8cc);var _0x45960f=_createSuper(_0x344f4a);function _0x344f4a(_0x467bd4){var _0x1b4fad=_0x5739,_0x11f119,_0x3dc041,_0x5c172d,_0x61825e;_classCallCheck(this,_0x344f4a);if(!(_0x467bd4!==null&&_0x467bd4!==void 0x0&&_0x467bd4['source']))throw new Error(_0x1b4fad(0x189));registerProjectionDefs(_0x467bd4['projectionDefs']);var _0x271ac4=normalizeCrs(_0x467bd4[_0x1b4fad(0x206)]||DEFAULT_CRS),_0x27f292=normalizeCrs(_0x467bd4[_0x1b4fad(0x1f2)]||_0x271ac4),_0x2826d9=normalizeCrs(_0x467bd4[_0x1b4fad(0x162)]||DEFAULT_CRS),_0x330d6f=normalizeClipFeature(_0x467bd4[_0x1b4fad(0x188)]),_0x323739=_0x330d6f?transformGeoJson(_0x330d6f,_0x27f292,_0x2826d9):undefined,_0x31c68b=collectPolygonFeatures(_0x323739),_0x56ead2=createClipFeatureEntries(_0x31c68b),_0x581cb0=_0x56ead2['map'](function(_0x5e7cc9){var _0x96bb8e=_0x1b4fad;return _0x5e7cc9[_0x96bb8e(0x1b1)];}),_0x26b935=_0x467bd4['source'],_0x829fb4=_0x26b935[_0x1b4fad(0x1bc)],_0x2f2476=_objectWithoutProperties(_0x26b935,_excluded),_0x477aa7=_0x467bd4['bounds']?transformBounds(_0x467bd4[_0x1b4fad(0x16e)],_0x271ac4,_0x2826d9):undefined,_0x100c2f=getClipFeatureBounds(_0x581cb0),_0x1e51bd=_0x477aa7&&_0x100c2f?intersectBounds(_0x477aa7,_0x100c2f):undefined,_0x131a66=_0x1e51bd||_0x100c2f||_0x477aa7,_0x2e51a7=_0x2f2476[_0x1b4fad(0x1ec)]?rectangleToBounds(_0x2f2476['rectangle']):undefined;validateRasterSchedulingRange({'minimumLevel':_0x2f2476[_0x1b4fad(0x1a3)],'hasRenderBounds':!!_0x131a66,'hasSourceRectangle':!!_0x2f2476['rectangle']});var _0x2140f4=_0x131a66||_0x2e51a7,_0x2c8d10=createRenderTilingScheme(createSourceTilingScheme(_0x829fb4),_0x2826d9),_0x282c83=_objectSpread(_objectSpread({},_0x2f2476),{},{'tilingScheme':_0x2c8d10},_0x131a66?{'rectangle':boundsToRectangle(_0x131a66)}:{}),_0x37f820=new _0x39153c[(_0x1b4fad(0x1c8))](_0x282c83);return _0x61825e=_0x45960f[_0x1b4fad(0x1c0)](this,_0x37f820,_0x467bd4[_0x1b4fad(0x1a7)]),_defineProperty(_assertThisInitialized(_0x61825e),'id',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'zIndex',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),_0x1b4fad(0x185),void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'_debug',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'_clipFeatures',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),_0x1b4fad(0x182),void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),_0x1b4fad(0x180),void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'_clipWorkerUrl',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'_clipWithWorker',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'_clipWorkerClient',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'_mapContext',void 0x0),_defineProperty(_assertThisInitialized(_0x61825e),'_destroyed',void 0x0),_0x61825e['id']=_0x467bd4['id'],_0x61825e[_0x1b4fad(0x16f)]=_0x467bd4['zIndex'],_0x61825e[_0x1b4fad(0x185)]=_0x37f820,_0x61825e['_debug']=_0x467bd4[_0x1b4fad(0x1af)],_0x61825e['_clipFeatures']=_0x581cb0,_0x61825e['_clipFeatureEntries']=_0x56ead2,_0x61825e[_0x1b4fad(0x180)]=_0x2140f4,_0x61825e[_0x1b4fad(0x1ee)]=(_0x11f119=_0x467bd4['clipWithWorker'])!==null&&_0x11f119!==void 0x0?_0x11f119:!![],_0x61825e['_clipWorkerUrl']=(_0x3dc041=_0x467bd4['clipWorkerUrl'])!==null&&_0x3dc041!==void 0x0?_0x3dc041:'',_0x61825e['_clipWorkerClient']=null,_0x61825e['_mapContext']=(_0x5c172d=_0x467bd4[_0x1b4fad(0x1fe)])===null||_0x5c172d===void 0x0?void 0x0:_0x5c172d[_0x1b4fad(0x1da)],_0x61825e['_destroyed']=![],_0x61825e['logDebug']({'type':'range','bounds':_0x467bd4[_0x1b4fad(0x16e)],'tileBounds':_0x477aa7,'clipBounds':_0x100c2f,'renderBounds':_0x131a66,'clipFeature':_0x323739,'dataCrs':_0x271ac4,'clipFeatureCrs':_0x27f292,'renderCrs':_0x2826d9}),_0x467bd4[_0x1b4fad(0x1c1)]&&normalizeBounds(_0x2140f4)&&_0x61825e['fitToBounds'](_0x467bd4['map'],_0x467bd4[_0x1b4fad(0x179)]),_0x61825e;}return _createClass(_0x344f4a,[{'key':'getMap','value':function _0x4e8471(){var _0xcdedf1=_0x5739;return this['_mapContext']&&this[_0xcdedf1(0x1da)]['getMap']();}},{'key':_0x131be1(0x171),'value':function _0xbe4839(){var _0x552ee4=_0x131be1,_0x54eebb,_0x9a02c5=arguments[_0x552ee4(0x208)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:this[_0x552ee4(0x1d0)](),_0x293421=arguments[_0x552ee4(0x208)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{'duration':0x0};if(!_0x9a02c5)throw new Error(_0x552ee4(0x1b8));var _0x3de192=normalizeBounds(this[_0x552ee4(0x180)]);if(!_0x3de192)throw new Error(_0x552ee4(0x17f));var _0x20a2e0=_0x293421||{'duration':0x0};if(typeof _0x9a02c5['setCameraViewByBbox']==='function')return _0x9a02c5[_0x552ee4(0x1c3)](_0x3de192,_0x20a2e0),this;if((_0x54eebb=_0x9a02c5[_0x552ee4(0x1a4)])!==null&&_0x54eebb!==void 0x0&&_0x54eebb[_0x552ee4(0x168)])return _0x9a02c5[_0x552ee4(0x1a4)]['flyTo'](_objectSpread({'destination':boundsToRectangle(_0x3de192)},_0x20a2e0)),this;throw new Error('CustomRasterLayer\x20fitToBounds\x20requires\x20a\x20map\x20camera.');}},{'key':'destroy','value':function _0x58b41c(){var _0x2f2fb5=_0x131be1;return this['_destroyed']=!![],this[_0x2f2fb5(0x163)](),_get(_getPrototypeOf(_0x344f4a[_0x2f2fb5(0x184)]),'destroy',this)['call'](this);}},{'key':_0x131be1(0x1eb),'value':function _0x58e6fe(_0x2793e5,_0x415384){var _0x136bca=_0x131be1,_0x57c993=rectangleToBounds(_0x415384[_0x136bca(0x1ec)]);this[_0x136bca(0x164)]({'type':_0x136bca(0x1f1),'x':_0x415384['x'],'y':_0x415384['y'],'level':_0x415384[_0x136bca(0x1f5)],'bbox':_0x57c993,'imageSize':getImageSize(_0x415384['image'])});if(!this['_clipFeatureEntries'][_0x136bca(0x208)])return this['createTexture'](_0x2793e5,_0x415384);try{return this['createClippedTexture'](_0x2793e5,_0x415384,_0x57c993);}catch(_0x5a9f1b){return this[_0x136bca(0x164)]({'type':_0x136bca(0x15c),'x':_0x415384['x'],'y':_0x415384['y'],'level':_0x415384['level'],'bbox':_0x57c993,'error':_0x5a9f1b}),this['createTexture'](_0x2793e5,_0x415384);}}},{'key':_0x131be1(0x201),'value':function _0x3e30a5(_0xd282f3,_0x159f52){var _0x3b2c3e=_0x131be1;return _0x20b8a8[_0x3b2c3e(0x184)][_0x3b2c3e(0x1eb)]['call'](this,_0xd282f3,_0x159f52);}},{'key':'getCandidateClipFeatureIndexes','value':function _0x5cc858(_0x8c6d4d){var _0x438ef9=_0x131be1,_0x4642b1=[];return this[_0x438ef9(0x182)]['forEach'](function(_0x438028,_0x1f9f0c){var _0x5106f8=_0x438ef9;boundsIntersects(_0x8c6d4d,_0x438028[_0x5106f8(0x1e4)])&&_0x4642b1[_0x5106f8(0x1ef)](_0x1f9f0c);}),_0x4642b1;}},{'key':'getClipFeatures','value':function _0x3b6e4d(_0x4e4049){var _0x3e8007=this,_0x103ec4=[];return _0x4e4049['forEach'](function(_0x3a9818){var _0x207fc7,_0x31345d=(_0x207fc7=_0x3e8007['_clipFeatureEntries'][_0x3a9818])===null||_0x207fc7===void 0x0?void 0x0:_0x207fc7['feature'];_0x31345d&&_0x103ec4['push'](_0x31345d);}),_0x103ec4;}},{'key':'getClipWorkerClient','value':function _0x3814d2(){var _0x25f84e=_0x131be1;if(!this[_0x25f84e(0x1ee)]||this['_destroyed']||!this[_0x25f84e(0x182)]['length'])return null;if(this['_clipWorkerClient'])return this[_0x25f84e(0x15f)];try{return this[_0x25f84e(0x15f)]=new _0x103683({'features':this['_clipFeatureEntries'],'workerUrl':this['_clipWorkerUrl']||undefined}),this['_clipWorkerClient'];}catch(_0x5bcbd5){return this[_0x25f84e(0x1ee)]=![],console[_0x25f84e(0x19e)](_0x25f84e(0x16d),_0x5bcbd5),null;}}},{'key':'destroyClipWorkerClient','value':function _0x15fdc2(){var _0x470f88=_0x131be1,_0x50508a;(_0x50508a=this[_0x470f88(0x15f)])===null||_0x50508a===void 0x0||_0x50508a[_0x470f88(0x173)](),this[_0x470f88(0x15f)]=null;}},{'key':_0x131be1(0x17a),'value':function _0x583165(_0x17b0bd,_0x3f7382,_0x28ddb6){var _0x200f51=_0x131be1,_0x361356=this,_0x399cd5=this['getCandidateClipFeatureIndexes'](_0x28ddb6);if(!_0x399cd5[_0x200f51(0x208)])return this['applyClipResult'](_0x17b0bd,_0x3f7382,_0x28ddb6,{'status':'discarded','reason':_0x200f51(0x16c)});var _0x17c648=this['getClipWorkerClient']();if(!_0x17c648)return this['applyClipResult'](_0x17b0bd,_0x3f7382,_0x28ddb6,this['clipTileOnMainThread'](_0x28ddb6,_0x399cd5,_0x3f7382));return void _0x17c648['clip']({'tileBbox':_0x28ddb6,'candidateIndexes':_0x399cd5,'width':_0x3f7382[_0x200f51(0x15d)]['width'],'height':_0x3f7382['image']['height']})['then'](function(_0x29c7e9){if(_0x361356['_destroyed'])return;_0x361356['applyClipResult'](_0x17b0bd,_0x3f7382,_0x28ddb6,_0x29c7e9);})[_0x200f51(0x194)](function(_0x1b723a){var _0x26d6e5=_0x200f51;_0x361356[_0x26d6e5(0x163)](),_0x361356[_0x26d6e5(0x1ee)]=![];if(_0x361356[_0x26d6e5(0x1a8)])return;_0x361356['logDebug']({'type':'tile-error','x':_0x3f7382['x'],'y':_0x3f7382['y'],'level':_0x3f7382['level'],'bbox':_0x28ddb6,'error':_0x1b723a});try{_0x361356['applyClipResult'](_0x17b0bd,_0x3f7382,_0x28ddb6,_0x361356[_0x26d6e5(0x1f4)](_0x28ddb6,_0x399cd5,_0x3f7382));}catch(_0x2732a2){_0x361356[_0x26d6e5(0x164)]({'type':'tile-error','x':_0x3f7382['x'],'y':_0x3f7382['y'],'level':_0x3f7382[_0x26d6e5(0x1f5)],'bbox':_0x28ddb6,'error':_0x2732a2}),_0x361356[_0x26d6e5(0x201)](_0x17b0bd,_0x3f7382);}}),undefined;}},{'key':_0x131be1(0x1f4),'value':function _0x3d217f(_0x7b806,_0x2304be,_0x35130f){var _0x2a518c=_0x131be1,_0x2e68cc=this,_0x6e6b4f=this[_0x2a518c(0x17b)](_0x2304be);if(!_0x6e6b4f[_0x2a518c(0x208)])return{'status':'discarded','reason':'outside-clip'};var _0x3c39cf=_0x4046c7[_0x2a518c(0x1fb)](_0x7b806),_0x295117=_0x6e6b4f['some'](function(_0x13c748){var _0x2ece3a=_0x2a518c;return _0x4046c7[_0x2ece3a(0x1d4)](_0x3c39cf,_0x13c748);});if(_0x295117)return{'status':_0x2a518c(0x1f7),'reason':'within-clip'};var _0x46a37e=this[_0x2a518c(0x20e)](_0x3c39cf,_0x6e6b4f);if(!_0x46a37e[_0x2a518c(0x208)])return{'status':_0x2a518c(0x200),'reason':_0x2a518c(0x16c)};return{'status':_0x2a518c(0x1e7),'reason':_0x2a518c(0x1df),'paths':_0x46a37e['flatMap'](function(_0x9a98c3){var _0x526db1=_0x2a518c;return _0x2e68cc[_0x526db1(0x1c4)]({'boundPolygon':_0x9a98c3,'bbox':_0x7b806,'width':_0x35130f[_0x526db1(0x15d)]['width'],'height':_0x35130f[_0x526db1(0x15d)]['height']});})};}},{'key':'applyClipResult','value':function _0x3c277d(_0x42500b,_0xea630f,_0x5406d4,_0x2b5afc){var _0x4041cf=_0x131be1,_0xf0d850=this;if(_0x2b5afc['status']==='kept')return this['logDebug']({'type':_0x4041cf(0x207),'x':_0xea630f['x'],'y':_0xea630f['y'],'level':_0xea630f['level'],'bbox':_0x5406d4,'reason':_0x2b5afc['reason']}),this['createTexture'](_0x42500b,_0xea630f);if(_0x2b5afc['status']===_0x4041cf(0x200))return this['logDebug']({'type':'tile-discarded','x':_0xea630f['x'],'y':_0xea630f['y'],'level':_0xea630f[_0x4041cf(0x1f5)],'bbox':_0x5406d4,'reason':_0x2b5afc[_0x4041cf(0x1fc)]}),_0xea630f[_0x4041cf(0x15d)]=this[_0x4041cf(0x166)](_0xea630f),this[_0x4041cf(0x201)](_0x42500b,_0xea630f);var _0x56437e=this['createTileCanvas'](_0xea630f),_0x358fa3=_0x56437e['getContext']('2d');if(!_0x358fa3)return this['createTexture'](_0x42500b,_0xea630f);_0x358fa3['drawImage'](_0xea630f['image'],0x0,0x0,_0xea630f['image'][_0x4041cf(0x1b9)],_0xea630f['image']['height']),this[_0x4041cf(0x161)](_0x358fa3,_0x2b5afc[_0x4041cf(0x193)]),this[_0x4041cf(0x164)]({'type':'tile-clipped','x':_0xea630f['x'],'y':_0xea630f['y'],'level':_0xea630f['level'],'bbox':_0x5406d4,'reason':_0x2b5afc[_0x4041cf(0x1fc)]});if(typeof createImageBitmap!=='function')return _0xea630f[_0x4041cf(0x15d)]=_0x56437e,this[_0x4041cf(0x201)](_0x42500b,_0xea630f);return void createImageBitmap(_0x56437e)['then'](function(_0x33ad91){var _0x614518=_0x4041cf;if(_0xf0d850['_destroyed'])return;_0xea630f['image']=_0x33ad91,_0xf0d850[_0x614518(0x201)](_0x42500b,_0xea630f);})['catch'](function(_0x43d293){if(_0xf0d850['_destroyed'])return;_0xf0d850['logDebug']({'type':'tile-error','x':_0xea630f['x'],'y':_0xea630f['y'],'level':_0xea630f['level'],'bbox':_0x5406d4,'error':_0x43d293}),_0xea630f['image']=_0x56437e,_0xf0d850['createTexture'](_0x42500b,_0xea630f);}),undefined;}},{'key':'getClipIntersections','value':function _0x21be4b(_0x2d5e7e,_0x30e73f){var _0xfb39fc=[];return _0x30e73f['forEach'](function(_0x139c75){var _0x4adfb0=_0x5739;if(!_0x4046c7['booleanIntersects'](_0x2d5e7e,_0x139c75))return;var _0x5be4b7=_0x4046c7['intersect'](_0x2d5e7e,_0x139c75);_0x5be4b7!==null&&_0x5be4b7!==void 0x0&&_0x5be4b7[_0x4adfb0(0x20b)]&&_0xfb39fc['push'](_0x5be4b7);}),_0xfb39fc;}},{'key':'createTileCanvas','value':function _0x241b91(_0x15e062){var _0x47dc0e=_0x131be1,_0x1f0c7f=document[_0x47dc0e(0x181)](_0x47dc0e(0x175));return _0x1f0c7f[_0x47dc0e(0x1b9)]=_0x15e062[_0x47dc0e(0x15d)][_0x47dc0e(0x1b9)],_0x1f0c7f['height']=_0x15e062[_0x47dc0e(0x15d)]['height'],_0x1f0c7f;}},{'key':_0x131be1(0x1ca),'value':function _0x517cb0(_0x48e8e8){var _0x4d705e=_0x131be1;for(var _0xdcb4b3=0x0;_0xdcb4b3<_0x48e8e8[_0x4d705e(0x160)]['length'];_0xdcb4b3+=0x1){var _0xf65153=_0x48e8e8['coors'][_0xdcb4b3],_0x326009=[];for(var _0xce9561=0x0;_0xce9561<_0xf65153[_0x4d705e(0x208)];_0xce9561+=0x1){_0x326009[_0x4d705e(0x1ef)]([(_0xf65153[_0xce9561][0x0]-_0x48e8e8[_0x4d705e(0x1e4)][0x0])/(_0x48e8e8[_0x4d705e(0x1e4)][0x2]-_0x48e8e8['bbox'][0x0])*_0x48e8e8[_0x4d705e(0x1b9)],_0x48e8e8['height']-(_0x48e8e8[_0x4d705e(0x1e4)][0x3]-_0xf65153[_0xce9561][0x1])/(_0x48e8e8[_0x4d705e(0x1e4)][0x3]-_0x48e8e8[_0x4d705e(0x1e4)][0x1])*_0x48e8e8['height']]);}_0x48e8e8[_0x4d705e(0x174)]['push'](_0x326009);}}},{'key':'geometryToPathArray','value':function _0x15d432(_0x49c3b4){var _0x4bd5cf=_0x131be1,_0x3327b1=this,_0x4faec0=_0x49c3b4[_0x4bd5cf(0x18a)][_0x4bd5cf(0x20b)]['type'],_0x53cc99=[];if(_0x4faec0==='Polygon')this[_0x4bd5cf(0x1ca)]({'pointArr':_0x53cc99,'coors':_0x49c3b4[_0x4bd5cf(0x18a)][_0x4bd5cf(0x20b)][_0x4bd5cf(0x204)],'bbox':_0x49c3b4['bbox'],'width':_0x49c3b4['width'],'height':_0x49c3b4['height']});else _0x4faec0==='MultiPolygon'&&_0x49c3b4[_0x4bd5cf(0x18a)]['geometry']['coordinates']['forEach'](function(_0x3943db){var _0xf763c9=_0x4bd5cf;_0x3327b1[_0xf763c9(0x1ca)]({'pointArr':_0x53cc99,'coors':_0x3943db,'bbox':_0x49c3b4[_0xf763c9(0x1e4)],'width':_0x49c3b4[_0xf763c9(0x1b9)],'height':_0x49c3b4[_0xf763c9(0x1a1)]});});return _0x53cc99;}},{'key':_0x131be1(0x161),'value':function _0x2ee4b8(_0x54120c,_0x1a62e2){var _0x32226c=_0x131be1;_0x54120c['save'](),_0x54120c['globalCompositeOperation']='destination-in',_0x54120c[_0x32226c(0x1db)]();for(var _0x2771a9=0x0;_0x2771a9<_0x1a62e2['length'];_0x2771a9+=0x1){var _0x493860=_0x1a62e2[_0x2771a9];for(var _0x35af50=0x0;_0x35af50<_0x493860['length'];_0x35af50+=0x1){_0x35af50===0x0?_0x54120c['moveTo'](_0x493860[_0x35af50][0x0],_0x493860[_0x35af50][0x1]):_0x54120c['lineTo'](_0x493860[_0x35af50][0x0],_0x493860[_0x35af50][0x1]);}}_0x54120c[_0x32226c(0x1be)](),_0x54120c[_0x32226c(0x213)]='#000000',_0x54120c[_0x32226c(0x203)](),_0x54120c['restore']();}},{'key':_0x131be1(0x20a),'value':function _0x1a9335(_0x99c58d){var _0x2ee900=_0x131be1;if(_0x99c58d['x']===undefined||_0x99c58d['y']===undefined||_0x99c58d['level']===undefined)return undefined;return''[_0x2ee900(0x1e6)](_0x99c58d['level'],'/')['concat'](_0x99c58d['x'],'/')['concat'](_0x99c58d['y']);}},{'key':'getDebugStatus','value':function _0x25079b(_0x56021b){var _0x34dd00=_0x131be1;if(_0x56021b[_0x34dd00(0x1e8)])return _0x56021b[_0x34dd00(0x1e8)];if(_0x56021b[_0x34dd00(0x198)]==='tile-loaded')return'loaded';if(_0x56021b[_0x34dd00(0x198)]===_0x34dd00(0x207))return _0x34dd00(0x1f7);if(_0x56021b['type']==='tile-clipped')return'clipped';if(_0x56021b['type']===_0x34dd00(0x1ce))return'filtered';if(_0x56021b['type']==='tile-error')return'error';return undefined;}},{'key':'normalizeDebugEvent','value':function _0x222ace(_0x4201ce){var _0x329917=_0x131be1,_0x2726c0=this['getDebugStatus'](_0x4201ce);return _objectSpread(_objectSpread(_objectSpread({},_0x4201ce),this['getTileKey'](_0x4201ce)?{'tileKey':this[_0x329917(0x20a)](_0x4201ce)}:{}),_0x2726c0?{'status':_0x2726c0,'loaded':!![],'clipped':_0x2726c0===_0x329917(0x1e7),'filtered':_0x2726c0===_0x329917(0x1ea)}:{});}},{'key':_0x131be1(0x1f8),'value':function _0x2b6117(_0x33b028){var _0x5e62ca=_0x131be1;if(_0x33b028['type']==='range'){console[_0x5e62ca(0x16a)]('[CustomRasterLayer]\x20渲染范围/裁剪范围',{'renderBounds':_0x33b028['renderBounds'],'clipBounds':_0x33b028['clipBounds'],'clipFeature':_0x33b028['clipFeature'],'tileBounds':_0x33b028[_0x5e62ca(0x1f3)],'bounds':_0x33b028[_0x5e62ca(0x16e)],'dataCrs':_0x33b028['dataCrs'],'clipFeatureCrs':_0x33b028['clipFeatureCrs'],'renderCrs':_0x33b028[_0x5e62ca(0x162)]});return;}if(!_0x33b028[_0x5e62ca(0x1e8)])return;if(_0x33b028[_0x5e62ca(0x198)]==='tile-loaded'&&this[_0x5e62ca(0x1d2)]['length'])return;var _0x2d61cd=DEBUG_STATUS_STYLES[_0x33b028[_0x5e62ca(0x1e8)]],_0x4d6d2e=_0x5e62ca(0x1d8)['concat'](_0x2d61cd[_0x5e62ca(0x1b2)]),_0x277cd6=_0x5e62ca(0x1e1)[_0x5e62ca(0x1e6)](_0x2d61cd[_0x5e62ca(0x1bb)],_0x5e62ca(0x19f)),_0x54547a='z='[_0x5e62ca(0x1e6)](_0x33b028['level'],'\x20x=')['concat'](_0x33b028['x'],'\x20y=')['concat'](_0x33b028['y']);if(_0x33b028[_0x5e62ca(0x198)]===_0x5e62ca(0x15c)){console['error']('%c'[_0x5e62ca(0x1e6)](_0x4d6d2e,'\x20')['concat'](_0x54547a),_0x277cd6,_0x33b028[_0x5e62ca(0x1b3)],_0x33b028);return;}console['log']('%c'['concat'](_0x4d6d2e,'\x20')['concat'](_0x54547a),_0x277cd6,{'tileKey':_0x33b028['tileKey'],'z':_0x33b028['level'],'x':_0x33b028['x'],'y':_0x33b028['y'],'loaded':_0x33b028[_0x5e62ca(0x20d)],'clipped':_0x33b028[_0x5e62ca(0x1e7)],'filtered':_0x33b028[_0x5e62ca(0x1ea)],'status':_0x33b028[_0x5e62ca(0x1e8)],'reason':_0x33b028[_0x5e62ca(0x1fc)],'bbox':_0x33b028[_0x5e62ca(0x1e4)],'imageSize':_0x33b028['imageSize']});}},{'key':'logDebug','value':function _0x31b2b3(_0x2e7b20){var _0x361487=_0x131be1;if(!this['_debug'])return;var _0x182460=this[_0x361487(0x17d)](_objectSpread({'layerId':this['id']},_0x2e7b20));if(typeof this['_debug']===_0x361487(0x192)){this[_0x361487(0x205)](_0x182460);return;}this['logBuiltInDebug'](_0x182460);}}]),_0x344f4a;}(_0x20b8a8);export{CustomRasterLayer as default};