mars3d-wind 3.9.5 → 3.9.6

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 (2) hide show
  1. package/mars3d-wind.js +3 -3
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.9.5
5
- * 编译日期:2025-04-02 18:36
4
+ * 版本信息:v3.9.6
5
+ * 编译日期:2025-04-15 22:20
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-02-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x55d080,_0x3ded40){const _0x26df75=_0x55d080();function _0x1636b9(_0x100a3b,_0x236848){return _0x1d21(_0x236848-0x28b,_0x100a3b);}function _0x5efbae(_0x1bf3c5,_0xfe8cdc){return _0x1d21(_0xfe8cdc- -0x218,_0x1bf3c5);}while(!![]){try{const _0x4c8941=parseInt(_0x1636b9(0x3ae,0x351))/0x1*(-parseInt(_0x5efbae(-0x70,-0x94))/0x2)+parseInt(_0x1636b9(0x3db,0x3cc))/0x3*(-parseInt(_0x1636b9(0x315,0x33e))/0x4)+parseInt(_0x1636b9(0x39e,0x356))/0x5*(-parseInt(_0x1636b9(0x404,0x41d))/0x6)+parseInt(_0x1636b9(0x39d,0x40c))/0x7+parseInt(_0x1636b9(0x347,0x373))/0x8+-parseInt(_0x1636b9(0x489,0x403))/0x9*(parseInt(_0x1636b9(0x471,0x422))/0xa)+parseInt(_0x1636b9(0x3b1,0x429))/0xb;if(_0x4c8941===_0x3ded40)break;else _0x26df75['push'](_0x26df75['shift']());}catch(_0x3fc289){_0x26df75['push'](_0x26df75['shift']());}}}(_0x2c35,0x26c7e));function _0x2c35(){const _0x285162=['createPrimitives','LINEAR','zIndex','ymin','getParticles','moveTo','particlesNumber','_setOptionsHook','persists','_onMouseUpEvent','lat','call','_maxAge','nextParticlesPosition','sqrt','mouseMove','mouse_move','vertexShaderSource','colorTable','visibility','pixelDatatype','primitives','changed','processWindData','geometry','833565fvsDFw','vertexArray','particlesSpeed','drawingBufferHeight','depthTest','getPostProcessingPositionShader','refreshTimer','umin','UNSIGNED_INT','keys','speedFactor','_addedHook','visible','resize','longitude','samplingWindow','fromCssColorString','framebuffer','ymax','absolute','error','update','getUpdatePositionShader','STATIC_DRAW','preExecute','normal','owner','redraw','pointer-events','getSegmentDrawVertexShader','previousParticlesPosition','EventType','execute','scene','flipY','OPAQUE','max','off','createRenderingFramebuffers','latRange','wheel','log','_pointerEvents','applyViewerParameters','_createCanvas','canvasContext','clearFramebuffers','north','createRawRenderState','camera','getUVByXY','_calc_speedRate','FUNC_ADD','getSegmentDrawFragmentShader','type','873EeEbFc','forEach','_calcUV','tlat','viewerParameters','bindEvent','width','_randomParticle','random','197841ULpPtW','particlesTextureSize','framebuffers','22916LmLbXD','uniformMap','Cartesian2','TRIANGLES','_bilinearInterpolation','bounds','createWindTextures','height','now','computing','pickEllipsoid','outputTexture','getPrimitives','windTextures','1200lOXqFX','blue','frameRateAdjustment','unbindEvent','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a','31790Xyiyfc','fragmentShaderSource','canvasWind','clear','Cesium','array','requestAnimationFrame','9136226lgKqHv','clearCommand','min','toGridXY','updateViewerParameters','currentParticlesPosition','_onMouseMoveEvent','clientHeight','lineLength','bind','xmin','frameRate','calculateSpeed','mouse_down','sources','blendFuncDestination','Compute','auto','isInExtent','canvasHeight','CLAMP_TO_EDGE','windData','show','_map','options','postProcessingPosition','colors','removeEventListener','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','CanvasWindLayer','particles','wrapT','value','abs','addEventListener','speedRate','MIN_VALUE','worker','frameState.commandList\x20is\x20undefined','_updateIng','toDegrees','willReadFrequently','_onMouseDownEvent','vdata','4qYvbsq','lineTo','_mountedHook','ellipsoid','segments','windField','grid','push','pass','context','fixedHeight','color','updateOptions','rendering','age','createColorTableTexture','segmentsColor','setOptions','tlng','19qBimSV','pixelFormat','rectangle','dropRate','floor','480guBiNQ','particlesTextures','rows','frameTime','latitude','fromGeometry','_updateIng2','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','__esModule','left','style','createSegmentsGeometry','cols','initWorker','updatePosition','isDynamic','flatMap','_colorRamp','NEAREST','commandList','strokeStyle','rgb(206,255,255)','length','_tomap','_speedRate','stroke','east','maxAge','shaderProgram','985096xGNJlY','values','PointTrans','postMessage','pow','speed','_removedHook','destroy','alt','canvasWidth','getUVByPoint','clientWidth','position','WindUtil','FLOAT','mars3d-canvasWind','getColor','south','commandType','morphComplete','magnificationFilter','attributeLocations','west','frameRateMonitor','modelMatrix','lineWidth','toRadians','createRenderingTextures','depthTexture','warn','RGBA','Math','cancelAnimationFrame','createParticlesTextures','xmax','udata','fromDegrees','destoryRenderingFramebuffers','rawRenderState','red','requestRender','particleSystem','data','setDate','slice','DEPTH_COMPONENT','commandToExecute','isPointVisible','default','DomUtil','hidden','dynamic','blendFuncSource','reCreateWindTextures','globe','blendEquation','setData','sceneMode','_drawLines','primitiveType','toWindowCoordinates','lng','canvas','register'];_0x2c35=function(){return _0x285162;};return _0x2c35();}function _interopNamespace(_0x39b565){function _0x28dcd3(_0x26b883,_0x9dc42c){return _0x1d21(_0x9dc42c-0x25f,_0x26b883);}if(_0x39b565&&_0x39b565[_0x28dcd3(0x2ed,0x332)])return _0x39b565;var _0x1fe4d2=Object['create'](null);_0x39b565&&Object[_0x28dcd3(0x361,0x3a9)](_0x39b565)['forEach'](function(_0x463be4){function _0x34f935(_0x43c398,_0x5cca64){return _0x474039(_0x5cca64- -0x23f,_0x43c398);}if(_0x463be4!==_0x34f935(-0x27d,-0x1f7)){var _0x25d565=Object['getOwnPropertyDescriptor'](_0x39b565,_0x463be4);Object['defineProperty'](_0x1fe4d2,_0x463be4,_0x25d565['get']?_0x25d565:{'enumerable':!![],'get':function(){return _0x39b565[_0x463be4];}});}});_0x1fe4d2['default']=_0x39b565;function _0x474039(_0x4d77fa,_0xfcc4b3){return _0x1d21(_0x4d77fa- -0xd0,_0xfcc4b3);}return _0x1fe4d2;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x2f1295,_0x22ac93){function _0x129ebe(_0x8ddd40,_0x4890e4){return _0x1d21(_0x8ddd40- -0x206,_0x4890e4);}const _0x1a8627=_0x2f1295*Math['cos'](Cesium$2['Math'][_0x129ebe(-0x104,-0x167)](_0x22ac93));return _0x1a8627;}function getV(_0x23d341,_0x1b51de){const _0x59d8cc=_0x23d341*Math['sin'](Cesium$2['Math'][_0x4880ce(-0x87,-0xfd)](_0x1b51de));function _0x4880ce(_0x15c8f9,_0x2f138b){return _0x1d21(_0x15c8f9- -0x189,_0x2f138b);}return _0x59d8cc;}function getSpeed(_0x44b5ba,_0x5a891d){const _0xc8f587=Math['sqrt'](Math['pow'](_0x44b5ba,0x2)+Math[_0x5cefd2(0x4f6,0x480)](_0x5a891d,0x2));function _0x5cefd2(_0x44825d,_0x2f5f62){return _0x1d21(_0x2f5f62-0x394,_0x44825d);}return _0xc8f587;}function _0x1d21(_0x5aa9ad,_0x4739d7){const _0x2c353a=_0x2c35();return _0x1d21=function(_0x1d2189,_0x39f312){_0x1d2189=_0x1d2189-0xb0;let _0x56617e=_0x2c353a[_0x1d2189];return _0x56617e;},_0x1d21(_0x5aa9ad,_0x4739d7);}function getDirection(_0x4b1e0c,_0x6a8fd9){let _0x545f7e=Cesium$2[_0x5d9a64(0x3f5,0x451)][_0x5d9a64(0x4b4,0x50c)](Math['atan2'](_0x6a8fd9,_0x4b1e0c));function _0x447660(_0x1e3662,_0x214c24){return _0x1d21(_0x1e3662-0x252,_0x214c24);}_0x545f7e+=_0x545f7e<0x0?0x168:0x0;function _0x5d9a64(_0x1817ee,_0x23929a){return _0x1d21(_0x1817ee-0x2ee,_0x23929a);}return _0x545f7e;}const _0x360715={};_0x360715['__proto__']=null,_0x360715['getU']=getU,_0x360715['getV']=getV,_0x360715['getSpeed']=getSpeed,_0x360715['getDirection']=getDirection;var WindUtil=_0x360715,updatePositionShader=_0x1537ff(-0x12a,-0x134),calculateSpeedShader=_0x1537ff(-0x1ee,-0x180),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x2c9552(-0xe1,-0x157);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x1537ff(-0x125,-0x15c)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x580fc3={};return _0x580fc3['sources']=[calculateSpeedShader],new ShaderSource$1(_0x580fc3);}static[_0x1537ff(-0x169,-0x1db)](){const _0x3693c3={};return _0x3693c3['sources']=[updatePositionShader],new ShaderSource$1(_0x3693c3);}static[_0x1537ff(-0x162,-0x1af)](){const _0x32c345={};return _0x32c345['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x32c345);}static['getSegmentDrawFragmentShader'](){const _0x20e1c8={};return _0x20e1c8['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x20e1c8);}static['getPostProcessingPositionShader'](){const _0x344320={};_0x344320[_0x39b3b7(0x2e9,0x353)]=[postProcessingPositionFragmentShader];function _0x39b3b7(_0x96cb1e,_0x1fb196){return _0x2c9552(_0x1fb196-0x442,_0x96cb1e);}return new ShaderSource$1(_0x344320);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x3ffa63){function _0x595fb4(_0x51d62b,_0x161983){return _0x2c9552(_0x51d62b- -0x11b,_0x161983);}this['commandType']=_0x3ffa63[_0x595fb4(-0x2bc,-0x306)],this[_0x2eb8c5(-0x9f,-0xc8)]=_0x3ffa63['geometry'],this['attributeLocations']=_0x3ffa63[_0x2eb8c5(-0xe2,-0x15d)];function _0x2eb8c5(_0x3aba78,_0x323161){return _0x1537ff(_0x3aba78-0xe1,_0x323161);}this['primitiveType']=_0x3ffa63[_0x595fb4(-0x293,-0x2cb)],this['uniformMap']=_0x3ffa63['uniformMap']||{},this[_0x2eb8c5(-0xa6,-0xad)]=_0x3ffa63['vertexShaderSource'],this[_0x595fb4(-0x21e,-0x244)]=_0x3ffa63['fragmentShaderSource'],this['rawRenderState']=_0x3ffa63['rawRenderState'],this['framebuffer']=_0x3ffa63[_0x2eb8c5(-0x8d,-0x7a)],this[_0x595fb4(-0x227,-0x282)]=_0x3ffa63[_0x595fb4(-0x227,-0x270)],this['autoClear']=_0x3ffa63['autoClear']??![],this['preExecute']=_0x3ffa63['preExecute'],this['show']=!![],this[_0x595fb4(-0x2a0,-0x2d1)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x3ffa63['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x595fb4(-0x217,-0x233)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x595fb4(-0x252,-0x276)]}));}['createCommand'](_0x139196){function _0x12c193(_0x5c2cf9,_0xc097fe){return _0x2c9552(_0xc097fe-0x223,_0x5c2cf9);}function _0x40a29a(_0x27e360,_0x5904b5){return _0x2c9552(_0x27e360-0x39f,_0x5904b5);}if(this[_0x12c193(0xf3,0x82)]==='Draw'){const _0x375674={};_0x375674[_0x40a29a(0x1c0,0x22f)]=_0x139196,_0x375674['geometry']=this['geometry'],_0x375674[_0x12c193(0x38,0x85)]=this['attributeLocations'],_0x375674['bufferUsage']=BufferUsage$1[_0x40a29a(0x25c,0x25c)];const _0x394069=VertexArray$1['fromGeometry'](_0x375674),_0x2df678={};_0x2df678[_0x40a29a(0x1c0,0x23a)]=_0x139196,_0x2df678[_0x12c193(0xd7,0xc1)]=this['vertexShaderSource'],_0x2df678[_0x40a29a(0x29c,0x24f)]=this['fragmentShaderSource'],_0x2df678['attributeLocations']=this[_0x12c193(0xe9,0x85)];const _0x15d4e1=ShaderProgram['fromCache'](_0x2df678),_0x14f0e1=RenderState['fromCache'](this[_0x12c193(0x28,0x96)]),_0x114c56={};return _0x114c56[_0x12c193(0xca,0xe3)]=this,_0x114c56[_0x12c193(0x88,0xca)]=_0x394069,_0x114c56['primitiveType']=this[_0x12c193(0x67,0xab)],_0x114c56[_0x12c193(0xdf,0x88)]=Matrix4['IDENTITY'],_0x114c56['renderState']=_0x14f0e1,_0x114c56[_0x40a29a(0x1eb,0x18e)]=_0x15d4e1,_0x114c56[_0x40a29a(0x256,0x2b2)]=this['framebuffer'],_0x114c56['uniformMap']=this[_0x40a29a(0x289,0x2d5)],_0x114c56[_0x40a29a(0x1bf,0x1db)]=Pass$1[_0x12c193(0x93,0xec)],new DrawCommand(_0x114c56);}else{if(this[_0x12c193(0xbc,0x82)]==='Compute'){const _0x40f9ea={};return _0x40f9ea[_0x40a29a(0x25f,0x29e)]=this,_0x40f9ea['fragmentShaderSource']=this[_0x12c193(0x17c,0x120)],_0x40f9ea['uniformMap']=this[_0x40a29a(0x289,0x2dc)],_0x40f9ea['outputTexture']=this[_0x40a29a(0x293,0x2ac)],_0x40f9ea[_0x12c193(0x61,0xb8)]=!![],new ComputeCommand(_0x40f9ea);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x517fd0,_0x3ad128){this['geometry']=_0x3ad128;function _0x67d53a(_0x52742e,_0x52ff88){return _0x1537ff(_0x52ff88- -0xa7,_0x52742e);}defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x517fd0,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x67d53a(-0x233,-0x20f)]}));}[_0x2c9552(-0x145,-0x19b)](_0x28c08d){function _0x3fbfee(_0x1f3933,_0x2ce374){return _0x1537ff(_0x1f3933-0x206,_0x2ce374);}if(!this[_0x3242c1(0x3c,0xa4)]())return;if(!this['show']||!defined(_0x28c08d))return;!defined(this['commandToExecute'])&&(this[_0x3242c1(0x78,0x62)]=this['createCommand'](_0x28c08d['context']));defined(this[_0x3242c1(0xbb,0x48)])&&this['preExecute']();if(!_0x28c08d['commandList']){console['warn'](_0x3fbfee(0x10a,0xfc));return;}function _0x3242c1(_0x75091f,_0x5d6d0e){return _0x1537ff(_0x75091f-0x222,_0x5d6d0e);}defined(this['clearCommand'])&&_0x28c08d[_0x3242c1(0x40,0x6a)][_0x3242c1(0x1c,0x1d)](this['clearCommand']),defined(this['commandToExecute'])&&_0x28c08d[_0x3242c1(0x40,0x3f)][_0x3fbfee(0x0,-0xf)](this[_0x3242c1(0x78,0xdb)]);}['isDestroyed'](){return![];}['destroy'](){function _0x1a0675(_0x17cc52,_0x5c5e9f){return _0x2c9552(_0x17cc52- -0x8f,_0x5c5e9f);}if(defined(this[_0x1e9f8e(0x14a,0x14d)])){var _0x4a8a09;(_0x4a8a09=this['commandToExecute'][_0x1e9f8e(0x15a,0x11e)])===null||_0x4a8a09===void 0x0||_0x4a8a09[_0x1e9f8e(0x1af,0x126)](),this['commandToExecute']['shaderProgram']=undefined;}function _0x1e9f8e(_0x3194fa,_0x3a1e48){return _0x1537ff(_0x3a1e48-0x2f7,_0x3194fa);}return destroyObject(this);}}function deepMerge(_0x506572,_0x411904){function _0x16e9dd(_0x5ba41c,_0x340362){return _0x2c9552(_0x340362-0x2e5,_0x5ba41c);}if(!_0x506572)return _0x411904;function _0x101801(_0x45a89e,_0x6f7301){return _0x2c9552(_0x45a89e-0x5c8,_0x6f7301);}if(!_0x411904)return _0x506572;const _0x4170ae={..._0x411904},_0x425b50=_0x4170ae;for(const _0x56554d in _0x506572){if(Object['prototype']['hasOwnProperty'][_0x101801(0x460,0x3e9)](_0x506572,_0x56554d)){const _0x1b29f9=_0x506572[_0x56554d],_0x21b90f=_0x411904[_0x56554d];if(Array['isArray'](_0x1b29f9)){_0x425b50[_0x56554d]=_0x1b29f9[_0x16e9dd(0x185,0x15e)]();continue;}if(_0x1b29f9&&typeof _0x1b29f9==='object'){_0x425b50[_0x56554d]=deepMerge(_0x1b29f9,_0x21b90f||{});continue;}_0x1b29f9!==undefined&&(_0x425b50[_0x56554d]=_0x1b29f9);}}return _0x425b50;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x4b8421,_0x58355d,_0x565f0e,_0x314c55,_0x20585e){this['context']=_0x4b8421,this[_0x5bc723(0x3bd,0x3fd)]=_0x565f0e,this[_0x241dc0(-0x1b3,-0x177)]=_0x314c55,this[_0x5bc723(0x382,0x3fa)]=_0x58355d,this['frameRate']=0x3c,this[_0x241dc0(-0x12d,-0x15f)]=0x1;const _0x378c12={};function _0x241dc0(_0x36d40c,_0x34d6e2){return _0x2c9552(_0x34d6e2- -0x58,_0x36d40c);}_0x378c12['scene']=_0x20585e;function _0x5bc723(_0x515e49,_0x4ad639){return _0x1537ff(_0x4ad639-0x507,_0x515e49);}_0x378c12[_0x241dc0(-0x201,-0x1a3)]=0x1,_0x378c12['quietPeriod']=0x0,this[_0x5bc723(0x357,0x346)]=new FrameRateMonitor(_0x378c12),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x192ea0=()=>{function _0x59eecf(_0x24690b,_0x1d097d){return _0x1d21(_0x24690b- -0x1b6,_0x1d097d);}function _0x21f6a6(_0x539539,_0x46c80e){return _0x1d21(_0x539539- -0x30c,_0x46c80e);}this[_0x21f6a6(-0x20d,-0x1e8)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x59eecf(-0xb7,-0x53)]['lastFramesPerSecond'],this[_0x21f6a6(-0x178,-0x11a)]=0x3c/Math['max'](this[_0x21f6a6(-0x163,-0x1cb)],0x1));};_0x192ea0();const _0x117ae5=setInterval(_0x192ea0,0x3e8),_0x5414db=this['destroy']['bind'](this);function _0x41da91(_0x3d3992,_0x49cb46){return _0x1537ff(_0x3d3992- -0x7,_0x49cb46);}this[_0x41da91(-0x1d8,-0x1fb)]=()=>{clearInterval(_0x117ae5),_0x5414db();};}[_0x2c9552(-0x111,-0x198)](){function _0xa5c497(_0x1fd7d5,_0x20eab5){return _0x2c9552(_0x20eab5-0x14c,_0x1fd7d5);}const _0x398e96={};_0x398e96['minificationFilter']=TextureMinificationFilter$1['LINEAR'],_0x398e96[_0x3011be(-0x8a,-0xc)]=TextureMagnificationFilter$1['LINEAR'];const _0x44306a={'context':this['context'],'width':this['windData'][_0x3011be(-0x8,0x59)],'height':this['windData'][_0xa5c497(0xb4,0x3c)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options'][_0x3011be(-0x23,-0x12)]??![],'sampler':new Sampler$1(_0x398e96)};function _0x3011be(_0x59cc26,_0x2116a3){return _0x1537ff(_0x59cc26-0x13a,_0x2116a3);}this[_0x3011be(0xb,0x90)]={'U':new Texture$1({..._0x44306a,'source':{'arrayBufferView':new Float32Array(this[_0xa5c497(0x2c,0x64)]['u']['array'])}}),'V':new Texture$1({..._0x44306a,'source':{'arrayBufferView':new Float32Array(this[_0xa5c497(0xbc,0x64)]['v']['array'])}})};}['createParticlesTextures'](){function _0x1078a5(_0x1aa1f6,_0x3b4995){return _0x2c9552(_0x3b4995-0x47b,_0x1aa1f6);}const _0x275fd5={};_0x275fd5['minificationFilter']=TextureMinificationFilter$1[_0x1078a5(0x295,0x2bd)],_0x275fd5[_0x1078a5(0x28f,0x2dc)]=TextureMagnificationFilter$1[_0x1078a5(0x33d,0x2bd)];function _0x3cae29(_0x57b419,_0x2d1391){return _0x2c9552(_0x57b419-0x37f,_0x2d1391);}const _0x1f3474={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x1078a5(0x368,0x2e6)],'pixelDatatype':PixelDatatype$1[_0x1078a5(0x2cb,0x2d6)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x3cae29(0x266,0x2b3)]*this[_0x1078a5(0x316,0x396)][_0x1078a5(0x3cd,0x362)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x275fd5)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x1f3474),'currentParticlesPosition':new Texture$1(_0x1f3474),'nextParticlesPosition':new Texture$1(_0x1f3474),'postProcessingPosition':new Texture$1(_0x1f3474),'particlesSpeed':new Texture$1(_0x1f3474)};}['destroyParticlesTextures'](){function _0xc67b6d(_0x3d7d75,_0x41bdc9){return _0x2c9552(_0x3d7d75-0x8,_0x41bdc9);}function _0x5b8a31(_0x24243f,_0x47577a){return _0x2c9552(_0x47577a-0xc7,_0x24243f);}Object[_0x5b8a31(-0xc0,-0xeb)](this[_0x5b8a31(-0xe1,-0x108)])[_0xc67b6d(-0x11a,-0x121)](_0x3dfd46=>_0x3dfd46['destroy']());}['createComputingPrimitives'](){function _0x48d0e3(_0x3795e8,_0x33d708){return _0x1537ff(_0x3795e8-0x80,_0x33d708);}function _0x322134(_0x104994,_0x2e19f4){return _0x1537ff(_0x104994- -0xca,_0x2e19f4);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x48d0e3(-0x92,-0x69),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x48d0e3(-0x8d,-0xa0)]['u']['min'],this[_0x48d0e3(-0x8d,-0xd3)]['u'][_0x48d0e3(-0xdb,-0x117)]),'vRange':()=>new Cartesian2$1(this[_0x48d0e3(-0x8d,-0x38)]['v']['min'],this[_0x48d0e3(-0x8d,-0xb8)]['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData'][_0x322134(-0x29d,-0x249)]['min'],this[_0x48d0e3(-0x8d,-0xaa)]['speed'][_0x48d0e3(-0xdb,-0xc9)]),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x546661(_0x38b0ec,_0x2d6ed5){return _0x48d0e3(_0x2d6ed5-0x70,_0x38b0ec);}function _0x3e69f8(_0x4addfc,_0xf4a002){return _0x322134(_0x4addfc-0x492,_0xf4a002);}return(this[_0x546661(-0x89,-0x54)]['pixelSize']+0x32)*this[_0x546661(-0x55,-0x1a)][_0x3e69f8(0x253,0x2c2)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x48d0e3(-0xc2,-0xf0)],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData'][_0x48d0e3(-0xb7,-0xe4)][_0x322134(-0x28c,-0x2cd)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this['windData'][_0x322134(-0x201,-0x1b3)][_0x322134(-0x21a,-0x1a0)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x322134(-0x2be,-0x2de)][_0x48d0e3(-0xfd,-0xe9)],'preExecute':()=>{function _0x9694e1(_0x38cf74,_0x1dfa87){return _0x48d0e3(_0x1dfa87-0x10a,_0x38cf74);}function _0x3473d1(_0x29f899,_0x518fff){return _0x48d0e3(_0x29f899-0x28c,_0x518fff);}const _0x167863=this[_0x9694e1(-0x40,-0x6a)][_0x9694e1(0x2,0x29)];this[_0x9694e1(-0x66,-0x6a)]['previousParticlesPosition']=this[_0x3473d1(0x118,0x118)]['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x9694e1(-0xe5,-0x6a)][_0x3473d1(0x203,0x270)],this['particlesTextures'][_0x3473d1(0x203,0x20c)]=_0x167863,this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x9694e1(0x62,0x74)][_0x3473d1(0x162,0x192)]['outputTexture']=this['particlesTextures'][_0x9694e1(-0x54,0xd)]);},'isDynamic':()=>this['options'][_0x322134(-0x26f,-0x1e5)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x48d0e3(-0x174,-0x1ec)][_0x48d0e3(-0x9d,-0xe5)],'particlesSpeed':()=>this[_0x322134(-0x2be,-0x24a)][_0x322134(-0x247,-0x2ab)]},'fragmentShaderSource':ShaderManager[_0x48d0e3(-0xe9,-0xb2)](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x42c20b(_0x3d780d,_0xf8d379){return _0x322134(_0x3d780d-0x43d,_0xf8d379);}function _0x158ec3(_0x59c80a,_0x2aa1fd){return _0x322134(_0x2aa1fd-0x190,_0x59c80a);}this[_0x42c20b(0x1f0,0x271)]['updatePosition']['commandToExecute']&&(this[_0x158ec3(-0x140,-0xbd)][_0x158ec3(-0xd1,-0x121)][_0x158ec3(-0xb0,-0xe4)][_0x158ec3(-0x42,-0x6b)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x322134(-0x1d4,-0x1d4)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x48d0e3(-0x92,-0xb4),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x48d0e3(-0x10b,-0x12c)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x322134(-0x20e,-0x21c)][_0x322134(-0x222,-0x1b2)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x48d0e3(-0xb7,-0x13e)]['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this[_0x322134(-0x1d7,-0x208)][_0x48d0e3(-0xb7,-0xa5)]['south'],this['windData'][_0x48d0e3(-0xb7,-0xcb)]['north']),'randomCoefficient':function(){function _0x2398dc(_0x51c2cf,_0x4d079a){return _0x322134(_0x4d079a-0x72f,_0x51c2cf);}return Math[_0x2398dc(0x57b,0x525)]();},'dropRate':()=>this['options'][_0x48d0e3(-0x177,-0x16f)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x48d0e3(-0x8a,-0x4b)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x322134(-0x244,-0x21f)](),'outputTexture':this[_0x322134(-0x2be,-0x2cf)]['postProcessingPosition'],'preExecute':()=>{function _0x19477e(_0x57de2b,_0x25ea1a){return _0x322134(_0x25ea1a-0x15f,_0x57de2b);}function _0x6eacfd(_0x1ed73c,_0x29d6b3){return _0x48d0e3(_0x1ed73c-0x4e0,_0x29d6b3);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x6eacfd(0x3dd,0x3bd)]['postProcessingPosition']['commandToExecute']['outputTexture']=this[_0x19477e(-0xf1,-0x15f)][_0x19477e(-0xc1,-0x74)]);},'isDynamic':()=>this[_0x48d0e3(-0x8a,-0xc4)]['dynamic']})};}[_0x2c9552(-0x17e,-0x1e3)](){this[_0x5040fc(0xed,0x97)]['U'][_0x5040fc(0x4b,0xa0)]();function _0x10ff56(_0x1b0f00,_0x577015){return _0x1537ff(_0x577015-0x434,_0x1b0f00);}this['windTextures']['V'][_0x5040fc(0x4b,0x62)]();function _0x5040fc(_0xe82f06,_0xcb7968){return _0x2c9552(_0xe82f06-0x1f7,_0xcb7968);}this['createWindTextures']();}['updateWindData'](_0x3edce0){this['windData']=_0x3edce0,this['reCreateWindTextures']();}[_0x1537ff(-0x201,-0x22e)](_0x1b7bc8){const _0x2d8c12=_0x1b7bc8['flipY']!==undefined&&_0x1b7bc8['flipY']!==this['options']['flipY'];this['options']=deepMerge(_0x1b7bc8,this['options']);function _0x401aa4(_0x1ec319,_0x1f4e54){return _0x1537ff(_0x1ec319-0x3c7,_0x1f4e54);}_0x2d8c12&&this[_0x401aa4(0x224,0x28c)]();}['processWindData'](_0x15dff7){const {array:_0x35e5d3}=_0x15dff7;let {min:_0x494832,max:_0x41e685}=_0x15dff7;function _0x3cd59d(_0x5e6213,_0x5cd488){return _0x1537ff(_0x5e6213-0x507,_0x5cd488);}const _0xff36b8=new Float32Array(_0x35e5d3['length']);_0x494832===undefined&&(console[_0x3cd59d(0x34c,0x300)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x494832=Math[_0x3cd59d(0x3e7,0x3c3)](..._0x35e5d3));function _0x165da8(_0x4f736a,_0xe72f82){return _0x1537ff(_0x4f736a- -0x3,_0xe72f82);}_0x41e685===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x41e685=Math['max'](..._0x35e5d3));const _0x2da3bc=Math[_0x3cd59d(0x3ac,0x322)](Math['abs'](_0x494832),Math[_0x165da8(-0x104,-0x158)](_0x41e685));for(let _0x3eb948=0x0;_0x3eb948<_0x35e5d3['length'];_0x3eb948++){const _0x435afa=_0x35e5d3[_0x3eb948]/_0x2da3bc;_0xff36b8[_0x3eb948]=_0x435afa;}return _0xff36b8;}[_0x2c9552(-0x1ac,-0x1c7)](){function _0x26015e(_0x4a4f34,_0x202bcd){return _0x2c9552(_0x4a4f34-0x323,_0x202bcd);}function _0x58c9a1(_0x5e8840,_0x34cc9a){return _0x2c9552(_0x34cc9a-0x1f1,_0x5e8840);}Object['values'](this['windTextures'])['forEach'](_0x3b6c1c=>_0x3b6c1c[_0x26015e(0x177,0x169)]()),Object['values'](this['particlesTextures'])['forEach'](_0x259da5=>_0x259da5['destroy']()),Object['values'](this[_0x58c9a1(0xed,0x93)])[_0x26015e(0x201,0x195)](_0xd93b1b=>_0xd93b1b[_0x26015e(0x177,0x1e5)]()),this[_0x26015e(0x187,0x168)][_0x58c9a1(-0x40,0x45)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x7fce2c,_0x1103eb,_0x36b71e,_0x2e1ef2){this['context']=_0x7fce2c,this[_0x40f2e3(0x60,-0x8)]=_0x1103eb,this[_0x1d563a(0x35,0xb4)]=_0x36b71e,this[_0x1d563a(0x46,-0x36)]=_0x2e1ef2;(typeof this['options'][_0x1d563a(0x3b,0x92)]!=='number'||this[_0x1d563a(0x6f,0xba)]['particlesTextureSize']<=0x0)&&(console[_0x40f2e3(-0x1,0x71)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x40f2e3(0x60,0xda)]['particlesTextureSize']=0x100);function _0x40f2e3(_0x4ff446,_0x3c7bda){return _0x2c9552(_0x4ff446-0x145,_0x3c7bda);}this['colorTable']=this[_0x40f2e3(-0x94,-0x7f)]();function _0x1d563a(_0x158249,_0x22a790){return _0x1537ff(_0x158249-0x179,_0x22a790);}this['textures']=this['createRenderingTextures'](),this['framebuffers']=this[_0x1d563a(0x20,0x78)](),this['primitives']=this['createPrimitives']();}[_0x2c9552(-0x198,-0x190)](){const _0x6e7be5={};_0x6e7be5['context']=this[_0x203c21(0x3eb,0x3d5)];function _0x203c21(_0x551c97,_0xb48e93){return _0x1537ff(_0x551c97-0x5ef,_0xb48e93);}_0x6e7be5['width']=this['context']['drawingBufferWidth'],_0x6e7be5['height']=this[_0xf0103f(0x23b,0x2ba)]['drawingBufferHeight'],_0x6e7be5[_0xf0103f(0x335,0x2c5)]=PixelFormat['RGBA'],_0x6e7be5[_0x203c21(0x46b,0x49d)]=PixelDatatype['UNSIGNED_BYTE'];const _0x2a5f85=_0x6e7be5,_0x3c9916={};function _0xf0103f(_0x2b4256,_0x2d34f7){return _0x1537ff(_0x2d34f7-0x4be,_0x2b4256);}_0x3c9916[_0xf0103f(0x332,0x2ba)]=this[_0x203c21(0x3eb,0x3db)],_0x3c9916['width']=this[_0xf0103f(0x29d,0x2ba)]['drawingBufferWidth'],_0x3c9916[_0xf0103f(0x3ac,0x389)]=this['context'][_0xf0103f(0x345,0x342)],_0x3c9916[_0xf0103f(0x2e1,0x2c5)]=PixelFormat[_0x203c21(0x444,0x485)],_0x3c9916[_0x203c21(0x46b,0x4e2)]=PixelDatatype[_0xf0103f(0x35e,0x347)];const _0x3c9882=_0x3c9916;return{'segmentsColor':new Texture(_0x2a5f85),'segmentsDepth':new Texture(_0x3c9882)};}[_0x2c9552(-0x134,-0xda)](){function _0x5dfe56(_0x538984,_0x341447){return _0x1537ff(_0x538984-0x302,_0x341447);}const _0x3f9fcf={};_0x3f9fcf['context']=this[_0x1c3fa1(-0x52,-0x44)];function _0x1c3fa1(_0x26d88f,_0x3a3e77){return _0x1537ff(_0x3a3e77-0x1c0,_0x26d88f);}return _0x3f9fcf['colorTextures']=[this['textures'][_0x5dfe56(0x105,0x96)]],_0x3f9fcf[_0x1c3fa1(0x87,0x4)]=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x3f9fcf)};}[_0x1537ff(-0x1b3,-0x18c)](){Object['values'](this['framebuffers'])['forEach'](_0x542eb2=>{function _0x27027e(_0x74bdbd,_0x4f5313){return _0x1d21(_0x4f5313- -0x278,_0x74bdbd);}_0x542eb2[_0x27027e(-0x112,-0x189)]();});}['createColorTableTexture'](){function _0x41ecaf(_0x1ff182,_0xa74df2){return _0x2c9552(_0x1ff182-0x411,_0xa74df2);}const _0x42f3da=new Float32Array(this[_0x3d2337(-0x149,-0x11b)]['colors'][_0x41ecaf(0x251,0x2b2)](_0x248ac5=>{function _0x23635a(_0xdaa878,_0x44230a){return _0x41ecaf(_0xdaa878- -0x197,_0x44230a);}const _0x2404b3=Color$1[_0x45842(0x1e7,0x238)](_0x248ac5);function _0x45842(_0x29a71d,_0x4a864a){return _0x3d2337(_0x29a71d,_0x4a864a-0x3b8);}return[_0x2404b3[_0x45842(0x1f0,0x1f6)],_0x2404b3['green'],_0x2404b3[_0x23635a(0x172,0x1ea)],_0x2404b3['alpha']];})),_0x3f645f={};_0x3f645f['minificationFilter']=TextureMinificationFilter[_0x41ecaf(0x29f,0x2b5)],_0x3f645f['magnificationFilter']=TextureMagnificationFilter['LINEAR'];function _0x3d2337(_0x53b0cf,_0x15dce1){return _0x1537ff(_0x15dce1- -0x11,_0x53b0cf);}return _0x3f645f['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x3f645f[_0x41ecaf(0x333,0x2ca)]=TextureWrap[_0x3d2337(-0x103,-0x11f)],new Texture({'context':this[_0x41ecaf(0x232,0x289)],'width':this[_0x3d2337(-0xf9,-0x11b)]['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x41ecaf(0x27c,0x1f5)],'pixelDatatype':PixelDatatype[_0x3d2337(-0x188,-0x1db)],'sampler':new Sampler(_0x3f645f),'source':{'width':this['options'][_0x41ecaf(0x32e,0x2c1)]['length'],'height':0x1,'arrayBufferView':_0x42f3da}});}[_0x1537ff(-0x1ea,-0x251)](){const _0x5f3535=0x4,_0x53065b=this['options']['particlesTextureSize'];function _0x1f7249(_0x402998,_0x53d87d){return _0x2c9552(_0x53d87d-0x3c3,_0x402998);}let _0x4d127d=[];for(let _0x20e3a4=0x0;_0x20e3a4<_0x53065b;_0x20e3a4++){for(let _0x530c23=0x0;_0x530c23<_0x53065b;_0x530c23++){for(let _0x152561=0x0;_0x152561<_0x5f3535;_0x152561++){_0x4d127d['push'](_0x20e3a4/_0x53065b),_0x4d127d[_0x1f7249(0x16f,0x1e2)](_0x530c23/_0x53065b);}}}_0x4d127d=new Float32Array(_0x4d127d);const _0x14a732=this['options'][_0x2f4427(-0x1aa,-0x233)]**0x2;let _0x3ac044=[];for(let _0x4e4eb4=0x0;_0x4e4eb4<_0x14a732;_0x4e4eb4++){_0x3ac044[_0x2f4427(-0x272,-0x20c)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3ac044=new Float32Array(_0x3ac044);let _0x5d0b58=[];function _0x2f4427(_0x45565c,_0x2f5fee){return _0x1537ff(_0x45565c- -0x6c,_0x2f5fee);}for(let _0x337ae6=0x0,_0x237c9a=0x0;_0x337ae6<_0x14a732;_0x337ae6++){_0x5d0b58['push'](_0x237c9a+0x0,_0x237c9a+0x1,_0x237c9a+0x2,_0x237c9a+0x2,_0x237c9a+0x1,_0x237c9a+0x3),_0x237c9a+=_0x5f3535;}_0x5d0b58=new Uint32Array(_0x5d0b58);const _0x3562a3={};_0x3562a3['componentDatatype']=ComponentDatatype[_0x1f7249(0x221,0x21e)],_0x3562a3['componentsPerAttribute']=0x2,_0x3562a3[_0x2f4427(-0x243,-0x211)]=_0x4d127d;const _0x38cf87={};_0x38cf87['componentDatatype']=ComponentDatatype[_0x1f7249(0x204,0x21e)],_0x38cf87['componentsPerAttribute']=0x3,_0x38cf87[_0x1f7249(0x206,0x211)]=_0x3ac044;const _0x4704c8=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x3562a3),'normal':new GeometryAttribute(_0x38cf87)}),'indices':_0x5d0b58});return _0x4704c8;}['createRawRenderState'](_0x26cc08){const _0x667fac={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x26cc08};return Appearance['getDefaultRenderState'](!![],![],_0x667fac);}[_0x1537ff(-0x198,-0x1d1)](){const _0x515ff3={};_0x515ff3['st']=0x0;function _0x11eeb3(_0x32d54a,_0x59c405){return _0x2c9552(_0x32d54a-0x190,_0x59c405);}_0x515ff3[_0x9286e9(-0x1c,-0x12)]=0x1;const _0x255687={};_0x255687['enabled']=!![];const _0x5b1411={};_0x5b1411['enabled']=!![],_0x5b1411[_0x9286e9(-0x57,-0x9f)]=WebGLRenderingContext[_0x9286e9(-0x1,0x88)],_0x5b1411[_0x9286e9(-0x5a,0x7)]=WebGLRenderingContext['SRC_ALPHA'],_0x5b1411[_0x9286e9(0x37,0x54)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];function _0x9286e9(_0x3a882b,_0x242b33){return _0x1537ff(_0x3a882b-0x14a,_0x242b33);}const _0x10bfae={};_0x10bfae['viewport']=undefined,_0x10bfae[_0x9286e9(-0x31,0x6)]=_0x255687,_0x10bfae['depthMask']=!![],_0x10bfae['blending']=_0x5b1411;const _0x347ce7=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x515ff3,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x11eeb3(0x7c,0xfd)],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x9286e9(-0x17,0x30)],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x11eeb3(0x98,0x32)],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this[_0x9286e9(-0x3c,0x4e)],'domain':()=>{function _0x69c4fc(_0x9e0359,_0x367269){return _0x11eeb3(_0x9e0359-0x43c,_0x367269);}var _0x2892d0,_0x439a49;const _0x8b66c=new Cartesian2(((_0x2892d0=this['options']['domain'])===null||_0x2892d0===void 0x0?void 0x0:_0x2892d0[_0x1d3bfa(0x5c7,0x544)])??this[_0x1d3bfa(0x4c3,0x531)][_0x1d3bfa(0x56d,0x557)]['speed']['min'],((_0x439a49=this[_0x1d3bfa(0x563,0x55a)]['domain'])===null||_0x439a49===void 0x0?void 0x0:_0x439a49[_0x1d3bfa(0x4b8,0x509)])??this['computing']['windData']['speed']['max']);function _0x1d3bfa(_0x59556e,_0x32e710){return _0x9286e9(_0x32e710-0x51a,_0x59556e);}return _0x8b66c;},'displayRange':()=>{function _0x3a27ea(_0x401d72,_0x51c7ff){return _0x11eeb3(_0x51c7ff-0x2e6,_0x401d72);}var _0x36b9ee,_0x434bf9;function _0x210f52(_0x8e0bea,_0x5d8380){return _0x11eeb3(_0x8e0bea-0x1c1,_0x5d8380);}const _0x295b9f=new Cartesian2(((_0x36b9ee=this['options']['displayRange'])===null||_0x36b9ee===void 0x0?void 0x0:_0x36b9ee['min'])??this['computing'][_0x210f52(0x269,0x21e)][_0x3a27ea(0x271,0x2c8)]['min'],((_0x434bf9=this['options']['displayRange'])===null||_0x434bf9===void 0x0?void 0x0:_0x434bf9['max'])??this['computing']['windData']['speed']['max']);return _0x295b9f;},'particleHeight':()=>this['options'][_0x11eeb3(-0x4e,-0x19)]||0x0,'aspect':()=>this[_0x11eeb3(-0x4f,0x38)]['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{function _0x54aff3(_0xbddd2b,_0x2410a7){return _0x11eeb3(_0xbddd2b-0x3d5,_0x2410a7);}const _0x3eac0d={};_0x3eac0d[_0x54aff3(0x46a,0x4cd)]=0x1;function _0x1e4a67(_0x4e9d7e,_0x27dd02){return _0x11eeb3(_0x4e9d7e- -0xe4,_0x27dd02);}_0x3eac0d[_0x54aff3(0x42f,0x4b0)]=0x2;const _0x494dda=this['options']['lineWidth']||_0x3eac0d;return new Cartesian2(_0x494dda[_0x54aff3(0x46a,0x4ab)],_0x494dda[_0x1e4a67(-0x8a,-0xc)]);},'lineLength':()=>{const _0x56121b={};function _0x2ff24e(_0x3d87a0,_0x43789b){return _0x9286e9(_0x43789b-0xd5,_0x3d87a0);}_0x56121b[_0x5beebe(-0x47,-0x9b)]=0x14,_0x56121b[_0x2ff24e(0x10e,0xc4)]=0x64;const _0x3cbc5d=this[_0x2ff24e(0x14a,0x115)]['lineLength']||_0x56121b;function _0x5beebe(_0x3c4631,_0x1dcacc){return _0x9286e9(_0x1dcacc- -0xc5,_0x3c4631);}return new Cartesian2(_0x3cbc5d['min'],_0x3cbc5d[_0x5beebe(-0xa4,-0xd6)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x11eeb3(0x6b,0xda)](),'rawRenderState':this[_0x9286e9(-0x5,0x4e)](_0x10bfae)}),_0x3f286b={};return _0x3f286b[_0x11eeb3(-0x54,-0xb9)]=_0x347ce7,_0x3f286b;}['onParticlesTextureSizeChange'](){const _0x2544d8=this['createSegmentsGeometry']();this['primitives'][_0x4787cf(-0x6b,-0xe9)][_0x5ec12b(0x3c4,0x42d)]=_0x2544d8;const _0xf7b0b5={};function _0x4787cf(_0x372a53,_0x27235d){return _0x2c9552(_0x372a53-0x179,_0x27235d);}_0xf7b0b5['context']=this['context'],_0xf7b0b5['geometry']=_0x2544d8;function _0x5ec12b(_0xb8dcaa,_0x4062e4){return _0x2c9552(_0xb8dcaa-0x51f,_0x4062e4);}_0xf7b0b5[_0x5ec12b(0x381,0x336)]=this['primitives']['segments'][_0x5ec12b(0x381,0x3c5)],_0xf7b0b5['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x241b93=VertexArray[_0x4787cf(-0x52,-0xae)](_0xf7b0b5);this[_0x4787cf(0x1b,-0x6e)]['segments'][_0x5ec12b(0x39a,0x322)]&&(this[_0x5ec12b(0x3c1,0x3e0)][_0x4787cf(-0x6b,-0x3c)]['commandToExecute'][_0x4787cf(0x20,0x2)]=_0x241b93);}['onColorTableChange'](){function _0x3ad74a(_0x11dbe5,_0x5a187b){return _0x1537ff(_0x11dbe5- -0x1c,_0x5a187b);}this[_0x3ad74a(-0x1a2,-0x1dd)][_0x5ce856(-0x19c,-0x154)]();function _0x5ce856(_0x1b85a1,_0x159fa6){return _0x2c9552(_0x159fa6-0x58,_0x1b85a1);}this[_0x3ad74a(-0x1a2,-0x1ba)]=this[_0x3ad74a(-0x21a,-0x1a4)]();}['updateOptions'](_0x4fe671){const _0x2ac65a=_0x4fe671['colors']&&JSON['stringify'](_0x4fe671['colors'])!==JSON['stringify'](this[_0x3f32c0(-0x9e,-0x96)]['colors']);function _0x5507d7(_0x60c56a,_0x350ae2){return _0x1537ff(_0x350ae2-0x38a,_0x60c56a);}this['options']=deepMerge(_0x4fe671,this[_0x5507d7(0x2a9,0x280)]);function _0x3f32c0(_0x13c9e2,_0x37a4cc){return _0x1537ff(_0x13c9e2-0x6c,_0x37a4cc);}_0x2ac65a&&this['onColorTableChange']();}[_0x1537ff(-0x1d1,-0x170)](){function _0x5b92f7(_0x2465ad,_0x37bf6b){return _0x2c9552(_0x37bf6b-0x5d2,_0x2465ad);}function _0x30f24f(_0xc48a55,_0x391bf2){return _0x2c9552(_0x391bf2- -0xc4,_0xc48a55);}Object[_0x30f24f(-0x232,-0x276)](this[_0x30f24f(-0x203,-0x1dc)])['forEach'](_0x38382e=>{_0x38382e['destroy']();}),Object['values'](this['primitives'])[_0x30f24f(-0x169,-0x1e6)](_0x55757e=>{function _0xa007b8(_0x388515,_0x1c4c12){return _0x30f24f(_0x388515,_0x1c4c12-0x4aa);}_0x55757e[_0xa007b8(0x2a9,0x23a)]();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x1537ff(-0x125,-0x19c)];class WindParticleSystem{constructor(_0x5cd62e,_0x14186d,_0x8bc535,_0x4ac521,_0x2a687c){this[_0x3b6b2e(-0x20d,-0x1ae)]=_0x5cd62e,this['options']=_0x8bc535,this['viewerParameters']=_0x4ac521;function _0x458e31(_0x25640a,_0x5483d4){return _0x1537ff(_0x5483d4-0xc1,_0x25640a);}this[_0x458e31(-0x43,-0x72)]=new WindParticlesComputing(_0x5cd62e,_0x14186d,_0x8bc535,_0x4ac521,_0x2a687c);function _0x3b6b2e(_0x54da32,_0x57c201){return _0x2c9552(_0x57c201-0x31,_0x54da32);}this[_0x458e31(-0x15d,-0x13f)]=new WindParticlesRendering(_0x5cd62e,_0x8bc535,_0x4ac521,this[_0x458e31(-0x9a,-0x72)]),this[_0x3b6b2e(-0xb6,-0xfb)]();}['getPrimitives'](){function _0x3be8e9(_0x3e8de8,_0x13c863){return _0x1537ff(_0x3e8de8-0x677,_0x13c863);}function _0x47df5b(_0x425ac7,_0x5f05f6){return _0x1537ff(_0x425ac7-0x31e,_0x5f05f6);}const _0x32c562=[this['computing']['primitives'][_0x47df5b(0x208,0x23f)],this[_0x47df5b(0x1eb,0x21b)]['primitives'][_0x3be8e9(0x490,0x49c)],this[_0x47df5b(0x1eb,0x1b9)]['primitives'][_0x47df5b(0x215,0x1a8)],this['rendering'][_0x3be8e9(0x4f4,0x4a4)][_0x47df5b(0x115,0xb7)]];return _0x32c562;}['clearFramebuffers'](){function _0x470543(_0x1c4c9d,_0x12ffe7){return _0x1537ff(_0x1c4c9d-0x11c,_0x12ffe7);}const _0x273441=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x190d32(_0x60c08b,_0x1979e9){return _0x2c9552(_0x60c08b-0x1d7,_0x1979e9);}Object[_0x470543(-0x5a,-0x37)](this[_0x190d32(-0x4,0x62)][_0x470543(-0x21,-0x66)])['forEach'](_0x92cbe9=>{function _0x1fbbc3(_0x584b32,_0x3abf36){return _0x190d32(_0x3abf36-0x356,_0x584b32);}function _0x2066e2(_0x38e50c,_0x23b84d){return _0x470543(_0x38e50c-0x254,_0x23b84d);}_0x273441[_0x1fbbc3(0x42d,0x3e4)]=this[_0x2066e2(0x170,0x1d6)][_0x2066e2(0x233,0x25d)][_0x92cbe9],_0x273441[_0x1fbbc3(0x37a,0x3f3)](this['context']);});}['changeOptions'](_0x14bfe7){let _0x371223=![];_0x14bfe7[_0x15a66f(0x3e5,0x395)]&&this['options']['particlesTextureSize']!==_0x14bfe7['particlesTextureSize']&&(_0x371223=!![]);const _0x2557f4=deepMerge(_0x14bfe7,this[_0x15a66f(0x44c,0x3c9)]);if(_0x2557f4[_0x15a66f(0x348,0x395)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x2557f4;function _0x15a66f(_0x533db4,_0x364fe5){return _0x1537ff(_0x364fe5-0x4d3,_0x533db4);}this[_0x15a66f(0x29b,0x2d3)]['updateOptions'](_0x14bfe7);function _0xeae669(_0x22d2e4,_0x4869fd){return _0x1537ff(_0x22d2e4-0x2f5,_0x4869fd);}this[_0x15a66f(0x3d6,0x3a0)][_0xeae669(0xf4,0x16f)](_0x14bfe7),_0x371223&&(this[_0x15a66f(0x425,0x3a0)]['destroyParticlesTextures'](),this[_0x15a66f(0x385,0x3a0)][_0xeae669(0x13e,0x18f)](),this[_0x15a66f(0x26d,0x2d3)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x45a4b1){function _0x39eeda(_0x289ed8,_0x432c6b){return _0x1537ff(_0x432c6b-0x36b,_0x289ed8);}function _0x5241c8(_0x38f70a,_0x486298){return _0x2c9552(_0x38f70a-0x5db,_0x486298);}this['viewerParameters']=_0x45a4b1,this[_0x39eeda(0x20f,0x238)][_0x39eeda(0x29d,0x227)]=_0x45a4b1,this['rendering']['viewerParameters']=_0x45a4b1;}['destroy'](){this['computing']['destroy']();function _0x243b27(_0x28dfca,_0x22d99b){return _0x2c9552(_0x22d99b-0x185,_0x28dfca);}this['rendering'][_0x243b27(-0x48,-0x27)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x17aced={};_0x17aced[_0x2c9552(-0xfb,-0xa3)]=0x1,_0x17aced['max']=0x2;function _0x2c9552(_0x3607a2,_0x28093d){return _0x1d21(_0x3607a2- -0x29b,_0x28093d);}const _0x1c0007={};_0x1c0007['min']=0x14,_0x1c0007['max']=0x64;const _0x505734={};_0x505734['particlesTextureSize']=0x64,_0x505734['fixedHeight']=0x0,_0x505734['lineWidth']=_0x17aced,_0x505734[_0x2c9552(-0xf5,-0xec)]=_0x1c0007,_0x505734['speedFactor']=0x1,_0x505734['dropRate']=0.003,_0x505734['dropRateBump']=0.001,_0x505734['colors']=[_0x2c9552(-0x1bb,-0x1ce)],_0x505734['flipY']=![],_0x505734[_0x1537ff(-0x1a5,-0x208)]=!![];const DEF_OPTIONS=_0x505734;class WindLayer extends BaseLayer$1{constructor(_0x12598c={}){_0x12598c={...DEF_OPTIONS,..._0x12598c};function _0x573a79(_0x211fe5,_0x534baf){return _0x2c9552(_0x534baf- -0x142,_0x211fe5);}super(_0x12598c),this[_0x573a79(-0x270,-0x2ae)](_0x12598c,_0x12598c);}get['layer'](){function _0x367a08(_0x3c567a,_0x270f0a){return _0x2c9552(_0x270f0a-0x2cc,_0x3c567a);}return this[_0x367a08(0x128,0x16e)];}get[_0x1537ff(-0x1ae,-0x1d8)](){function _0x5cd382(_0x5ef06f,_0x51a857){return _0x1537ff(_0x51a857-0x46,_0x5ef06f);}return this['options'][_0x5cd382(-0xf1,-0x168)];}set[_0x2c9552(-0x189,-0x1d3)](_0x22fc21){function _0x29c009(_0x9635c7,_0x4b6e1c){return _0x1537ff(_0x4b6e1c-0x5b9,_0x9635c7);}this[_0x29c009(0x52a,0x4af)]['data']=_0x22fc21;function _0x10a560(_0x50108a,_0x13b4be){return _0x1537ff(_0x13b4be-0xcc,_0x50108a);}this[_0x29c009(0x3c0,0x419)](_0x22fc21);}get[_0x1537ff(-0x108,-0x159)](){function _0x4d07a5(_0x370e55,_0x3be27d){return _0x2c9552(_0x3be27d- -0x148,_0x370e55);}return this[_0x4d07a5(-0x1e5,-0x22d)]['colors'];}set['colors'](_0xcc5294){function _0x1b4f8c(_0x5c08ff,_0x4b2a36){return _0x1537ff(_0x5c08ff- -0x1b,_0x4b2a36);}this[_0x3b48d3(0x3f8,0x3a7)]['colors']=_0xcc5294;function _0x3b48d3(_0x168744,_0x105307){return _0x1537ff(_0x168744-0x502,_0x105307);}const _0x2560c5={};_0x2560c5['colors']=_0xcc5294,this['_setOptionsHook'](this[_0x1b4f8c(-0x125,-0xaa)],_0x2560c5);}[_0x2c9552(-0x1e6,-0x24c)](){}[_0x2c9552(-0x14f,-0xd2)](){this[_0xd5abbf(-0x117,-0x185)]=this['_map'][_0xd5abbf(-0x1c5,-0x185)],this['camera']=this['_map']['camera'];this[_0x43594f(-0x33,-0x2d)]['data']&&this['setData'](this['options'][_0x43594f(-0x10f,-0xd1)]);function _0xd5abbf(_0xad6c66,_0xc7f301){return _0x2c9552(_0xc7f301- -0x4c,_0xad6c66);}if(!this['windData'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0xd5abbf(-0x102,-0x185)]['mode']},this[_0x43594f(-0x4d,-0x41)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this['primitives']=this['particleSystem'][_0x43594f(-0x29,-0x53)](),this['primitives'][_0x43594f(-0x9a,-0x6a)](_0x336cbb=>{this['scene']['primitives']['add'](_0x336cbb);}),this['camera']['percentageChanged']=0.01,this['camera']['changed'][_0xd5abbf(-0x162,-0x127)](this['updateViewerParameters']['bind'](this));function _0x43594f(_0x591b0b,_0x241e72){return _0x2c9552(_0x241e72-0xb8,_0x591b0b);}this['scene']['morphComplete']['addEventListener'](this[_0x43594f(0x3e,-0x41)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){this[_0x3df84d(0x260,0x2ea)][_0x3df84d(0x22c,0x1ca)][_0x5098d5(0x17b,0x1e6)](this['updateViewerParameters'][_0x3df84d(0x295,0x289)](this)),this['scene'][_0x5098d5(0xf0,0x128)][_0x5098d5(0x1dc,0x1e6)](this['updateViewerParameters'][_0x5098d5(0x1cd,0x1d4)](this));function _0x5098d5(_0x178be4,_0x4b4241){return _0x1537ff(_0x4b4241-0x2ed,_0x178be4);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this));function _0x3df84d(_0x194049,_0x16dd1b){return _0x2c9552(_0x194049-0x389,_0x16dd1b);}this['primitives']&&(this['primitives'][_0x3df84d(0x267,0x21a)](_0xe879db=>{function _0x4c34b0(_0x56dcd9,_0x53d57b){return _0x3df84d(_0x53d57b- -0x16a,_0x56dcd9);}this['scene'][_0x4c34b0(0xdf,0xc1)]['remove'](_0xe879db);}),delete this['primitives']),this[_0x5098d5(0xf2,0x13e)]&&(this['particleSystem'][_0x5098d5(0x17f,0x11c)](),delete this[_0x3df84d(0x1ff,0x27b)]);}['setData'](_0x127077,_0x988ae5){this[_0x348142(-0xc8,-0x13f)]=this[_0x348142(-0x22a,-0x1b3)](_0x127077);function _0x13c1c6(_0x43aeff,_0x3707f3){return _0x2c9552(_0x3707f3-0x84,_0x43aeff);}if(_0x988ae5){this['_removedHook'](),this['_addedHook']();return;}function _0x348142(_0x1e50d2,_0x3c3712){return _0x1537ff(_0x3c3712- -0x32,_0x1e50d2);}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this[_0x348142(-0x168,-0x13f)]),this[_0x13c1c6(-0xd0,-0xb5)]['requestRender']()):this['_addedHook']();}[_0x1537ff(-0x191,-0x16b)](_0x3284b6,_0x485ceb){function _0x4474a4(_0x550f44,_0x509373){return _0x2c9552(_0x550f44-0xd3,_0x509373);}function _0x4fba4(_0x4ea646,_0x455419){return _0x2c9552(_0x4ea646-0x251,_0x455419);}this[_0x4474a4(-0xb7,-0x134)]&&(this[_0x4fba4(0xc7,0x61)]['changeOptions'](_0x485ceb),this['scene'][_0x4fba4(0xc6,0x6c)]());}['processWindData'](_0x573104){var _0x1362c5,_0x8bba7d;const _0x410085={..._0x573104},_0x21efeb=_0x410085;function _0x3ecb2e(_0x20ae6d,_0x4670c9){return _0x2c9552(_0x20ae6d-0x229,_0x4670c9);}function _0x7c7fda(_0x286a83,_0x33ce7e){return _0x2c9552(_0x286a83- -0x20,_0x33ce7e);}!_0x21efeb[_0x7c7fda(-0x130,-0xb2)]&&_0x21efeb['rows']&&(_0x21efeb[_0x3ecb2e(0x119,0x11a)]=_0x21efeb['rows']);!_0x21efeb[_0x7c7fda(-0x13d,-0xdb)]&&_0x21efeb[_0x3ecb2e(0x65,-0x1b)]&&(_0x21efeb['width']=_0x21efeb['cols']);!_0x21efeb[_0x7c7fda(-0x132,-0xfc)]&&(_0x21efeb['bounds']={'west':_0x21efeb['xmin'],'south':_0x21efeb['ymin'],'east':_0x21efeb[_0x7c7fda(-0x1b1,-0x149)],'north':_0x21efeb['ymax']});if(!_0x21efeb['u']){const _0x3bba72={};_0x3bba72['array']=_0x573104[_0x7c7fda(-0x1b0,-0x1c7)],_0x3bba72['min']=_0x573104[_0x3ecb2e(0xd6,0x4d)],_0x3bba72['max']=_0x573104['umax'],_0x21efeb['u']=_0x3bba72;}if(!_0x21efeb['v']){const _0x1610e4={};_0x1610e4['array']=_0x573104['vdata'],_0x1610e4[_0x3ecb2e(0x12e,0x157)]=_0x573104['vmin'],_0x1610e4['max']=_0x573104['vmax'],_0x21efeb['v']=_0x1610e4;}if(((_0x1362c5=_0x21efeb[_0x3ecb2e(0x7b,0x3f)])===null||_0x1362c5===void 0x0?void 0x0:_0x1362c5[_0x7c7fda(-0x11b,-0xc3)])===undefined||((_0x8bba7d=_0x21efeb['speed'])===null||_0x8bba7d===void 0x0?void 0x0:_0x8bba7d[_0x7c7fda(-0x156,-0x122)])===undefined||_0x21efeb[_0x3ecb2e(0x7b,0xbb)]['array']===undefined){const _0x56ea54={'array':new Float32Array(_0x21efeb['u'][_0x3ecb2e(0x12a,0x1b3)]['length']),'min':Number['MAX_VALUE'],'max':Number[_0x3ecb2e(0x150,0xff)]};for(let _0x575dfd=0x0;_0x575dfd<_0x21efeb['u']['array']['length'];_0x575dfd++){_0x56ea54[_0x3ecb2e(0x12a,0x18d)][_0x575dfd]=Math[_0x3ecb2e(0xc4,0x13d)](_0x21efeb['u'][_0x3ecb2e(0x12a,0xd5)][_0x575dfd]*_0x21efeb['u'][_0x3ecb2e(0x12a,0x177)][_0x575dfd]+_0x21efeb['v']['array'][_0x575dfd]*_0x21efeb['v'][_0x7c7fda(-0x11f,-0x15f)][_0x575dfd]),_0x56ea54['array'][_0x575dfd]!==0x0&&(_0x56ea54['min']=Math[_0x7c7fda(-0x11b,-0xd7)](_0x56ea54[_0x3ecb2e(0x12e,0xd8)],_0x56ea54['array'][_0x575dfd]),_0x56ea54['max']=Math['max'](_0x56ea54[_0x3ecb2e(0xf3,0xaa)],_0x56ea54[_0x3ecb2e(0x12a,0x151)][_0x575dfd]));}_0x21efeb['speed']=_0x56ea54;}return _0x21efeb;}[_0x2c9552(-0xf9,-0x153)](){var _0x5bdd81;const _0x510a69=this[_0x3467d7(0x25e,0x249)];if(!_0x510a69)return;const _0x344b60=_0x510a69[_0x2af71d(0x2bc,0x321)],_0x57b883={};_0x57b883['x']=0x0,_0x57b883['y']=0x0;const _0x3a2465={};_0x3a2465['x']=0x0,_0x3a2465['y']=_0x344b60['clientHeight'];const _0x2f8529={};_0x2f8529['x']=_0x344b60['clientWidth'];function _0x2af71d(_0x5a7731,_0x4afb7b){return _0x1537ff(_0x4afb7b-0x4bb,_0x5a7731);}function _0x3467d7(_0x198fe,_0xe21458){return _0x2c9552(_0xe21458-0x382,_0x198fe);}_0x2f8529['y']=0x0;const _0xbf1d07={};_0xbf1d07['x']=_0x344b60['clientWidth'],_0xbf1d07['y']=_0x344b60[_0x2af71d(0x423,0x3a0)];const _0x719a19=[_0x57b883,_0x3a2465,_0x2f8529,_0xbf1d07];let _0x57f38a=0xb4,_0x18c00c=-0xb4,_0x59de1f=0x5a,_0x18c4d3=-0x5a,_0x446dd5=![];for(const _0x3f64e7 of _0x719a19){const _0xe5cea0=_0x510a69['camera'][_0x3467d7(0x212,0x275)](new Cesium$1['Cartesian2'](_0x3f64e7['x'],_0x3f64e7['y']),_0x510a69[_0x2af71d(0x2ac,0x319)]['ellipsoid']);if(!_0xe5cea0){_0x446dd5=!![];break;}const _0x412420=_0x510a69[_0x3467d7(0x1b2,0x205)]['ellipsoid']['cartesianToCartographic'](_0xe5cea0),_0x3ec94d=Cesium$1['Math']['toDegrees'](_0x412420[_0x2af71d(0x35f,0x34a)]),_0x5e18ad=Cesium$1[_0x3467d7(0x1fe,0x1ee)][_0x2af71d(0x419,0x3c1)](_0x412420[_0x2af71d(0x258,0x2ca)]);_0x57f38a=Math['min'](_0x57f38a,_0x3ec94d),_0x18c00c=Math[_0x2af71d(0x322,0x360)](_0x18c00c,_0x3ec94d),_0x59de1f=Math[_0x2af71d(0x328,0x39b)](_0x59de1f,_0x5e18ad),_0x18c4d3=Math['max'](_0x18c4d3,_0x5e18ad);}if(!_0x446dd5){const _0xfb3a16=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x3467d7(0x2d4,0x270)]['west'],_0x57f38a),Math['min'](this['windData']['bounds'][_0x3467d7(0x1de,0x1cc)],_0x18c00c)),_0x5d41a4=new Cesium$1[(_0x3467d7(0x203,0x26d))](Math['max'](this[_0x2af71d(0x3d1,0x3ae)][_0x3467d7(0x215,0x270)]['south'],_0x59de1f),Math[_0x2af71d(0x3c7,0x39b)](this[_0x3467d7(0x2a5,0x29a)]['bounds'][_0x2af71d(0x39f,0x36b)],_0x18c4d3)),_0x370c22=(_0xfb3a16['y']-_0xfb3a16['x'])*0.05,_0x5a5b1e=(_0x5d41a4['y']-_0x5d41a4['x'])*0.05;_0xfb3a16['x']=Math[_0x2af71d(0x34b,0x360)](this[_0x3467d7(0x300,0x29a)]['bounds'][_0x3467d7(0x1e8,0x1e5)],_0xfb3a16['x']-_0x370c22),_0xfb3a16['y']=Math['min'](this[_0x2af71d(0x405,0x3ae)]['bounds']['east'],_0xfb3a16['y']+_0x370c22),_0x5d41a4['x']=Math['max'](this[_0x3467d7(0x23f,0x29a)]['bounds'][_0x3467d7(0x1ca,0x1e0)],_0x5d41a4['x']-_0x5a5b1e),_0x5d41a4['y']=Math[_0x2af71d(0x3b4,0x39b)](this[_0x3467d7(0x228,0x29a)]['bounds']['north'],_0x5d41a4['y']+_0x5a5b1e),this['viewerParameters']['lonRange']=_0xfb3a16,this['viewerParameters']['latRange']=_0x5d41a4;const _0x2cc3ff=this[_0x3467d7(0x217,0x29a)]['bounds']['east']-this['windData'][_0x3467d7(0x273,0x270)]['west'],_0xab4115=this['windData']['bounds'][_0x3467d7(0x25b,0x257)]-this['windData'][_0x3467d7(0x293,0x270)]['south'],_0x32a64f=(_0xfb3a16['y']-_0xfb3a16['x'])/_0x2cc3ff,_0x4aada5=(_0x5d41a4['y']-_0x5d41a4['x'])/_0xab4115,_0x2f6cf7=Math['min'](_0x32a64f,_0x4aada5),_0x25a9f5=0x3e8*_0x2f6cf7;_0x25a9f5>0x0&&(this[_0x3467d7(0x2d1,0x263)]['pixelSize']=Math[_0x2af71d(0x31a,0x360)](0x0,Math['min'](0x3e8,_0x25a9f5)));}this['viewerParameters'][_0x2af71d(0x29c,0x31c)]=this['scene']['mode'],(_0x5bdd81=this[_0x3467d7(0x1ab,0x1f8)])===null||_0x5bdd81===void 0x0||_0x5bdd81[_0x2af71d(0x367,0x367)](this['viewerParameters']);}['getDataAtLonLat'](_0x2a0523,_0x2becd2){const {bounds:_0x4dc9cc,width:_0x2d6ff7,height:_0x4a62b1,u:_0x3ce1be,v:_0x757ef4,speed:_0x6ae10d}=this['windData'],{flipY:_0x16b55d}=this[_0x3b96f9(0x2c6,0x26a)];if(_0x2a0523<_0x4dc9cc['west']||_0x2a0523>_0x4dc9cc[_0x3b96f9(0x1f5,0x205)]||_0x2becd2<_0x4dc9cc['south']||_0x2becd2>_0x4dc9cc['north'])return null;function _0x3b96f9(_0x2fe3d6,_0x36d2b3){return _0x2c9552(_0x2fe3d6-0x3ab,_0x36d2b3);}const _0x1f9d97=(_0x2a0523-_0x4dc9cc['west'])/(_0x4dc9cc['east']-_0x4dc9cc[_0x2c55d7(0x18f,0x1f5)])*(_0x2d6ff7-0x1);let _0x5c42dd=(_0x2becd2-_0x4dc9cc['south'])/(_0x4dc9cc['north']-_0x4dc9cc['south'])*(_0x4a62b1-0x1);_0x16b55d&&(_0x5c42dd=_0x4a62b1-0x1-_0x5c42dd);const _0x5d9cc2=Math['floor'](_0x1f9d97),_0x2a5e17=Math[_0x3b96f9(0x1da,0x1ff)](_0x5c42dd),_0x538ab3=Math['floor'](_0x1f9d97),_0x118d74=Math[_0x3b96f9(0x2b0,0x2c2)](_0x538ab3+0x1,_0x2d6ff7-0x1),_0x32772b=Math['floor'](_0x5c42dd),_0x5e8f41=Math[_0x3b96f9(0x2b0,0x284)](_0x32772b+0x1,_0x4a62b1-0x1),_0x428302=_0x1f9d97-_0x538ab3,_0x8b0fac=_0x5c42dd-_0x32772b,_0x52d4ed=_0x2a5e17*_0x2d6ff7+_0x5d9cc2,_0x1da5b9=_0x32772b*_0x2d6ff7+_0x538ab3,_0x43c4b1=_0x32772b*_0x2d6ff7+_0x118d74,_0x3308f1=_0x5e8f41*_0x2d6ff7+_0x538ab3,_0x5b6fe4=_0x5e8f41*_0x2d6ff7+_0x118d74,_0xa54796=_0x3ce1be['array'][_0x1da5b9],_0x182942=_0x3ce1be[_0x2c55d7(0x28f,0x293)][_0x43c4b1],_0xd1834=_0x3ce1be[_0x2c55d7(0x2cb,0x293)][_0x3308f1],_0x29a6cd=_0x3ce1be[_0x2c55d7(0x2d7,0x293)][_0x5b6fe4],_0x4fd56e=(0x1-_0x428302)*(0x1-_0x8b0fac)*_0xa54796+_0x428302*(0x1-_0x8b0fac)*_0x182942+(0x1-_0x428302)*_0x8b0fac*_0xd1834+_0x428302*_0x8b0fac*_0x29a6cd,_0x28a8df=_0x757ef4['array'][_0x1da5b9],_0x243588=_0x757ef4['array'][_0x43c4b1],_0xb1a1e7=_0x757ef4[_0x2c55d7(0x2b0,0x293)][_0x3308f1],_0x205923=_0x757ef4[_0x3b96f9(0x2ac,0x31a)][_0x5b6fe4],_0x3b5072=(0x1-_0x428302)*(0x1-_0x8b0fac)*_0x28a8df+_0x428302*(0x1-_0x8b0fac)*_0x243588+(0x1-_0x428302)*_0x8b0fac*_0xb1a1e7+_0x428302*_0x8b0fac*_0x205923,_0x994285=Math[_0x3b96f9(0x246,0x1eb)](_0x4fd56e*_0x4fd56e+_0x3b5072*_0x3b5072),_0x5e4166={};_0x5e4166['u']=_0x3ce1be[_0x2c55d7(0x264,0x293)][_0x52d4ed],_0x5e4166['v']=_0x757ef4['array'][_0x52d4ed],_0x5e4166[_0x3b96f9(0x1fd,0x270)]=_0x6ae10d['array'][_0x52d4ed];const _0x41357d={};_0x41357d['u']=_0x4fd56e,_0x41357d['v']=_0x3b5072,_0x41357d[_0x3b96f9(0x1fd,0x214)]=_0x994285;const _0x4b622f={};_0x4b622f['original']=_0x5e4166,_0x4b622f['interpolated']=_0x41357d;function _0x2c55d7(_0x3b73d9,_0xce609f){return _0x1537ff(_0xce609f-0x3b7,_0x3b73d9);}return _0x4b622f;}}mars3d__namespace['LayerUtil'][_0x2c9552(-0x174,-0x123)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x24fef3(0x195,0x1e8)]=null,this[_0x5e17e8(0x10c,0x17b)]=null,this[_0x24fef3(0x1de,0x260)]=null,this[_0x24fef3(0x124,0xf0)]=null;function _0x5e17e8(_0x3ac418,_0x2ce5e4){return _0x2c9552(_0x3ac418-0x2e2,_0x2ce5e4);}function _0x24fef3(_0x4fb043,_0x5bb77a){return _0x1537ff(_0x4fb043-0x323,_0x5bb77a);}this['speed']=null;}['destroy'](){for(const _0x29be3a in this){delete this[_0x29be3a];}}}class CanvasWindField{constructor(_0xe2e813){this['setOptions'](_0xe2e813);}get[_0x1537ff(-0xff,-0x119)](){return this['_speedRate'];}set[_0x1537ff(-0xff,-0xd5)](_0x1ce1cd){function _0x38204c(_0x12ba4b,_0xc9bd93){return _0x2c9552(_0xc9bd93-0x115,_0x12ba4b);}this[_0x38204c(-0x72,-0xa3)]=(0x64-(_0x1ce1cd>0x63?0x63:_0x1ce1cd))*0x64;function _0x5c82a1(_0x3e85c4,_0x1a714c){return _0x1537ff(_0x3e85c4-0xb,_0x1a714c);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x5c82a1(-0x162,-0x1e4)]-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0x4ca0f0(_0x9d77ab,_0x1defcc){return _0x1537ff(_0x9d77ab- -0xb3,_0x1defcc);}return this[_0x4ca0f0(-0x23f,-0x2c5)];}set['maxAge'](_0x35fb29){this['_maxAge']=_0x35fb29;}[_0x1537ff(-0x1fc,-0x182)](_0x58e0de){this['options']=_0x58e0de;function _0x5a04a7(_0x4fb18c,_0x27e059){return _0x2c9552(_0x27e059-0x451,_0x4fb18c);}this['maxAge']=_0x58e0de['maxAge']||0x78;function _0x496e85(_0x30e582,_0x554107){return _0x2c9552(_0x554107-0x67b,_0x30e582);}this['speedRate']=_0x58e0de['speedRate']||0x32,this['particles']=[];const _0x55135f=_0x58e0de['particlesNumber']||0x1000;for(let _0x41777f=0x0;_0x41777f<_0x55135f;_0x41777f++){const _0xdf2c84=this[_0x5a04a7(0x36d,0x335)](new CanvasParticle());this[_0x496e85(0x59d,0x59c)]['push'](_0xdf2c84);}}[_0x1537ff(-0x1ad,-0x1f3)](_0x392833){this['rows']=_0x392833[_0x1f294e(-0x217,-0x1d3)];function _0x1f294e(_0x5b1ef9,_0x57cd57){return _0x2c9552(_0x5b1ef9- -0x49,_0x57cd57);}this['cols']=_0x392833['cols'],this['xmin']=_0x392833['xmin'];function _0x47d60c(_0x3c3e6f,_0x179840){return _0x2c9552(_0x179840-0x1c6,_0x3c3e6f);}this['xmax']=_0x392833[_0x47d60c(0x51,0x35)],this['ymin']=_0x392833['ymin'],this[_0x47d60c(0xa3,0x7e)]=_0x392833['ymax'],this['grid']=[];const _0x5794b0=_0x392833['udata'],_0x547976=_0x392833[_0x47d60c(0xd,-0x23)];let _0x5cbf6f=![];_0x5794b0[_0x47d60c(-0x55,0xc)]===this['rows']&&_0x5794b0[0x0]['length']===this['cols']&&(_0x5cbf6f=!![]);let _0x317e7a=0x0,_0x2d89a6=null,_0x55abe0=null;for(let _0x1ef003=0x0;_0x1ef003<this['rows'];_0x1ef003++){_0x2d89a6=[];for(let _0x3c8000=0x0;_0x3c8000<this['cols'];_0x3c8000++,_0x317e7a++){_0x5cbf6f?_0x55abe0=this['_calcUV'](_0x5794b0[_0x1ef003][_0x3c8000],_0x547976[_0x1ef003][_0x3c8000]):_0x55abe0=this['_calcUV'](_0x5794b0[_0x317e7a],_0x547976[_0x317e7a]),_0x2d89a6[_0x47d60c(0x4c,-0x1b)](_0x55abe0);}this[_0x1f294e(-0x22b,-0x250)]['push'](_0x2d89a6);}!this['options'][_0x1f294e(-0x181,-0x153)]&&this['grid']['reverse']();}['clear'](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this[_0x2c5794(0x1b2,0x12b)],delete this['ymin'],delete this[_0x42c0b6(-0x72,-0x4b)];function _0x2c5794(_0x446ed5,_0x1730d1){return _0x1537ff(_0x1730d1-0x2e1,_0x446ed5);}delete this['grid'];function _0x42c0b6(_0x4b1229,_0x3b0d66){return _0x1537ff(_0x4b1229-0xfb,_0x3b0d66);}delete this['particles'];}['toGridXY'](_0x3ace4c,_0x31b7e3){function _0x88aa7d(_0x2d166a,_0x40bc8d){return _0x2c9552(_0x2d166a- -0xae,_0x40bc8d);}function _0x4c5b62(_0x45e216,_0x23eb0a){return _0x2c9552(_0x23eb0a-0x2c9,_0x45e216);}const _0x24d809=(_0x3ace4c-this['xmin'])/(this['xmax']-this[_0x4c5b62(0x1d5,0x1d6)])*(this['cols']-0x1),_0x197fc6=(this[_0x4c5b62(0x19b,0x181)]-_0x31b7e3)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x24d809,_0x197fc6];}['getUVByXY'](_0x220e15,_0x176f93){if(_0x220e15<0x0||_0x220e15>=this[_0x4420de(0x4a7,0x494)]||_0x176f93>=this[_0x16d12c(0x324,0x2ac)])return[0x0,0x0,0x0];const _0x11a64d=Math['floor'](_0x220e15),_0x4bc74f=Math[_0x16d12c(0x321,0x2a9)](_0x176f93);if(_0x11a64d===_0x220e15&&_0x4bc74f===_0x176f93)return this[_0x16d12c(0x2e8,0x298)][_0x176f93][_0x220e15];const _0x583cb7=_0x11a64d+0x1,_0x47237c=_0x4bc74f+0x1;function _0x16d12c(_0x321423,_0x3ff239){return _0x2c9552(_0x3ff239-0x47a,_0x321423);}function _0x4420de(_0x29e188,_0x207076){return _0x1537ff(_0x207076-0x67d,_0x29e188);}const _0x5a13f0=this['getUVByXY'](_0x11a64d,_0x4bc74f),_0x1fb159=this[_0x4420de(0x4d6,0x530)](_0x583cb7,_0x4bc74f),_0x272fec=this['getUVByXY'](_0x11a64d,_0x47237c),_0x5858a2=this['getUVByXY'](_0x583cb7,_0x47237c);let _0x3de705=null;try{_0x3de705=this['_bilinearInterpolation'](_0x220e15-_0x11a64d,_0x176f93-_0x4bc74f,_0x5a13f0,_0x1fb159,_0x272fec,_0x5858a2);}catch(_0x3d9538){console[_0x16d12c(0x355,0x349)](_0x220e15,_0x176f93);}return _0x3de705;}[_0x1537ff(-0x138,-0x11e)](_0x479b7d,_0x4a871e,_0x4a5779,_0x19de7d,_0x1c8b42,_0x4c60ad){const _0x1ea921=0x1-_0x479b7d,_0x4d4a9b=0x1-_0x4a871e,_0x7b4d8e=_0x1ea921*_0x4d4a9b,_0x3e9990=_0x479b7d*_0x4d4a9b,_0x29861f=_0x1ea921*_0x4a871e,_0x1528af=_0x479b7d*_0x4a871e,_0x4dbd06=_0x4a5779[0x0]*_0x7b4d8e+_0x19de7d[0x0]*_0x3e9990+_0x1c8b42[0x0]*_0x29861f+_0x4c60ad[0x0]*_0x1528af,_0xdc93d5=_0x4a5779[0x1]*_0x7b4d8e+_0x19de7d[0x1]*_0x3e9990+_0x1c8b42[0x1]*_0x29861f+_0x4c60ad[0x1]*_0x1528af;return this['_calcUV'](_0x4dbd06,_0xdc93d5);}[_0x1537ff(-0x146,-0x1a3)](_0x454fff,_0x22abd3){return[+_0x454fff,+_0x22abd3,Math['sqrt'](_0x454fff*_0x454fff+_0x22abd3*_0x22abd3)];}[_0x1537ff(-0x1ce,-0x1eb)](_0x4d544f,_0x1322cb){if(!this[_0x4c981b(0x580,0x53c)](_0x4d544f,_0x1322cb))return null;const _0x23068b=this[_0x4c981b(0x528,0x52d)](_0x4d544f,_0x1322cb);function _0x4c981b(_0x1f902d,_0x14f797){return _0x1537ff(_0x14f797-0x64c,_0x1f902d);}const _0x4401fc=this['getUVByXY'](_0x23068b[0x0],_0x23068b[0x1]);function _0x3a26fb(_0x2dc10b,_0x4ea914){return _0x1537ff(_0x2dc10b-0x45a,_0x4ea914);}return _0x4401fc;}[_0x2c9552(-0xeb,-0xdf)](_0x493a5c,_0x43fcf2){function _0x4880ff(_0x31a5ec,_0x50e6cf){return _0x1537ff(_0x31a5ec-0x570,_0x50e6cf);}function _0x2ba7f6(_0x5f4f64,_0x559bc7){return _0x1537ff(_0x559bc7-0x1c7,_0x5f4f64);}return _0x493a5c>=this[_0x2ba7f6(0x26,0xaf)]&&_0x493a5c<=this['xmax']&&_0x43fcf2>=this[_0x2ba7f6(-0x21,0x32)]&&_0x43fcf2<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x1702e5(_0xde95b2,_0x364d3c){return _0x1537ff(_0xde95b2-0x60,_0x364d3c);}const _0x3f2f0f=fRandomByfloat(this['xmin'],this['xmax']),_0x5b95ea=fRandomByfloat(this['ymin'],this['ymax']),_0x364852={};_0x364852[_0x46bafe(0x500,0x547)]=_0x5b95ea,_0x364852[_0x1702e5(-0x13b,-0x18b)]=_0x3f2f0f;function _0x46bafe(_0x428958,_0x2fe1f5){return _0x1537ff(_0x428958-0x68e,_0x2fe1f5);}return _0x364852;}['getParticles'](){function _0x21fd17(_0x346c79,_0x19c584){return _0x2c9552(_0x19c584-0x433,_0x346c79);}function _0x321a02(_0x8ae14e,_0x1641b0){return _0x1537ff(_0x1641b0- -0x115,_0x8ae14e);}let _0x50b559,_0x5a332c,_0xe29e42;for(let _0x36bac7=0x0,_0x1f04fd=this[_0x21fd17(0x342,0x354)][_0x321a02(-0x2e9,-0x2f4)];_0x36bac7<_0x1f04fd;_0x36bac7++){let _0x587434=this['particles'][_0x36bac7];_0x587434['age']<=0x0&&(_0x587434=this[_0x321a02(-0x22c,-0x256)](_0x587434));if(_0x587434[_0x321a02(-0x374,-0x314)]>0x0){const _0x25bf73=_0x587434['tlng'],_0x3fb39e=_0x587434[_0x321a02(-0x223,-0x25a)];_0xe29e42=this['getUVByPoint'](_0x25bf73,_0x3fb39e),_0xe29e42?(_0x50b559=_0x25bf73+this[_0x21fd17(0x2b8,0x30c)][0x0]*_0xe29e42[0x0],_0x5a332c=_0x3fb39e+this[_0x21fd17(0x281,0x30c)][0x1]*_0xe29e42[0x1],_0x587434['lng']=_0x25bf73,_0x587434[_0x21fd17(0x256,0x2ca)]=_0x3fb39e,_0x587434[_0x21fd17(0x1d4,0x25d)]=_0x50b559,_0x587434[_0x321a02(-0x28a,-0x25a)]=_0x5a332c,_0x587434['speed']=_0xe29e42[0x2],_0x587434['age']--):_0x587434['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x1f38aa){let _0x2f46ba,_0xd8b6e3;for(let _0x28bf08=0x0;_0x28bf08<0x1e;_0x28bf08++){_0x2f46ba=this['getRandomLatLng'](),_0xd8b6e3=this['getUVByPoint'](_0x2f46ba[_0x1caaee(0xed,0x15e)],_0x2f46ba[_0x1caaee(0x149,0x16b)]);if(_0xd8b6e3&&_0xd8b6e3[0x2]>0x0)break;}if(!_0xd8b6e3)return _0x1f38aa;function _0x59ac50(_0x18be2a,_0x20768f){return _0x1537ff(_0x18be2a- -0x94,_0x20768f);}const _0x2abeff=_0x2f46ba[_0x1caaee(0x121,0x15e)]+this['_calc_speedRate'][0x0]*_0xd8b6e3[0x0];function _0x1caaee(_0x167bd7,_0x2f7986){return _0x2c9552(_0x2f7986-0x2d4,_0x167bd7);}const _0x426bda=_0x2f46ba['lat']+this['_calc_speedRate'][0x1]*_0xd8b6e3[0x1];return _0x1f38aa[_0x59ac50(-0x22f,-0x21e)]=_0x2f46ba['lng'],_0x1f38aa[_0x59ac50(-0x222,-0x281)]=_0x2f46ba[_0x1caaee(0x1cd,0x16b)],_0x1f38aa[_0x1caaee(0x105,0xfe)]=_0x2abeff,_0x1f38aa['tlat']=_0x426bda,_0x1f38aa['age']=Math['round'](0xa+Math[_0x59ac50(-0x1d4,-0x1d1)]()*this[_0x1caaee(0xf2,0x11f)]),_0x1f38aa['speed']=_0xd8b6e3[0x2],_0x1f38aa;}['destroy'](){for(const _0x532d9c in this){delete this[_0x532d9c];}}}function fRandomByfloat(_0x3c92fe,_0x326d4d){function _0x2a627a(_0x31944e,_0x199d68){return _0x1537ff(_0x31944e-0x422,_0x199d68);}return _0x3c92fe+Math[_0x2a627a(0x2e2,0x2d8)]()*(_0x326d4d-_0x3c92fe);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0xb1fdeb={}){super(_0xb1fdeb),this['_setOptionsHook'](_0xb1fdeb);function _0x418cda(_0x3e7e14,_0xd8dd7c){return _0x1537ff(_0x3e7e14-0x458,_0xd8dd7c);}this[_0x418cda(0x2be,0x290)]=null,_0xb1fdeb['colors']&&_0xb1fdeb['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0xb1fdeb));}['_setOptionsHook'](_0x1f3d38,_0x2a78ea){this[_0x415dab(0x153,0x1ae)]=0x3e8/(_0x1f3d38[_0x1fc404(0x2e,0x6a)]||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x1f3d38[_0x415dab(0x143,0xbb)]||'#ffffff',this['lineWidth']=_0x1f3d38['lineWidth']||0x1,this['fixedHeight']=_0x1f3d38[_0x1fc404(-0xbe,-0xc2)]??0x0,this['flipY']=_0x1f3d38['flipY']??![];function _0x415dab(_0x204449,_0x5d8448){return _0x2c9552(_0x204449-0x320,_0x5d8448);}function _0x1fc404(_0x508ba3,_0x4e6990){return _0x1537ff(_0x508ba3-0x145,_0x4e6990);}this[_0x415dab(0x13d,0x196)]&&this['windField']['setOptions'](_0x1f3d38);}get['layer'](){return this['canvas'];}get[_0x2c9552(-0x1aa,-0x17d)](){function _0x27bb47(_0x324028,_0x59f616){return _0x2c9552(_0x59f616-0x60,_0x324028);}function _0x202d8b(_0x2b89a6,_0x1f1dfa){return _0x1537ff(_0x2b89a6- -0x7,_0x1f1dfa);}return this[_0x27bb47(-0x2,-0x86)]['scene'][_0x202d8b(-0x1a1,-0x18f)][_0x27bb47(-0x19a,-0x148)];}get[_0x1537ff(-0x10f,-0xbb)](){function _0x3caf89(_0x64d51,_0x161686){return _0x1537ff(_0x161686- -0x19,_0x64d51);}function _0x1c6bce(_0x9ab9f3,_0x1a9522){return _0x2c9552(_0x9ab9f3-0x55,_0x1a9522);}return this[_0x1c6bce(-0x91,-0xc1)][_0x3caf89(-0x1a5,-0x177)]['canvas'][_0x1c6bce(-0xa1,-0xb7)];}get['pointerEvents'](){function _0x44b5bf(_0x366600,_0xa313f9){return _0x1537ff(_0xa313f9-0x192,_0x366600);}return this[_0x44b5bf(0x88,0x3d)];}set['pointerEvents'](_0x34afc4){this['_pointerEvents']=_0x34afc4;if(!this['canvas'])return;function _0x56d8b2(_0x5d2aa6,_0x4208b3){return _0x2c9552(_0x4208b3-0x210,_0x5d2aa6);}_0x34afc4?this['canvas']['style']['pointer-events']='all':this['canvas']['style'][_0x56d8b2(0x5a,0xd2)]='none';}get[_0x1537ff(-0x192,-0x1c2)](){function _0x1f7034(_0x73d6cb,_0x3ba773){return _0x1537ff(_0x73d6cb-0x29e,_0x3ba773);}return this['options'][_0x1f7034(0x10c,0x96)];}set[_0x2c9552(-0x16d,-0xec)](_0x12c2e5){this['options'][_0x597bb8(0x9a,0xc2)]=_0x12c2e5,clearTimeout(this['_canrefresh']);function _0x597bb8(_0x1f62fc,_0x3437c7){return _0x1537ff(_0x3437c7-0x254,_0x1f62fc);}this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x50c66c(_0x182f71,_0xf4342b){return _0x1537ff(_0xf4342b-0x1b6,_0x182f71);}return this[_0x50c66c(0xaa,0xac)]['speedRate'];}set['speedRate'](_0x14c940){this['options']['speedRate']=_0x14c940;function _0x27da2c(_0x5804a1,_0x5c0875){return _0x2c9552(_0x5c0875- -0x113,_0x5804a1);}this[_0x27da2c(-0x2c1,-0x2f6)]&&(this['windField']['speedRate']=_0x14c940);}get[_0x1537ff(-0x1da,-0x1aa)](){function _0x3ef267(_0x3a783e,_0x46a8e1){return _0x2c9552(_0x3a783e-0x3a8,_0x46a8e1);}return this['options'][_0x3ef267(0x1f3,0x1ec)];}set[_0x2c9552(-0x1b5,-0x19b)](_0x4719a9){function _0x8ca475(_0x3eccdf,_0x59fb49){return _0x1537ff(_0x3eccdf-0x1c4,_0x59fb49);}function _0x2ae706(_0x44b0d5,_0x371fb4){return _0x2c9552(_0x371fb4-0x69,_0x44b0d5);}this[_0x8ca475(0xba,0xd7)]['maxAge']=_0x4719a9,this[_0x2ae706(-0x160,-0x17a)]&&(this[_0x8ca475(-0x44,0x2b)]['maxAge']=_0x4719a9);}get['data'](){return this['windData'];}set['data'](_0x4bd396){function _0x57a1ed(_0x10662c,_0x5698ac){return _0x2c9552(_0x5698ac-0x6e,_0x10662c);}this[_0x57a1ed(-0x124,-0x10d)](_0x4bd396);}get[_0x2c9552(-0x1d3,-0x148)](){function _0x30b3fc(_0x5cf552,_0x3eb6b6){return _0x1537ff(_0x3eb6b6-0xa2,_0x5cf552);}let _0x1aec25=this['windData']['xmin'],_0x4dfeda=this['windData']['xmax'],_0x1b4b0c=this[_0x9fc445(0x342,0x2b9)][_0x30b3fc(-0x177,-0xf3)],_0x84636b=this['windData'][_0x30b3fc(-0x7b,-0xcb)];_0x4dfeda>=0x167&&_0x1aec25===0x0&&(_0x1aec25=-0xb4,_0x4dfeda=0xb4);_0x1aec25=Math['max'](_0x1aec25,-0xb4),_0x4dfeda=Math['min'](_0x4dfeda,0xb4);function _0x9fc445(_0x3be35b,_0x1d692e){return _0x1537ff(_0x3be35b-0x44f,_0x1d692e);}return _0x1b4b0c=Math['max'](_0x1b4b0c,-0x5a),_0x84636b=Math[_0x9fc445(0x32f,0x336)](_0x84636b,0x5a),Cesium['Rectangle'][_0x9fc445(0x29b,0x23c)](_0x1aec25,_0x1b4b0c,_0x4dfeda,_0x84636b);}['_showHook'](_0x27b54b){function _0x2fd50d(_0x37d4af,_0x50538d){return _0x1537ff(_0x37d4af-0x1c,_0x50538d);}function _0x2b08c8(_0x5410a1,_0x332e00){return _0x1537ff(_0x332e00-0xd1,_0x5410a1);}_0x27b54b?this[_0x2b08c8(-0x3f,-0xa3)]():(this['windData']&&(this[_0x2b08c8(0x1d,-0x39)]['data']=this[_0x2b08c8(0x1c,-0x3c)]),this[_0x2fd50d(-0x1b6,-0x135)]());}['_mountedHook'](){function _0x44d3b5(_0x3ccc31,_0x3fecae){return _0x2c9552(_0x3fecae- -0xb0,_0x3ccc31);}function _0x15b1c6(_0x3f09c8,_0xb9643d){return _0x2c9552(_0x3f09c8-0x52d,_0xb9643d);}this[_0x44d3b5(-0x15a,-0x195)]['worker']?this[_0x15b1c6(0x36a,0x396)]():this[_0x44d3b5(-0x27a,-0x293)]=new CanvasWindField(this['options']);}[_0x2c9552(-0x14f,-0x149)](){function _0x551d85(_0x1d00e8,_0x1a50b7){return _0x2c9552(_0x1a50b7-0x8f,_0x1d00e8);}function _0x4837af(_0x3be681,_0x13d0d9){return _0x2c9552(_0x3be681-0x4fe,_0x13d0d9);}this['canvas']=this['_createCanvas']();const _0x55d09d={};_0x55d09d[_0x4837af(0x313,0x2d0)]=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x55d09d),this[_0x551d85(-0x2f,-0x8f)](),this['options'][_0x551d85(-0x130,-0xfa)]&&this[_0x551d85(-0x85,-0xec)](this['options'][_0x4837af(0x375,0x3f5)]);}[_0x1537ff(-0x1d2,-0x1cc)](){function _0x2dd121(_0x45ac53,_0x2cc84a){return _0x1537ff(_0x2cc84a-0x283,_0x45ac53);}this[_0x180d07(0xaa,0x112)]();function _0x180d07(_0x455fef,_0x4df793){return _0x1537ff(_0x455fef-0x1d0,_0x4df793);}this['unbindEvent'](),this[_0x2dd121(0x6a,0xe9)]&&(this[_0x2dd121(0x1e7,0x178)]['container']['removeChild'](this[_0x2dd121(0x83,0xe9)]),delete this[_0x180d07(0x36,0xc)]);}[_0x1537ff(-0x153,-0xcd)](){function _0x372d2c(_0x3a9827,_0x1c0e82){return _0x2c9552(_0x1c0e82-0x52c,_0x3a9827);}function _0x46344e(_0x11c2c6,_0x1fc7c0){return _0x1537ff(_0x11c2c6-0x560,_0x1fc7c0);}const _0x1da981=mars3d__namespace[_0x46344e(0x3b9,0x3eb)]['create'](_0x46344e(0x3c6,0x34b),_0x372d2c(0x402,0x388),this['_map']['container']);return _0x1da981[_0x372d2c(0x2f7,0x366)][_0x46344e(0x394,0x31e)]=_0x372d2c(0x448,0x3e5),_0x1da981[_0x372d2c(0x39f,0x366)]['top']='0px',_0x1da981['style'][_0x46344e(0x374,0x3ca)]='0px',_0x1da981['style']['width']=this[_0x46344e(0x455,0x447)]['scene'][_0x46344e(0x3c6,0x343)]['clientWidth']+'px',_0x1da981[_0x46344e(0x375,0x2f4)][_0x372d2c(0x482,0x41c)]=this['_map']['scene']['canvas'][_0x46344e(0x445,0x459)]+'px',_0x1da981[_0x46344e(0x375,0x3ee)]['pointerEvents']=this['_pointerEvents']?_0x46344e(0x44f,0x424):'none',_0x1da981[_0x46344e(0x375,0x2fb)][_0x372d2c(0x334,0x3bb)]=this[_0x372d2c(0x442,0x447)][_0x372d2c(0x3ac,0x3bb)]??0x9,_0x1da981['width']=this[_0x372d2c(0x430,0x446)]['scene']['canvas']['clientWidth'],_0x1da981['height']=this['_map']['scene'][_0x372d2c(0x357,0x3b7)]['clientHeight'],_0x1da981;}['resize'](){function _0x2992e7(_0x4a64f3,_0x4131f3){return _0x2c9552(_0x4a64f3-0x5ec,_0x4131f3);}function _0x2750fa(_0x4d9234,_0x537ef){return _0x2c9552(_0x537ef-0x3e,_0x4d9234);}this['canvas']&&(this[_0x2750fa(-0x18c,-0x137)][_0x2750fa(-0x10a,-0x188)]['width']=this[_0x2992e7(0x506,0x4ee)]['scene']['canvas']['clientWidth']+'px',this[_0x2750fa(-0x1b7,-0x137)][_0x2750fa(-0x182,-0x188)][_0x2992e7(0x4dc,0x500)]=this[_0x2992e7(0x506,0x56b)][_0x2750fa(-0x173,-0xfb)]['canvas']['clientHeight']+'px',this['canvas'][_0x2992e7(0x4cf,0x471)]=this[_0x2992e7(0x506,0x526)]['scene'][_0x2750fa(-0x103,-0x137)][_0x2992e7(0x444,0x4d0)],this['canvas']['height']=this[_0x2992e7(0x506,0x4b0)][_0x2992e7(0x4b3,0x4dd)]['canvas']['clientHeight']);}['bindEvent'](){function _0x58ac45(_0x309715,_0xd490d5){return _0x1537ff(_0xd490d5-0x37e,_0x309715);}const _0x461611=this;function _0x38bd24(_0x1a52bd,_0x3502ee){return _0x2c9552(_0x3502ee- -0xc9,_0x1a52bd);}let _0x11414c=Date[_0x58ac45(0x1d4,0x24a)]();(function _0x383e42(){function _0x18e3db(_0x203ee8,_0xd27a){return _0x58ac45(_0xd27a,_0x203ee8-0xe6);}if(_0x461611['isDestroy'])return;function _0x577a8f(_0x84340f,_0x440a92){return _0x58ac45(_0x440a92,_0x84340f-0x1b5);}_0x461611['_animateFrame']=window[_0x18e3db(0x341,0x30b)](_0x383e42);if(_0x461611['show']&&_0x461611[_0x18e3db(0x25c,0x29d)]){const _0x339ce2=Date['now'](),_0x588daa=_0x339ce2-_0x11414c;_0x588daa>_0x461611['frameTime']&&(_0x11414c=_0x339ce2-_0x588daa%_0x461611['frameTime'],_0x461611['update']());}}(),window[_0x58ac45(0x20d,0x27e)](_0x38bd24(-0x1a4,-0x216),this[_0x58ac45(0x1e0,0x20c)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x58ac45(0x2db,0x274)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x58ac45(0x276,0x227)],this['_onMapWhellEvent'],this),this[_0x38bd24(-0x1c2,-0x1af)]['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x38bd24(-0x2b1,-0x2b3)],this),this['_map']['on'](mars3d__namespace[_0x58ac45(0x262,0x21e)]['mouseUp'],this[_0x58ac45(0x22e,0x1ef)],this)));}[_0x2c9552(-0x106,-0x11d)](){window[_0x312878(0x4e,0xb1)](this['_animateFrame']),delete this['_animateFrame'];function _0x312878(_0x33f75d,_0x4ed2c5){return _0x1537ff(_0x33f75d-0x206,_0x4ed2c5);}function _0x12edc7(_0x3f24ae,_0x5085b2){return _0x1537ff(_0x5085b2-0x4a5,_0x3f24ae);}window['removeEventListener'](_0x12edc7(0x2c3,0x333),this[_0x312878(0x94,0x73)]),this['options']['mouseHidden']&&(this[_0x312878(0xfb,0x134)][_0x312878(0xac,0x76)](mars3d__namespace[_0x312878(0xa6,0xc7)][_0x12edc7(0x2e0,0x34e)],this['_onMapWhellEvent'],this),this[_0x312878(0xfb,0x107)][_0x12edc7(0x31a,0x34b)](mars3d__namespace['EventType']['mouseDown'],this[_0x12edc7(0x218,0x296)],this),this['_map'][_0x12edc7(0x301,0x34b)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x312878(0x7d,0xd1)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x26cc4d){function _0x4acf6a(_0x3d5a5c,_0x30fe4e){return _0x2c9552(_0x30fe4e-0x2e3,_0x3d5a5c);}function _0xabb916(_0x2af78c,_0x450116){return _0x1537ff(_0x450116-0x4c1,_0x2af78c);}clearTimeout(this[_0x4acf6a(0x1f5,0x18f)]);if(!this['show']||!this['canvas'])return;this['canvas']['style'][_0xabb916(0x2e4,0x33c)]=_0x4acf6a(0x134,0x162),this['refreshTimer']=setTimeout(()=>{if(!this[_0x4c09bc(0x297,0x22a)])return;function _0x4c09bc(_0x3cc1d7,_0x44890a){return _0x4acf6a(_0x44890a,_0x3cc1d7-0x9b);}this['redraw'](),this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x5564a6){this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x4445ac(-0x6d,0xe)],this);function _0x4445ac(_0x302855,_0x55ce6c){return _0x2c9552(_0x55ce6c-0x105,_0x302855);}function _0x513203(_0x582f83,_0x572acb){return _0x1537ff(_0x572acb-0x60,_0x582f83);}this[_0x4445ac(0x4f,0x1f)]['on'](mars3d__namespace['EventType'][_0x513203(-0x1a3,-0x129)],this[_0x513203(-0x49,-0xbc)],this);}['_onMouseMoveEvent'](_0x51214d){if(!this['show']||!this['canvas'])return;function _0x49b361(_0x319437,_0x11ac67){return _0x1537ff(_0x319437- -0x5d,_0x11ac67);}function _0x2343f8(_0x509c82,_0x35d671){return _0x1537ff(_0x35d671-0xbe,_0x509c82);}this[_0x2343f8(-0xaa,-0x57)]&&(this[_0x2343f8(-0x58,-0xdc)][_0x49b361(-0x248,-0x24b)][_0x49b361(-0x1e2,-0x17c)]=_0x2343f8(-0xbc,-0xe8),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x5dd2a5){if(!this[_0x4fb221(0x27c,0x227)]||!this[_0x369a5d(-0x1b2,-0x227)])return;function _0x4fb221(_0x2e9162,_0x32990d){return _0x1537ff(_0x2e9162-0x388,_0x32990d);}this[_0x4fb221(0x27d,0x29b)]['off'](mars3d__namespace[_0x369a5d(-0x1b5,-0x1ed)]['mouseMove'],this[_0x4fb221(0x26c,0x272)],this);function _0x369a5d(_0x5f543a,_0x2c49d0){return _0x2c9552(_0x2c49d0- -0xb2,_0x5f543a);}this[_0x369a5d(-0x1a3,-0x1a2)]&&this['mouse_move']&&this[_0x369a5d(-0x22d,-0x1f1)](),this['canvas']['style']['visibility']=_0x4fb221(0x215,0x241),this['mouse_down']=![],this[_0x4fb221(0x200,0x1c7)]=![];}[_0x1537ff(-0x1a0,-0x1f8)](_0x4430a5){this['clear'](),this[_0x19bfd4(0x122,0x199)]=_0x4430a5;function _0x19bfd4(_0xd462a5,_0x3f88ee){return _0x1537ff(_0xd462a5-0x22f,_0x3f88ee);}function _0x52d4c2(_0x3f9088,_0x380744){return _0x1537ff(_0x380744-0x1b1,_0x3f9088);}this['windField']['setDate'](_0x4430a5),this[_0x52d4c2(0x8e,0x4d)]();}['redraw'](){function _0x915aa5(_0x1391a7,_0x39626f){return _0x2c9552(_0x1391a7-0x4ce,_0x39626f);}if(!this[_0x24e1a4(-0x1d0,-0x1bc)])return;function _0x24e1a4(_0x20eb10,_0x23420b){return _0x2c9552(_0x23420b- -0xd5,_0x20eb10);}this[_0x915aa5(0x2eb,0x373)][_0x915aa5(0x2f7,0x334)](this['options']),this['update']();}[_0x2c9552(-0x145,-0x111)](){function _0x3f0161(_0x5babcd,_0x344b9e){return _0x2c9552(_0x344b9e-0x474,_0x5babcd);}if(this[_0x38868b(0xa4,0x125)])return;this[_0x38868b(0x10f,0x125)]=!![];if(this['worker'])this['windField'][_0x38868b(0x106,0xb6)]();else{const _0x3b7f93=this['windField'][_0x3f0161(0x299,0x305)]();this[_0x3f0161(0x360,0x2fb)](_0x3b7f93);}function _0x38868b(_0x1c1d56,_0x5e2606){return _0x1537ff(_0x5e2606-0x220,_0x1c1d56);}this['_updateIng']=![];}['_drawLines'](_0x16e9db){this['_canvasParticles']=_0x16e9db,this[_0x3265e9(0x4a0,0x41a)]['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x164606(0x2ee,0x279)]),this[_0x3265e9(0x3ec,0x41a)]['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9;function _0x3265e9(_0x304623,_0x31367d){return _0x1537ff(_0x31367d-0x56c,_0x304623);}const _0x2d932b=this[_0x164606(0x2f2,0x355)][_0x164606(0x29f,0x296)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x36a384=this['canvasWidth']*0.25;function _0x164606(_0x31d4fc,_0x201c4b){return _0x2c9552(_0x31d4fc-0x3d8,_0x201c4b);}if(this[_0x164606(0x219,0x28e)])for(let _0x145653=0x0,_0x5a60a0=_0x16e9db['length'];_0x145653<_0x5a60a0;_0x145653++){const _0x36163f=_0x16e9db[_0x145653],_0x145668=this['_tomap'](_0x36163f,_0x36163f[_0x3265e9(0x39b,0x3d1)],_0x36163f['lat'],_0x36163f[_0x164606(0x22d,0x2ab)]),_0x3c7a87=this['_tomap'](_0x36163f,_0x36163f['tlng'],_0x36163f[_0x164606(0x2b8,0x334)],_0x36163f['talt']);if(!_0x145668||!_0x3c7a87)continue;if(_0x2d932b&&Math[_0x164606(0x2fc,0x28b)](_0x145668[0x0]-_0x3c7a87[0x0])>=_0x36a384)continue;this[_0x164606(0x2ab,0x29d)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x164606(0x2ab,0x2a8)][_0x164606(0x21c,0x207)]=this[_0x3265e9(0x3ea,0x388)][_0x164606(0x235,0x270)](_0x36163f[_0x3265e9(0x336,0x399)]),this[_0x3265e9(0x3e1,0x41a)][_0x3265e9(0x356,0x3d9)](_0x145668[0x0],_0x145668[0x1]),this['canvasContext'][_0x164606(0x1f1,0x20f)](_0x3c7a87[0x0],_0x3c7a87[0x1]),this['canvasContext']['stroke']();}else{this[_0x3265e9(0x3c1,0x41a)]['beginPath'](),this[_0x3265e9(0x414,0x41a)][_0x164606(0x23e,0x228)]=this[_0x164606(0x23e,0x26c)],this[_0x3265e9(0x466,0x41a)]['strokeStyle']=this['color'];for(let _0x24ecc1=0x0,_0x3e7ed0=_0x16e9db[_0x3265e9(0x3d8,0x38d)];_0x24ecc1<_0x3e7ed0;_0x24ecc1++){const _0x1fffe7=_0x16e9db[_0x24ecc1],_0x38533f=this['_tomap'](_0x1fffe7,_0x1fffe7[_0x3265e9(0x36f,0x3d1)],_0x1fffe7['lat'],_0x1fffe7['alt']),_0x4a800a=this[_0x3265e9(0x404,0x38e)](_0x1fffe7,_0x1fffe7[_0x3265e9(0x3bc,0x371)],_0x1fffe7['tlat'],_0x1fffe7['talt']);if(!_0x38533f||!_0x4a800a)continue;if(_0x2d932b&&Math[_0x3265e9(0x48b,0x46b)](_0x38533f[0x0]-_0x4a800a[0x0])>=_0x36a384)continue;this['canvasContext']['moveTo'](_0x38533f[0x0],_0x38533f[0x1]),this[_0x3265e9(0x3fb,0x41a)]['lineTo'](_0x4a800a[0x0],_0x4a800a[0x1]);}this['canvasContext'][_0x164606(0x221,0x1b4)]();}}['_tomap'](_0x5e30d0,_0x397070,_0x200c15,_0x52e1d3){const _0x2be247=Cesium['Cartesian3'][_0x20992c(0x3b8,0x3aa)](_0x397070,_0x200c15,_0x52e1d3??this['fixedHeight']),_0x2e6bc9=this[_0x2cc718(-0x1cf,-0x248)]['scene'];if(_0x2e6bc9['mode']===Cesium['SceneMode']['SCENE3D']){const _0x5c97e7=new Cesium['EllipsoidalOccluder'](_0x2e6bc9[_0x20992c(0x345,0x3bc)][_0x20992c(0x3ce,0x354)],_0x2e6bc9['camera']['positionWC']),_0x265d9d=_0x5c97e7[_0x2cc718(-0x26d,-0x22d)](_0x2be247);if(!_0x265d9d)return _0x5e30d0['age']=0x0,null;}function _0x20992c(_0x34e676,_0x507406){return _0x1537ff(_0x507406-0x55e,_0x34e676);}const _0x94c87d=mars3d__namespace[_0x2cc718(-0x29a,-0x2ab)][_0x20992c(0x354,0x3c2)](this['_map']['scene'],_0x2be247);function _0x2cc718(_0x404643,_0x40be65){return _0x1537ff(_0x404643- -0xc4,_0x40be65);}return _0x94c87d?[_0x94c87d['x'],_0x94c87d['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}[_0x1537ff(-0x1e8,-0x1d1)](){this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=_0xe8537c=>{this['_drawLines'](_0xe8537c['data']['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x2ea216=>{const _0xcef483={};_0xcef483['type']='init';function _0x16e8b9(_0x4d02df,_0x403974){return _0x1d21(_0x403974- -0x367,_0x4d02df);}_0xcef483[_0x16e8b9(-0x1d5,-0x1b1)]=_0x2ea216,this['worker']['postMessage'](_0xcef483);},'setOptions':_0x44959e=>{const _0x68e7c={};_0x68e7c[_0x86cee(0x1b4,0x145)]=_0x4df6b8(-0x32d,-0x2ef);function _0x4df6b8(_0x4db68e,_0x14fc5c){return _0x1d21(_0x14fc5c- -0x3b3,_0x4db68e);}_0x68e7c['options']=_0x44959e;function _0x86cee(_0x1ad43c,_0x5951f2){return _0x1d21(_0x5951f2- -0x32,_0x1ad43c);}this[_0x4df6b8(-0x277,-0x1f0)]['postMessage'](_0x68e7c);},'setDate':_0x333068=>{const _0x9e3156={};function _0x22752a(_0x4094c8,_0x2638d3){return _0x1d21(_0x2638d3-0x36,_0x4094c8);}_0x9e3156['type']='setDate',_0x9e3156['data']=_0x333068,this[_0x22752a(0x188,0x1f9)]['postMessage'](_0x9e3156);},'update':()=>{if(this['_updateIng2'])return;this[_0x5df609(0x3f8,0x47b)]=!![];function _0x5df609(_0x471812,_0x108727){return _0x1d21(_0x471812-0x327,_0x108727);}const _0x1a3491={};function _0x1d3de1(_0x5eb6dc,_0x10a16c){return _0x1d21(_0x10a16c- -0x35e,_0x5eb6dc);}_0x1a3491[_0x1d3de1(-0x1f6,-0x1e7)]='update',this['worker'][_0x1d3de1(-0x2f3,-0x273)](_0x1a3491);},'clear':()=>{const _0x33bbd5={};function _0x1e1e90(_0x31293b,_0x5dd115){return _0x1d21(_0x5dd115-0x1bc,_0x31293b);}_0x33bbd5[_0x491a5c(0x558,0x5c2)]=_0x491a5c(0x57b,0x503);function _0x491a5c(_0x52915a,_0x3252fc){return _0x1d21(_0x52915a-0x3e1,_0x3252fc);}this[_0x491a5c(0x5a4,0x5ff)][_0x1e1e90(0x318,0x2a7)](_0x33bbd5);}};function _0x30e74f(_0x545249,_0x2ef73b){return _0x1537ff(_0x2ef73b-0x4c6,_0x545249);}this[_0x30e74f(0x30f,0x2be)]['init'](this['options']);}}function _0x1537ff(_0x354d63,_0x9d27b1){return _0x1d21(_0x354d63- -0x2c0,_0x9d27b1);}mars3d__namespace['LayerUtil']['register'](_0x1537ff(-0x127,-0xa6),CanvasWindLayer),mars3d__namespace['layer'][_0x1537ff(-0x105,-0xd1)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x2c9552(-0x1a6,-0x21f)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x21832b={};_0x21832b[_0x1537ff(-0x102,-0x157)]=!![],Object['defineProperty'](exports,'__esModule',_0x21832b);
14
+ 'use strict';(function(_0x4548aa,_0x5e916a){const _0x56df2e=_0x4548aa();function _0x2400b1(_0x8438cb,_0x5ce37b){return _0x580d(_0x8438cb- -0x25b,_0x5ce37b);}function _0x30ff5f(_0xe57c1f,_0x21a7ac){return _0x580d(_0xe57c1f-0x125,_0x21a7ac);}while(!![]){try{const _0x3a6a72=parseInt(_0x2400b1(-0x1b3,-0x1df))/0x1*(-parseInt(_0x30ff5f(0x258,0x1e9))/0x2)+-parseInt(_0x2400b1(-0x172,-0x140))/0x3*(parseInt(_0x30ff5f(0x243,0x24f))/0x4)+parseInt(_0x2400b1(-0x114,-0x91))/0x5+-parseInt(_0x30ff5f(0x1b3,0x21f))/0x6+parseInt(_0x30ff5f(0x293,0x276))/0x7*(-parseInt(_0x2400b1(-0x1aa,-0x20b))/0x8)+parseInt(_0x2400b1(-0xee,-0x85))/0x9*(-parseInt(_0x2400b1(-0x199,-0x203))/0xa)+-parseInt(_0x2400b1(-0x158,-0x1a2))/0xb*(-parseInt(_0x2400b1(-0xf4,-0x141))/0xc);if(_0x3a6a72===_0x5e916a)break;else _0x56df2e['push'](_0x56df2e['shift']());}catch(_0x58069a){_0x56df2e['push'](_0x56df2e['shift']());}}}(_0x38fc,0x88214));function _interopNamespace(_0x469cf3){function _0x4d18ce(_0x41a68e,_0x3b770d){return _0x580d(_0x3b770d-0x220,_0x41a68e);}if(_0x469cf3&&_0x469cf3['__esModule'])return _0x469cf3;var _0x34a564=Object['create'](null);_0x469cf3&&Object[_0x4e24b3(0x266,0x20f)](_0x469cf3)[_0x4e24b3(0xcb,0x132)](function(_0x1223c5){function _0xdaecb4(_0xf4f0c1,_0x206eb6){return _0x4d18ce(_0xf4f0c1,_0x206eb6- -0x6a);}function _0x40a119(_0x341b4d,_0x524603){return _0x4e24b3(_0x341b4d,_0x524603- -0x3e2);}if(_0x1223c5!==_0xdaecb4(0x2a9,0x298)){var _0x1ecf72=Object['getOwnPropertyDescriptor'](_0x469cf3,_0x1223c5);Object[_0xdaecb4(0x2a9,0x2b5)](_0x34a564,_0x1223c5,_0x1ecf72['get']?_0x1ecf72:{'enumerable':!![],'get':function(){return _0x469cf3[_0x1223c5];}});}});function _0x4e24b3(_0x141a36,_0x31a94f){return _0x580d(_0x31a94f-0xad,_0x141a36);}return _0x34a564['default']=_0x469cf3,_0x34a564;}function _0x1da74e(_0x55fba2,_0x18ec0d){return _0x580d(_0x18ec0d-0x1ec,_0x55fba2);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x582921,_0x594b8c){const _0xdf4702=_0x582921*Math['cos'](Cesium$2['Math']['toRadians'](_0x594b8c));return _0xdf4702;}function getV(_0xc7d56c,_0x81eb92){const _0x9bc657=_0xc7d56c*Math['sin'](Cesium$2['Math'][_0x112764(-0x14d,-0xca)](_0x81eb92));function _0x112764(_0x3bdb93,_0x22fe2c){return _0x580d(_0x3bdb93- -0x2a8,_0x22fe2c);}return _0x9bc657;}function getSpeed(_0x43e015,_0xb143b2){function _0x4dd8b7(_0x200867,_0x331ffe){return _0x580d(_0x331ffe- -0x391,_0x200867);}function _0x2a7a42(_0x3e68f8,_0x46e681){return _0x580d(_0x3e68f8-0x3d3,_0x46e681);}const _0x4041c8=Math[_0x2a7a42(0x53f,0x4b5)](Math['pow'](_0x43e015,0x2)+Math[_0x4dd8b7(-0x2b5,-0x26c)](_0xb143b2,0x2));return _0x4041c8;}function getDirection(_0x4eb457,_0x176591){let _0x5f4456=Cesium$2['Math']['toDegrees'](Math['atan2'](_0x176591,_0x4eb457));return _0x5f4456+=_0x5f4456<0x0?0x168:0x0,_0x5f4456;}const _0x58b375={};_0x58b375['__proto__']=null,_0x58b375['getU']=getU,_0x58b375['getV']=getV,_0x58b375[_0x5a9f30(0x468,0x4ec)]=getSpeed,_0x58b375[_0x5a9f30(0x429,0x417)]=getDirection;var WindUtil=_0x58b375,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader=_0x5a9f30(0x42a,0x4b5),renderParticlesVertexShader=_0x1da74e(0x399,0x30f);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){function _0x17c273(_0x46739a,_0x2db70e){return _0x1da74e(_0x46739a,_0x2db70e- -0x530);}const _0x3015c9={};return _0x3015c9[_0x17c273(-0x25f,-0x2bc)]=[calculateSpeedShader],new ShaderSource$1(_0x3015c9);}static['getUpdatePositionShader'](){const _0x84d99d={};_0x84d99d[_0x227f00(-0x6b,-0xd4)]=[updatePositionShader];function _0x227f00(_0x467cb0,_0x57f843){return _0x1da74e(_0x467cb0,_0x57f843- -0x348);}return new ShaderSource$1(_0x84d99d);}static[_0x1da74e(0x2cc,0x265)](){const _0x4b4b6b={};function _0x19fffd(_0x5472e5,_0x538735){return _0x5a9f30(_0x5472e5- -0x2b1,_0x538735);}return _0x4b4b6b[_0x19fffd(0xf6,0x70)]=[renderParticlesVertexShader],new ShaderSource$1(_0x4b4b6b);}static['getSegmentDrawFragmentShader'](){const _0x262bb4={};function _0x4f9695(_0x3ec67a,_0x4564c4){return _0x5a9f30(_0x4564c4- -0x61a,_0x3ec67a);}return _0x262bb4[_0x4f9695(-0x23a,-0x273)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x262bb4);}static['getPostProcessingPositionShader'](){const _0x2f4056={};return _0x2f4056['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2f4056);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace[_0x5a9f30(0x3fc,0x40e)];class CustomPrimitive{constructor(_0x2c9be3){this['commandType']=_0x2c9be3[_0x1a74e7(0x33a,0x35d)];function _0x193c65(_0x3f77d8,_0x58ea4c){return _0x1da74e(_0x58ea4c,_0x3f77d8- -0x480);}this['geometry']=_0x2c9be3['geometry'],this['attributeLocations']=_0x2c9be3['attributeLocations'],this[_0x193c65(-0x13d,-0xd4)]=_0x2c9be3['primitiveType'],this[_0x193c65(-0x1da,-0x17b)]=_0x2c9be3['uniformMap']||{},this[_0x1a74e7(0x3cd,0x3ff)]=_0x2c9be3['vertexShaderSource'],this['fragmentShaderSource']=_0x2c9be3[_0x193c65(-0x11c,-0x13b)],this['rawRenderState']=_0x2c9be3['rawRenderState'],this['framebuffer']=_0x2c9be3[_0x1a74e7(0x3fb,0x3fc)],this[_0x1a74e7(0x310,0x393)]=_0x2c9be3['outputTexture'],this['autoClear']=_0x2c9be3['autoClear']??![];function _0x1a74e7(_0x5e2a84,_0x5d1372){return _0x1da74e(_0x5d1372,_0x5e2a84-0x9b);}this[_0x1a74e7(0x3e6,0x44b)]=_0x2c9be3['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this[_0x1a74e7(0x3b3,0x3a2)]=undefined,this['isDynamic']=_0x2c9be3[_0x1a74e7(0x2f0,0x2ed)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x1a74e7(0x3b9,0x367)]}));}['createCommand'](_0x42d1cb){function _0x17bb4e(_0x1bf8e6,_0x38b894){return _0x5a9f30(_0x1bf8e6- -0x66c,_0x38b894);}function _0x129bb8(_0x544d9e,_0x543c84){return _0x5a9f30(_0x543c84- -0x51e,_0x544d9e);}if(this[_0x129bb8(-0x128,-0x14c)]==='Draw'){const _0x5a75cb={};_0x5a75cb[_0x129bb8(-0x12a,-0xe8)]=_0x42d1cb,_0x5a75cb[_0x17bb4e(-0x281,-0x24a)]=this['geometry'],_0x5a75cb['attributeLocations']=this['attributeLocations'],_0x5a75cb[_0x129bb8(-0xef,-0xcb)]=BufferUsage$1['STATIC_DRAW'];const _0x1a832b=VertexArray$1[_0x17bb4e(-0x211,-0x1a4)](_0x5a75cb),_0x1da444={};_0x1da444[_0x129bb8(-0x16c,-0xe8)]=_0x42d1cb,_0x1da444['vertexShaderSource']=this['vertexShaderSource'],_0x1da444['fragmentShaderSource']=this['fragmentShaderSource'],_0x1da444['attributeLocations']=this[_0x129bb8(-0x178,-0x18d)];const _0x1fe95c=ShaderProgram[_0x17bb4e(-0x21e,-0x295)](_0x1da444),_0x13e869=RenderState['fromCache'](this[_0x129bb8(-0xb2,-0x8c)]),_0x3e8dc8={};return _0x3e8dc8['owner']=this,_0x3e8dc8['vertexArray']=_0x1a832b,_0x3e8dc8['primitiveType']=this['primitiveType'],_0x3e8dc8[_0x17bb4e(-0x214,-0x295)]=Matrix4['IDENTITY'],_0x3e8dc8['renderState']=_0x13e869,_0x3e8dc8['shaderProgram']=_0x1fe95c,_0x3e8dc8['framebuffer']=this['framebuffer'],_0x3e8dc8['uniformMap']=this[_0x129bb8(-0x177,-0x145)],_0x3e8dc8[_0x17bb4e(-0x2ba,-0x2d3)]=Pass$1['OPAQUE'],new DrawCommand(_0x3e8dc8);}else{if(this[_0x17bb4e(-0x29a,-0x308)]===_0x17bb4e(-0x25e,-0x26f)){const _0x3dde3c={};return _0x3dde3c[_0x129bb8(-0xfd,-0x101)]=this,_0x3dde3c['fragmentShaderSource']=this['fragmentShaderSource'],_0x3dde3c[_0x129bb8(-0x189,-0x145)]=this[_0x129bb8(-0x18d,-0x145)],_0x3dde3c['outputTexture']=this['outputTexture'],_0x3dde3c['persists']=!![],new ComputeCommand(_0x3dde3c);}else throw new Error(_0x129bb8(-0x53,-0x86));}}['setGeometry'](_0x36fd04,_0x16ba03){this['geometry']=_0x16ba03;function _0x12bcc8(_0x26c373,_0x3048b4){return _0x5a9f30(_0x3048b4- -0x6fa,_0x26c373);}function _0x5ab635(_0x37ed1c,_0x30aa66){return _0x5a9f30(_0x37ed1c- -0x2e2,_0x30aa66);}defined(this[_0x5ab635(0x16b,0x1af)])&&(this['commandToExecute']['vertexArray']=VertexArray$1[_0x12bcc8(-0x225,-0x29f)]({'context':_0x36fd04,'geometry':this[_0x5ab635(0x109,0xaa)],'attributeLocations':this[_0x12bcc8(-0x2e5,-0x369)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x5a9f30(0x3be,0x364)](_0x5df4ec){function _0x589fdd(_0x328aeb,_0x286f7f){return _0x5a9f30(_0x286f7f- -0x48a,_0x328aeb);}if(!this[_0x5bbcde(0x3a7,0x424)]())return;if(!this[_0x589fdd(-0x11e,-0xc6)]||!defined(_0x5df4ec))return;!defined(this[_0x5bbcde(0x46c,0x4c7)])&&(this['commandToExecute']=this[_0x589fdd(-0x5c,-0x88)](_0x5df4ec[_0x5bbcde(0x455,0x468)]));defined(this['preExecute'])&&this['preExecute']();if(!_0x5df4ec['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x5df4ec['commandList'][_0x5bbcde(0x474,0x477)](this['clearCommand']);function _0x5bbcde(_0x2c7038,_0x363e46){return _0x5a9f30(_0x2c7038-0x1f,_0x363e46);}defined(this[_0x589fdd(0x39,-0x3d)])&&_0x5df4ec['commandList']['push'](this[_0x589fdd(-0x86,-0x3d)]);}['isDestroyed'](){return![];}[_0x1da74e(0x250,0x28c)](){function _0x4f9b98(_0x507f76,_0x53ba2f){return _0x1da74e(_0x53ba2f,_0x507f76- -0x2d2);}if(defined(this['commandToExecute'])){var _0x4050bb;(_0x4050bb=this[_0xea4495(0x18a,0x1e4)]['shaderProgram'])===null||_0x4050bb===void 0x0||_0x4050bb['destroy'](),this['commandToExecute'][_0x4f9b98(-0x3a,0xf)]=undefined;}function _0xea4495(_0x45439f,_0x2ffa8f){return _0x1da74e(_0x45439f,_0x2ffa8f- -0x136);}return destroyObject(this);}}function deepMerge(_0x18b005,_0x26450f){function _0x446039(_0x573697,_0x11b770){return _0x5a9f30(_0x573697- -0x169,_0x11b770);}if(!_0x18b005)return _0x26450f;if(!_0x26450f)return _0x18b005;const _0x3b002e={..._0x26450f},_0x55ccb3=_0x3b002e;for(const _0x355858 in _0x18b005){if(Object[_0x1d358f(0x3e9,0x3a1)]['hasOwnProperty'][_0x1d358f(0x36c,0x30c)](_0x18b005,_0x355858)){const _0x29a53c=_0x18b005[_0x355858],_0x454e53=_0x26450f[_0x355858];if(Array['isArray'](_0x29a53c)){_0x55ccb3[_0x355858]=_0x29a53c['slice']();continue;}if(_0x29a53c&&typeof _0x29a53c===_0x1d358f(0x3ab,0x33f)){_0x55ccb3[_0x355858]=deepMerge(_0x29a53c,_0x454e53||{});continue;}_0x29a53c!==undefined&&(_0x55ccb3[_0x355858]=_0x29a53c);}}function _0x1d358f(_0x1c1034,_0xe3ff8a){return _0x1da74e(_0x1c1034,_0xe3ff8a-0xac);}return _0x55ccb3;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x3dc4df,_0x36852a,_0x9df63e,_0x2d15e8,_0x4afddf){function _0x5c9c42(_0x517513,_0x4a3d8c){return _0x5a9f30(_0x4a3d8c- -0x177,_0x517513);}function _0x5ed337(_0x500154,_0x46c4a2){return _0x1da74e(_0x500154,_0x46c4a2- -0x532);}this[_0x5c9c42(0x2bd,0x2bf)]=_0x3dc4df,this['options']=_0x9df63e,this[_0x5ed337(-0x233,-0x250)]=_0x2d15e8,this['windData']=_0x36852a,this['frameRate']=0x3c,this[_0x5ed337(-0x287,-0x277)]=0x1;const _0x1c1c40={};_0x1c1c40[_0x5c9c42(0x2fc,0x288)]=_0x4afddf,_0x1c1c40[_0x5ed337(-0x188,-0x1e2)]=0x1,_0x1c1c40[_0x5ed337(-0x2b2,-0x2c6)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x1c1c40),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this[_0x5c9c42(0x261,0x25a)]();}['initFrameRate'](){const _0x42fe05=()=>{function _0x18b21b(_0xbee8fd,_0x552c45){return _0x580d(_0x552c45- -0x224,_0xbee8fd);}this['frameRateMonitor'][_0x18b21b(-0x11d,-0x107)]>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x42fe05();function _0x5ea1a0(_0x594b33,_0x16e68d){return _0x1da74e(_0x594b33,_0x16e68d- -0x421);}const _0x4d7e6b=setInterval(_0x42fe05,0x3e8),_0x40e36c=this[_0x5ea1a0(-0x134,-0x195)]['bind'](this);this['destroy']=()=>{clearInterval(_0x4d7e6b),_0x40e36c();};}[_0x1da74e(0x34e,0x336)](){const _0x47a0b5={};_0x47a0b5['minificationFilter']=TextureMinificationFilter$1[_0x5b7de9(-0x98,-0x6e)];function _0x5b7de9(_0x11acb1,_0x45b5ff){return _0x5a9f30(_0x45b5ff- -0x4df,_0x11acb1);}_0x47a0b5['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x3d1bd={'context':this['context'],'width':this['windData']['width'],'height':this[_0x42491d(0x41b,0x3c0)]['height'],'pixelFormat':PixelFormat$1[_0x42491d(0x369,0x351)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x5b7de9(-0x61,-0x6d)][_0x5b7de9(-0x1a2,-0x11c)]??![],'sampler':new Sampler$1(_0x47a0b5)};function _0x42491d(_0x2df273,_0x41352d){return _0x1da74e(_0x41352d,_0x2df273-0xdb);}this[_0x42491d(0x385,0x3bc)]={'U':new Texture$1({..._0x3d1bd,'source':{'arrayBufferView':new Float32Array(this[_0x42491d(0x41b,0x49d)]['u'][_0x42491d(0x3af,0x34e)])}}),'V':new Texture$1({..._0x3d1bd,'source':{'arrayBufferView':new Float32Array(this[_0x5b7de9(0x11,-0x6c)]['v'][_0x5b7de9(-0x15e,-0xd8)])}})};}['createParticlesTextures'](){const _0x3f0e11={};_0x3f0e11[_0x270546(-0x397,-0x317)]=TextureMinificationFilter$1[_0x26c510(0x314,0x2b1)],_0x3f0e11[_0x270546(-0x30f,-0x325)]=TextureMagnificationFilter$1['NEAREST'];function _0x270546(_0x26b16c,_0x4c4785){return _0x5a9f30(_0x4c4785- -0x6b9,_0x26b16c);}const _0x2d88cf={'context':this[_0x26c510(0x37c,0x34c)],'width':this[_0x270546(-0x2cf,-0x247)][_0x26c510(0x308,0x2d0)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x270546(-0x298,-0x232)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x26c510(0x3b8,0x40b)][_0x270546(-0x313,-0x2f7)]*this['options']['particlesTextureSize']*0x4)[_0x26c510(0x302,0x2f8)](0x0)},'sampler':new Sampler$1(_0x3f0e11)};function _0x26c510(_0x583f73,_0x3426b3){return _0x5a9f30(_0x583f73- -0xba,_0x3426b3);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x2d88cf),'currentParticlesPosition':new Texture$1(_0x2d88cf),'nextParticlesPosition':new Texture$1(_0x2d88cf),'postProcessingPosition':new Texture$1(_0x2d88cf),'particlesSpeed':new Texture$1(_0x2d88cf)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0x1a6b80=>_0x1a6b80['destroy']());}['createComputingPrimitives'](){function _0x44098d(_0x29d7ad,_0x1af6e6){return _0x1da74e(_0x29d7ad,_0x1af6e6-0x19a);}function _0x1a622b(_0x1cd294,_0x169ea6){return _0x5a9f30(_0x1cd294- -0x275,_0x169ea6);}this[_0x44098d(0x39a,0x41c)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x44098d(0x4f1,0x4da)]['u'][_0x1a622b(0x131,0x10b)]),'vRange':()=>new Cartesian2$1(this[_0x44098d(0x524,0x4da)]['v'][_0x44098d(0x4a6,0x4ae)],this['windData']['v'][_0x1a622b(0x131,0x154)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x44098d(0x4d7,0x4ae)],this[_0x1a622b(0x1fe,0x251)]['speed'][_0x1a622b(0x131,0x160)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x44098d(0x507,0x4e2)],'speedScaleFactor':()=>{function _0x34b0df(_0x9311cf,_0x4080de){return _0x1a622b(_0x9311cf- -0x31c,_0x4080de);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x34b0df(-0x11f,-0xfe)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x1a622b(0x179,0x132)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x1a622b(0x1fe,0x278)]['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x1a622b(0x1bf,0x1a9)],this[_0x44098d(0x481,0x4da)][_0x1a622b(0x208,0x264)][_0x44098d(0x4e4,0x4a8)]),'maximum':()=>new Cartesian2$1(this[_0x44098d(0x4dd,0x4da)]['bounds'][_0x1a622b(0x153,0x165)],this['windData'][_0x1a622b(0x208,0x208)]['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x1a622b(0x207,0x1e5)][_0x1a622b(0x16a,0x1ab)],'preExecute':()=>{function _0x3668a4(_0x822491,_0x494453){return _0x44098d(_0x494453,_0x822491- -0x6df);}const _0x5cb2d5=this['particlesTextures'][_0x3668a4(-0x224,-0x247)];this[_0x50ba53(0x365,0x3ad)]['previousParticlesPosition']=this[_0x3668a4(-0x1fc,-0x246)][_0x50ba53(0x364,0x38c)];function _0x50ba53(_0x2b170f,_0x114741){return _0x1a622b(_0x2b170f-0x15e,_0x114741);}this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this[_0x3668a4(-0x1fc,-0x281)]['postProcessingPosition']=_0x5cb2d5,this[_0x50ba53(0x29e,0x25d)]['calculateSpeed'][_0x50ba53(0x336,0x37f)]&&(this['primitives']['calculateSpeed'][_0x50ba53(0x336,0x342)]['outputTexture']=this[_0x50ba53(0x365,0x2eb)]['particlesSpeed']);},'isDynamic':()=>this['options'][_0x44098d(0x48e,0x456)]}),'updatePosition':new CustomPrimitive({'commandType':_0x44098d(0x471,0x475),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x1a622b(0x207,0x232)][_0x44098d(0x45e,0x402)],'preExecute':()=>{function _0x2477b3(_0x58fb0d,_0x5f3df9){return _0x44098d(_0x5f3df9,_0x58fb0d- -0x6cb);}function _0x325e88(_0xbe5dc3,_0x3e84b){return _0x1a622b(_0xbe5dc3-0x1a0,_0x3e84b);}this[_0x2477b3(-0x2af,-0x2e8)][_0x2477b3(-0x297,-0x273)][_0x2477b3(-0x217,-0x1ed)]&&(this[_0x325e88(0x2e0,0x356)]['updatePosition']['commandToExecute'][_0x2477b3(-0x2bc,-0x300)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0x44098d(0x406,0x456)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x44098d(0x41c,0x475),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x1a622b(0x126,0xb2)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this[_0x44098d(0x49e,0x47c)]['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData'][_0x44098d(0x4fc,0x4e4)][_0x44098d(0x497,0x42f)]),'dataLatRange':()=>new Cartesian2$1(this[_0x1a622b(0x1fe,0x1fc)]['bounds']['south'],this['windData'][_0x1a622b(0x208,0x213)][_0x44098d(0x3df,0x44d)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options'][_0x1a622b(0x157,0x1c0)],'dropRateBump':()=>this['options'][_0x1a622b(0x214,0x1a9)],'useViewerBounds':()=>this[_0x1a622b(0x1fd,0x1ff)][_0x44098d(0x460,0x412)]},'fragmentShaderSource':ShaderManager[_0x1a622b(0x13b,0x1c6)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x16eb5b(_0xa3f509,_0x2bf861){return _0x44098d(_0xa3f509,_0x2bf861- -0x62c);}function _0xb478a4(_0x1f3a82,_0x77f634){return _0x44098d(_0x77f634,_0x1f3a82- -0xe0);}this['primitives'][_0x16eb5b(-0x1b6,-0x236)]['commandToExecute']&&(this[_0x16eb5b(-0x233,-0x210)][_0x16eb5b(-0x273,-0x236)][_0x16eb5b(-0x1fd,-0x178)][_0xb478a4(0x32f,0x39f)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x44098d(0x46b,0x4d9)]['dynamic']})};}[_0x5a9f30(0x40a,0x457)](){function _0x551fce(_0xf47629,_0x39bbd9){return _0x5a9f30(_0xf47629- -0x670,_0x39bbd9);}this[_0x5b0bfb(-0x2be,-0x309)]['U']['destroy']();function _0x5b0bfb(_0x49f204,_0x1d4e01){return _0x1da74e(_0x1d4e01,_0x49f204- -0x568);}this['windTextures']['V']['destroy'](),this[_0x5b0bfb(-0x232,-0x27b)]();}[_0x5a9f30(0x3f1,0x419)](_0x977cbb){function _0x327326(_0xaac88d,_0x4c80b0){return _0x5a9f30(_0xaac88d- -0x1ff,_0x4c80b0);}this[_0x327326(0x274,0x2cc)]=_0x977cbb,this['reCreateWindTextures']();}['updateOptions'](_0x553b69){function _0x4f6794(_0x4833a6,_0x3547ab){return _0x1da74e(_0x3547ab,_0x4833a6-0x35);}function _0x4d449e(_0x54b7c8,_0x1485ba){return _0x1da74e(_0x54b7c8,_0x1485ba- -0x54);}const _0x227c03=_0x553b69[_0x4f6794(0x2c5,0x2fb)]!==undefined&&_0x553b69['flipY']!==this['options'][_0x4d449e(0x1e0,0x23c)];this['options']=deepMerge(_0x553b69,this['options']),_0x227c03&&this['reCreateWindTextures']();}['processWindData'](_0x14ce0f){function _0x32aaaa(_0x14b8a5,_0x14d454){return _0x1da74e(_0x14d454,_0x14b8a5- -0x12f);}const {array:_0xd1d341}=_0x14ce0f;function _0x5cbdae(_0x57b3b9,_0x38373a){return _0x5a9f30(_0x38373a- -0x599,_0x57b3b9);}let {min:_0x58100c,max:_0x3e6dae}=_0x14ce0f;const _0x1f5a84=new Float32Array(_0xd1d341['length']);_0x58100c===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x58100c=Math['min'](..._0xd1d341));_0x3e6dae===undefined&&(console[_0x5cbdae(-0x17a,-0x200)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x3e6dae=Math[_0x32aaaa(0x144,0x1ac)](..._0xd1d341));const _0x15d5da=Math['max'](Math['abs'](_0x58100c),Math[_0x5cbdae(-0x1d7,-0x1bd)](_0x3e6dae));for(let _0x4e6ab9=0x0;_0x4e6ab9<_0xd1d341['length'];_0x4e6ab9++){const _0x1790b6=_0xd1d341[_0x4e6ab9]/_0x15d5da;_0x1f5a84[_0x4e6ab9]=_0x1790b6;}return _0x1f5a84;}[_0x1da74e(0x265,0x28c)](){Object['values'](this['windTextures'])['forEach'](_0xc22ed2=>_0xc22ed2['destroy']());function _0x1b57bc(_0xa42121,_0x591ea5){return _0x1da74e(_0x591ea5,_0xa42121- -0x572);}Object[_0x1b57bc(-0x286,-0x23f)](this['particlesTextures'])['forEach'](_0x591382=>_0x591382['destroy']());function _0x116210(_0x494189,_0x2f3e7f){return _0x1da74e(_0x494189,_0x2f3e7f- -0x3fe);}Object[_0x116210(-0x135,-0x112)](this[_0x116210(-0x16b,-0x17c)])['forEach'](_0x4e3bda=>_0x4e3bda['destroy']()),this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x12dd7c,_0x468dcf,_0x552ee2,_0xf24e7b){this['context']=_0x12dd7c,this[_0x3d9b65(0x3b0,0x369)]=_0x468dcf,this['viewerParameters']=_0x552ee2,this['computing']=_0xf24e7b;(typeof this['options']['particlesTextureSize']!==_0x195b41(-0xa4,-0xb9)||this[_0x195b41(-0xbc,-0xca)][_0x195b41(-0x16c,-0x189)]<=0x0)&&(console[_0x3d9b65(0x375,0x353)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x3d9b65(0x300,0x2b2)]=0x100);this['colorTable']=this[_0x195b41(-0x17d,-0x115)](),this[_0x3d9b65(0x3b7,0x3e1)]=this[_0x195b41(-0xae,-0x2e)]();function _0x3d9b65(_0x4a6621,_0x3ed15d){return _0x5a9f30(_0x4a6621- -0xc2,_0x3ed15d);}this['framebuffers']=this['createRenderingFramebuffers']();function _0x195b41(_0x2f11c2,_0x34ffb5){return _0x5a9f30(_0x2f11c2- -0x52e,_0x34ffb5);}this['primitives']=this[_0x195b41(-0xba,-0x34)]();}['createRenderingTextures'](){const _0x43983a={};_0x43983a['context']=this[_0x397020(-0x24,0x2b)],_0x43983a[_0x25764a(-0x314,-0x30c)]=this[_0x25764a(-0x1d7,-0x25f)]['drawingBufferWidth'],_0x43983a[_0x397020(-0x2c,-0x25)]=this[_0x25764a(-0x27d,-0x25f)][_0x397020(-0x55,0x10)],_0x43983a['pixelFormat']=PixelFormat['RGBA'],_0x43983a['pixelDatatype']=PixelDatatype[_0x397020(0x13,0x94)];const _0xe65ce0=_0x43983a;function _0x397020(_0x5cd7db,_0x4326de){return _0x5a9f30(_0x5cd7db- -0x45a,_0x4326de);}const _0x41e969={};_0x41e969[_0x397020(-0x24,-0x6e)]=this['context'],_0x41e969['width']=this['context']['drawingBufferWidth'],_0x41e969['height']=this[_0x397020(-0x24,0x41)]['drawingBufferHeight'],_0x41e969[_0x25764a(-0x2f4,-0x270)]=PixelFormat[_0x397020(0x15,-0x58)];function _0x25764a(_0x5552ad,_0x1d2cf3){return _0x5a9f30(_0x1d2cf3- -0x695,_0x5552ad);}_0x41e969[_0x397020(0x9,-0x15)]=PixelDatatype[_0x397020(0x3a,0x27)];const _0x2bd555=_0x41e969;return{'segmentsColor':new Texture(_0xe65ce0),'segmentsDepth':new Texture(_0x2bd555)};}['createRenderingFramebuffers'](){const _0x4f6925={};function _0x5ceb37(_0x113c61,_0x20dce3){return _0x1da74e(_0x20dce3,_0x113c61-0x1aa);}_0x4f6925['context']=this[_0x4f06f8(0x42f,0x3f4)],_0x4f6925['colorTextures']=[this['textures']['segmentsColor']],_0x4f6925['depthTexture']=this[_0x5ceb37(0x4f0,0x508)]['segmentsDepth'];function _0x4f06f8(_0x2d1e60,_0x1b46ff){return _0x1da74e(_0x1b46ff,_0x2d1e60-0x12c);}return{'segments':new Framebuffer(_0x4f6925)};}['destoryRenderingFramebuffers'](){function _0x303d21(_0x4418c2,_0xaac312){return _0x5a9f30(_0xaac312- -0x12c,_0x4418c2);}function _0x30759f(_0x513b66,_0x320b5a){return _0x5a9f30(_0x320b5a- -0x4d1,_0x513b66);}Object[_0x303d21(0x319,0x2f3)](this[_0x30759f(-0x21,-0x9e)])[_0x30759f(-0xa2,-0x12d)](_0x544eac=>{_0x544eac['destroy']();});}['createColorTableTexture'](){function _0x40ecf0(_0x1e3d4f,_0x370cac){return _0x5a9f30(_0x1e3d4f- -0x206,_0x370cac);}function _0x21f95c(_0x7a97f9,_0x3ece8b){return _0x5a9f30(_0x7a97f9- -0x34b,_0x3ece8b);}const _0x225f3d=new Float32Array(this['options']['colors'][_0x21f95c(0x52,0x87)](_0x2b5d7b=>{function _0x5e005a(_0x41fd64,_0x3f15f2){return _0x21f95c(_0x41fd64- -0x277,_0x3f15f2);}const _0x33299d=Color$1['fromCssColorString'](_0x2b5d7b);return[_0x33299d['red'],_0x33299d['green'],_0x33299d['blue'],_0x33299d[_0x5e005a(-0x190,-0x1e8)]];})),_0x2ff6a6={};return _0x2ff6a6['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x2ff6a6['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x2ff6a6[_0x40ecf0(0x1cd,0x1f8)]=TextureWrap['CLAMP_TO_EDGE'],_0x2ff6a6['wrapT']=TextureWrap[_0x40ecf0(0x279,0x25c)],new Texture({'context':this[_0x40ecf0(0x230,0x1d5)],'width':this['options'][_0x21f95c(0xe6,0x16a)]['length'],'height':0x1,'pixelFormat':PixelFormat[_0x21f95c(0x13c,0xc6)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x2ff6a6),'source':{'width':this['options'][_0x21f95c(0xe6,0x16d)][_0x21f95c(0x55,-0x2)],'height':0x1,'arrayBufferView':_0x225f3d}});}['createSegmentsGeometry'](){const _0x4efff3=0x4,_0x5ac192=this[_0x537130(-0x88,-0x54)]['particlesTextureSize'];let _0x368269=[];for(let _0x49ed7a=0x0;_0x49ed7a<_0x5ac192;_0x49ed7a++){for(let _0x1e63a4=0x0;_0x1e63a4<_0x5ac192;_0x1e63a4++){for(let _0x4c7861=0x0;_0x4c7861<_0x4efff3;_0x4c7861++){_0x368269['push'](_0x49ed7a/_0x5ac192),_0x368269['push'](_0x1e63a4/_0x5ac192);}}}_0x368269=new Float32Array(_0x368269);function _0x537130(_0x8b39ab,_0x276fbd){return _0x5a9f30(_0x8b39ab- -0x4fa,_0x276fbd);}const _0xb81411=this['options']['particlesTextureSize']**0x2;let _0x7ab669=[];for(let _0x183528=0x0;_0x183528<_0xb81411;_0x183528++){_0x7ab669['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x7ab669=new Float32Array(_0x7ab669);let _0x1e4894=[];for(let _0x738976=0x0,_0x48ccf7=0x0;_0x738976<_0xb81411;_0x738976++){_0x1e4894['push'](_0x48ccf7+0x0,_0x48ccf7+0x1,_0x48ccf7+0x2,_0x48ccf7+0x2,_0x48ccf7+0x1,_0x48ccf7+0x3),_0x48ccf7+=_0x4efff3;}function _0x2e8998(_0x402f89,_0xdc5fd1){return _0x1da74e(_0x402f89,_0xdc5fd1- -0x2d9);}_0x1e4894=new Uint32Array(_0x1e4894);const _0x5c0e62={};_0x5c0e62['componentDatatype']=ComponentDatatype['FLOAT'],_0x5c0e62[_0x537130(-0x11f,-0xe2)]=0x2,_0x5c0e62['values']=_0x368269;const _0x322860={};_0x322860[_0x537130(-0x102,-0x126)]=ComponentDatatype['FLOAT'],_0x322860['componentsPerAttribute']=0x3,_0x322860[_0x2e8998(-0x73,0x13)]=_0x7ab669;const _0x67e519=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x5c0e62),'normal':new GeometryAttribute(_0x322860)}),'indices':_0x1e4894});return _0x67e519;}['createRawRenderState'](_0xbb468a){function _0x5e0a00(_0x4ca58f,_0xe22d54){return _0x1da74e(_0x4ca58f,_0xe22d54- -0x4d5);}const _0x25686d={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0xbb468a};return Appearance[_0x5e0a00(-0x2dc,-0x27c)](!![],![],_0x25686d);}['createPrimitives'](){function _0x5f3323(_0x38d3db,_0x343450){return _0x5a9f30(_0x343450- -0x498,_0x38d3db);}const _0x5970ee={};_0x5970ee['st']=0x0,_0x5970ee['normal']=0x1;const _0x1095de={};_0x1095de['enabled']=!![];const _0x401740={};_0x401740['enabled']=!![],_0x401740['blendEquation']=WebGLRenderingContext[_0x4a1615(0x1,-0x2d)],_0x401740['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x401740['blendFuncDestination']=WebGLRenderingContext[_0x5f3323(-0xe0,-0xfe)];const _0xa97edb={};_0xa97edb[_0x4a1615(0xb,-0x50)]=undefined,_0xa97edb['depthTest']=_0x1095de,_0xa97edb[_0x5f3323(0x55,-0x28)]=!![],_0xa97edb['blending']=_0x401740;function _0x4a1615(_0x59e3ef,_0x2d5749){return _0x1da74e(_0x59e3ef,_0x2d5749- -0x2dd);}const _0xd72e43=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x5970ee,'geometry':this[_0x5f3323(-0xd4,-0x9f)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x4a1615(0xf5,0x6b)],'postProcessingPosition':()=>this['computing']['particlesTextures'][_0x4a1615(-0xf5,-0x81)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x4a1615(0x10,-0x31)],'frameRateAdjustment':()=>this['computing'][_0x5f3323(-0x80,-0xaa)],'colorTable':()=>this[_0x5f3323(-0x10d,-0x108)],'domain':()=>{function _0x376ad3(_0x2e125b,_0x14249c){return _0x5f3323(_0x2e125b,_0x14249c-0x1b9);}var _0x4f4da7,_0x1deda7;const _0x427463=new Cartesian2(((_0x4f4da7=this[_0xfca597(0xfc,0x80)]['domain'])===null||_0x4f4da7===void 0x0?void 0x0:_0x4f4da7[_0xfca597(0xd1,0xce)])??this['computing'][_0xfca597(0xfd,0x136)]['speed'][_0xfca597(0xd1,0xff)],((_0x1deda7=this['options']['domain'])===null||_0x1deda7===void 0x0?void 0x0:_0x1deda7[_0xfca597(0x30,0x1f)])??this[_0xfca597(0x34,0xbe)]['windData']['speed']['max']);function _0xfca597(_0x1ee072,_0x209641){return _0x5f3323(_0x209641,_0x1ee072-0x122);}return _0x427463;},'displayRange':()=>{function _0x263872(_0x494c38,_0xf2ce0){return _0x5f3323(_0xf2ce0,_0x494c38-0x268);}var _0x29b05c,_0x1dbbe8;function _0x58b9e9(_0x416bc2,_0x288b2a){return _0x5f3323(_0x288b2a,_0x416bc2- -0x236);}const _0x24d47e=new Cartesian2(((_0x29b05c=this['options']['displayRange'])===null||_0x29b05c===void 0x0?void 0x0:_0x29b05c['min'])??this[_0x58b9e9(-0x324,-0x356)]['windData'][_0x58b9e9(-0x2f7,-0x2f9)]['min'],((_0x1dbbe8=this[_0x263872(0x242,0x1b8)]['displayRange'])===null||_0x1dbbe8===void 0x0?void 0x0:_0x1dbbe8[_0x263872(0x176,0x1a8)])??this[_0x58b9e9(-0x324,-0x34f)]['windData'][_0x58b9e9(-0x2f7,-0x2cb)][_0x58b9e9(-0x328,-0x3b2)]);return _0x24d47e;},'particleHeight':()=>this['options'][_0x4a1615(-0x2a,0x52)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this[_0x5f3323(-0x2b,-0x83)]['pixelSize'],'lineWidth':()=>{function _0x31e622(_0x455b78,_0x554007){return _0x4a1615(_0x554007,_0x455b78-0x33c);}const _0x44b7e6={};_0x44b7e6['min']=0x1,_0x44b7e6['max']=0x2;const _0x5eb440=this['options']['lineWidth']||_0x44b7e6;return new Cartesian2(_0x5eb440['min'],_0x5eb440[_0x31e622(0x2d2,0x353)]);},'lineLength':()=>{const _0x581e12={};function _0x204bfe(_0x5911f3,_0x2b92f0){return _0x5f3323(_0x2b92f0,_0x5911f3-0x4b);}_0x581e12['min']=0x14,_0x581e12[_0x204bfe(-0xa7,-0x65)]=0x64;function _0x5634e8(_0x33e856,_0x48792a){return _0x5f3323(_0x33e856,_0x48792a-0x49);}const _0x39a63a=this['options'][_0x5634e8(-0x72,-0x17)]||_0x581e12;return new Cartesian2(_0x39a63a['min'],_0x39a63a[_0x5634e8(-0x4d,-0xa9)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x5f3323(-0x41,-0x2e)],'segmentsDepthTexture':()=>this['textures'][_0x5f3323(-0x27,-0xb0)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x5f3323(0x1e,-0x6d)](_0xa97edb)}),_0x29d141={};return _0x29d141['segments']=_0xd72e43,_0x29d141;}[_0x1da74e(0x25d,0x2d6)](){const _0x49ff12=this['createSegmentsGeometry']();this[_0x208aa5(0x9b,0xee)]['segments']['geometry']=_0x49ff12;function _0x208aa5(_0x52fef6,_0x3afc24){return _0x5a9f30(_0x3afc24- -0x2c7,_0x52fef6);}const _0x240591={};_0x240591['context']=this[_0x15d8a0(0x33b,0x33d)],_0x240591[_0x15d8a0(0x2f0,0x37a)]=_0x49ff12,_0x240591['attributeLocations']=this['primitives']['segments']['attributeLocations'],_0x240591[_0x208aa5(0x1e6,0x18c)]=BufferUsage['STATIC_DRAW'];const _0x14ed84=VertexArray['fromGeometry'](_0x240591);function _0x15d8a0(_0x5b37ae,_0x322d6f){return _0x1da74e(_0x322d6f,_0x5b37ae-0x38);}this['primitives']['segments']['commandToExecute']&&(this[_0x208aa5(0x9f,0xee)]['segments']['commandToExecute']['vertexArray']=_0x14ed84);}[_0x1da74e(0x22b,0x2a2)](){function _0x434422(_0x1d8eff,_0xc1d032){return _0x5a9f30(_0xc1d032- -0x3d4,_0x1d8eff);}this['colorTable']['destroy'](),this[_0x434422(0x42,-0x44)]=this['createColorTableTexture']();}['updateOptions'](_0x5c46c0){function _0x5a81f1(_0x194043,_0x2bb6c4){return _0x1da74e(_0x2bb6c4,_0x194043- -0x31b);}const _0x506f10=_0x5c46c0[_0x5a81f1(-0x1d,0x63)]&&JSON['stringify'](_0x5c46c0[_0x2288a7(-0x11c,-0xcc)])!==JSON[_0x5a81f1(-0x48,-0x1c)](this['options']['colors']);function _0x2288a7(_0x5aed3d,_0x33fde3){return _0x1da74e(_0x5aed3d,_0x33fde3- -0x3ca);}this['options']=deepMerge(_0x5c46c0,this[_0x2288a7(-0x102,-0x8b)]),_0x506f10&&this['onColorTableChange']();}['destroy'](){Object['values'](this[_0x2b8e9f(0x135,0xf9)])['forEach'](_0x1d582c=>{_0x1d582c['destroy']();});function _0x30bcf2(_0x177c0f,_0x499901){return _0x1da74e(_0x499901,_0x177c0f- -0x216);}Object[_0x30bcf2(0xd6,0xb2)](this[_0x2b8e9f(0xad,0x7b)])[_0x30bcf2(0x5b,0xb5)](_0x3b2180=>{_0x3b2180['destroy']();});function _0x2b8e9f(_0x36b371,_0x186747){return _0x1da74e(_0x36b371,_0x186747- -0x207);}this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x667364,_0x56e0ce,_0x123159,_0x1ee703,_0x13a8c4){this['context']=_0x667364;function _0x18c908(_0x229caa,_0x3290a5){return _0x1da74e(_0x229caa,_0x3290a5- -0x9a);}this[_0x18c908(0x251,0x2a5)]=_0x123159,this['viewerParameters']=_0x1ee703,this['computing']=new WindParticlesComputing(_0x667364,_0x56e0ce,_0x123159,_0x1ee703,_0x13a8c4),this['rendering']=new WindParticlesRendering(_0x667364,_0x123159,_0x1ee703,this[_0x299ea5(0x38f,0x410)]);function _0x299ea5(_0x124593,_0x18d1bf){return _0x5a9f30(_0x124593- -0x1b,_0x18d1bf);}this['clearFramebuffers']();}['getPrimitives'](){const _0x383cc9=[this['computing'][_0x1b0584(0x240,0x1c8)]['calculateSpeed'],this['computing']['primitives'][_0x51780a(0x2ec,0x31f)],this['computing']['primitives'][_0x51780a(0x356,0x2e1)],this[_0x51780a(0x34e,0x3ac)]['primitives'][_0x51780a(0x336,0x352)]];function _0x1b0584(_0x10755b,_0x412e53){return _0x1da74e(_0x10755b,_0x412e53- -0xba);}function _0x51780a(_0x209e2c,_0x39f2bc){return _0x5a9f30(_0x39f2bc- -0xae,_0x209e2c);}return _0x383cc9;}[_0x5a9f30(0x40f,0x3b0)](){const _0x36dd25=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this['rendering']['framebuffers'])['forEach'](_0x243cd9=>{function _0x6ac2ca(_0x583346,_0x1e07d2){return _0x580d(_0x583346-0x89,_0x1e07d2);}_0x36dd25[_0x6ac2ca(0x1fd,0x219)]=this['rendering']['framebuffers'][_0x243cd9];function _0x449927(_0xe81282,_0x4d7f3d){return _0x580d(_0xe81282- -0x2b8,_0x4d7f3d);}_0x36dd25[_0x449927(-0x1d9,-0x1db)](this[_0x6ac2ca(0x1a0,0x151)]);});}['changeOptions'](_0x69a923){let _0x1194ce=![];_0x69a923['particlesTextureSize']&&this[_0x2210ce(-0x16c,-0x134)][_0x4fa202(-0x23e,-0x245)]!==_0x69a923['particlesTextureSize']&&(_0x1194ce=!![]);const _0x468f7e=deepMerge(_0x69a923,this['options']);if(_0x468f7e['particlesTextureSize']<0x1)throw new Error(_0x2210ce(-0x166,-0x147));function _0x2210ce(_0x5ebef9,_0x4332ef){return _0x1da74e(_0x5ebef9,_0x4332ef- -0x473);}this[_0x2210ce(-0x1a5,-0x134)]=_0x468f7e,this['rendering']['updateOptions'](_0x69a923);function _0x4fa202(_0x5aaa66,_0x24f13f){return _0x1da74e(_0x5aaa66,_0x24f13f- -0x4d4);}this[_0x4fa202(-0x29f,-0x25d)][_0x2210ce(-0x1e9,-0x182)](_0x69a923),_0x1194ce&&(this[_0x2210ce(-0x1a5,-0x1fc)]['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering'][_0x2210ce(-0x1bf,-0x19d)]());}[_0x5a9f30(0x40b,0x446)](_0x49ef0b){this['viewerParameters']=_0x49ef0b;function _0x10745d(_0x3d6256,_0x339117){return _0x5a9f30(_0x3d6256-0x48,_0x339117);}this[_0x10745d(0x3f2,0x46b)][_0x10745d(0x45d,0x3f9)]=_0x49ef0b;function _0x41d0cb(_0x1caa0a,_0x5b93f7){return _0x1da74e(_0x1caa0a,_0x5b93f7- -0x17d);}this['rendering']['viewerParameters']=_0x49ef0b;}['destroy'](){function _0x2b267b(_0xa9363f,_0x3effcf){return _0x1da74e(_0xa9363f,_0x3effcf- -0xb7);}this['computing'][_0x5e0404(0x9e,0xbf)]();function _0x5e0404(_0x1d781f,_0x4f3c75){return _0x5a9f30(_0x4f3c75- -0x300,_0x1d781f);}this[_0x5e0404(0x15a,0x15a)]['destroy']();}}const Cesium$1=mars3d__namespace[_0x5a9f30(0x3fc,0x3a8)],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x3693be={};_0x3693be[_0x5a9f30(0x447,0x456)]=0x1,_0x3693be[_0x5a9f30(0x3a6,0x428)]=0x2;const _0x19eb89={};_0x19eb89['min']=0x14,_0x19eb89['max']=0x64;const _0x2ccd86={};_0x2ccd86['particlesTextureSize']=0x64,_0x2ccd86[_0x5a9f30(0x462,0x406)]=0x0,_0x2ccd86['lineWidth']=_0x3693be,_0x2ccd86[_0x5a9f30(0x438,0x3f3)]=_0x19eb89,_0x2ccd86[_0x1da74e(0x386,0x324)]=0x1,_0x2ccd86['dropRate']=0.003,_0x2ccd86[_0x1da74e(0x36a,0x356)]=0.001;function _0x5a9f30(_0x1b380d,_0x2b5365){return _0x580d(_0x1b380d-0x31f,_0x2b5365);}function _0x38fc(){const _0x489983=['pass','maxAge','clientHeight','primitives','Cartesian2','resize','globalCompositeOperation','globe','canvasContext','stroke','fill','xmax','update','destroy','viewport','RED','particlesTextureSize','flipY','show','top','object','46ZNBlmg','east','windField','lineWidth','shaderProgram','dropRate','updatePosition','NEAREST','wheel','8613848BlGWxj','createComputingPrimitives','commandType','wrapS','_maxAge','onColorTableChange','removeChild','speed','fromDegrees','uniformMap','cancelAnimationFrame','componentsPerAttribute','abs','windTextures','umax','particlesSpeed','EventType','1784330vZeqKK','ColorRamp','FUNC_ADD','sceneMode','_showHook','north','cols','segmentsDepth','steps','_animateFrame','geometry','ymin','_randomParticle','frameRateAdjustment','dynamic','rows','updateWindData','getDataAtLonLat','worker','percentageChanged','__esModule','_speedRate','_mountedHook','componentDatatype','createSegmentsGeometry','initWorker','_canrefresh','Cesium','CanvasWindLayer','execute','scene','segments','default','createCommand','speedRate','age','drawingBufferHeight','stringify','array','21708lNApyS','onParticlesTextureSizeChange','reCreateWindTextures','applyViewerParameters','_onMouseDownEvent','WindUtil','Compute','clearFramebuffers','udata','unbindEvent','_map','redraw','random','viewerParameters','_bilinearInterpolation','strokeStyle','init','camera','umin','_setOptionsHook','DomUtil','owner','defineProperty','values','ellipsoid','_calcUV','4724665rSEppI','_pointerEvents','updateOptions','pixelFormat','xmin','_tomap','prototype','getDirection','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a','createRawRenderState','left','removeEventListener','height','canvasHeight','WindLayer','colors','alpha','framebuffers','west','tlng','context','error','lineLength','mouse_down','mouseHidden','auto','lastFramesPerSecond','492ydglFl','latitude','position','reverse','south','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','requestRender','pow','_updateIng2','particlesNumber','min','visibility','lat','original','clearCommand','_onMouseUpEvent','commandToExecute','fromCache','getUVByPoint','interpolated','OPAQUE','6472aLsiCa','bufferUsage','previousParticlesPosition','push','setData','speedFactor','modelMatrix','canvas','rendering','fromGeometry','ymax','off','type','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','pixelSize','pointer-events','fixedHeight','pixelDatatype','floor','vertexShaderSource','1933745UaELhJ','getPrimitives','getSpeed','createWindTextures','SCENE3D','_onMouseMoveEvent','bind','UNSIGNED_BYTE','Math','DEPTH_COMPONENT','depthMask','LINEAR','options','windData','createPrimitives','style','primitiveType','lng','_drawLines','textures','toRadians','currentParticlesPosition','particlesTextures','bounds','preExecute','CLAMP_TO_EDGE','createRenderingTextures','keys','CanvasWindField','samplingWindow','zIndex','requestAnimationFrame','84dpyIJg','RGBA','_removedHook','dropRateBump','number','sqrt','18Kgnkyr','7VcjiVf','_colorRamp','_onMapWhellEvent','_updateIng','particles','rawRenderState','framebuffer','UNSIGNED_INT','_addedHook','clear','fragmentShaderSource','Unknown\x20command\x20type','toDegrees','beginPath','setDate','talt','layer','isDynamic','width','processWindData','_calc_speedRate','getDefaultRenderState','clientWidth','fillRect','postProcessingPosition','colorTable','attributeLocations','pointerEvents','call','magnificationFilter','data','grid','tlat','getSegmentDrawVertexShader','warn','ONE_MINUS_SRC_ALPHA','nextParticlesPosition','postMessage','flatMap','destination-in','quietPeriod','length','mouseMove','minificationFilter','particleSystem','forEach','updateViewerParameters','max','sources','outputTexture','bindEvent','computing','useViewerBounds','absolute','2179710RBSYoP','willReadFrequently','frameTime','getPostProcessingPositionShader','createColorTableTexture'];_0x38fc=function(){return _0x489983;};return _0x38fc();}_0x2ccd86['colors']=['rgb(206,255,255)'],_0x2ccd86[_0x1da74e(0x278,0x290)]=![],_0x2ccd86['dynamic']=!![];const DEF_OPTIONS=_0x2ccd86;class WindLayer extends BaseLayer$1{constructor(_0x4ae9ca={}){_0x4ae9ca={...DEF_OPTIONS,..._0x4ae9ca},super(_0x4ae9ca),this['_setOptionsHook'](_0x4ae9ca,_0x4ae9ca);}get[_0x1da74e(0x2ce,0x254)](){return this['primitives'];}get[_0x5a9f30(0x395,0x336)](){function _0x4893dc(_0x57b19f,_0x5dfa06){return _0x5a9f30(_0x57b19f- -0x5dd,_0x5dfa06);}return this['options'][_0x4893dc(-0x248,-0x286)];}set['data'](_0x24c427){this[_0x12284d(0x1f4,0x25b)]['data']=_0x24c427;function _0x12284d(_0x5996c9,_0x1ac9b4){return _0x1da74e(_0x5996c9,_0x1ac9b4- -0xe4);}function _0x22e132(_0x862531,_0x44afe3){return _0x1da74e(_0x44afe3,_0x862531- -0x334);}this[_0x12284d(0x21a,0x23f)](_0x24c427);}get[_0x5a9f30(0x431,0x420)](){function _0x141365(_0x107525,_0x443d82){return _0x5a9f30(_0x443d82- -0x6d9,_0x107525);}return this['options'][_0x141365(-0x32e,-0x2a8)];}set['colors'](_0x472c2c){this['options'][_0xe05088(0x47,0x8f)]=_0x472c2c;function _0xe05088(_0x1eed64,_0x1019b0){return _0x5a9f30(_0x1019b0- -0x3a2,_0x1eed64);}const _0x17e05d={};function _0x24f16(_0x18634d,_0x1f82be){return _0x5a9f30(_0x1f82be-0x10,_0x18634d);}_0x17e05d['colors']=_0x472c2c,this[_0x24f16(0x400,0x42b)](this['options'],_0x17e05d);}[_0x1da74e(0x33b,0x2b2)](_0x419bf0){_0x419bf0?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}[_0x1da74e(0x3e6,0x362)](){this[_0x2cb2ce(-0x208,-0x192)]=this['_map']['scene'],this[_0x2cb2ce(-0x144,-0x178)]=this['_map']['camera'];function _0x467d62(_0x23d0e5,_0x3683b5){return _0x5a9f30(_0x23d0e5- -0x6a3,_0x3683b5);}this['options']['data']&&this['setData'](this['options']['data']);if(!this['windData']||!this['show'])return;function _0x2cb2ce(_0xef2cbf,_0x347cef){return _0x1da74e(_0xef2cbf,_0x347cef- -0x45e);}this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x2cb2ce(-0x137,-0x192)]['mode']},this['updateViewerParameters'](),this[_0x2cb2ce(-0x214,-0x1ee)]=new WindParticleSystem(this['scene'][_0x2cb2ce(-0x1b6,-0x15b)],this[_0x467d62(-0x230,-0x1f3)],this['options'],this['viewerParameters'],this[_0x467d62(-0x2a4,-0x32f)]),this['primitives']=this['particleSystem'][_0x2cb2ce(-0x136,-0x12a)](),this[_0x467d62(-0x2ee,-0x2b6)][_0x467d62(-0x2ff,-0x387)](_0x37d12b=>{function _0x6efaf5(_0xbac844,_0x1a70e9){return _0x467d62(_0xbac844-0x73c,_0x1a70e9);}this['scene'][_0x6efaf5(0x44e,0x485)]['add'](_0x37d12b);}),this[_0x2cb2ce(-0x16a,-0x178)][_0x2cb2ce(-0x1a1,-0x19d)]=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this)),this[_0x467d62(-0x2a4,-0x319)]['morphComplete']['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this[_0x467d62(-0x2fe,-0x383)]['bind'](this));}[_0x5a9f30(0x488,0x469)](){this[_0x254a60(0x435,0x441)]['changed'][_0x254a60(0x3eb,0x455)](this[_0x254a60(0x3bf,0x3cd)][_0x254a60(0x4e8,0x494)](this));function _0x21cd86(_0x3f3621,_0x2b3313){return _0x1da74e(_0x2b3313,_0x3f3621- -0x3f9);}this[_0x254a60(0x44b,0x427)]['morphComplete'][_0x21cd86(-0xff,-0xa3)](this[_0x254a60(0x374,0x3cd)][_0x254a60(0x41b,0x494)](this));function _0x254a60(_0x321f56,_0x34f2f0){return _0x5a9f30(_0x34f2f0-0x28,_0x321f56);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this)),this[_0x21cd86(-0x177,-0x10e)]&&(this[_0x21cd86(-0x177,-0x13b)][_0x21cd86(-0x188,-0x1c3)](_0xa08ceb=>{function _0x26d316(_0x234cf2,_0x1cc179){return _0x254a60(_0x234cf2,_0x1cc179- -0x2f2);}this[_0x26d316(0x10c,0x135)]['primitives']['remove'](_0xa08ceb);}),delete this['primitives']),this[_0x21cd86(-0x189,-0x199)]&&(this['particleSystem']['destroy'](),delete this['particleSystem']);}['setData'](_0x5ea4d2,_0x525ace){function _0x135235(_0x3e9fa3,_0x348336){return _0x1da74e(_0x348336,_0x3e9fa3-0x140);}this[_0x135235(0x480,0x42b)]=this['processWindData'](_0x5ea4d2);if(_0x525ace){this[_0x2d98f2(0x428,0x49d)](),this['_addedHook']();return;}function _0x2d98f2(_0x5dd2e2,_0x487200){return _0x5a9f30(_0x5dd2e2- -0x60,_0x487200);}this['particleSystem']?(this['particleSystem']['computing'][_0x135235(0x3fe,0x3b5)](this['windData']),this['scene'][_0x2d98f2(0x3e3,0x42f)]()):this['_addedHook']();}['_setOptionsHook'](_0x4da3c0,_0x42518e){function _0x4ff797(_0x203c7a,_0x13daa8){return _0x5a9f30(_0x203c7a- -0x530,_0x13daa8);}function _0x344b57(_0x464c9c,_0x3f769c){return _0x1da74e(_0x464c9c,_0x3f769c- -0x439);}this['particleSystem']&&(this[_0x4ff797(-0x18d,-0x147)]['changeOptions'](_0x42518e),this[_0x344b57(-0x1e4,-0x16d)]['requestRender']());}[_0x1da74e(0x1dc,0x257)](_0x45ae2b){var _0x1ac0ca,_0x4eb859;const _0xec04af={..._0x45ae2b},_0x322268=_0xec04af;!_0x322268['height']&&_0x322268['rows']&&(_0x322268['height']=_0x322268['rows']);!_0x322268['width']&&_0x322268[_0x3e36ab(-0x2f1,-0x30a)]&&(_0x322268[_0x2fcb71(0x17e,0x125)]=_0x322268['cols']);!_0x322268['bounds']&&(_0x322268['bounds']={'west':_0x322268['xmin'],'south':_0x322268['ymin'],'east':_0x322268['xmax'],'north':_0x322268['ymax']});if(!_0x322268['u']){const _0x5336f6={};_0x5336f6['array']=_0x45ae2b['udata'],_0x5336f6['min']=_0x45ae2b[_0x2fcb71(0x185,0x1b6)],_0x5336f6[_0x3e36ab(-0x332,-0x377)]=_0x45ae2b[_0x2fcb71(0x1bd,0x17a)],_0x322268['u']=_0x5336f6;}if(!_0x322268['v']){const _0x1f3396={};_0x1f3396['array']=_0x45ae2b['vdata'],_0x1f3396['min']=_0x45ae2b['vmin'],_0x1f3396['max']=_0x45ae2b['vmax'],_0x322268['v']=_0x1f3396;}if(((_0x1ac0ca=_0x322268[_0x3e36ab(-0x301,-0x337)])===null||_0x1ac0ca===void 0x0?void 0x0:_0x1ac0ca['min'])===undefined||((_0x4eb859=_0x322268['speed'])===null||_0x4eb859===void 0x0?void 0x0:_0x4eb859[_0x3e36ab(-0x332,-0x2bc)])===undefined||_0x322268['speed']['array']===undefined){const _0x5cd306={'array':new Float32Array(_0x322268['u']['array']['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x333651=0x0;_0x333651<_0x322268['u']['array']['length'];_0x333651++){_0x5cd306['array'][_0x333651]=Math['sqrt'](_0x322268['u']['array'][_0x333651]*_0x322268['u']['array'][_0x333651]+_0x322268['v']['array'][_0x333651]*_0x322268['v']['array'][_0x333651]),_0x5cd306['array'][_0x333651]!==0x0&&(_0x5cd306['min']=Math[_0x2fcb71(0x226,0x1e3)](_0x5cd306['min'],_0x5cd306['array'][_0x333651]),_0x5cd306[_0x3e36ab(-0x332,-0x3b0)]=Math[_0x2fcb71(0x13a,0x142)](_0x5cd306[_0x3e36ab(-0x332,-0x31f)],_0x5cd306[_0x3e36ab(-0x2d1,-0x32f)][_0x333651]));}_0x322268[_0x2fcb71(0x173,0x173)]=_0x5cd306;}function _0x2fcb71(_0x38b815,_0x174d83){return _0x1da74e(_0x38b815,_0x174d83- -0x131);}function _0x3e36ab(_0x13e458,_0x2f6616){return _0x5a9f30(_0x13e458- -0x6d8,_0x2f6616);}return _0x322268;}[_0x5a9f30(0x3a5,0x36e)](){var _0x2bb6b0;const _0x4c478e=this[_0x164720(0x2f5,0x2d1)];if(!_0x4c478e)return;function _0x164720(_0x5ec242,_0x5b91bb){return _0x1da74e(_0x5b91bb,_0x5ec242-0x29);}const _0xaa6e26=_0x4c478e['canvas'],_0x281da4={};_0x281da4['x']=0x0,_0x281da4['y']=0x0;const _0xea1a89={};_0xea1a89['x']=0x0,_0xea1a89['y']=_0xaa6e26['clientHeight'];const _0x28f89d={};_0x28f89d['x']=_0xaa6e26[_0x164720(0x283,0x20b)],_0x28f89d['y']=0x0;function _0x545dfe(_0x271e1d,_0x261a4c){return _0x1da74e(_0x271e1d,_0x261a4c- -0x2af);}const _0x3cd677={};_0x3cd677['x']=_0xaa6e26['clientWidth'],_0x3cd677['y']=_0xaa6e26[_0x545dfe(0x5b,-0x2e)];const _0xa22621=[_0x281da4,_0xea1a89,_0x28f89d,_0x3cd677];let _0x206831=0xb4,_0x2d03c8=-0xb4,_0x2e9025=0x5a,_0x39a1c3=-0x5a,_0xaa5b81=![];for(const _0x22959b of _0xa22621){const _0xdd0c35=_0x4c478e[_0x545dfe(-0x23,0x37)]['pickEllipsoid'](new Cesium$1[(_0x545dfe(0x1f,-0x2c))](_0x22959b['x'],_0x22959b['y']),_0x4c478e[_0x164720(0x2af,0x2c8)][_0x545dfe(0x98,0x3e)]);if(!_0xdd0c35){_0xaa5b81=!![];break;}const _0x48d501=_0x4c478e[_0x164720(0x2af,0x28e)]['ellipsoid']['cartesianToCartographic'](_0xdd0c35),_0x4fb014=Cesium$1['Math'][_0x545dfe(0x6d,0xb7)](_0x48d501['longitude']),_0x46811b=Cesium$1[_0x164720(0x364,0x2f7)][_0x545dfe(0x36,0xb7)](_0x48d501[_0x545dfe(0xe0,0x5c)]);_0x206831=Math['min'](_0x206831,_0x4fb014),_0x2d03c8=Math['max'](_0x2d03c8,_0x4fb014),_0x2e9025=Math['min'](_0x2e9025,_0x46811b),_0x39a1c3=Math['max'](_0x39a1c3,_0x46811b);}if(!_0xaa5b81){const _0x123338=new Cesium$1[(_0x545dfe(-0x82,-0x2c))](Math['max'](this[_0x545dfe(0x62,0x91)]['bounds']['west'],_0x206831),Math[_0x545dfe(0x7e,0x65)](this['windData']['bounds']['east'],_0x2d03c8)),_0x4f5a49=new Cesium$1['Cartesian2'](Math[_0x164720(0x29c,0x2da)](this['windData'][_0x164720(0x373,0x310)]['south'],_0x2e9025),Math[_0x545dfe(0xd0,0x65)](this['windData'][_0x545dfe(0x59,0x9b)]['north'],_0x39a1c3)),_0x297e3c=(_0x123338['y']-_0x123338['x'])*0.05,_0x2f6e52=(_0x4f5a49['y']-_0x4f5a49['x'])*0.05;_0x123338['x']=Math[_0x545dfe(-0x21,-0x3c)](this[_0x545dfe(0xbf,0x91)][_0x545dfe(0x62,0x9b)][_0x545dfe(0xc2,0x52)],_0x123338['x']-_0x297e3c),_0x123338['y']=Math['min'](this['windData']['bounds']['east'],_0x123338['y']+_0x297e3c),_0x4f5a49['x']=Math[_0x164720(0x29c,0x287)](this[_0x545dfe(0x61,0x91)]['bounds'][_0x164720(0x337,0x2e7)],_0x4f5a49['x']-_0x2f6e52),_0x4f5a49['y']=Math['min'](this[_0x545dfe(0x6b,0x91)]['bounds']['north'],_0x4f5a49['y']+_0x2f6e52),this['viewerParameters']['lonRange']=_0x123338,this['viewerParameters']['latRange']=_0x4f5a49;const _0x211449=this[_0x164720(0x369,0x348)]['bounds']['east']-this[_0x164720(0x369,0x301)]['bounds'][_0x164720(0x32a,0x33f)],_0x19ab0e=this['windData'][_0x545dfe(0xca,0x9b)][_0x545dfe(-0x4a,0x4)]-this[_0x545dfe(0x109,0x91)][_0x545dfe(0x7f,0x9b)]['south'],_0x57f179=(_0x123338['y']-_0x123338['x'])/_0x211449,_0x1fd271=(_0x4f5a49['y']-_0x4f5a49['x'])/_0x19ab0e,_0x3027cb=Math['min'](_0x57f179,_0x1fd271),_0x3f8fa9=0x3e8*_0x3027cb;_0x3f8fa9>0x0&&(this['viewerParameters'][_0x545dfe(0x5c,0x7e)]=Math[_0x164720(0x29c,0x25a)](0x0,Math['min'](0x3e8,_0x3f8fa9)));}this[_0x164720(0x30b,0x306)][_0x164720(0x2da,0x2bf)]=this['scene']['mode'],(_0x2bb6b0=this['particleSystem'])===null||_0x2bb6b0===void 0x0||_0x2bb6b0['applyViewerParameters'](this['viewerParameters']);}[_0x5a9f30(0x3f2,0x3ba)](_0x2f2eb5,_0x4ddc4f){const {bounds:_0x5b73aa,width:_0x2d1206,height:_0x15d436,u:_0x1d2597,v:_0x2eba69,speed:_0x5a860b}=this[_0x37e2d6(-0x264,-0x2ab)],{flipY:_0x569cdb}=this['options'];if(_0x2f2eb5<_0x5b73aa[_0x37e2d6(-0x2a3,-0x321)]||_0x2f2eb5>_0x5b73aa[_0x37e2d6(-0x30f,-0x2e9)]||_0x4ddc4f<_0x5b73aa[_0x37e2d6(-0x296,-0x288)]||_0x4ddc4f>_0x5b73aa[_0x37e2d6(-0x2f1,-0x294)])return null;const _0x407e31=(_0x2f2eb5-_0x5b73aa['west'])/(_0x5b73aa['east']-_0x5b73aa['west'])*(_0x2d1206-0x1);let _0x59ad17=(_0x4ddc4f-_0x5b73aa['south'])/(_0x5b73aa['north']-_0x5b73aa['south'])*(_0x15d436-0x1);_0x569cdb&&(_0x59ad17=_0x15d436-0x1-_0x59ad17);const _0x54e2fa=Math['floor'](_0x407e31),_0x46d367=Math[_0x37e2d6(-0x273,-0x296)](_0x59ad17),_0x12a947=Math[_0x37e2d6(-0x273,-0x1f6)](_0x407e31),_0x26fdbc=Math['min'](_0x12a947+0x1,_0x2d1206-0x1);function _0x37e2d6(_0x2d5b52,_0x2a2478){return _0x5a9f30(_0x2d5b52- -0x6d7,_0x2a2478);}const _0x1ab5d4=Math['floor'](_0x59ad17),_0xa6fa2d=Math['min'](_0x1ab5d4+0x1,_0x15d436-0x1),_0x57a5fb=_0x407e31-_0x12a947,_0x650931=_0x59ad17-_0x1ab5d4,_0x16bf41=_0x46d367*_0x2d1206+_0x54e2fa,_0x435e1c=_0x1ab5d4*_0x2d1206+_0x12a947,_0xd904d8=_0x1ab5d4*_0x2d1206+_0x26fdbc,_0x1949be=_0xa6fa2d*_0x2d1206+_0x12a947,_0x1e0e0d=_0xa6fa2d*_0x2d1206+_0x26fdbc;function _0x4861e5(_0x45b6ff,_0x4a19ed){return _0x1da74e(_0x4a19ed,_0x45b6ff-0x148);}const _0x3355de=_0x1d2597[_0x4861e5(0x41c,0x42f)][_0x435e1c],_0x1fada9=_0x1d2597['array'][_0xd904d8],_0x444023=_0x1d2597['array'][_0x1949be],_0x5ceaa1=_0x1d2597['array'][_0x1e0e0d],_0x2ecf8b=(0x1-_0x57a5fb)*(0x1-_0x650931)*_0x3355de+_0x57a5fb*(0x1-_0x650931)*_0x1fada9+(0x1-_0x57a5fb)*_0x650931*_0x444023+_0x57a5fb*_0x650931*_0x5ceaa1,_0x3adec5=_0x2eba69[_0x37e2d6(-0x2d0,-0x2bf)][_0x435e1c],_0x2b8bb5=_0x2eba69[_0x37e2d6(-0x2d0,-0x28e)][_0xd904d8],_0x1e4217=_0x2eba69['array'][_0x1949be],_0x26391e=_0x2eba69['array'][_0x1e0e0d],_0x25177f=(0x1-_0x57a5fb)*(0x1-_0x650931)*_0x3adec5+_0x57a5fb*(0x1-_0x650931)*_0x2b8bb5+(0x1-_0x57a5fb)*_0x650931*_0x1e4217+_0x57a5fb*_0x650931*_0x26391e,_0x3848b2=Math['sqrt'](_0x2ecf8b*_0x2ecf8b+_0x25177f*_0x25177f),_0x2c2268={};_0x2c2268['u']=_0x1d2597[_0x4861e5(0x41c,0x3c1)][_0x16bf41],_0x2c2268['v']=_0x2eba69['array'][_0x16bf41],_0x2c2268['speed']=_0x5a860b['array'][_0x16bf41];const _0x9b180c={};_0x9b180c['u']=_0x2ecf8b,_0x9b180c['v']=_0x25177f,_0x9b180c[_0x37e2d6(-0x300,-0x356)]=_0x3848b2;const _0x334aa7={};return _0x334aa7[_0x4861e5(0x45f,0x464)]=_0x2c2268,_0x334aa7[_0x4861e5(0x465,0x4ee)]=_0x9b180c,_0x334aa7;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer'][_0x5a9f30(0x430,0x4bb)]=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this[_0x595ef2(-0x310,-0x288)]=null,this['age']=null;function _0x595ef2(_0x528fb0,_0x1ca640){return _0x1da74e(_0x528fb0,_0x1ca640- -0x4ec);}this['speed']=null;}[_0x1da74e(0x2ed,0x28c)](){for(const _0x11a2aa in this){delete this[_0x11a2aa];}}}class CanvasWindField{constructor(_0x357d43){this['setOptions'](_0x357d43);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x2aeee3){function _0x136cf4(_0x3767cc,_0x10ae21){return _0x5a9f30(_0x10ae21-0x42,_0x3767cc);}function _0x23752e(_0x21a34a,_0x206e82){return _0x5a9f30(_0x206e82- -0x57f,_0x21a34a);}this[_0x23752e(-0x15e,-0x189)]=(0x64-(_0x2aeee3>0x63?0x63:_0x2aeee3))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x136cf4(0x434,0x438)],(this['ymax']-this[_0x23752e(-0x1c8,-0x193)])/this[_0x23752e(-0x12a,-0x189)]];}get['maxAge'](){function _0x356075(_0x144bfd,_0x2051dc){return _0x1da74e(_0x2051dc,_0x144bfd- -0x207);}return this[_0x356075(0x9a,0x23)];}set[_0x5a9f30(0x3b3,0x413)](_0x269cf1){this['_maxAge']=_0x269cf1;}['setOptions'](_0x5368c8){this['options']=_0x5368c8,this['maxAge']=_0x5368c8['maxAge']||0x78;function _0x20ca8b(_0x5c4b4f,_0x16781e){return _0x5a9f30(_0x5c4b4f- -0x27b,_0x16781e);}this['speedRate']=_0x5368c8[_0x24578b(-0x1c7,-0x21e)]||0x32,this['particles']=[];function _0x24578b(_0x10e31e,_0x2fd12a){return _0x5a9f30(_0x2fd12a- -0x621,_0x10e31e);}const _0x34bf48=_0x5368c8[_0x20ca8b(0x1cb,0x195)]||0x1000;for(let _0x1962e3=0x0;_0x1962e3<_0x34bf48;_0x1962e3++){const _0x236239=this[_0x24578b(-0x253,-0x234)](new CanvasParticle());this['particles']['push'](_0x236239);}}['setDate'](_0x4aba39){this['rows']=_0x4aba39[_0x125663(-0x27a,-0x1f9)],this[_0x125663(-0x23e,-0x202)]=_0x4aba39[_0x125663(-0x262,-0x202)],this[_0x125663(-0x16f,-0x1c3)]=_0x4aba39['xmin'],this[_0x125663(-0x298,-0x22c)]=_0x4aba39[_0x2d1ee1(0x1f,0x59)],this['ymin']=_0x4aba39['ymin'],this['ymax']=_0x4aba39['ymax'],this[_0x2d1ee1(-0x8,-0x5a)]=[];function _0x125663(_0x2f6584,_0x46de94){return _0x5a9f30(_0x46de94- -0x5e9,_0x2f6584);}const _0x5425a9=_0x4aba39[_0x2d1ee1(0x72,0xc2)],_0x276c06=_0x4aba39['vdata'];let _0x15fccb=![];function _0x2d1ee1(_0x4d5cee,_0x5d5910){return _0x1da74e(_0x5d5910,_0x4d5cee- -0x26b);}_0x5425a9['length']===this[_0x2d1ee1(0x52,0xb4)]&&_0x5425a9[0x0]['length']===this['cols']&&(_0x15fccb=!![]);let _0x1227ed=0x0,_0x475225=null,_0x2c0f5a=null;for(let _0x1f27a7=0x0;_0x1f27a7<this[_0x2d1ee1(0x52,0x61)];_0x1f27a7++){_0x475225=[];for(let _0x87f91a=0x0;_0x87f91a<this['cols'];_0x87f91a++,_0x1227ed++){_0x15fccb?_0x2c0f5a=this['_calcUV'](_0x5425a9[_0x1f27a7][_0x87f91a],_0x276c06[_0x1f27a7][_0x87f91a]):_0x2c0f5a=this['_calcUV'](_0x5425a9[_0x1227ed],_0x276c06[_0x1227ed]),_0x475225[_0x2d1ee1(0xb7,0x8f)](_0x2c0f5a);}this[_0x125663(-0x23d,-0x253)][_0x2d1ee1(0xb7,0x53)](_0x475225);}!this['options'][_0x125663(-0x267,-0x226)]&&this['grid'][_0x125663(-0x1ba,-0x1a9)]();}[_0x5a9f30(0x496,0x439)](){delete this[_0x43a0f9(0x166,0x1ce)],delete this['cols'],delete this[_0x43a0f9(0x220,0x204)],delete this['xmax'],delete this[_0x43a0f9(0x208,0x1ca)];function _0x43a0f9(_0x19ea0c,_0x955c17){return _0x5a9f30(_0x955c17- -0x222,_0x19ea0c);}delete this['ymax'];function _0x3e8c52(_0x445af1,_0x248da6){return _0x1da74e(_0x248da6,_0x445af1- -0x2d0);}delete this['grid'],delete this['particles'];}['toGridXY'](_0x40e70c,_0x562829){function _0x24bf77(_0x2acb0a,_0x25a6ea){return _0x5a9f30(_0x25a6ea-0xab,_0x2acb0a);}const _0x45db7b=(_0x40e70c-this['xmin'])/(this['xmax']-this[_0x24bf77(0x513,0x4d1)])*(this['cols']-0x1);function _0x543495(_0x1bd0c1,_0xb75d8c){return _0x1da74e(_0xb75d8c,_0x1bd0c1- -0x42c);}const _0x36eb42=(this['ymax']-_0x562829)/(this['ymax']-this[_0x24bf77(0x486,0x497)])*(this[_0x24bf77(0x51b,0x49b)]-0x1);return[_0x45db7b,_0x36eb42];}['getUVByXY'](_0xed96b4,_0x357f5f){if(_0xed96b4<0x0||_0xed96b4>=this['cols']||_0x357f5f>=this['rows'])return[0x0,0x0,0x0];const _0x53f49d=Math['floor'](_0xed96b4),_0x5da9f4=Math[_0x3efc62(0x7d,0xe4)](_0x357f5f);if(_0x53f49d===_0xed96b4&&_0x5da9f4===_0x357f5f)return this['grid'][_0x357f5f][_0xed96b4];function _0x3efc62(_0x2640fa,_0xd2349c){return _0x1da74e(_0x2640fa,_0xd2349c- -0x24d);}const _0x54a41e=_0x53f49d+0x1,_0x465b80=_0x5da9f4+0x1,_0x5a7750=this['getUVByXY'](_0x53f49d,_0x5da9f4),_0x329153=this['getUVByXY'](_0x54a41e,_0x5da9f4),_0x3dece2=this['getUVByXY'](_0x53f49d,_0x465b80),_0x911a87=this['getUVByXY'](_0x54a41e,_0x465b80);let _0x545248=null;try{_0x545248=this['_bilinearInterpolation'](_0xed96b4-_0x53f49d,_0x357f5f-_0x5da9f4,_0x5a7750,_0x329153,_0x3dece2,_0x911a87);}catch(_0x533e45){console['log'](_0xed96b4,_0x357f5f);}return _0x545248;}[_0x1da74e(0x332,0x2e3)](_0x4eb65e,_0x5b38b2,_0x3ef1e8,_0x56ed43,_0x22f47b,_0x440782){const _0x329464=0x1-_0x4eb65e,_0x384d18=0x1-_0x5b38b2,_0x380002=_0x329464*_0x384d18,_0x2cc80e=_0x4eb65e*_0x384d18,_0xb2ab9a=_0x329464*_0x5b38b2,_0x59a046=_0x4eb65e*_0x5b38b2,_0x382508=_0x3ef1e8[0x0]*_0x380002+_0x56ed43[0x0]*_0x2cc80e+_0x22f47b[0x0]*_0xb2ab9a+_0x440782[0x0]*_0x59a046,_0x3af600=_0x3ef1e8[0x1]*_0x380002+_0x56ed43[0x1]*_0x2cc80e+_0x22f47b[0x1]*_0xb2ab9a+_0x440782[0x1]*_0x59a046;return this['_calcUV'](_0x382508,_0x3af600);}[_0x1da74e(0x2e3,0x2ee)](_0x131081,_0x38d2ab){return[+_0x131081,+_0x38d2ab,Math['sqrt'](_0x131081*_0x131081+_0x38d2ab*_0x38d2ab)];}['getUVByPoint'](_0x3db495,_0x259a1f){if(!this['isInExtent'](_0x3db495,_0x259a1f))return null;const _0x5edd23=this['toGridXY'](_0x3db495,_0x259a1f),_0x54f2e0=this['getUVByXY'](_0x5edd23[0x0],_0x5edd23[0x1]);return _0x54f2e0;}['isInExtent'](_0x1ee5cd,_0x176ec0){function _0x25b5be(_0x253a1e,_0x34819d){return _0x1da74e(_0x253a1e,_0x34819d-0xfd);}return _0x1ee5cd>=this['xmin']&&_0x1ee5cd<=this[_0x25b5be(0x30c,0x387)]&&_0x176ec0>=this['ymin']&&_0x176ec0<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x1d919a(_0x5e0478,_0x2518d3){return _0x1da74e(_0x5e0478,_0x2518d3- -0x39);}function _0x419229(_0x1dacaa,_0x6f4dae){return _0x1da74e(_0x1dacaa,_0x6f4dae- -0x4ce);}const _0x282b4b=fRandomByfloat(this[_0x419229(-0x189,-0x1db)],this[_0x1d919a(0x1cc,0x251)]),_0x36c7d0=fRandomByfloat(this[_0x1d919a(0x2cd,0x280)],this['ymax']),_0x37d915={};return _0x37d915['lat']=_0x36c7d0,_0x37d915['lng']=_0x282b4b,_0x37d915;}['getParticles'](){let _0x2c4f2b,_0x1171dc,_0xfb69bc;function _0x2396c7(_0x297b55,_0x340b8a){return _0x1da74e(_0x340b8a,_0x297b55- -0x4ea);}for(let _0x1cc9d7=0x0,_0x56b191=this['particles']['length'];_0x1cc9d7<_0x56b191;_0x1cc9d7++){let _0x53f268=this['particles'][_0x1cc9d7];_0x53f268['age']<=0x0&&(_0x53f268=this['_randomParticle'](_0x53f268));if(_0x53f268[_0x3a7435(-0xaf,-0x86)]>0x0){const _0x15cae7=_0x53f268['tlng'],_0x136413=_0x53f268['tlat'];_0xfb69bc=this[_0x3a7435(-0x64,-0xca)](_0x15cae7,_0x136413),_0xfb69bc?(_0x2c4f2b=_0x15cae7+this['_calc_speedRate'][0x0]*_0xfb69bc[0x0],_0x1171dc=_0x136413+this['_calc_speedRate'][0x1]*_0xfb69bc[0x1],_0x53f268['lng']=_0x15cae7,_0x53f268['lat']=_0x136413,_0x53f268['tlng']=_0x2c4f2b,_0x53f268['tlat']=_0x1171dc,_0x53f268['speed']=_0xfb69bc[0x2],_0x53f268[_0x2396c7(-0x219,-0x21c)]--):_0x53f268['age']=0x0;}}function _0x3a7435(_0x148bce,_0x31b889){return _0x5a9f30(_0x148bce- -0x4b3,_0x31b889);}return this['particles'];}[_0x1da74e(0x26b,0x2ba)](_0x5c90c5){let _0x5e1208,_0x4b04c1;for(let _0x10d4ec=0x0;_0x10d4ec<0x1e;_0x10d4ec++){_0x5e1208=this['getRandomLatLng'](),_0x4b04c1=this['getUVByPoint'](_0x5e1208['lng'],_0x5e1208['lat']);if(_0x4b04c1&&_0x4b04c1[0x2]>0x0)break;}if(!_0x4b04c1)return _0x5c90c5;const _0x3e6a72=_0x5e1208['lng']+this['_calc_speedRate'][0x0]*_0x4b04c1[0x0],_0x506bc7=_0x5e1208['lat']+this[_0x407ce9(-0x96,-0x68)][0x1]*_0x4b04c1[0x1];_0x5c90c5['lng']=_0x5e1208[_0x407ce9(0x94,0x84)],_0x5c90c5[_0x407ce9(0xa7,0x56)]=_0x5e1208['lat'],_0x5c90c5['tlng']=_0x3e6a72,_0x5c90c5[_0x407ce9(-0x8a,-0x5c)]=_0x506bc7;function _0x407ce9(_0x1acc74,_0xafa965){return _0x5a9f30(_0xafa965- -0x3f3,_0x1acc74);}_0x5c90c5[_0x407ce9(0x10,0x11)]=Math['round'](0xa+Math[_0x407ce9(0x17,0x21)]()*this['maxAge']),_0x5c90c5[_0x407ce9(0x3,-0x1c)]=_0x4b04c1[0x2];function _0x2d9611(_0x3af325,_0x554154){return _0x5a9f30(_0x3af325- -0x5bd,_0x554154);}return _0x5c90c5;}['destroy'](){for(const _0x329781 in this){delete this[_0x329781];}}}function fRandomByfloat(_0x4c756b,_0x4ed91c){function _0x4c46b3(_0x1cb1d7,_0x38bbbe){return _0x1da74e(_0x1cb1d7,_0x38bbbe- -0x300);}return _0x4c756b+Math[_0x4c46b3(0x6b,-0x1f)]()*(_0x4ed91c-_0x4c756b);}const Cesium=mars3d__namespace[_0x5a9f30(0x3fc,0x385)],BaseLayer=mars3d__namespace[_0x5a9f30(0x387,0x3bc)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x3908d6={}){function _0x56a9f5(_0x2ec75c,_0x4b6097){return _0x5a9f30(_0x2ec75c- -0x4fb,_0x4b6097);}super(_0x3908d6);function _0x34d717(_0x226147,_0x2540d1){return _0x5a9f30(_0x2540d1- -0x25c,_0x226147);}this[_0x34d717(0x1a7,0x1bf)](_0x3908d6),this['canvas']=null,_0x3908d6['colors']&&_0x3908d6[_0x56a9f5(-0x112,-0xa7)]&&(this[_0x34d717(0x1f5,0x232)]=new mars3d__namespace[(_0x56a9f5(-0x119,-0xfb))](_0x3908d6));}['_setOptionsHook'](_0x5be586,_0xccdea9){function _0xae9940(_0x3e4de5,_0x3eb52a){return _0x1da74e(_0x3e4de5,_0x3eb52a- -0x303);}this['frameTime']=0x3e8/(_0x5be586['frameRate']||0xa),this['_pointerEvents']=this[_0x34ae61(0x3b0,0x379)][_0xae9940(-0x71,-0xa4)]??![],this['color']=_0x5be586['color']||'#ffffff',this[_0xae9940(-0xdb,-0x6c)]=_0x5be586[_0xae9940(0x1,-0x6c)]||0x1;function _0x34ae61(_0x3e3abb,_0x29b35d){return _0x5a9f30(_0x29b35d- -0xf9,_0x3e3abb);}this[_0xae9940(0xaf,0x2c)]=_0x5be586['fixedHeight']??0x0,this[_0xae9940(0xf,-0x73)]=_0x5be586['flipY']??![],this['windField']&&this[_0x34ae61(0x28f,0x2d0)]['setOptions'](_0x5be586);}get['layer'](){function _0x3b2a92(_0x53160f,_0x5be029){return _0x5a9f30(_0x5be029-0xa6,_0x53160f);}return this[_0x3b2a92(0x57c,0x4ff)];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get[_0x1da74e(0x2a0,0x2fc)](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x47a2f5){function _0x286ed3(_0x5c63c8,_0x3bd444){return _0x5a9f30(_0x5c63c8- -0x20c,_0x3bd444);}function _0x2d16b6(_0x22c9fc,_0x245e9c){return _0x1da74e(_0x245e9c,_0x22c9fc-0xa0);}this[_0x2d16b6(0x390,0x366)]=_0x47a2f5;if(!this[_0x286ed3(0x24d,0x24b)])return;_0x47a2f5?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x2d16b6(0x3e2,0x3d2)][_0x286ed3(0x255,0x279)]='none';}get['particlesNumber'](){function _0x4292e1(_0x365070,_0x329ab1){return _0x1da74e(_0x329ab1,_0x365070- -0x4c7);}function _0x14bb7d(_0x262cd4,_0x5acc4a){return _0x5a9f30(_0x5acc4a- -0x392,_0x262cd4);}return this[_0x14bb7d(0xcb,0xe0)][_0x14bb7d(0x34,0xb4)];}set['particlesNumber'](_0x1a414b){function _0x4e1576(_0x15e01a,_0x2a770a){return _0x5a9f30(_0x15e01a-0x48,_0x2a770a);}this['options']['particlesNumber']=_0x1a414b,clearTimeout(this['_canrefresh']),this[_0x4e1576(0x443,0x467)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x5a9f30(0x403,0x399)](){function _0x260191(_0x117c13,_0x7adcab){return _0x1da74e(_0x117c13,_0x7adcab- -0x4dd);}return this[_0x260191(-0x1e9,-0x19e)]['speedRate'];}set[_0x5a9f30(0x403,0x3d2)](_0x469871){this['options']['speedRate']=_0x469871;function _0xe44758(_0x46f8a0,_0x1c1b6d){return _0x5a9f30(_0x1c1b6d- -0x697,_0x46f8a0);}this['windField']&&(this[_0xe44758(-0x31b,-0x2ce)]['speedRate']=_0x469871);}get[_0x5a9f30(0x3b3,0x3d9)](){function _0x1c679d(_0x25a96a,_0x1591ef){return _0x1da74e(_0x25a96a,_0x1591ef- -0x5c);}function _0x9d75f3(_0xb25aed,_0x22ef3f){return _0x1da74e(_0xb25aed,_0x22ef3f- -0x480);}return this[_0x1c679d(0x337,0x2e3)][_0x9d75f3(-0x17f,-0x200)];}set[_0x1da74e(0x248,0x280)](_0x4aeb2f){function _0x555e52(_0x422305,_0x5f28d0){return _0x1da74e(_0x422305,_0x5f28d0-0xba);}function _0x40ac83(_0x1963b4,_0x10b53c){return _0x1da74e(_0x1963b4,_0x10b53c- -0x17b);}this[_0x40ac83(0x188,0x1c4)]['maxAge']=_0x4aeb2f,this['windField']&&(this[_0x40ac83(0xd6,0x11b)][_0x40ac83(0x11a,0x105)]=_0x4aeb2f);}get['data'](){function _0x22237b(_0x86fff7,_0x39401b){return _0x5a9f30(_0x86fff7- -0x250,_0x39401b);}return this[_0x22237b(0x223,0x23e)];}set['data'](_0x369614){function _0x4f1842(_0x2fd37,_0x46f9be){return _0x1da74e(_0x46f9be,_0x2fd37- -0x15);}this[_0x4f1842(0x30e,0x37c)](_0x369614);}get['rectangle'](){let _0x9e9b16=this[_0x2842e3(0x464,0x4cb)]['xmin'],_0x4ee42a=this['windData']['xmax'],_0x27afe9=this[_0x51b7cf(0x12d,0x134)]['ymin'],_0x1105e5=this['windData'][_0x2842e3(0x44d,0x3e8)];_0x4ee42a>=0x167&&_0x9e9b16===0x0&&(_0x9e9b16=-0xb4,_0x4ee42a=0xb4);_0x9e9b16=Math['max'](_0x9e9b16,-0xb4);function _0x2842e3(_0x513a3a,_0x39e4b4){return _0x1da74e(_0x39e4b4,_0x513a3a-0x124);}_0x4ee42a=Math[_0x2842e3(0x438,0x45e)](_0x4ee42a,0xb4);function _0x51b7cf(_0x2473b8,_0x28cba3){return _0x5a9f30(_0x28cba3- -0x33f,_0x2473b8);}return _0x27afe9=Math[_0x51b7cf(0x14,0x67)](_0x27afe9,-0x5a),_0x1105e5=Math['min'](_0x1105e5,0x5a),Cesium['Rectangle'][_0x51b7cf(0x11e,0x99)](_0x9e9b16,_0x27afe9,_0x4ee42a,_0x1105e5);}[_0x5a9f30(0x3e5,0x3fd)](_0x1d9a9c){function _0x2464e8(_0x39a106,_0x37b07c){return _0x5a9f30(_0x39a106- -0x34e,_0x37b07c);}function _0x3e52ac(_0x1adc80,_0x2a335f){return _0x1da74e(_0x1adc80,_0x2a335f- -0x2a5);}_0x1d9a9c?this['_addedHook']():(this[_0x2464e8(0x125,0x198)]&&(this[_0x2464e8(0x124,0x11f)][_0x2464e8(0x47,-0xf)]=this[_0x2464e8(0x125,0xc8)]),this[_0x3e52ac(0x136,0xb0)]());}[_0x5a9f30(0x3f7,0x3be)](){function _0x2a2f6e(_0x28164c,_0x3c648c){return _0x5a9f30(_0x3c648c- -0x3b4,_0x28164c);}function _0x142286(_0x243c10,_0x3d4464){return _0x5a9f30(_0x3d4464- -0x463,_0x243c10);}this[_0x142286(-0x7a,0xf)][_0x142286(-0x48,-0x70)]?this['initWorker']():this['windField']=new CanvasWindField(this[_0x2a2f6e(0x10e,0xbe)]);}['_addedHook'](){function _0x53a79c(_0x9fc9e1,_0x226b24){return _0x5a9f30(_0x226b24- -0x199,_0x9fc9e1);}this['canvas']=this['_createCanvas']();const _0x48a559={};_0x48a559[_0x487966(0x42a,0x3d1)]=!![];function _0x487966(_0x21617e,_0x32f4b0){return _0x1da74e(_0x32f4b0,_0x21617e-0x1af);}this['canvasContext']=this['canvas']['getContext']('2d',_0x48a559),this['bindEvent'](),this['options']['data']&&this['setData'](this[_0x487966(0x4ee,0x4fa)]['data']);}['_removedHook'](){function _0x5ca88f(_0x4dba22,_0x19b263){return _0x5a9f30(_0x4dba22- -0x293,_0x19b263);}this[_0x5ca88f(0x203,0x20c)]();function _0x6aa762(_0x4a844e,_0x2d8e20){return _0x1da74e(_0x4a844e,_0x2d8e20- -0x245);}this[_0x5ca88f(0x17e,0x18d)](),this['canvas']&&(this[_0x5ca88f(0x17f,0x18e)]['container'][_0x5ca88f(0x143,0x1a7)](this['canvas']),delete this[_0x5ca88f(0x1c6,0x207)]);}['_createCanvas'](){const _0x2cb57d=mars3d__namespace[_0x20274d(0x257,0x1f9)]['create']('canvas','mars3d-canvasWind',this[_0x20274d(0x24d,0x1c9)]['container']);_0x2cb57d['style'][_0x83cb40(-0x23e,-0x200)]=_0x20274d(0x1e7,0x216),_0x2cb57d[_0x20274d(0x2b0,0x2a1)][_0x83cb40(-0x2b8,-0x31b)]='0px',_0x2cb57d['style'][_0x20274d(0x267,0x25c)]='0px';function _0x20274d(_0x1d5449,_0x163bf3){return _0x5a9f30(_0x1d5449- -0x1c5,_0x163bf3);}_0x2cb57d[_0x20274d(0x2b0,0x297)]['width']=this['_map'][_0x83cb40(-0x27e,-0x25a)][_0x83cb40(-0x224,-0x264)]['clientWidth']+'px',_0x2cb57d['style']['height']=this['_map'][_0x20274d(0x23a,0x24a)][_0x20274d(0x294,0x227)]['clientHeight']+'px',_0x2cb57d['style']['pointerEvents']=this['_pointerEvents']?_0x83cb40(-0x242,-0x27d):'none';function _0x83cb40(_0x15612e,_0x33796e){return _0x5a9f30(_0x15612e- -0x67d,_0x33796e);}return _0x2cb57d[_0x20274d(0x2b0,0x2aa)]['zIndex']=this[_0x20274d(0x2ad,0x2ba)][_0x20274d(0x2bf,0x337)]??0x9,_0x2cb57d['width']=this[_0x83cb40(-0x26b,-0x210)][_0x83cb40(-0x27e,-0x2c9)]['canvas'][_0x83cb40(-0x2f0,-0x2f7)],_0x2cb57d['height']=this['_map'][_0x83cb40(-0x27e,-0x241)]['canvas'][_0x20274d(0x1ef,0x218)],_0x2cb57d;}[_0x1da74e(0x305,0x284)](){function _0x290676(_0x28cb69,_0x47e7fd){return _0x1da74e(_0x47e7fd,_0x28cb69- -0x59b);}function _0x4d1dab(_0x564fbd,_0x451772){return _0x5a9f30(_0x564fbd- -0x596,_0x451772);}this[_0x4d1dab(-0x13d,-0xe0)]&&(this['canvas']['style'][_0x4d1dab(-0x20d,-0x27a)]=this[_0x290676(-0x2bc,-0x29d)]['scene']['canvas']['clientWidth']+'px',this[_0x290676(-0x275,-0x204)]['style']['height']=this['_map']['scene'][_0x4d1dab(-0x13d,-0x179)][_0x4d1dab(-0x1e2,-0x1a5)]+'px',this['canvas']['width']=this['_map'][_0x290676(-0x2cf,-0x35a)][_0x4d1dab(-0x13d,-0xc0)]['clientWidth'],this[_0x290676(-0x275,-0x276)]['height']=this['_map'][_0x4d1dab(-0x197,-0x181)]['canvas'][_0x290676(-0x31a,-0x37b)]);}[_0x5a9f30(0x3a9,0x41a)](){const _0x58003e=this;function _0xaa7eb6(_0x2cb9e5,_0x5845ee){return _0x5a9f30(_0x2cb9e5-0x42,_0x5845ee);}let _0x17ab2c=Date['now']();(function _0x5cb140(){if(_0x58003e['isDestroy'])return;_0x58003e[_0x806e86(0x351,0x384)]=window[_0x806e86(0x396,0x41f)](_0x5cb140);function _0x5b6e24(_0x453e8d,_0x38183){return _0x580d(_0x38183-0x231,_0x453e8d);}function _0x806e86(_0x49d795,_0x120c98){return _0x580d(_0x120c98-0x2b9,_0x49d795);}if(_0x58003e[_0x5b6e24(0x32c,0x2d6)]&&_0x58003e[_0x5b6e24(0x2c0,0x2db)]){const _0x354fe8=Date['now'](),_0x2319e9=_0x354fe8-_0x17ab2c;_0x2319e9>_0x58003e['frameTime']&&(_0x17ab2c=_0x354fe8-_0x2319e9%_0x58003e[_0x806e86(0x346,0x349)],_0x58003e[_0x5b6e24(0x26b,0x2d0)]());}}(),window['addEventListener'](_0x32325f(-0x336,-0x3ba),this['resize']['bind'](this),![]),this[_0x32325f(-0x2b4,-0x2c5)]=![]);function _0x32325f(_0x467301,_0x4ca04f){return _0x5a9f30(_0x467301- -0x6ed,_0x4ca04f);}this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x32325f(-0x30d,-0x2d7)]['wheel'],this[_0xaa7eb6(0x4d1,0x51e)],this),this['_map']['on'](mars3d__namespace[_0x32325f(-0x30d,-0x2fb)]['mouseDown'],this[_0xaa7eb6(0x44e,0x413)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x32325f(-0x2a1,-0x28d)],this));}['unbindEvent'](){window[_0x516dcd(0x1a3,0x202)](this[_0x516dcd(0x295,0x212)]),delete this['_animateFrame'],window['removeEventListener'](_0x283604(0x155,0x13e),this[_0x516dcd(0x1c1,0x1df)]);function _0x516dcd(_0x20ed18,_0x5a4a15){return _0x1da74e(_0x20ed18,_0x5a4a15- -0xa5);}function _0x283604(_0x3b5261,_0x42f55e){return _0x5a9f30(_0x3b5261- -0x262,_0x42f55e);}this['options'][_0x283604(0x1d8,0x230)]&&(this['_map']['off'](mars3d__namespace['EventType'][_0x283604(0x16d,0x1ce)],this[_0x283604(0x22d,0x2b7)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x516dcd(0x278,0x23a)]['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x283604(0x1b0,0x21f)][_0x516dcd(0x296,0x285)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x3b6a87){clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x51d9bd(0x250,0x1ed)])return;function _0x51d9bd(_0x12037f,_0x393b1a){return _0x1da74e(_0x393b1a,_0x12037f- -0xd6);}this[_0x26c3c7(0x204,0x258)]['style'][_0x26c3c7(0x269,0x247)]='hidden';function _0x26c3c7(_0x52cc60,_0x2c30fa){return _0x5a9f30(_0x2c30fa- -0x201,_0x52cc60);}this['refreshTimer']=setTimeout(()=>{function _0x472c78(_0x2ead7d,_0x3ce06f){return _0x26c3c7(_0x3ce06f,_0x2ead7d- -0x375);}function _0x292026(_0x59c900,_0x52ae45){return _0x26c3c7(_0x52ae45,_0x59c900- -0x421);}if(!this['show'])return;this['redraw'](),this['canvas'][_0x472c78(-0x101,-0x14f)][_0x292026(-0x1da,-0x20b)]='visible';},0xc8);}['_onMouseDownEvent'](_0x1b85e0){function _0x22f428(_0x1a7f02,_0x2465be){return _0x5a9f30(_0x2465be- -0x388,_0x1a7f02);}this['mouse_down']=!![],this[_0x22f428(0xfe,0x8a)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x2a94bf(_0x2528ad,_0x5d9e05){return _0x1da74e(_0x2528ad,_0x5d9e05- -0x531);}this[_0x22f428(0x31,0x8a)]['on'](mars3d__namespace[_0x2a94bf(-0x21f,-0x284)][_0x22f428(0x72,0x19)],this[_0x2a94bf(-0x226,-0x1f9)],this);}[_0x1da74e(0x376,0x338)](_0x2406c4){if(!this[_0x4237cb(0x3ae,0x3c8)]||!this[_0x4237cb(0x3e6,0x45d)])return;function _0x4237cb(_0x5b9700,_0xc15ca9){return _0x5a9f30(_0xc15ca9-0x4,_0x5b9700);}function _0x634c2c(_0x87ed8c,_0x117d5d){return _0x1da74e(_0x87ed8c,_0x117d5d- -0x188);}this[_0x4237cb(0x4a3,0x43d)]&&(this[_0x4237cb(0x4c7,0x45d)]['style']['visibility']='hidden',this['mouse_move']=!![]);}[_0x1da74e(0x314,0x319)](_0x170576){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x2865cf(0x156,0x133)],this);function _0x36ba5c(_0x290fb3,_0x41e5fc){return _0x5a9f30(_0x41e5fc- -0x692,_0x290fb3);}this['mouse_down']&&this['mouse_move']&&this['redraw']();this[_0x2865cf(0x10f,0x121)]['style'][_0x2865cf(0x9c,0x110)]='visible',this[_0x36ba5c(-0x1e8,-0x259)]=![];function _0x2865cf(_0x1c0fca,_0x4b39b2){return _0x5a9f30(_0x4b39b2- -0x338,_0x1c0fca);}this['mouse_move']=![];}['setData'](_0x58bad8){this['clear'](),this['windData']=_0x58bad8,this['windField'][_0x57d36d(0x410,0x46b)](_0x58bad8);function _0x57d36d(_0x3016eb,_0x29e842){return _0x1da74e(_0x3016eb,_0x29e842-0x103);}this['redraw']();}[_0x5a9f30(0x413,0x3fc)](){if(!this[_0x3b2272(0x3f9,0x40d)])return;this[_0x3b2272(0x3fe,0x412)]['setOptions'](this[_0x3b2272(0x520,0x4bb)]);function _0x2ca1fa(_0x3a86e2,_0x457f03){return _0x1da74e(_0x457f03,_0x3a86e2- -0x55b);}function _0x3b2272(_0x2cb3dc,_0x4930dc){return _0x1da74e(_0x2cb3dc,_0x4930dc-0x17c);}this['update']();}[_0x5a9f30(0x3be,0x401)](){if(this['_updateIng'])return;this[_0x51a6ca(-0x137,-0x146)]=!![];function _0xd88f5b(_0x2624e4,_0x21ef32){return _0x1da74e(_0x21ef32,_0x2624e4-0x19e);}function _0x51a6ca(_0x509098,_0x1f4b02){return _0x1da74e(_0x509098,_0x1f4b02- -0x4a3);}if(this[_0xd88f5b(0x45e,0x4df)])this['windField'][_0x51a6ca(-0x24a,-0x218)]();else{const _0x19ae12=this[_0xd88f5b(0x434,0x497)]['getParticles']();this['_drawLines'](_0x19ae12);}this['_updateIng']=![];}['_drawLines'](_0x4d7c45){this['_canvasParticles']=_0x4d7c45,this['canvasContext']['globalCompositeOperation']=_0x2c3bc7(0x0,-0x28);function _0x2c3bc7(_0xd1d717,_0xb8a8ba){return _0x1da74e(_0xb8a8ba,_0xd1d717- -0x26b);}this[_0x2c3bc7(0x1c,-0x24)][_0x3e7e7e(0x41,0x12)](0x0,0x0,this['canvasWidth'],this[_0x2c3bc7(0x91,0x77)]),this['canvasContext'][_0x2c3bc7(0x1a,0x87)]='lighter',this[_0x3e7e7e(0x6d,0x62)]['globalAlpha']=0.9;const _0x18d417=this['_map']['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0x28072b=this['canvasWidth']*0.25;function _0x3e7e7e(_0x2754fb,_0x363874){return _0x5a9f30(_0x2754fb- -0x34d,_0x363874);}if(this[_0x2c3bc7(0xf0,0xfc)])for(let _0x19bb25=0x0,_0x222ad1=_0x4d7c45[_0x3e7e7e(0x53,0x42)];_0x19bb25<_0x222ad1;_0x19bb25++){const _0x1e3b89=_0x4d7c45[_0x19bb25],_0x3b7baf=this['_tomap'](_0x1e3b89,_0x1e3b89[_0x3e7e7e(0x12a,0xc3)],_0x1e3b89['lat'],_0x1e3b89['alt']),_0x2abf4d=this['_tomap'](_0x1e3b89,_0x1e3b89[_0x3e7e7e(0xe8,0x15b)],_0x1e3b89['tlat'],_0x1e3b89[_0x2c3bc7(-0x18,-0x1c)]);if(!_0x3b7baf||!_0x2abf4d)continue;if(_0x18d417&&Math['abs'](_0x3b7baf[0x0]-_0x2abf4d[0x0])>=_0x28072b)continue;this[_0x2c3bc7(0x1c,0x49)]['beginPath'](),this['canvasContext']['lineWidth']=this[_0x2c3bc7(0x2c,-0x8)],this['canvasContext']['strokeStyle']=this[_0x2c3bc7(0xf0,0xb9)]['getColor'](_0x1e3b89['speed']),this[_0x3e7e7e(0x6d,0x35)]['moveTo'](_0x3b7baf[0x0],_0x3b7baf[0x1]),this['canvasContext']['lineTo'](_0x2abf4d[0x0],_0x2abf4d[0x1]),this[_0x3e7e7e(0x6d,0xee)][_0x3e7e7e(0x6e,0x3c)]();}else{this[_0x3e7e7e(0x6d,0x94)][_0x3e7e7e(0x14d,0xda)](),this[_0x3e7e7e(0x6d,0x6a)]['lineWidth']=this[_0x3e7e7e(0x7d,0x5b)],this[_0x3e7e7e(0x6d,0x98)][_0x2c3bc7(0x79,0x4b)]=this['color'];for(let _0x30765e=0x0,_0x5307ee=_0x4d7c45['length'];_0x30765e<_0x5307ee;_0x30765e++){const _0x109ff4=_0x4d7c45[_0x30765e],_0x40bc1b=this['_tomap'](_0x109ff4,_0x109ff4[_0x2c3bc7(0xd9,0xd9)],_0x109ff4[_0x2c3bc7(0xab,0x7d)],_0x109ff4['alt']),_0x959fe3=this['_tomap'](_0x109ff4,_0x109ff4['tlng'],_0x109ff4['tlat'],_0x109ff4[_0x2c3bc7(-0x18,0x67)]);if(!_0x40bc1b||!_0x959fe3)continue;if(_0x18d417&&Math['abs'](_0x40bc1b[0x0]-_0x959fe3[0x0])>=_0x28072b)continue;this['canvasContext']['moveTo'](_0x40bc1b[0x0],_0x40bc1b[0x1]),this['canvasContext']['lineTo'](_0x959fe3[0x0],_0x959fe3[0x1]);}this['canvasContext']['stroke']();}}[_0x5a9f30(0x427,0x3a4)](_0xbb2d00,_0x3a71b5,_0x1e3a96,_0xb64eb){const _0x237eff=Cesium['Cartesian3'][_0x9eca5a(-0x220,-0x233)](_0x3a71b5,_0x1e3a96,_0xb64eb??this['fixedHeight']);function _0x9eca5a(_0xd169c0,_0x1ada17){return _0x1da74e(_0xd169c0,_0x1ada17- -0x4d8);}const _0x1b27a0=this['_map']['scene'];function _0x1c5d8f(_0x69752b,_0x137c1a){return _0x1da74e(_0x69752b,_0x137c1a- -0x52e);}if(_0x1b27a0['mode']===Cesium['SceneMode']['SCENE3D']){const _0x2da032=new Cesium['EllipsoidalOccluder'](_0x1b27a0[_0x9eca5a(-0x276,-0x252)][_0x9eca5a(-0x1b7,-0x1eb)],_0x1b27a0[_0x1c5d8f(-0x269,-0x248)]['positionWC']),_0x16b137=_0x2da032['isPointVisible'](_0x237eff);if(!_0x16b137)return _0xbb2d00['age']=0x0,null;}const _0x12e211=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x237eff);return _0x12e211?[_0x12e211['x'],_0x12e211['y']]:null;}[_0x1da74e(0x373,0x363)](){function _0x4a4b17(_0x17e599,_0x79084){return _0x5a9f30(_0x79084- -0x167,_0x17e599);}function _0x1506aa(_0x583580,_0x42920d){return _0x5a9f30(_0x583580- -0x15c,_0x42920d);}this[_0x1506aa(0x26d,0x268)][_0x4a4b17(0x35d,0x32f)](),delete this[_0x4a4b17(0x37f,0x30c)];}[_0x5a9f30(0x3fa,0x456)](){function _0x2402f3(_0xbce771,_0x2d4479){return _0x5a9f30(_0xbce771- -0x17e,_0x2d4479);}this['worker']=new Worker(this['options'][_0x4dccc3(-0xf0,-0x74)]);function _0x4dccc3(_0x11845b,_0x399d40){return _0x1da74e(_0x399d40,_0x11845b- -0x3b0);}this['worker']['onmessage']=_0x1e36fd=>{function _0x5647e2(_0x56bea8,_0xd5bd2b){return _0x4dccc3(_0x56bea8- -0xe0,_0xd5bd2b);}this[_0x5647e2(-0x14b,-0x176)](_0x1e36fd['data'][_0x5647e2(-0x132,-0xce)]);function _0x17fc9c(_0x5e3616,_0x44f880){return _0x4dccc3(_0x44f880-0x160,_0x5e3616);}this['_updateIng2']=![];},this['windField']={'init':_0x42d84f=>{function _0x1fb678(_0x3d3a80,_0x32db2a){return _0x4dccc3(_0x32db2a-0x36c,_0x3d3a80);}const _0x1a7d5e={};_0x1a7d5e['type']=_0x1fb678(0x29c,0x2a1);function _0x1a4917(_0x5509d3,_0xaacf1a){return _0x4dccc3(_0xaacf1a-0x3a4,_0x5509d3);}_0x1a7d5e[_0x1a4917(0x354,0x333)]=_0x42d84f,this['worker']['postMessage'](_0x1a7d5e);},'setOptions':_0x44750d=>{function _0x7c1f3f(_0x9cbb42,_0x253f4d){return _0x4dccc3(_0x253f4d-0x3cb,_0x9cbb42);}const _0x522508={};_0x522508[_0x23273a(0x1a2,0x191)]='setOptions',_0x522508[_0x7c1f3f(0x3d7,0x35a)]=_0x44750d;function _0x23273a(_0x5599ed,_0x4902ca){return _0x4dccc3(_0x4902ca-0x216,_0x5599ed);}this[_0x7c1f3f(0x2bb,0x2db)][_0x23273a(0xa0,0xcf)](_0x522508);},'setDate':_0x5c37d8=>{const _0x544479={};function _0x5efa2f(_0x22fc1b,_0x1743c4){return _0x4dccc3(_0x22fc1b-0x56,_0x1743c4);}_0x544479[_0x13986d(0x57b,0x527)]='setDate';function _0x13986d(_0x2bc1d2,_0x389134){return _0x4dccc3(_0x389134-0x5ac,_0x2bc1d2);}_0x544479[_0x5efa2f(-0xf8,-0x7e)]=_0x5c37d8,this[_0x13986d(0x431,0x4bc)]['postMessage'](_0x544479);},'update':()=>{if(this[_0x976e0e(-0x17,-0x98)])return;function _0x26b202(_0x1ec722,_0x358b03){return _0x4dccc3(_0x358b03-0x8c,_0x1ec722);}function _0x976e0e(_0x3a3988,_0x5637bd){return _0x4dccc3(_0x5637bd-0x6,_0x3a3988);}this[_0x26b202(0x3,-0x12)]=!![];const _0x1d36ba={};_0x1d36ba[_0x26b202(0x8c,0x7)]='update',this[_0x976e0e(-0xa1,-0xea)]['postMessage'](_0x1d36ba);},'clear':()=>{const _0x1aa7ac={};_0x1aa7ac['type']='clear';function _0xa3b690(_0x5eba06,_0x519e1d){return _0x4dccc3(_0x519e1d-0x4dc,_0x5eba06);}this['worker'][_0xa3b690(0x3bd,0x395)](_0x1aa7ac);}},this[_0x4dccc3(-0x11a,-0x109)]['init'](this['options']);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x5a9f30(0x3fd,0x46b)]=CanvasWindLayer,mars3d__namespace[_0x1da74e(0x33c,0x34f)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x1da74e(0x2f6,0x2fd)]=WindLayer,exports[_0x5a9f30(0x40d,0x3ec)]=WindUtil;function _0x580d(_0x47aa89,_0x24385e){const _0x38fcec=_0x38fc();return _0x580d=function(_0x580da9,_0x11a0a8){_0x580da9=_0x580da9-0x67;let _0x3b97ea=_0x38fcec[_0x580da9];return _0x3b97ea;},_0x580d(_0x47aa89,_0x24385e);}const _0x5734cb={};_0x5734cb['value']=!![],Object['defineProperty'](exports,_0x1da74e(0x26f,0x2c2),_0x5734cb);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.9.5",
3
+ "version": "3.9.6",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.9.5"
8
+ "mars3d": "~3.9.6"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"