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,319 +1 @@
1
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
- 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."); }
3
- 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); }
4
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
- 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; }
7
- import area from '@turf/area';
8
- import { polygon } from '@turf/helpers';
9
- import intersect from '@turf/intersect';
10
- import { randomPoint } from '@turf/random';
11
- import voronoi from '@turf/voronoi';
12
- import { Math as CMath, Cartesian2, Cartesian3, Cartographic, EllipsoidGeodesic } from 'deeptwins-cesium';
13
-
14
- /**
15
- * 从地图中拾取指定屏幕坐标对应的三维笛卡尔坐标
16
- * @param map - Cesium Viewer实例,用于访问地图场景和相机
17
- * @param position - 屏幕坐标位置,使用Cartesian2表示
18
- * @returns 返回拾取到的三维笛卡尔坐标,如果未拾取到则返回undefined
19
- */
20
- export function pickCartesian3(map, position) {
21
- var ray = map.camera.getPickRay(position);
22
- if (ray) return map.scene.globe.pick(ray, map.scene);
23
- return undefined;
24
- }
25
-
26
- /**
27
- * 计算给定点集合的边界范围
28
- * @param points - 二维笛卡尔坐标点数组
29
- * @returns 返回边界范围数组,格式为[minX, minY, maxX, maxY]
30
- */
31
- export function getBounds(points) {
32
- var minX = Math.min.apply(Math, _toConsumableArray(points.map(function (item) {
33
- return item.x;
34
- })));
35
- var maxX = Math.max.apply(Math, _toConsumableArray(points.map(function (item) {
36
- return item.x;
37
- })));
38
- var minY = Math.min.apply(Math, _toConsumableArray(points.map(function (item) {
39
- return item.y;
40
- })));
41
- var maxY = Math.max.apply(Math, _toConsumableArray(points.map(function (item) {
42
- return item.y;
43
- })));
44
- return [minX, minY, maxX, maxY];
45
- }
46
-
47
- /**
48
- * 格式化显示长度
49
- * @param length 单位米
50
- */
51
- export function formatLength(length) {
52
- if (length < 1000) {
53
- return length.toFixed(2) + '米';
54
- }
55
- return (length / 1000).toFixed(2) + '千米';
56
- }
57
-
58
- /**
59
- * 格式化显示面积
60
- * @param area 单位米
61
- */
62
- export function formatArea(area) {
63
- if (area < 10000) {
64
- return area.toFixed(2) + '平方米';
65
- }
66
- return (area / 1000000).toFixed(2) + '平方千米';
67
- }
68
-
69
- /**
70
- * 计算两点之间的距离
71
- * @param {Cartesian3} start 点位1
72
- * @param {Cartesian3} end 点位2
73
- * @returns {number} 距离/米
74
- */
75
- export function getDistance(start, end) {
76
- return Cartesian3.distance(start, end);
77
- }
78
-
79
- /**
80
- * 计算线段的表面距离
81
- * @param map 地图实例
82
- * @param startPoint 线段起点的屏幕坐标
83
- * @param endPoint 线段终点的屏幕坐标
84
- * @param splitNum 分段数
85
- * @returns 表面距离
86
- */
87
- export function calculateSurfaceDistance(map, startPoint, endPoint) {
88
- var splitNum = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 20;
89
- var resultDistance = 0;
90
- var sampleWindowPoints = [startPoint];
91
- var interval = Math.sqrt(Math.pow(endPoint.x - startPoint.x, 2) + Math.pow(endPoint.y - startPoint.y, 2)) / splitNum;
92
- for (var ii = 1; ii < splitNum; ii += 1) {
93
- var tempPositon = findWindowPositionByPixelInterval(startPoint, endPoint, ii * interval);
94
- sampleWindowPoints.push(tempPositon);
95
- }
96
- sampleWindowPoints.push(endPoint);
97
- for (var jj = 0; jj < sampleWindowPoints.length - 1; jj += 1) {
98
- resultDistance += calculateDetailSurfaceLength(map, sampleWindowPoints[jj + 1], sampleWindowPoints[jj]);
99
- }
100
- return resultDistance;
101
- }
102
-
103
- /**
104
- * 计算给定三维坐标点围成区域的面积
105
- * @param map 地图对象,用于坐标转换
106
- * @param positions 三维笛卡尔坐标点数组
107
- * @returns 返回计算得到的区域面积
108
- */
109
- export function getArea(map, positions) {
110
- var lngLats = cartesian2LngLat(map, positions);
111
- var pg = polygon([[].concat(_toConsumableArray(lngLats), [lngLats[0]])]);
112
- return area(pg);
113
- }
114
-
115
- /**
116
- * 将笛卡尔坐标转换为经纬度坐标
117
- * @param map - 地图对象,用于获取场景和椭球体信息
118
- * @param positions - 笛卡尔坐标数组
119
- * @returns 经纬度坐标数组,每个元素为[经度, 纬度]格式
120
- */
121
- export function cartesian2LngLat(map, positions) {
122
- return positions.map(function (pos) {
123
- var cartographic = map.scene.globe.ellipsoid.cartesianToCartographic(pos);
124
- var lon = +CMath.toDegrees(cartographic.longitude);
125
- var lat = +CMath.toDegrees(cartographic.latitude);
126
- return [lon, lat];
127
- });
128
- }
129
-
130
- /**
131
- * 获取线段上距起点一定距离出的线上点坐标(屏幕坐标)
132
- * @param startPosition 线段起点(屏幕坐标)
133
- * @param endPosition 线段终点(屏幕坐标)
134
- * @param interval 距起点距离
135
- * @returns -结果坐标(屏幕坐标)
136
- */
137
- export function findWindowPositionByPixelInterval(startPosition, endPosition, interval) {
138
- var result = new Cartesian2(0, 0);
139
- var length = Math.sqrt(Math.pow(endPosition.x - startPosition.x, 2) + Math.pow(endPosition.y - startPosition.y, 2));
140
- if (length < interval) {
141
- return result;
142
- } else {
143
- var x = interval / length * (endPosition.x - startPosition.x) + startPosition.x;
144
- //alert(interval/length)
145
- var y = interval / length * (endPosition.y - startPosition.y) + startPosition.y;
146
- result.x = x;
147
- result.y = y;
148
- }
149
- return result;
150
- }
151
-
152
- /**
153
- * 计算细分后的,每一小段的笛卡尔坐标距离(也就是大地坐标系距离)
154
- * @param map 地图实例
155
- * @param startPoint 每一段线段起点
156
- * @param endPoint 每一段线段终点
157
- * @returns 表面距离
158
- */
159
- export function calculateDetailSurfaceLength(map, startPoint, endPoint) {
160
- var innerS = 0;
161
- var surfaceStartCartesian3 = pickCartesian3(map, startPoint);
162
- var surfaceEndCartesian3 = pickCartesian3(map, endPoint);
163
- if (surfaceStartCartesian3 && surfaceEndCartesian3) {
164
- var cartographicStart = Cartographic.fromCartesian(surfaceStartCartesian3);
165
- var cartographicEnd = Cartographic.fromCartesian(surfaceEndCartesian3);
166
- var geoD = new EllipsoidGeodesic();
167
- geoD.setEndPoints(cartographicStart, cartographicEnd);
168
- innerS = geoD.surfaceDistance;
169
- innerS = Math.sqrt(Math.pow(innerS, 2) + Math.pow(cartographicStart.height - cartographicEnd.height, 2));
170
- }
171
- return innerS;
172
- }
173
-
174
- /**
175
- * 计算给定区域的表面积
176
- *
177
- * @param map - Viewer对象,用于地图操作
178
- * @param positions - Cartesian2坐标数组,定义区域边界
179
- * @param splitNum - 分割数量,默认为50,用于控制计算精度
180
- * @returns 返回计算得到的表面积数值
181
- */
182
- export function calculateSurfaceArea(map, positions) {
183
- var splitNum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 20;
184
- if (positions.length < 3) {
185
- return 0;
186
- }
187
- var result = 0;
188
- // 获取边界范围
189
- var bounds = getBounds(positions);
190
- // 生成随机点
191
- var points = randomPoint(splitNum, {
192
- bbox: [bounds[0], bounds[1], bounds[2], bounds[3]]
193
- });
194
- // 转换为主多边形
195
- var mainPoly = Cartesian2turfPolygon(positions);
196
- // 生成Voronoi多边形
197
- var voronoiPolygons = voronoi(points, {
198
- bbox: [bounds[0], bounds[1], bounds[2], bounds[3]]
199
- });
200
- if (!voronoiPolygons) {
201
- return 0;
202
- }
203
- // 遍历Voronoi多边形计算相交区域的表面积
204
- voronoiPolygons.features.forEach(function (element) {
205
- var intersectPolygons = getIntersect(mainPoly, element.geometry);
206
- intersectPolygons.forEach(function (intersectPoints) {
207
- result += calculateDetailSurfaceArea(map, intersectPoints);
208
- });
209
- });
210
- return result;
211
- }
212
-
213
- /**
214
- * 将Cartesian2坐标数组转换为turf.js的Polygon几何对象
215
- * @param positions - Cartesian2坐标点数组,用于构建多边形
216
- * @returns 返回对应的Polygon几何对象
217
- */
218
- export function Cartesian2turfPolygon(positions) {
219
- var coordinates = [[]];
220
- positions.forEach(function (element) {
221
- coordinates[0].push([element.x, element.y]);
222
- });
223
- coordinates[0].push([positions[0].x, positions[0].y]);
224
- var pg = polygon(coordinates);
225
- return pg.geometry;
226
- }
227
-
228
- /**
229
- * 计算两个多边形的交集区域
230
- * @param poly1 - 第一个多边形
231
- * @param poly2 - 第二个多边形
232
- * @returns 交集区域的顶点坐标数组集合,如果没有交集则返回空数组
233
- */
234
- export function getIntersect(poly1, poly2) {
235
- var intersection = intersect(poly1, poly2);
236
- if (!(intersection !== null && intersection !== void 0 && intersection.geometry)) {
237
- return [];
238
- }
239
- return turfPolygon2CartesianArr(intersection.geometry);
240
- }
241
-
242
- /**
243
- * 将Turf.js的Polygon对象转换为Cesium的Cartesian2数组
244
- *
245
- * @param polygonGeometry - Turf.js的Polygon或MultiPolygon对象,包含经纬度坐标信息
246
- * @returns 返回Cartesian2数组集合,每个元素对应一个外环坐标点集合
247
- */
248
- export function turfPolygon2CartesianArr(polygonGeometry) {
249
- if (polygonGeometry.type === 'Polygon') {
250
- return [polygonGeometry.coordinates[0].map(function (item) {
251
- return new Cartesian2(item[0], item[1]);
252
- })];
253
- }
254
- return polygonGeometry.coordinates.map(function (coordinates) {
255
- return coordinates[0].map(function (item) {
256
- return new Cartesian2(item[0], item[1]);
257
- });
258
- });
259
- }
260
-
261
- /**
262
- * 计算地图上指定位置围成区域的表面积
263
- * @param map - 地图查看器实例
264
- * @param positions - 屏幕坐标点数组
265
- * @returns 返回世界坐标系中围成区域的表面积
266
- */
267
- export function calculateDetailSurfaceArea(map, positions) {
268
- if (positions.length < 3) {
269
- return 0;
270
- }
271
- var worldPositions = [];
272
- positions.forEach(function (element) {
273
- var pickResult = pickCartesian3(map, element);
274
- if (pickResult) worldPositions.push(pickResult);
275
- });
276
- return getWorldPositionsArea(worldPositions);
277
- }
278
-
279
- /**
280
- * 计算一组世界坐标点所围成区域的面积。
281
- *
282
- * 该函数通过将三维笛卡尔坐标转换为地理坐标(经纬度),然后计算相邻点之间的大地测量距离,
283
- * 并利用平面近似方法估算这些点在地球表面围成的多边形区域的面积。
284
- *
285
- * @param positions - 表示多边形顶点的世界坐标数组,每个元素是 Cartesian3 类型。
286
- * @returns 返回由输入点围成区域的近似面积(单位:平方米)。
287
- */
288
- export function getWorldPositionsArea(positions) {
289
- if (positions.length < 3) {
290
- return 0;
291
- }
292
- var x = [0];
293
- var y = [0];
294
- var geodesic = new EllipsoidGeodesic();
295
- //数组x,y分别按顺序存储各点的横、纵坐标值
296
- for (var i = 0; i < positions.length - 1; i += 1) {
297
- var p1 = positions[i];
298
- var p2 = positions[i + 1];
299
- var point1cartographic = Cartographic.fromCartesian(p1);
300
- var point2cartographic = Cartographic.fromCartesian(p2);
301
- geodesic.setEndPoints(point1cartographic, point2cartographic);
302
- var s = Math.sqrt(Math.pow(geodesic.surfaceDistance, 2) + Math.pow(point2cartographic.height - point1cartographic.height, 2));
303
- var lat1 = point2cartographic.latitude;
304
- var lon1 = point2cartographic.longitude;
305
- var lat2 = point1cartographic.latitude;
306
- var lon2 = point1cartographic.longitude;
307
- var angle = -Math.atan2(Math.sin(lon1 - lon2) * Math.cos(lat2), Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon1 - lon2));
308
- if (angle < 0) {
309
- angle += Math.PI * 2.0;
310
- }
311
- y.push(Math.sin(angle) * s + y[i]);
312
- x.push(Math.cos(angle) * s + x[i]);
313
- }
314
- var sum = 0;
315
- for (var _i = 0; _i < x.length - 1; _i += 1) {
316
- sum += x[_i] * y[_i + 1] - x[_i + 1] * y[_i];
317
- }
318
- return Math.abs(sum + x[x.length - 1] * y[0] - x[0] * y[y.length - 1]) / 2;
319
- }
1
+ (function(_0x22e2f1,_0x58ba7a){var _0x1bdb08=_0x57d9,_0x216408=_0x22e2f1();while(!![]){try{var _0xf20e9b=parseInt(_0x1bdb08(0x1c9))/0x1*(-parseInt(_0x1bdb08(0x1c3))/0x2)+-parseInt(_0x1bdb08(0x1da))/0x3*(-parseInt(_0x1bdb08(0x1d8))/0x4)+parseInt(_0x1bdb08(0x1c8))/0x5+-parseInt(_0x1bdb08(0x1db))/0x6+parseInt(_0x1bdb08(0x1cd))/0x7+parseInt(_0x1bdb08(0x1cf))/0x8*(parseInt(_0x1bdb08(0x1b9))/0x9)+-parseInt(_0x1bdb08(0x1e5))/0xa;if(_0xf20e9b===_0x58ba7a)break;else _0x216408['push'](_0x216408['shift']());}catch(_0x5cade5){_0x216408['push'](_0x216408['shift']());}}}(_0x6d8d,0x76bb3));function _toConsumableArray(_0x17ca3b){return _arrayWithoutHoles(_0x17ca3b)||_iterableToArray(_0x17ca3b)||_unsupportedIterableToArray(_0x17ca3b)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x195b66,_0xd153c6){var _0x1318ba=_0x57d9;if(!_0x195b66)return;if(typeof _0x195b66===_0x1318ba(0x1e3))return _arrayLikeToArray(_0x195b66,_0xd153c6);var _0x504d03=Object['prototype']['toString']['call'](_0x195b66)['slice'](0x8,-0x1);if(_0x504d03===_0x1318ba(0x1cc)&&_0x195b66['constructor'])_0x504d03=_0x195b66[_0x1318ba(0x1c4)]['name'];if(_0x504d03===_0x1318ba(0x1dc)||_0x504d03===_0x1318ba(0x1b7))return Array[_0x1318ba(0x1b8)](_0x195b66);if(_0x504d03===_0x1318ba(0x1bc)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x504d03))return _arrayLikeToArray(_0x195b66,_0xd153c6);}function _iterableToArray(_0x2d00a5){var _0x5b9a48=_0x57d9;if(typeof Symbol!=='undefined'&&_0x2d00a5[Symbol[_0x5b9a48(0x1d0)]]!=null||_0x2d00a5[_0x5b9a48(0x1d4)]!=null)return Array[_0x5b9a48(0x1b8)](_0x2d00a5);}function _arrayWithoutHoles(_0x517982){if(Array['isArray'](_0x517982))return _arrayLikeToArray(_0x517982);}function _arrayLikeToArray(_0x5e66e4,_0x91cd96){var _0x142b1c=_0x57d9;if(_0x91cd96==null||_0x91cd96>_0x5e66e4['length'])_0x91cd96=_0x5e66e4[_0x142b1c(0x1c7)];for(var _0x9ccee4=0x0,_0x24fc3a=new Array(_0x91cd96);_0x9ccee4<_0x91cd96;_0x9ccee4++)_0x24fc3a[_0x9ccee4]=_0x5e66e4[_0x9ccee4];return _0x24fc3a;}import _0x1f3240 from'@turf/area';import{polygon}from'@turf/helpers';import _0x4ea729 from'@turf/intersect';import{randomPoint}from'@turf/random';import _0x22aff5 from'@turf/voronoi';import{Math as _0x3c9ea2,Cartesian2,Cartesian3,Cartographic,EllipsoidGeodesic}from'deeptwins-cesium';export function pickCartesian3(_0x255049,_0xf0d3bb){var _0x254797=_0x57d9,_0x2d3318=_0x255049[_0x254797(0x1c5)]['getPickRay'](_0xf0d3bb);if(_0x2d3318)return _0x255049['scene']['globe']['pick'](_0x2d3318,_0x255049[_0x254797(0x1d6)]);return undefined;}export function getBounds(_0xac3bc7){var _0x49c64b=_0x57d9,_0x465a9e=Math['min']['apply'](Math,_toConsumableArray(_0xac3bc7[_0x49c64b(0x1de)](function(_0x2fcf83){return _0x2fcf83['x'];}))),_0x313dbf=Math[_0x49c64b(0x1d7)]['apply'](Math,_toConsumableArray(_0xac3bc7[_0x49c64b(0x1de)](function(_0x37dc9b){return _0x37dc9b['x'];}))),_0xa9f0fa=Math['min']['apply'](Math,_toConsumableArray(_0xac3bc7[_0x49c64b(0x1de)](function(_0x2a81ca){return _0x2a81ca['y'];}))),_0x21bf13=Math[_0x49c64b(0x1d7)]['apply'](Math,_toConsumableArray(_0xac3bc7[_0x49c64b(0x1de)](function(_0x3725a2){return _0x3725a2['y'];})));return[_0x465a9e,_0xa9f0fa,_0x313dbf,_0x21bf13];}export function formatLength(_0x52d142){if(_0x52d142<0x3e8)return _0x52d142['toFixed'](0x2)+'米';return(_0x52d142/0x3e8)['toFixed'](0x2)+'千米';}export function formatArea(_0x5c0726){var _0x127698=_0x57d9;if(_0x5c0726<0x2710)return _0x5c0726[_0x127698(0x1bb)](0x2)+_0x127698(0x1c2);return(_0x5c0726/0xf4240)[_0x127698(0x1bb)](0x2)+_0x127698(0x1ba);}function _0x6d8d(){var _0x4bd490=['z2vVBwv0CNK','C2nLBMu','Bwf4','ndm2ntjesw9kvgO','Bgf0Axr1zgu','mtGZs3nuuxbH','mte3mtqWnhDzrefmDW','twfW','Cg93','BwfW','yxrHBJi','C3vYzMfJzurPC3rHBMnL','Dg9ezwDYzwvZ','C2LU','C3rYAw5N','Bg9Uz2L0DwrL','mtmWotKZntbTBwXHCLK','u2v0','zNjVBq','ntaZmtLyCLztrfG','5BMZ5PA55y2d57gZ','Dg9gAxHLza','qxjNDw1LBNrZ','zNjVBunHCNrLC2LHBG','ywjZ','zwXSAxbZB2LK','zM9YrwfJAa','y29VCMrPBMf0zxm','5BMZ5PA557gZ','ndm0nJHRq1PYswm','y29UC3rYDwn0B3i','y2fTzxjH','y29Z','BgvUz3rO','mJa5ntqYmg1PyMTjva','nwLvrNzNCq','zMvHDhvYzxm','AgvPz2H0','t2jQzwn0','mJeZnZi5nLjisLzVvG','z2XVyMu','mtaXnNrYyK5cvW','AxrLCMf0B3i','ChvZAa','C2v0rw5Kug9PBNrZ','y29Uy2f0','qebPDgvYyxrVCG'];_0x6d8d=function(){return _0x4bd490;};return _0x6d8d();}export function getDistance(_0x3e6e3a,_0x2739ad){return Cartesian3['distance'](_0x3e6e3a,_0x2739ad);}function _0x57d9(_0x595001,_0x4ccd1b){_0x595001=_0x595001-0x1b7;var _0x6d8d2f=_0x6d8d();var _0x57d972=_0x6d8d2f[_0x595001];if(_0x57d9['muEhzf']===undefined){var _0x1cece6=function(_0x11019e){var _0x5e0c34='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1f3240='',_0x4ea729='';for(var _0x22aff5=0x0,_0x3c9ea2,_0x17ca3b,_0x195b66=0x0;_0x17ca3b=_0x11019e['charAt'](_0x195b66++);~_0x17ca3b&&(_0x3c9ea2=_0x22aff5%0x4?_0x3c9ea2*0x40+_0x17ca3b:_0x17ca3b,_0x22aff5++%0x4)?_0x1f3240+=String['fromCharCode'](0xff&_0x3c9ea2>>(-0x2*_0x22aff5&0x6)):0x0){_0x17ca3b=_0x5e0c34['indexOf'](_0x17ca3b);}for(var _0xd153c6=0x0,_0x504d03=_0x1f3240['length'];_0xd153c6<_0x504d03;_0xd153c6++){_0x4ea729+='%'+('00'+_0x1f3240['charCodeAt'](_0xd153c6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ea729);};_0x57d9['PvWQil']=_0x1cece6,_0x57d9['rGSVth']={},_0x57d9['muEhzf']=!![];}var _0x398fb7=_0x6d8d2f[0x0],_0x253ade=_0x595001+_0x398fb7,_0xe363e9=_0x57d9['rGSVth'][_0x253ade];return!_0xe363e9?(_0x57d972=_0x57d9['PvWQil'](_0x57d972),_0x57d9['rGSVth'][_0x253ade]=_0x57d972):_0x57d972=_0xe363e9,_0x57d972;}export function calculateSurfaceDistance(_0x540837,_0x41248d,_0x28ca54){var _0x38c81c=_0x57d9,_0x5b90ae=arguments['length']>0x3&&arguments[0x3]!==undefined?arguments[0x3]:0x14,_0x2f44c5=0x0,_0x5323eb=[_0x41248d],_0x587732=Math['sqrt'](Math[_0x38c81c(0x1dd)](_0x28ca54['x']-_0x41248d['x'],0x2)+Math['pow'](_0x28ca54['y']-_0x41248d['y'],0x2))/_0x5b90ae;for(var _0x16ccc3=0x1;_0x16ccc3<_0x5b90ae;_0x16ccc3+=0x1){var _0x36e8a9=findWindowPositionByPixelInterval(_0x41248d,_0x28ca54,_0x16ccc3*_0x587732);_0x5323eb[_0x38c81c(0x1d1)](_0x36e8a9);}_0x5323eb[_0x38c81c(0x1d1)](_0x28ca54);for(var _0x226103=0x0;_0x226103<_0x5323eb['length']-0x1;_0x226103+=0x1){_0x2f44c5+=calculateDetailSurfaceLength(_0x540837,_0x5323eb[_0x226103+0x1],_0x5323eb[_0x226103]);}return _0x2f44c5;}export function getArea(_0x3eb926,_0x48796a){var _0x574037=_0x57d9,_0x511ccc=cartesian2LngLat(_0x3eb926,_0x48796a),_0x3c9eed=polygon([[][_0x574037(0x1d3)](_toConsumableArray(_0x511ccc),[_0x511ccc[0x0]])]);return _0x1f3240(_0x3c9eed);}export function cartesian2LngLat(_0x5c461f,_0xca0ee1){return _0xca0ee1['map'](function(_0x16fad0){var _0x1381dd=_0x57d9,_0x1747a0=_0x5c461f[_0x1381dd(0x1d6)][_0x1381dd(0x1ce)][_0x1381dd(0x1bf)]['cartesianToCartographic'](_0x16fad0),_0x1d6a0e=+_0x3c9ea2[_0x1381dd(0x1e1)](_0x1747a0[_0x1381dd(0x1e4)]),_0xe3c03e=+_0x3c9ea2[_0x1381dd(0x1e1)](_0x1747a0['latitude']);return[_0x1d6a0e,_0xe3c03e];});}export function findWindowPositionByPixelInterval(_0x374dad,_0x290077,_0x552b21){var _0x217e21=_0x57d9,_0x42dd7f=new Cartesian2(0x0,0x0),_0x720f85=Math['sqrt'](Math[_0x217e21(0x1dd)](_0x290077['x']-_0x374dad['x'],0x2)+Math['pow'](_0x290077['y']-_0x374dad['y'],0x2));if(_0x720f85<_0x552b21)return _0x42dd7f;else{var _0xa7c9dc=_0x552b21/_0x720f85*(_0x290077['x']-_0x374dad['x'])+_0x374dad['x'],_0x262de8=_0x552b21/_0x720f85*(_0x290077['y']-_0x374dad['y'])+_0x374dad['y'];_0x42dd7f['x']=_0xa7c9dc,_0x42dd7f['y']=_0x262de8;}return _0x42dd7f;}export function calculateDetailSurfaceLength(_0x4211a6,_0x5cdcd5,_0x4f3a8b){var _0x41a704=_0x57d9,_0x4982bf=0x0,_0xcddbf0=pickCartesian3(_0x4211a6,_0x5cdcd5),_0x1b6bcc=pickCartesian3(_0x4211a6,_0x4f3a8b);if(_0xcddbf0&&_0x1b6bcc){var _0x480b06=Cartographic[_0x41a704(0x1bd)](_0xcddbf0),_0xd03787=Cartographic[_0x41a704(0x1bd)](_0x1b6bcc),_0x1f2671=new EllipsoidGeodesic();_0x1f2671['setEndPoints'](_0x480b06,_0xd03787),_0x4982bf=_0x1f2671[_0x41a704(0x1e0)],_0x4982bf=Math['sqrt'](Math[_0x41a704(0x1dd)](_0x4982bf,0x2)+Math[_0x41a704(0x1dd)](_0x480b06[_0x41a704(0x1cb)]-_0xd03787['height'],0x2));}return _0x4982bf;}export function calculateSurfaceArea(_0x44f667,_0x2abf66){var _0x2d774a=_0x57d9,_0x1d9d79=arguments['length']>0x2&&arguments[0x2]!==undefined?arguments[0x2]:0x14;if(_0x2abf66[_0x2d774a(0x1c7)]<0x3)return 0x0;var _0x20f846=0x0,_0x397bd8=getBounds(_0x2abf66),_0x2b62d0=randomPoint(_0x1d9d79,{'bbox':[_0x397bd8[0x0],_0x397bd8[0x1],_0x397bd8[0x2],_0x397bd8[0x3]]}),_0x45a614=Cartesian2turfPolygon(_0x2abf66),_0x311bd3=_0x22aff5(_0x2b62d0,{'bbox':[_0x397bd8[0x0],_0x397bd8[0x1],_0x397bd8[0x2],_0x397bd8[0x3]]});if(!_0x311bd3)return 0x0;return _0x311bd3[_0x2d774a(0x1ca)]['forEach'](function(_0x5c46d1){var _0x2583e0=_0x2d774a,_0x11ea27=getIntersect(_0x45a614,_0x5c46d1[_0x2583e0(0x1d5)]);_0x11ea27[_0x2583e0(0x1c0)](function(_0x404640){_0x20f846+=calculateDetailSurfaceArea(_0x44f667,_0x404640);});}),_0x20f846;}export function Cartesian2turfPolygon(_0x46f063){var _0x19656b=_0x57d9,_0xf70524=[[]];_0x46f063[_0x19656b(0x1c0)](function(_0x31d673){var _0x154bdc=_0x19656b;_0xf70524[0x0][_0x154bdc(0x1d1)]([_0x31d673['x'],_0x31d673['y']]);}),_0xf70524[0x0][_0x19656b(0x1d1)]([_0x46f063[0x0]['x'],_0x46f063[0x0]['y']]);var _0x303718=polygon(_0xf70524);return _0x303718['geometry'];}export function getIntersect(_0xb2143c,_0x2e9f3d){var _0x291f4a=_0x57d9,_0x36efea=_0x4ea729(_0xb2143c,_0x2e9f3d);if(!(_0x36efea!==null&&_0x36efea!==void 0x0&&_0x36efea['geometry']))return[];return turfPolygon2CartesianArr(_0x36efea[_0x291f4a(0x1d5)]);}export function turfPolygon2CartesianArr(_0xd173fd){var _0xbc257f=_0x57d9;if(_0xd173fd['type']==='Polygon')return[_0xd173fd['coordinates'][0x0][_0xbc257f(0x1de)](function(_0x42da61){return new Cartesian2(_0x42da61[0x0],_0x42da61[0x1]);})];return _0xd173fd[_0xbc257f(0x1c1)][_0xbc257f(0x1de)](function(_0x4400a9){return _0x4400a9[0x0]['map'](function(_0x31cb86){return new Cartesian2(_0x31cb86[0x0],_0x31cb86[0x1]);});});}export function calculateDetailSurfaceArea(_0x2bdeb8,_0x1214c7){var _0x5e27c4=_0x57d9;if(_0x1214c7[_0x5e27c4(0x1c7)]<0x3)return 0x0;var _0x530a4e=[];return _0x1214c7[_0x5e27c4(0x1c0)](function(_0x323ce9){var _0x374f41=_0x5e27c4,_0x65a7e8=pickCartesian3(_0x2bdeb8,_0x323ce9);if(_0x65a7e8)_0x530a4e[_0x374f41(0x1d1)](_0x65a7e8);}),getWorldPositionsArea(_0x530a4e);}export function getWorldPositionsArea(_0x4271ae){var _0x4eeae3=_0x57d9;if(_0x4271ae['length']<0x3)return 0x0;var _0x4d357a=[0x0],_0x3e6842=[0x0],_0x436078=new EllipsoidGeodesic();for(var _0x1a1bf7=0x0;_0x1a1bf7<_0x4271ae[_0x4eeae3(0x1c7)]-0x1;_0x1a1bf7+=0x1){var _0x3fcb26=_0x4271ae[_0x1a1bf7],_0x438017=_0x4271ae[_0x1a1bf7+0x1],_0x4363c8=Cartographic[_0x4eeae3(0x1bd)](_0x3fcb26),_0x2686f5=Cartographic['fromCartesian'](_0x438017);_0x436078[_0x4eeae3(0x1d2)](_0x4363c8,_0x2686f5);var _0x3e0764=Math['sqrt'](Math['pow'](_0x436078['surfaceDistance'],0x2)+Math[_0x4eeae3(0x1dd)](_0x2686f5['height']-_0x4363c8['height'],0x2)),_0x10ba09=_0x2686f5[_0x4eeae3(0x1d9)],_0x371b6b=_0x2686f5[_0x4eeae3(0x1e4)],_0xb606e4=_0x4363c8['latitude'],_0x2a5dc6=_0x4363c8['longitude'],_0x4341fc=-Math[_0x4eeae3(0x1df)](Math['sin'](_0x371b6b-_0x2a5dc6)*Math[_0x4eeae3(0x1c6)](_0xb606e4),Math[_0x4eeae3(0x1c6)](_0x10ba09)*Math[_0x4eeae3(0x1e2)](_0xb606e4)-Math['sin'](_0x10ba09)*Math['cos'](_0xb606e4)*Math[_0x4eeae3(0x1c6)](_0x371b6b-_0x2a5dc6));_0x4341fc<0x0&&(_0x4341fc+=Math['PI']*0x2),_0x3e6842[_0x4eeae3(0x1d1)](Math['sin'](_0x4341fc)*_0x3e0764+_0x3e6842[_0x1a1bf7]),_0x4d357a[_0x4eeae3(0x1d1)](Math['cos'](_0x4341fc)*_0x3e0764+_0x4d357a[_0x1a1bf7]);}var _0x100204=0x0;for(var _0x4cedb3=0x0;_0x4cedb3<_0x4d357a['length']-0x1;_0x4cedb3+=0x1){_0x100204+=_0x4d357a[_0x4cedb3]*_0x3e6842[_0x4cedb3+0x1]-_0x4d357a[_0x4cedb3+0x1]*_0x3e6842[_0x4cedb3];}return Math[_0x4eeae3(0x1be)](_0x100204+_0x4d357a[_0x4d357a[_0x4eeae3(0x1c7)]-0x1]*_0x3e6842[0x0]-_0x4d357a[0x0]*_0x3e6842[_0x3e6842['length']-0x1])/0x2;}
@@ -1,196 +1 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
- 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."); }
4
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
- function _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; }
6
- 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; } }
7
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
- 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; }
9
- 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; }
10
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
- 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); } }
12
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13
- 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; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
15
- 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); }
16
- import * as Cesium from 'deeptwins-cesium';
17
- import * as utils from "../tool/utils";
18
- import { getInternalParticleOptions, omitExternalMatrixOptions } from "./common";
19
- var CAMERA_HEADING_OFFSET_DEGREES = 90;
20
- var EMITTER_FORWARD_AXIS_CORRECTION = Cesium.Matrix3.fromRotationY(Cesium.Math.PI_OVER_TWO);
21
- var BaseParticle = /*#__PURE__*/function () {
22
- function BaseParticle(map) {
23
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
24
- _classCallCheck(this, BaseParticle);
25
- _defineProperty(this, "_mapContext", void 0);
26
- _defineProperty(this, "particleSystem", null);
27
- _defineProperty(this, "options", void 0);
28
- _defineProperty(this, "isDestroyed", false);
29
- this._assertMap(map);
30
- this._mapContext = map._mapContext || {
31
- getMap: function getMap() {
32
- return map;
33
- }
34
- };
35
- var internalOptions = getInternalParticleOptions(options);
36
- var safeOptions = omitExternalMatrixOptions(options);
37
- this.options = safeOptions;
38
- this.particleSystem = this._createParticleSystem(safeOptions, internalOptions);
39
- this.getMap().scene.primitives.add(this.particleSystem);
40
- }
41
- _createClass(BaseParticle, [{
42
- key: "getMap",
43
- value: function getMap() {
44
- return this._mapContext && this._mapContext.getMap();
45
- }
46
- }, {
47
- key: "getPrimitive",
48
- value: function getPrimitive() {
49
- return this.particleSystem;
50
- }
51
- }, {
52
- key: "show",
53
- value: function show(isShow) {
54
- if (!this._canOperate()) {
55
- return;
56
- }
57
- this.particleSystem && (this.particleSystem.show = isShow);
58
- }
59
- }, {
60
- key: "destroy",
61
- value: function destroy() {
62
- var _map$scene;
63
- if (this.isDestroyed) {
64
- return;
65
- }
66
- this.isDestroyed = true;
67
- var primitive = this.particleSystem;
68
- var map = this.getMap();
69
- if (primitive && map !== null && map !== void 0 && (_map$scene = map.scene) !== null && _map$scene !== void 0 && (_map$scene = _map$scene.primitives) !== null && _map$scene !== void 0 && _map$scene.contains(primitive)) {
70
- map.scene.primitives.remove(primitive);
71
- } else if (primitive && !primitive.isDestroyed()) {
72
- primitive.destroy();
73
- }
74
- this.particleSystem = null;
75
- this._mapContext = undefined;
76
- }
77
- }, {
78
- key: "_assertMap",
79
- value: function _assertMap(map) {
80
- var _map$scene2;
81
- if (!(map !== null && map !== void 0 && (_map$scene2 = map.scene) !== null && _map$scene2 !== void 0 && _map$scene2.primitives)) {
82
- throw new Error('BaseParticle需要传入有效的Cesium Viewer实例');
83
- }
84
- }
85
- }, {
86
- key: "_canOperate",
87
- value: function _canOperate() {
88
- if (this.isDestroyed) {
89
- utils.error('BaseParticle实例已销毁');
90
- return false;
91
- }
92
- return true;
93
- }
94
- }, {
95
- key: "_createParticleSystem",
96
- value: function _createParticleSystem(options, internalOptions) {
97
- return new Cesium.ParticleSystem(this._resolveParticleOptions(options, internalOptions));
98
- }
99
- }, {
100
- key: "_resolveParticleOptions",
101
- value: function _resolveParticleOptions(options, internalOptions) {
102
- var particleInputOptions = _objectSpread({}, options);
103
- delete particleInputOptions.heading;
104
- delete particleInputOptions.pitch;
105
- delete particleInputOptions.roll;
106
- var particleOptions = _objectSpread(_objectSpread({}, particleInputOptions), {}, {
107
- modelMatrix: this._resolveModelMatrix(options, internalOptions),
108
- color: this._resolveColor(particleInputOptions.color),
109
- startColor: this._resolveColor(particleInputOptions.startColor),
110
- endColor: this._resolveColor(particleInputOptions.endColor),
111
- imageSize: this._resolveImageSize(particleInputOptions.imageSize),
112
- minimumImageSize: this._resolveImageSize(particleInputOptions.minimumImageSize),
113
- maximumImageSize: this._resolveImageSize(particleInputOptions.maximumImageSize)
114
- });
115
- var emitterModelMatrix = this._resolveEmitterModelMatrix(options, internalOptions);
116
- if (emitterModelMatrix) {
117
- return _objectSpread(_objectSpread({}, particleOptions), {}, {
118
- emitterModelMatrix: emitterModelMatrix
119
- });
120
- }
121
- return particleOptions;
122
- }
123
- }, {
124
- key: "_resolveModelMatrix",
125
- value: function _resolveModelMatrix(options, internalOptions) {
126
- if (internalOptions !== null && internalOptions !== void 0 && internalOptions.modelMatrix) {
127
- return Cesium.Matrix4.clone(internalOptions.modelMatrix);
128
- }
129
- if (options.position) {
130
- return Cesium.Transforms.eastNorthUpToFixedFrame(this._resolvePosition(options.position));
131
- }
132
- return Cesium.Matrix4.clone(Cesium.Matrix4.IDENTITY);
133
- }
134
- }, {
135
- key: "_resolveEmitterModelMatrix",
136
- value: function _resolveEmitterModelMatrix(options, internalOptions) {
137
- if (internalOptions !== null && internalOptions !== void 0 && internalOptions.emitterModelMatrix) {
138
- return Cesium.Matrix4.clone(internalOptions.emitterModelMatrix);
139
- }
140
- if (!this._hasEmitterOrientation(options)) {
141
- return undefined;
142
- }
143
- return this._createCameraViewEmitterModelMatrix(options);
144
- }
145
- }, {
146
- key: "_createCameraViewEmitterModelMatrix",
147
- value: function _createCameraViewEmitterModelMatrix(options) {
148
- var headingPitchRoll = Cesium.HeadingPitchRoll.fromDegrees((options.heading || 0) - CAMERA_HEADING_OFFSET_DEGREES, options.pitch || 0, options.roll || 0);
149
- var cameraViewRotation = Cesium.Matrix3.fromHeadingPitchRoll(headingPitchRoll);
150
- var emitterRotation = Cesium.Matrix3.multiply(cameraViewRotation, EMITTER_FORWARD_AXIS_CORRECTION, new Cesium.Matrix3());
151
- return Cesium.Matrix4.fromRotationTranslation(emitterRotation, Cesium.Cartesian3.ZERO);
152
- }
153
- }, {
154
- key: "_hasEmitterOrientation",
155
- value: function _hasEmitterOrientation(options) {
156
- return options.heading !== undefined || options.pitch !== undefined || options.roll !== undefined;
157
- }
158
- }, {
159
- key: "_resolvePosition",
160
- value: function _resolvePosition(position) {
161
- if (position instanceof Cesium.Cartesian3) {
162
- return Cesium.Cartesian3.clone(position);
163
- }
164
- var _position = _slicedToArray(position, 3),
165
- lng = _position[0],
166
- lat = _position[1],
167
- _position$ = _position[2],
168
- alt = _position$ === void 0 ? 0 : _position$;
169
- return Cesium.Cartesian3.fromDegrees(lng, lat, alt);
170
- }
171
- }, {
172
- key: "_resolveColor",
173
- value: function _resolveColor(color) {
174
- if (!color) {
175
- return color;
176
- }
177
- return utils.colorString(color);
178
- }
179
- }, {
180
- key: "_resolveImageSize",
181
- value: function _resolveImageSize(imageSize) {
182
- if (!imageSize) {
183
- return imageSize;
184
- }
185
- if (imageSize instanceof Cesium.Cartesian2) {
186
- return Cesium.Cartesian2.clone(imageSize);
187
- }
188
- var _imageSize = _slicedToArray(imageSize, 2),
189
- width = _imageSize[0],
190
- height = _imageSize[1];
191
- return new Cesium.Cartesian2(width, height);
192
- }
193
- }]);
194
- return BaseParticle;
195
- }();
196
- export { BaseParticle as default };
1
+ var _0x5d0611=_0x1dab;(function(_0x35dcd7,_0x1bd365){var _0x3e8ccf=_0x1dab,_0x40ec49=_0x35dcd7();while(!![]){try{var _0x248be9=parseInt(_0x3e8ccf(0xc5))/0x1+-parseInt(_0x3e8ccf(0xc9))/0x2+-parseInt(_0x3e8ccf(0xec))/0x3+parseInt(_0x3e8ccf(0xe5))/0x4+-parseInt(_0x3e8ccf(0x104))/0x5*(parseInt(_0x3e8ccf(0xc8))/0x6)+parseInt(_0x3e8ccf(0x109))/0x7+parseInt(_0x3e8ccf(0xe3))/0x8;if(_0x248be9===_0x1bd365)break;else _0x40ec49['push'](_0x40ec49['shift']());}catch(_0x555f2d){_0x40ec49['push'](_0x40ec49['shift']());}}}(_0x9e47,0x5383c));function _typeof(_0x533108){'@babel/helpers - typeof';var _0x28c05a=_0x1dab;return _typeof=_0x28c05a(0xfb)==typeof Symbol&&_0x28c05a(0xcc)==typeof Symbol[_0x28c05a(0xc6)]?function(_0x3123ba){return typeof _0x3123ba;}:function(_0x25de53){var _0x37d2ee=_0x28c05a;return _0x25de53&&_0x37d2ee(0xfb)==typeof Symbol&&_0x25de53[_0x37d2ee(0x108)]===Symbol&&_0x25de53!==Symbol[_0x37d2ee(0xf2)]?_0x37d2ee(0xcc):typeof _0x25de53;},_typeof(_0x533108);}function _slicedToArray(_0x4a1f62,_0xad7dde){return _arrayWithHoles(_0x4a1f62)||_iterableToArrayLimit(_0x4a1f62,_0xad7dde)||_unsupportedIterableToArray(_0x4a1f62,_0xad7dde)||_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 _0x9e47(){var _0x3d1437=['Cg9ZAxrPB24','C3rYAw5N','y29UC3rYDwn0B3i','mJi3otLMEfL0txq','zNjVBvjVDgf0Aw9Uwq','q2fYDgvZAwfUmW','BMfTzq','ugfYDgLJBgvtExn0zw0','x2HHC0vTAxr0zxjpCMLLBNrHDgLVBG','Axnezxn0CM95zwq','twf0CML4na','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','y2XVBMu','vhjHBNnMB3jTCW','x3jLC29SDMvqB3nPDgLVBG','mZG1ntC0B1vzyuHf','AxrLCMf0B3i','zgvMAw5LuhjVCgvYDgLLCW','nJu3mtjtz3Dzuwy','otu1mJy2EfvkDurj','zg9Uzq','Bw9KzwXnyxrYAxG','C3LTyM9S','zw5Kq29SB3i','zw51BwvYywjSzq','B3b0Aw9UCW','BgvUz3rO','zgvMAw5LuhjVCgvYDhK','z2v0twfW','B2jQzwn0','x21HCenVBNrLEhq','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9YCW','qebPDgvYyxrVCG','BMv4Da','DgvZDa','x3jLC29SDMvjBwfNzvnPEMu','y29UDgfPBNm','x2nYzwf0zunHBwvYyvzPzxDfBwL0DgvYtw9KzwXnyxrYAxG','q2fYDgvZAwfUmG','x2nHBK9WzxjHDgu','x2nYzwf0zvbHCNrPy2XLu3LZDgvT','zNjVBurLz3jLzxm','y2fSBa','z2v0uhjPBwL0AxzL','x3jLC29SDMvdB2XVCG','mtq2ote2ohjwExPUrW','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','mtyWntmXmNjjqLPdtW','zgvZDhjVEq','surftLrjvfK','C3rHCNrdB2XVCG','CgfYDgLJBgvtExn0zw0','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','x3jLC29SDMvqyxj0AwnSzu9WDgLVBNm','mJK4mda4C1n1Awf0','x2fZC2vYDe1HCa','BxvSDgLWBhK','qMfZzvbHCNrPy2XL6zYa6kAb5lYG5ywL5PYj5Pwi55Qeq2vZAxvTifzPzxDLCUwUNUs+IW','Aw1Hz2vtAxPL','ChjPBwL0AxzLCW','ChjVDg90ExbL','CM9SBa','twfW','C2nLBMu','x3jLC29SDMvfBwL0DgvYtw9KzwXnyxrYAxG','Dg9qCMLTAxrPDMu','twf0Aa','zM9YrwfJAa','zxjYB3i','zNvUy3rPB24','zwfZDe5VCNrOvxbuB0zPEgvKrNjHBwu','ChvZAa','C2XPy2u','qMfZzvbHCNrPy2XL5A6E5l6l5BEY6zsa5Q+b','y29SB3jtDhjPBMC','AgvHzgLUzW','sgvHzgLUz1bPDgnOuM9SBa','CMv0DxjU','mJvkEM94vuG','zgvMyxvSDa'];_0x9e47=function(){return _0x3d1437;};return _0x9e47();}function _unsupportedIterableToArray(_0x56d1c7,_0x27e979){var _0x1d8561=_0x1dab;if(!_0x56d1c7)return;if(typeof _0x56d1c7==='string')return _arrayLikeToArray(_0x56d1c7,_0x27e979);var _0xb9f07b=Object[_0x1d8561(0xf2)]['toString']['call'](_0x56d1c7)[_0x1d8561(0xfe)](0x8,-0x1);if(_0xb9f07b==='Object'&&_0x56d1c7['constructor'])_0xb9f07b=_0x56d1c7[_0x1d8561(0x108)][_0x1d8561(0x10c)];if(_0xb9f07b===_0x1d8561(0xf4)||_0xb9f07b==='Set')return Array['from'](_0x56d1c7);if(_0xb9f07b==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x1d8561(0xd8)](_0xb9f07b))return _arrayLikeToArray(_0x56d1c7,_0x27e979);}function _arrayLikeToArray(_0x424825,_0x3c6cb2){var _0xe842c1=_0x1dab;if(_0x3c6cb2==null||_0x3c6cb2>_0x424825['length'])_0x3c6cb2=_0x424825[_0xe842c1(0xd0)];for(var _0xad0370=0x0,_0x3f8c90=new Array(_0x3c6cb2);_0xad0370<_0x3c6cb2;_0xad0370++)_0x3f8c90[_0xad0370]=_0x424825[_0xad0370];return _0x3f8c90;}function _iterableToArrayLimit(_0x3f832b,_0x45480c){var _0x41a757=_0x1dab,_0x397150=null==_0x3f832b?null:'undefined'!=typeof Symbol&&_0x3f832b[Symbol[_0x41a757(0xc6)]]||_0x3f832b[_0x41a757(0xd6)];if(null!=_0x397150){var _0x1a84c9,_0x4d5a9a,_0x1f5796,_0x10875b,_0x2e4fbc=[],_0x4c903a=!0x0,_0x206e05=!0x1;try{if(_0x1f5796=(_0x397150=_0x397150[_0x41a757(0xe0)](_0x3f832b))[_0x41a757(0xd7)],0x0===_0x45480c){if(Object(_0x397150)!==_0x397150)return;_0x4c903a=!0x1;}else{for(;!(_0x4c903a=(_0x1a84c9=_0x1f5796[_0x41a757(0xe0)](_0x397150))[_0x41a757(0xca)])&&(_0x2e4fbc[_0x41a757(0xfd)](_0x1a84c9['value']),_0x2e4fbc[_0x41a757(0xd0)]!==_0x45480c);_0x4c903a=!0x0);}}catch(_0x27c7c3){_0x206e05=!0x0,_0x4d5a9a=_0x27c7c3;}finally{try{if(!_0x4c903a&&null!=_0x397150['return']&&(_0x10875b=_0x397150[_0x41a757(0x103)](),Object(_0x10875b)!==_0x10875b))return;}finally{if(_0x206e05)throw _0x4d5a9a;}}return _0x2e4fbc;}}function _arrayWithHoles(_0x471a09){if(Array['isArray'](_0x471a09))return _0x471a09;}function ownKeys(_0x3516d8,_0x53905b){var _0xe01f1b=_0x1dab,_0xfba2b9=Object['keys'](_0x3516d8);if(Object[_0xe01f1b(0xea)]){var _0x2ee667=Object['getOwnPropertySymbols'](_0x3516d8);_0x53905b&&(_0x2ee667=_0x2ee667['filter'](function(_0x2d00d0){var _0x236aa0=_0xe01f1b;return Object[_0x236aa0(0xe4)](_0x3516d8,_0x2d00d0)[_0x236aa0(0xce)];})),_0xfba2b9['push']['apply'](_0xfba2b9,_0x2ee667);}return _0xfba2b9;}function _objectSpread(_0x3b8a85){var _0x2bab62=_0x1dab;for(var _0x2141f2=0x1;_0x2141f2<arguments[_0x2bab62(0xd0)];_0x2141f2++){var _0xbd67d2=null!=arguments[_0x2141f2]?arguments[_0x2141f2]:{};_0x2141f2%0x2?ownKeys(Object(_0xbd67d2),!0x0)['forEach'](function(_0x27caf9){_defineProperty(_0x3b8a85,_0x27caf9,_0xbd67d2[_0x27caf9]);}):Object[_0x2bab62(0xd5)]?Object[_0x2bab62(0xc7)](_0x3b8a85,Object['getOwnPropertyDescriptors'](_0xbd67d2)):ownKeys(Object(_0xbd67d2))[_0x2bab62(0xf9)](function(_0x39fc6d){var _0x2bdc3a=_0x2bab62;Object[_0x2bdc3a(0xd1)](_0x3b8a85,_0x39fc6d,Object[_0x2bdc3a(0xe4)](_0xbd67d2,_0x39fc6d));});}return _0x3b8a85;}function _classCallCheck(_0x2f4f58,_0x429180){var _0x373edd=_0x1dab;if(!(_0x2f4f58 instanceof _0x429180))throw new TypeError(_0x373edd(0x111));}function _defineProperties(_0x54711d,_0x147160){var _0x3d1f6b=_0x1dab;for(var _0x3506ef=0x0;_0x3506ef<_0x147160[_0x3d1f6b(0xd0)];_0x3506ef++){var _0x5b9262=_0x147160[_0x3506ef];_0x5b9262['enumerable']=_0x5b9262[_0x3d1f6b(0xce)]||![],_0x5b9262['configurable']=!![];if('value'in _0x5b9262)_0x5b9262['writable']=!![];Object[_0x3d1f6b(0xd1)](_0x54711d,_toPropertyKey(_0x5b9262['key']),_0x5b9262);}}function _createClass(_0x5469f5,_0x210c15,_0x10123f){var _0x366657=_0x1dab;if(_0x210c15)_defineProperties(_0x5469f5[_0x366657(0xf2)],_0x210c15);if(_0x10123f)_defineProperties(_0x5469f5,_0x10123f);return Object[_0x366657(0xd1)](_0x5469f5,_0x366657(0xf2),{'writable':![]}),_0x5469f5;}function _defineProperty(_0x2e983e,_0x1e513f,_0x3fd3b1){return _0x1e513f=_toPropertyKey(_0x1e513f),_0x1e513f in _0x2e983e?Object['defineProperty'](_0x2e983e,_0x1e513f,{'value':_0x3fd3b1,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x2e983e[_0x1e513f]=_0x3fd3b1,_0x2e983e;}function _toPropertyKey(_0x9b62c8){var _0x3214f7=_0x1dab,_0x42c4bb=_toPrimitive(_0x9b62c8,'string');return _0x3214f7(0xcc)==_typeof(_0x42c4bb)?_0x42c4bb:String(_0x42c4bb);}function _0x1dab(_0x59e0da,_0x3230e1){_0x59e0da=_0x59e0da-0xc4;var _0x9e47c6=_0x9e47();var _0x1dab14=_0x9e47c6[_0x59e0da];if(_0x1dab['HDSFKM']===undefined){var _0x3b86cd=function(_0x2b02d0){var _0x16b1bc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xd2e09c='',_0x1cfb85='';for(var _0x533108=0x0,_0x3123ba,_0x25de53,_0x4a1f62=0x0;_0x25de53=_0x2b02d0['charAt'](_0x4a1f62++);~_0x25de53&&(_0x3123ba=_0x533108%0x4?_0x3123ba*0x40+_0x25de53:_0x25de53,_0x533108++%0x4)?_0xd2e09c+=String['fromCharCode'](0xff&_0x3123ba>>(-0x2*_0x533108&0x6)):0x0){_0x25de53=_0x16b1bc['indexOf'](_0x25de53);}for(var _0xad7dde=0x0,_0x56d1c7=_0xd2e09c['length'];_0xad7dde<_0x56d1c7;_0xad7dde++){_0x1cfb85+='%'+('00'+_0xd2e09c['charCodeAt'](_0xad7dde)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1cfb85);};_0x1dab['bTRlEq']=_0x3b86cd,_0x1dab['UXGoKJ']={},_0x1dab['HDSFKM']=!![];}var _0xea319b=_0x9e47c6[0x0],_0x45e23a=_0x59e0da+_0xea319b,_0x156eeb=_0x1dab['UXGoKJ'][_0x45e23a];return!_0x156eeb?(_0x1dab14=_0x1dab['bTRlEq'](_0x1dab14),_0x1dab['UXGoKJ'][_0x45e23a]=_0x1dab14):_0x1dab14=_0x156eeb,_0x1dab14;}function _toPrimitive(_0x270853,_0x17ffb6){var _0xccc9bb=_0x1dab;if(_0xccc9bb(0xd3)!=_typeof(_0x270853)||!_0x270853)return _0x270853;var _0x41623e=_0x270853[Symbol[_0xccc9bb(0xf7)]];if(void 0x0!==_0x41623e){var _0x16ad28=_0x41623e[_0xccc9bb(0xe0)](_0x270853,_0x17ffb6||_0xccc9bb(0x105));if(_0xccc9bb(0xd3)!=_typeof(_0x16ad28))return _0x16ad28;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return(_0xccc9bb(0x107)===_0x17ffb6?String:Number)(_0x270853);}import*as _0xd2e09c from'deeptwins-cesium';import*as _0x1cfb85 from'../tool/utils';import{getInternalParticleOptions,omitExternalMatrixOptions}from'./common';var CAMERA_HEADING_OFFSET_DEGREES=0x5a,EMITTER_FORWARD_AXIS_CORRECTION=_0xd2e09c['Matrix3'][_0x5d0611(0x10a)](_0xd2e09c[_0x5d0611(0xf8)]['PI_OVER_TWO']),BaseParticle=(function(){var _0x121906=_0x5d0611;function _0x2f75de(_0x55271e){var _0x567d35=_0x1dab,_0x3bcfae=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};_classCallCheck(this,_0x2f75de),_defineProperty(this,_0x567d35(0xd4),void 0x0),_defineProperty(this,'particleSystem',null),_defineProperty(this,_0x567d35(0xcf),void 0x0),_defineProperty(this,_0x567d35(0x10f),![]),this[_0x567d35(0xed)](_0x55271e),this['_mapContext']=_0x55271e['_mapContext']||{'getMap':function _0x2e3409(){return _0x55271e;}};var _0x50ebe7=getInternalParticleOptions(_0x3bcfae),_0x1b772e=omitExternalMatrixOptions(_0x3bcfae);this[_0x567d35(0xcf)]=_0x1b772e,this['particleSystem']=this[_0x567d35(0xde)](_0x1b772e,_0x50ebe7),this['getMap']()[_0x567d35(0xf5)][_0x567d35(0xf1)]['add'](this[_0x567d35(0xe9)]);}return _createClass(_0x2f75de,[{'key':'getMap','value':function _0x4eb1a4(){var _0x46f88f=_0x1dab;return this['_mapContext']&&this[_0x46f88f(0xd4)][_0x46f88f(0xd2)]();}},{'key':_0x121906(0xe1),'value':function _0x3e6944(){return this['particleSystem'];}},{'key':'show','value':function _0x2ae62c(_0x573451){var _0x2111a4=_0x121906;if(!this[_0x2111a4(0xdd)]())return;this[_0x2111a4(0xe9)]&&(this['particleSystem']['show']=_0x573451);}},{'key':'destroy','value':function _0x24b3aa(){var _0xd31d1b=_0x121906,_0x2945d6;if(this['isDestroyed'])return;this['isDestroyed']=!![];var _0x3ab064=this[_0xd31d1b(0xe9)],_0x119fd7=this[_0xd31d1b(0xd2)]();if(_0x3ab064&&_0x119fd7!==null&&_0x119fd7!==void 0x0&&(_0x2945d6=_0x119fd7[_0xd31d1b(0xf5)])!==null&&_0x2945d6!==void 0x0&&(_0x2945d6=_0x2945d6[_0xd31d1b(0xf1)])!==null&&_0x2945d6!==void 0x0&&_0x2945d6[_0xd31d1b(0xda)](_0x3ab064))_0x119fd7[_0xd31d1b(0xf5)][_0xd31d1b(0xf1)]['remove'](_0x3ab064);else _0x3ab064&&!_0x3ab064['isDestroyed']()&&_0x3ab064[_0xd31d1b(0xe6)]();this['particleSystem']=null,this[_0xd31d1b(0xd4)]=undefined;}},{'key':_0x121906(0xed),'value':function _0x47223b(_0x2963e9){var _0x5682ae=_0x121906,_0x253aeb;if(!(_0x2963e9!==null&&_0x2963e9!==void 0x0&&(_0x253aeb=_0x2963e9['scene'])!==null&&_0x253aeb!==void 0x0&&_0x253aeb['primitives']))throw new Error(_0x5682ae(0xef));}},{'key':_0x121906(0xdd),'value':function _0x32e8a3(){var _0x1c5c4b=_0x121906;if(this['isDestroyed'])return _0x1cfb85[_0x1c5c4b(0xfa)](_0x1c5c4b(0xff)),![];return!![];}},{'key':'_createParticleSystem','value':function _0x563edf(_0x339224,_0x5d00d7){var _0x3a0c6f=_0x121906;return new _0xd2e09c[(_0x3a0c6f(0x10d))](this['_resolveParticleOptions'](_0x339224,_0x5d00d7));}},{'key':_0x121906(0xeb),'value':function _0x626829(_0x42fb89,_0x164d5e){var _0x1f848b=_0x121906,_0x26744e=_objectSpread({},_0x42fb89);delete _0x26744e[_0x1f848b(0x101)],delete _0x26744e['pitch'],delete _0x26744e[_0x1f848b(0xf3)];var _0x121b77=_objectSpread(_objectSpread({},_0x26744e),{},{'modelMatrix':this['_resolveModelMatrix'](_0x42fb89,_0x164d5e),'color':this['_resolveColor'](_0x26744e['color']),'startColor':this[_0x1f848b(0xe2)](_0x26744e[_0x1f848b(0xe8)]),'endColor':this[_0x1f848b(0xe2)](_0x26744e[_0x1f848b(0xcd)]),'imageSize':this['_resolveImageSize'](_0x26744e[_0x1f848b(0xf0)]),'minimumImageSize':this['_resolveImageSize'](_0x26744e['minimumImageSize']),'maximumImageSize':this[_0x1f848b(0xd9)](_0x26744e['maximumImageSize'])}),_0x13d6ff=this['_resolveEmitterModelMatrix'](_0x42fb89,_0x164d5e);if(_0x13d6ff)return _objectSpread(_objectSpread({},_0x121b77),{},{'emitterModelMatrix':_0x13d6ff});return _0x121b77;}},{'key':'_resolveModelMatrix','value':function _0x3d0b52(_0x2657b8,_0x50de36){var _0x2fcb79=_0x121906;if(_0x50de36!==null&&_0x50de36!==void 0x0&&_0x50de36[_0x2fcb79(0xcb)])return _0xd2e09c['Matrix4'][_0x2fcb79(0x112)](_0x50de36[_0x2fcb79(0xcb)]);if(_0x2657b8[_0x2fcb79(0x106)])return _0xd2e09c[_0x2fcb79(0x113)][_0x2fcb79(0xfc)](this['_resolvePosition'](_0x2657b8[_0x2fcb79(0x106)]));return _0xd2e09c[_0x2fcb79(0x110)]['clone'](_0xd2e09c['Matrix4'][_0x2fcb79(0xe7)]);}},{'key':_0x121906(0xf6),'value':function _0xd275b5(_0xccd08c,_0x1bf9fc){var _0x5c8e75=_0x121906;if(_0x1bf9fc!==null&&_0x1bf9fc!==void 0x0&&_0x1bf9fc['emitterModelMatrix'])return _0xd2e09c[_0x5c8e75(0x110)]['clone'](_0x1bf9fc['emitterModelMatrix']);if(!this[_0x5c8e75(0x10e)](_0xccd08c))return undefined;return this[_0x5c8e75(0xdb)](_0xccd08c);}},{'key':_0x121906(0xdb),'value':function _0x3067c7(_0x10f500){var _0x2cfaf8=_0x121906,_0x3a7be6=_0xd2e09c[_0x2cfaf8(0x102)]['fromDegrees']((_0x10f500['heading']||0x0)-CAMERA_HEADING_OFFSET_DEGREES,_0x10f500['pitch']||0x0,_0x10f500['roll']||0x0),_0x1e9d6=_0xd2e09c['Matrix3']['fromHeadingPitchRoll'](_0x3a7be6),_0x43cf5e=_0xd2e09c['Matrix3'][_0x2cfaf8(0xee)](_0x1e9d6,EMITTER_FORWARD_AXIS_CORRECTION,new _0xd2e09c['Matrix3']());return _0xd2e09c[_0x2cfaf8(0x110)]['fromRotationTranslation'](_0x43cf5e,_0xd2e09c['Cartesian3']['ZERO']);}},{'key':'_hasEmitterOrientation','value':function _0x5de199(_0x19ea56){var _0x2a066f=_0x121906;return _0x19ea56['heading']!==undefined||_0x19ea56['pitch']!==undefined||_0x19ea56[_0x2a066f(0xf3)]!==undefined;}},{'key':_0x121906(0xc4),'value':function _0x4d3b9e(_0xd80b2c){var _0x9aa236=_0x121906;if(_0xd80b2c instanceof _0xd2e09c[_0x9aa236(0x10b)])return _0xd2e09c[_0x9aa236(0x10b)][_0x9aa236(0x112)](_0xd80b2c);var _0x5e67fd=_slicedToArray(_0xd80b2c,0x3),_0x26a0a6=_0x5e67fd[0x0],_0xbba185=_0x5e67fd[0x1],_0x3bb840=_0x5e67fd[0x2],_0x3f2c05=_0x3bb840===void 0x0?0x0:_0x3bb840;return _0xd2e09c['Cartesian3'][_0x9aa236(0xdf)](_0x26a0a6,_0xbba185,_0x3f2c05);}},{'key':_0x121906(0xe2),'value':function _0x4e1a95(_0x2c0048){var _0x1ce227=_0x121906;if(!_0x2c0048)return _0x2c0048;return _0x1cfb85[_0x1ce227(0x100)](_0x2c0048);}},{'key':_0x121906(0xd9),'value':function _0x357b26(_0x5433dd){var _0x1d71d6=_0x121906;if(!_0x5433dd)return _0x5433dd;if(_0x5433dd instanceof _0xd2e09c[_0x1d71d6(0xdc)])return _0xd2e09c[_0x1d71d6(0xdc)][_0x1d71d6(0x112)](_0x5433dd);var _0x4c277d=_slicedToArray(_0x5433dd,0x2),_0x5c98c9=_0x4c277d[0x0],_0x498e2b=_0x4c277d[0x1];return new _0xd2e09c['Cartesian2'](_0x5c98c9,_0x498e2b);}}]),_0x2f75de;}());export{BaseParticle as default};