m4-w-fast 1.0.13 → 1.0.14

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 (41) hide show
  1. package/README.md +54 -1
  2. package/dist/index.cjs +1 -6533
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +1 -1
  5. package/dist/index.mjs +1 -6531
  6. package/dist/intersect.worker.js +9 -9
  7. package/dist/isoBands.worker.js +1 -1
  8. package/dist/leaflet/leafletLayer.d.ts +8 -0
  9. package/dist/leaflet/leafletLayer.js +1 -0
  10. package/dist/leaflet/types.d.ts +42 -0
  11. package/dist/leaflet/types.js +1 -0
  12. package/dist/m4-w-fast.umd.js +1 -1
  13. package/dist/raster-overlay/color.d.ts +11 -0
  14. package/dist/raster-overlay/color.js +1 -0
  15. package/dist/raster-overlay/core.d.ts +31 -0
  16. package/dist/raster-overlay/core.js +1 -0
  17. package/dist/raster-overlay/index.cjs +2 -0
  18. package/dist/raster-overlay/index.d.ts +4 -0
  19. package/dist/raster-overlay/index.js +1 -0
  20. package/dist/raster-overlay/index.mjs +2 -0
  21. package/dist/raster-overlay/leaflet-renderers/cpuRenderer.d.ts +0 -0
  22. package/dist/raster-overlay/leaflet-renderers/cpuRenderer.js +1 -0
  23. package/dist/raster-overlay/leaflet-renderers/createRenderer.d.ts +3 -0
  24. package/dist/raster-overlay/leaflet-renderers/createRenderer.js +1 -0
  25. package/dist/raster-overlay/leaflet-renderers/renderer.d.ts +51 -0
  26. package/dist/raster-overlay/leaflet-renderers/renderer.js +1 -0
  27. package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.d.ts +74 -0
  28. package/dist/raster-overlay/leaflet-renderers/webgl2Renderer.js +1 -0
  29. package/dist/raster-overlay/leaflet-renderers/webglRenderer.d.ts +0 -0
  30. package/dist/raster-overlay/leaflet-renderers/webglRenderer.js +1 -0
  31. package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.d.ts +0 -0
  32. package/dist/raster-overlay/leaflet-renderers/webgpuRenderer.js +1 -0
  33. package/dist/raster-overlay/leafletLayer.d.ts +48 -0
  34. package/dist/raster-overlay/leafletLayer.js +1 -0
  35. package/dist/raster-overlay/m4-w-raster-overlay.umd.js +2 -0
  36. package/dist/raster-overlay/types.d.ts +114 -0
  37. package/dist/raster-overlay/types.js +1 -0
  38. package/dist/readFile.d.ts +7 -1
  39. package/dist/readFile.js +1 -1
  40. package/dist/types.d.ts +6 -0
  41. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ 'use strict';(function(_0x27d8df,_0xb8505a){var _0x39df3c=_0x40ef,_0x2b0265=_0x27d8df();while(!![]){try{var _0x479c57=parseInt(_0x39df3c(0x1e6))/0x1*(parseInt(_0x39df3c(0x1ea))/0x2)+parseInt(_0x39df3c(0x1eb))/0x3*(parseInt(_0x39df3c(0x1f0))/0x4)+parseInt(_0x39df3c(0x1e7))/0x5+parseInt(_0x39df3c(0x1ed))/0x6+parseInt(_0x39df3c(0x1ec))/0x7+parseInt(_0x39df3c(0x1ee))/0x8*(-parseInt(_0x39df3c(0x1ef))/0x9)+-parseInt(_0x39df3c(0x1e9))/0xa*(parseInt(_0x39df3c(0x1e8))/0xb);if(_0x479c57===_0xb8505a)break;else _0x2b0265['push'](_0x2b0265['shift']());}catch(_0x4f4620){_0x2b0265['push'](_0x2b0265['shift']());}}}(_0x2839,0xda619));function _0x40ef(_0x16b853,_0x37ebba){var _0x283927=_0x2839();return _0x40ef=function(_0x40ef73,_0xbe47ea){_0x40ef73=_0x40ef73-0x1e6;var _0x8accb8=_0x283927[_0x40ef73];return _0x8accb8;},_0x40ef(_0x16b853,_0x37ebba);}function _0x2839(){var _0x5d8c44=['17589830yWavrF','832126bcXdnx','2424PnFHaM','6097287rlTDDP','4795800PdKMBl','3757808hcDRfN','9JknsxK','2468NXKJAP','4DAhqIu','5245260SpfxAa','22tZblaJ'];_0x2839=function(){return _0x5d8c44;};return _0x2839();}
@@ -0,0 +1,3 @@
1
+ import type { RasterRendererCreateOptions, RasterRendererType } from '../types';
2
+ import type { RasterLeafletRenderer } from './renderer';
3
+ export declare const createRasterLeafletRenderer: (rendererType: RasterRendererType, options: RasterRendererCreateOptions) => RasterLeafletRenderer;
@@ -0,0 +1 @@
1
+ function _0x4a74(_0x50d0fd,_0xb5bb6c){const _0x4efcdb=_0x4efc();return _0x4a74=function(_0x4a7485,_0xc808b){_0x4a7485=_0x4a7485-0x144;let _0x2a2286=_0x4efcdb[_0x4a7485];return _0x2a2286;},_0x4a74(_0x50d0fd,_0xb5bb6c);}(function(_0x5c9488,_0x1300af){const _0x3d95a0=_0x4a74,_0x471aed=_0x5c9488();while(!![]){try{const _0x1da86c=parseInt(_0x3d95a0(0x152))/0x1*(parseInt(_0x3d95a0(0x148))/0x2)+parseInt(_0x3d95a0(0x155))/0x3+parseInt(_0x3d95a0(0x14e))/0x4*(-parseInt(_0x3d95a0(0x145))/0x5)+-parseInt(_0x3d95a0(0x154))/0x6*(parseInt(_0x3d95a0(0x14b))/0x7)+-parseInt(_0x3d95a0(0x153))/0x8*(-parseInt(_0x3d95a0(0x14c))/0x9)+parseInt(_0x3d95a0(0x147))/0xa+-parseInt(_0x3d95a0(0x14d))/0xb*(parseInt(_0x3d95a0(0x14f))/0xc);if(_0x1da86c===_0x1300af)break;else _0x471aed['push'](_0x471aed['shift']());}catch(_0x260755){_0x471aed['push'](_0x471aed['shift']());}}}(_0x4efc,0x34004));function _0x4efc(){const _0xddf270=['36FubUhg','22GmeYXz','128heiLOc','1442388HqTaqJ','CPU\x20renderer\x20is\x20not\x20implemented\x20yet','webgpu','716iBfvgj','47848ssTkbr','90534nRlcNE','885708tzqSIN','webgl','7785EkJxtl','WebGL\x20renderer\x20is\x20not\x20implemented\x20yet','572460bXvpir','860qgYubV','WebGPU\x20renderer\x20is\x20not\x20implemented\x20yet','webgl2','84SmdVXW'];_0x4efc=function(){return _0xddf270;};return _0x4efc();}import{Webgl2Renderer}from'./webgl2Renderer';export const createRasterLeafletRenderer=(_0x2a4de5,_0x38e7a6)=>{const _0x1e317d=_0x4a74;switch(_0x2a4de5){case'cpu':throw new Error(_0x1e317d(0x150));case _0x1e317d(0x144):throw new Error(_0x1e317d(0x146));case _0x1e317d(0x14a):return new Webgl2Renderer(_0x38e7a6);case _0x1e317d(0x151):throw new Error(_0x1e317d(0x149));}};
@@ -0,0 +1,51 @@
1
+ import type { RasterColorRange, RasterColorStop, RasterGrid, RasterRenderMode } from '../types';
2
+ /**
3
+ * leaflet图层传递给渲染器的当前视口
4
+ */
5
+ export interface RasterLeafletRenderViewport {
6
+ canvasWidth: number;
7
+ canvasHeight: number;
8
+ cssWidth: number;
9
+ cssHeight: number;
10
+ devicePixelRatio: number;
11
+ zoom: number;
12
+ worldTopLeftX: number;
13
+ worldTopLeftY: number;
14
+ }
15
+ /**
16
+ * 所有渲染方案需要实现的接口
17
+ */
18
+ export interface RasterLeafletRenderer {
19
+ /**
20
+ * 初始化上下文和基础绘制资源
21
+ */
22
+ initialize: (canvas: HTMLCanvasElement) => void | Promise<void>;
23
+ /**
24
+ * 渲染当前视口
25
+ */
26
+ render: (viewport: RasterLeafletRenderViewport) => void | Promise<void>;
27
+ /**
28
+ * 设置栅格数据, 在这里上传纹理
29
+ */
30
+ setGrid: (grid: RasterGrid) => void | Promise<void>;
31
+ /**
32
+ * 更新色标配置, 这里更新 uniform 数据
33
+ */
34
+ setColorStops: (colorStops: RasterColorStop[]) => void;
35
+ /**
36
+ * 更新当前显示数据范围
37
+ */
38
+ setColorRange: (range: RasterColorRange) => void;
39
+ /**
40
+ * 更新图层透明度
41
+ */
42
+ setOpacity: (opacity: number) => void;
43
+ /**
44
+ * 更新渲染模式
45
+ */
46
+ setRenderMode: (renderMode: RasterRenderMode) => void;
47
+ /**
48
+ * 销毁渲染器, 释放资源
49
+ */
50
+ destroy: () => void;
51
+ }
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,74 @@
1
+ import type { RasterColorRange, RasterColorStop, RasterGrid, RasterRenderMode, RasterRendererCreateOptions } from '../types';
2
+ import type { RasterLeafletRenderer, RasterLeafletRenderViewport } from './renderer';
3
+ export declare class Webgl2Renderer implements RasterLeafletRenderer {
4
+ private gl;
5
+ private grid;
6
+ private program;
7
+ private texture;
8
+ private colorRange;
9
+ private colorStops;
10
+ /**
11
+ * 上传到shader的色标最小值数组
12
+ * @private
13
+ */
14
+ private colorStopMins;
15
+ /**
16
+ * 上传到shader的色标最大值数组
17
+ * @private
18
+ */
19
+ private colorStopMaxs;
20
+ /**
21
+ * 上传到shader的色标颜色数组 (rgba)
22
+ * @private
23
+ */
24
+ private colorStopColors;
25
+ private maxColorStops;
26
+ private opacity;
27
+ private renderMode;
28
+ private canvas;
29
+ private contextLost;
30
+ private lastViewport;
31
+ constructor(options: RasterRendererCreateOptions);
32
+ initialize(canvas: HTMLCanvasElement): void;
33
+ render(viewport: RasterLeafletRenderViewport): void;
34
+ setGrid(grid: RasterGrid): void;
35
+ setColorStops(colorStops: RasterColorStop[]): void;
36
+ setColorRange(colorRange: RasterColorRange): void;
37
+ setOpacity(opacity: number): void;
38
+ setRenderMode(renderMode: RasterRenderMode): void;
39
+ destroy(): void;
40
+ private createProgram;
41
+ private createShader;
42
+ /**
43
+ * 上传栅格数据为WebGL2单通道浮点纹理
44
+ * @private
45
+ */
46
+ private uploadGridTexture;
47
+ /**
48
+ * 获取shader uniform 位置
49
+ * @param gl
50
+ * @param program
51
+ * @param name
52
+ * @private
53
+ */
54
+ private getUniform;
55
+ /**
56
+ * 色标容量改变后重新创建shader
57
+ * @private
58
+ */
59
+ private recreateProgram;
60
+ /**
61
+ * 阻止浏览器永久释放WebGL上下文
62
+ * @param event
63
+ */
64
+ private readonly handleContextLost;
65
+ /**
66
+ * 上下文恢复后重新创建GPU资源并绘制最后一个视口
67
+ */
68
+ private readonly handleContextRestored;
69
+ /**
70
+ * 将色标配置写入可直接上传到Shader的数组
71
+ * @private
72
+ */
73
+ private updateColorStopArrays;
74
+ }
@@ -0,0 +1 @@
1
+ function _0xd949(_0x4eb3ad,_0x4d8803){const _0x2e85ef=_0x2e85();return _0xd949=function(_0xd94932,_0x1a606f){_0xd94932=_0xd94932-0x17b;let _0x34f82=_0x2e85ef[_0xd94932];return _0x34f82;},_0xd949(_0x4eb3ad,_0x4d8803);}const _0x1c8adc=_0xd949;(function(_0x2f7f7a,_0x1e1a5c){const _0x2ea451=_0xd949,_0x5e707d=_0x2f7f7a();while(!![]){try{const _0x5a0d44=-parseInt(_0x2ea451(0x1dc))/0x1*(-parseInt(_0x2ea451(0x1e9))/0x2)+-parseInt(_0x2ea451(0x1f4))/0x3+-parseInt(_0x2ea451(0x201))/0x4*(-parseInt(_0x2ea451(0x1e3))/0x5)+-parseInt(_0x2ea451(0x187))/0x6*(parseInt(_0x2ea451(0x1a9))/0x7)+-parseInt(_0x2ea451(0x189))/0x8+parseInt(_0x2ea451(0x1fe))/0x9*(parseInt(_0x2ea451(0x1ca))/0xa)+-parseInt(_0x2ea451(0x1a0))/0xb*(parseInt(_0x2ea451(0x1f8))/0xc);if(_0x5a0d44===_0x1e1a5c)break;else _0x5e707d['push'](_0x5e707d['shift']());}catch(_0xbfdf16){_0x5e707d['push'](_0x5e707d['shift']());}}}(_0x2e85,0x32c4f));import _0x26b3dc from'./shader/webgl2/vertex.vert?raw';function _0x2e85(){const _0x34d9d2=['uniform1fv','worldTopLeftX','webgl2\x20texture创建失败','MAX_TEXTURE_SIZE','canvasWidth','recreateProgram','u_colorStopColors','colorStopMaxs','getShaderInfoLog','handleContextRestored','COMPILE_STATUS','updateColorStopArrays','destroy','handleContextLost','1782PcmNbF','TEXTURE0','width','removeEventListener','VERTEX_SHADER','maxLng','u_colorStopMaxs','TEXTURE_MIN_FILTER','min','3423rwDEis','activeTexture','setColorRange','uploadGridTexture','bufferData','opacity','RED','colorRange','getUniformLocation','__MAX_COLOR_STOPS__','R32F','u_renderMode','preventDefault','a_position','height','maxValue','render','lastViewport','deleteProgram','colorStopCount','NEGATIVE_INFINITY','addEventListener','FRAGMENT_SHADER','linkProgram','attachShader','values','webgl2\x20shader编译失败','renderMode','canvas','deleteShader','TEXTURE_2D','栅格尺寸\x20','bindBuffer','1439710TDoIpp','color','uniform4fv','colorStopColors','clearColor','mapMeta','gridMeta','colorStops不能为空','ARRAY_BUFFER','minLat','webgl2\x20uniform\x20','getProgramParameter','initialize','u_valueTexture','createBuffer','length','positionBuffer','noData','6gfwGsU','getParameter','fill','createShader','texture','setOpacity','clear','240845vvApGn','TEXTURE_MAG_FILTER','COLOR_BUFFER_BIT','step','maxColorStops','STATIC_DRAW','128332SqlDvL','u_noData','createProgram','compileShader','webgl2','useProgram','u_colorStopMins','replace','getProgramInfoLog','viewport','NEAREST','275349hhsein','uniforms','FLOAT','CLAMP_TO_EDGE','44868zRwnEu','max','u_mapMeta','gridBounds','grid','contextLost','18oMxWWB','当前浏览器不支持WebGL2','setColorStops','28wIdJbl','colorStopMins','valueScale','drawArrays','pixelStorei','webgl2\x20program链接失败','uniform1i','minValue','webglcontextrestored','texParameteri','texImage2D','getShaderParameter','getUniform','deleteBuffer','774pRrqqB','getContext','332704aMnWnR','uniform4f','setGrid','UNPACK_ALIGNMENT','TEXTURE_WRAP_S','colorStops','bindTexture','u_colorStopCount','program'];_0x2e85=function(){return _0x34d9d2;};return _0x2e85();}import _0x443ac7 from'./shader/webgl2/fragment.frag?raw';export class Webgl2Renderer{['gl']=null;[_0x1c8adc(0x1fc)];[_0x1c8adc(0x191)]=null;[_0x1c8adc(0x1e0)]=null;[_0x1c8adc(0x1b0)];[_0x1c8adc(0x18e)];[_0x1c8adc(0x202)];[_0x1c8adc(0x199)];[_0x1c8adc(0x1cd)];[_0x1c8adc(0x1e7)];[_0x1c8adc(0x1ae)];[_0x1c8adc(0x1c4)];[_0x1c8adc(0x1c5)]=null;['contextLost']=![];[_0x1c8adc(0x1ba)]=null;constructor(_0x10aff2){const _0xf0f13f=_0x1c8adc;this[_0xf0f13f(0x18e)]=[..._0x10aff2[_0xf0f13f(0x18e)]],this[_0xf0f13f(0x1e7)]=calculateMaxColorStops(_0x10aff2[_0xf0f13f(0x18e)][_0xf0f13f(0x1d9)]),this[_0xf0f13f(0x202)]=new Float32Array(this[_0xf0f13f(0x1e7)]),this[_0xf0f13f(0x199)]=new Float32Array(this[_0xf0f13f(0x1e7)]),this[_0xf0f13f(0x1cd)]=new Float32Array(this[_0xf0f13f(0x1e7)]*0x4),this[_0xf0f13f(0x1fc)]=_0x10aff2[_0xf0f13f(0x1fc)],this['colorRange']=_0x10aff2[_0xf0f13f(0x1b0)]??null,this[_0xf0f13f(0x1ae)]=_0x10aff2[_0xf0f13f(0x1ae)]??0x1,this[_0xf0f13f(0x1c4)]=_0x10aff2[_0xf0f13f(0x1c4)]??_0xf0f13f(0x1e6),this[_0xf0f13f(0x19d)]();}[_0x1c8adc(0x1d6)](_0x4920d5){const _0x4c3b8f=_0x1c8adc;this[_0x4c3b8f(0x1c5)]=_0x4920d5,_0x4920d5[_0x4c3b8f(0x1be)]('webglcontextlost',this[_0x4c3b8f(0x19f)]),_0x4920d5[_0x4c3b8f(0x1be)]('webglcontextrestored',this[_0x4c3b8f(0x19b)]),this['gl']=_0x4920d5[_0x4c3b8f(0x188)](_0x4c3b8f(0x1ed),{'alpha':!![],'antialias':![],'depth':![],'premultipliedAlpha':![],'preserveDrawingBuffer':!![],'stencil':![]});if(!this['gl']){_0x4920d5[_0x4c3b8f(0x1a3)]('webglcontextlost',this[_0x4c3b8f(0x19f)]),_0x4920d5[_0x4c3b8f(0x1a3)]('webglcontextrestored',this[_0x4c3b8f(0x19b)]),this[_0x4c3b8f(0x1c5)]=null;throw new Error(_0x4c3b8f(0x1ff));}this[_0x4c3b8f(0x191)]=this[_0x4c3b8f(0x1eb)](this['gl']),this[_0x4c3b8f(0x1ac)]();}[_0x1c8adc(0x1b9)](_0x4cccfc){const _0x431fd6=_0x1c8adc;this[_0x431fd6(0x1ba)]=_0x4cccfc;if(this[_0x431fd6(0x1fd)])return;if(!this['gl']||!this[_0x431fd6(0x191)])throw new Error('WebGL2渲染器未初始化');const _0x7808d4=this['gl'],_0x400a39=this[_0x431fd6(0x18e)][0x0],_0x587d87=this['colorStops'][this['colorStops'][_0x431fd6(0x1d9)]-0x1],_0x1d4a2b=toShaderFloat(this[_0x431fd6(0x1b0)]?.[_0x431fd6(0x180)]??_0x400a39[_0x431fd6(0x1a8)]),_0x26a81e=toShaderFloat(this['colorRange']?.[_0x431fd6(0x1b8)]??_0x587d87['max']);_0x7808d4[_0x431fd6(0x1f2)](0x0,0x0,_0x4cccfc[_0x431fd6(0x196)],_0x4cccfc['canvasHeight']),_0x7808d4[_0x431fd6(0x1ce)](0x0,0x0,0x0,0x0),_0x7808d4[_0x431fd6(0x1e2)](_0x7808d4[_0x431fd6(0x1e5)]),_0x7808d4[_0x431fd6(0x1ee)](this['program']['program']);if(!this[_0x431fd6(0x1e0)])return;_0x7808d4[_0x431fd6(0x1aa)](_0x7808d4[_0x431fd6(0x1a1)]),_0x7808d4[_0x431fd6(0x18f)](_0x7808d4[_0x431fd6(0x1c7)],this[_0x431fd6(0x1e0)]),_0x7808d4['uniform1i'](this[_0x431fd6(0x191)][_0x431fd6(0x1f5)]['valueTexture'],0x0),_0x7808d4['uniform2f'](this['program'][_0x431fd6(0x1f5)][_0x431fd6(0x1f2)],_0x4cccfc['canvasWidth'],_0x4cccfc['canvasHeight']),_0x7808d4['uniform4f'](this['program'][_0x431fd6(0x1f5)][_0x431fd6(0x1cf)],_0x4cccfc[_0x431fd6(0x193)],_0x4cccfc['worldTopLeftY'],_0x4cccfc['zoom'],_0x4cccfc['devicePixelRatio']),_0x7808d4[_0x431fd6(0x18a)](this[_0x431fd6(0x191)]['uniforms'][_0x431fd6(0x1fb)],this[_0x431fd6(0x1fc)]['minLng'],this['grid'][_0x431fd6(0x1a5)],this[_0x431fd6(0x1fc)][_0x431fd6(0x1d3)],this['grid']['maxLat']),_0x7808d4['uniform4f'](this[_0x431fd6(0x191)]['uniforms'][_0x431fd6(0x1d0)],this[_0x431fd6(0x1fc)][_0x431fd6(0x1a2)],this[_0x431fd6(0x1fc)][_0x431fd6(0x1b7)],this[_0x431fd6(0x1fc)][_0x431fd6(0x17b)],0x0),_0x7808d4[_0x431fd6(0x17f)](this[_0x431fd6(0x191)][_0x431fd6(0x1f5)][_0x431fd6(0x1bc)],this[_0x431fd6(0x18e)][_0x431fd6(0x1d9)]),_0x7808d4[_0x431fd6(0x192)](this[_0x431fd6(0x191)][_0x431fd6(0x1f5)][_0x431fd6(0x202)],this[_0x431fd6(0x202)]),_0x7808d4[_0x431fd6(0x192)](this[_0x431fd6(0x191)]['uniforms'][_0x431fd6(0x199)],this[_0x431fd6(0x199)]),_0x7808d4[_0x431fd6(0x1cc)](this['program'][_0x431fd6(0x1f5)]['colorStopColors'],this[_0x431fd6(0x1cd)]),_0x7808d4['uniform3f'](this['program'][_0x431fd6(0x1f5)][_0x431fd6(0x1b0)],_0x1d4a2b,_0x26a81e,this['opacity']),_0x7808d4[_0x431fd6(0x17f)](this[_0x431fd6(0x191)][_0x431fd6(0x1f5)][_0x431fd6(0x1c4)],this['renderMode']==='smooth'?0x1:0x0),_0x7808d4['uniform1f'](this[_0x431fd6(0x191)][_0x431fd6(0x1f5)][_0x431fd6(0x1db)],this['grid'][_0x431fd6(0x1db)]??Number['NaN']),_0x7808d4[_0x431fd6(0x1c9)](_0x7808d4[_0x431fd6(0x1d2)],this['program'][_0x431fd6(0x1da)]),_0x7808d4['enableVertexAttribArray'](0x0),_0x7808d4['vertexAttribPointer'](0x0,0x2,_0x7808d4[_0x431fd6(0x1f6)],![],0x0,0x0),_0x7808d4[_0x431fd6(0x17c)](_0x7808d4['TRIANGLES'],0x0,0x6);}[_0x1c8adc(0x18b)](_0x2b30eb){const _0x59cf91=_0x1c8adc;this[_0x59cf91(0x1fc)]=_0x2b30eb,this['uploadGridTexture']();}[_0x1c8adc(0x200)](_0x1521b6){const _0x144a62=_0x1c8adc;if(_0x1521b6[_0x144a62(0x1d9)]===0x0)throw new Error(_0x144a62(0x1d1));const _0x3fcc46=calculateMaxColorStops(_0x1521b6['length']),_0x4a8f54=_0x3fcc46>this[_0x144a62(0x1e7)];this[_0x144a62(0x18e)]=[..._0x1521b6],_0x4a8f54&&(this[_0x144a62(0x1e7)]=_0x3fcc46,this[_0x144a62(0x202)]=new Float32Array(this[_0x144a62(0x1e7)]),this['colorStopMaxs']=new Float32Array(this['maxColorStops']),this['colorStopColors']=new Float32Array(this['maxColorStops']*0x4)),this[_0x144a62(0x19d)](),_0x4a8f54&&this[_0x144a62(0x197)]();}[_0x1c8adc(0x1ab)](_0x56b995){const _0x59bf68=_0x1c8adc;this[_0x59bf68(0x1b0)]=_0x56b995;}[_0x1c8adc(0x1e1)](_0x539646){const _0x479889=_0x1c8adc;this['opacity']=Math[_0x479889(0x1a8)](0x1,Math[_0x479889(0x1f9)](0x0,_0x539646));}['setRenderMode'](_0x45b746){this['renderMode']=_0x45b746;}[_0x1c8adc(0x19e)](){const _0x4f926d=_0x1c8adc;this[_0x4f926d(0x1c5)]&&(this[_0x4f926d(0x1c5)][_0x4f926d(0x1a3)]('webglcontextlost',this['handleContextLost']),this[_0x4f926d(0x1c5)][_0x4f926d(0x1a3)](_0x4f926d(0x181),this[_0x4f926d(0x19b)])),this['gl']&&!this[_0x4f926d(0x1fd)]&&(this[_0x4f926d(0x1e0)]&&this['gl']['deleteTexture'](this[_0x4f926d(0x1e0)]),this[_0x4f926d(0x191)]&&(this['gl']['deleteBuffer'](this[_0x4f926d(0x191)][_0x4f926d(0x1da)]),this['gl']['deleteProgram'](this[_0x4f926d(0x191)][_0x4f926d(0x191)]))),this[_0x4f926d(0x1c5)]=null,this[_0x4f926d(0x1fd)]=![],this['lastViewport']=null,this[_0x4f926d(0x1e0)]=null,this[_0x4f926d(0x191)]=null,this['gl']=null;}[_0x1c8adc(0x1eb)](_0x4deb89){const _0x3c2b8f=_0x1c8adc,_0x4726f2=_0x443ac7[_0x3c2b8f(0x1f0)](_0x3c2b8f(0x1b2),String(this[_0x3c2b8f(0x1e7)])),_0x2ee0c7=this['createShader'](_0x4deb89,_0x4deb89[_0x3c2b8f(0x1a4)],_0x26b3dc),_0x4d9597=this[_0x3c2b8f(0x1df)](_0x4deb89,_0x4deb89[_0x3c2b8f(0x1bf)],_0x4726f2),_0x3bf14f=_0x4deb89[_0x3c2b8f(0x1eb)](),_0x4a35d2=_0x4deb89[_0x3c2b8f(0x1d8)]();if(!_0x3bf14f||!_0x4a35d2)throw new Error('webgl2\x20program创建失败');_0x4deb89['attachShader'](_0x3bf14f,_0x2ee0c7),_0x4deb89[_0x3c2b8f(0x1c1)](_0x3bf14f,_0x4d9597),_0x4deb89['bindAttribLocation'](_0x3bf14f,0x0,_0x3c2b8f(0x1b6)),_0x4deb89[_0x3c2b8f(0x1c0)](_0x3bf14f);if(!_0x4deb89[_0x3c2b8f(0x1d5)](_0x3bf14f,_0x4deb89['LINK_STATUS']))throw new Error(_0x4deb89[_0x3c2b8f(0x1f1)](_0x3bf14f)||_0x3c2b8f(0x17e));return _0x4deb89[_0x3c2b8f(0x1c6)](_0x2ee0c7),_0x4deb89[_0x3c2b8f(0x1c6)](_0x4d9597),_0x4deb89[_0x3c2b8f(0x1c9)](_0x4deb89['ARRAY_BUFFER'],_0x4a35d2),_0x4deb89[_0x3c2b8f(0x1ad)](_0x4deb89[_0x3c2b8f(0x1d2)],new Float32Array([-0x1,-0x1,0x1,-0x1,-0x1,0x1,-0x1,0x1,0x1,-0x1,0x1,0x1]),_0x4deb89[_0x3c2b8f(0x1e8)]),{'program':_0x3bf14f,'positionBuffer':_0x4a35d2,'uniforms':{'gridBounds':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,'u_gridBounds'),'gridMeta':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,'u_gridMeta'),'mapMeta':this['getUniform'](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x1fa)),'valueTexture':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x1d7)),'viewport':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,'u_viewport'),'colorRange':this['getUniform'](_0x4deb89,_0x3bf14f,'u_colorRange'),'colorStopColors':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x198)),'colorStopCount':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x190)),'colorStopMaxs':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x1a6)),'colorStopMins':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x1ef)),'renderMode':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x1b4)),'noData':this[_0x3c2b8f(0x185)](_0x4deb89,_0x3bf14f,_0x3c2b8f(0x1ea))}};}['createShader'](_0x123ef9,_0x30e9e8,_0x172b69){const _0x437288=_0x1c8adc,_0x261974=_0x123ef9[_0x437288(0x1df)](_0x30e9e8);if(!_0x261974)throw new Error('webgl2\x20shader创建失败');_0x123ef9['shaderSource'](_0x261974,_0x172b69),_0x123ef9[_0x437288(0x1ec)](_0x261974);if(!_0x123ef9[_0x437288(0x184)](_0x261974,_0x123ef9[_0x437288(0x19c)]))throw new Error(_0x123ef9[_0x437288(0x19a)](_0x261974)||_0x437288(0x1c3));return _0x261974;}[_0x1c8adc(0x1ac)](){const _0x22dfe9=_0x1c8adc;if(!this['gl']||!this[_0x22dfe9(0x1fc)])return;const _0x4ec7a7=this['gl'],_0x4c02dc=_0x4ec7a7[_0x22dfe9(0x1dd)](_0x4ec7a7[_0x22dfe9(0x195)]);if(this[_0x22dfe9(0x1fc)][_0x22dfe9(0x1a2)]>_0x4c02dc||this['grid'][_0x22dfe9(0x1b7)]>_0x4c02dc)throw new Error(_0x22dfe9(0x1c8)+this['grid']['width']+'x'+this[_0x22dfe9(0x1fc)][_0x22dfe9(0x1b7)]+'\x20超过当前GPU纹理上限\x20'+_0x4c02dc);this['texture']=this[_0x22dfe9(0x1e0)]??_0x4ec7a7['createTexture']();if(!this[_0x22dfe9(0x1e0)])throw new Error(_0x22dfe9(0x194));_0x4ec7a7['bindTexture'](_0x4ec7a7['TEXTURE_2D'],this[_0x22dfe9(0x1e0)]),_0x4ec7a7[_0x22dfe9(0x17d)](_0x4ec7a7[_0x22dfe9(0x18c)],0x1),_0x4ec7a7['texParameteri'](_0x4ec7a7[_0x22dfe9(0x1c7)],_0x4ec7a7[_0x22dfe9(0x1a7)],_0x4ec7a7[_0x22dfe9(0x1f3)]),_0x4ec7a7[_0x22dfe9(0x182)](_0x4ec7a7[_0x22dfe9(0x1c7)],_0x4ec7a7[_0x22dfe9(0x1e4)],_0x4ec7a7[_0x22dfe9(0x1f3)]),_0x4ec7a7[_0x22dfe9(0x182)](_0x4ec7a7['TEXTURE_2D'],_0x4ec7a7[_0x22dfe9(0x18d)],_0x4ec7a7[_0x22dfe9(0x1f7)]),_0x4ec7a7['texParameteri'](_0x4ec7a7[_0x22dfe9(0x1c7)],_0x4ec7a7['TEXTURE_WRAP_T'],_0x4ec7a7[_0x22dfe9(0x1f7)]),_0x4ec7a7[_0x22dfe9(0x183)](_0x4ec7a7[_0x22dfe9(0x1c7)],0x0,_0x4ec7a7[_0x22dfe9(0x1b3)],this[_0x22dfe9(0x1fc)]['width'],this[_0x22dfe9(0x1fc)]['height'],0x0,_0x4ec7a7[_0x22dfe9(0x1af)],_0x4ec7a7[_0x22dfe9(0x1f6)],this['grid'][_0x22dfe9(0x1c2)]);}[_0x1c8adc(0x185)](_0x3f8a40,_0x3c3589,_0x12205c){const _0x448fc0=_0x1c8adc,_0x27fc7d=_0x3f8a40[_0x448fc0(0x1b1)](_0x3c3589,_0x12205c);if(!_0x27fc7d)throw new Error(_0x448fc0(0x1d4)+_0x12205c+'\x20获取失败');return _0x27fc7d;}[_0x1c8adc(0x197)](){const _0x115a9d=_0x1c8adc;if(!this['gl'])return;this[_0x115a9d(0x191)]&&(this['gl'][_0x115a9d(0x186)](this['program'][_0x115a9d(0x1da)]),this['gl'][_0x115a9d(0x1bb)](this[_0x115a9d(0x191)][_0x115a9d(0x191)])),this[_0x115a9d(0x191)]=this[_0x115a9d(0x1eb)](this['gl']);}[_0x1c8adc(0x19f)]=_0x1ebfba=>{const _0x2024c8=_0x1c8adc;_0x1ebfba[_0x2024c8(0x1b5)](),this[_0x2024c8(0x1fd)]=!![],this[_0x2024c8(0x191)]=null,this[_0x2024c8(0x1e0)]=null;};[_0x1c8adc(0x19b)]=()=>{const _0x4e8366=_0x1c8adc;if(!this['gl'])return;this[_0x4e8366(0x1fd)]=![],this[_0x4e8366(0x191)]=this[_0x4e8366(0x1eb)](this['gl']),this['uploadGridTexture'](),this[_0x4e8366(0x1ba)]&&this[_0x4e8366(0x1b9)](this[_0x4e8366(0x1ba)]);};[_0x1c8adc(0x19d)](){const _0x5b77bf=_0x1c8adc;this[_0x5b77bf(0x202)][_0x5b77bf(0x1de)](0x0),this[_0x5b77bf(0x199)][_0x5b77bf(0x1de)](0x0),this[_0x5b77bf(0x1cd)][_0x5b77bf(0x1de)](0x0),this[_0x5b77bf(0x18e)]['forEach']((_0x3026ca,_0x132c5c)=>{const _0x34d376=_0x5b77bf;this['colorStopMins'][_0x132c5c]=toShaderFloat(_0x3026ca[_0x34d376(0x1a8)]),this[_0x34d376(0x199)][_0x132c5c]=toShaderFloat(_0x3026ca[_0x34d376(0x1f9)]);const _0x56175b=_0x132c5c*0x4;this[_0x34d376(0x1cd)][_0x56175b]=_0x3026ca[_0x34d376(0x1cb)][0x0],this[_0x34d376(0x1cd)][_0x56175b+0x1]=_0x3026ca['color'][0x1],this[_0x34d376(0x1cd)][_0x56175b+0x2]=_0x3026ca[_0x34d376(0x1cb)][0x2],this[_0x34d376(0x1cd)][_0x56175b+0x3]=_0x3026ca['color'][0x3];});}}const calculateMaxColorStops=_0x2a4ae0=>{if(_0x2a4ae0<=0x0)throw new Error('colorStops\x20不能为空');let _0x297959=0x1;while(_0x297959<_0x2a4ae0){_0x297959*=0x2;}return _0x297959;},shaderFloatMax=0xfffffeff8381b0000000000000000000,toShaderFloat=_0x5178c9=>{const _0x3182cf=_0x1c8adc;if(_0x5178c9===Number['POSITIVE_INFINITY'])return shaderFloatMax;if(_0x5178c9===Number[_0x3182cf(0x1bd)])return-shaderFloatMax;return _0x5178c9;};
@@ -0,0 +1 @@
1
+ 'use strict';function _0x2368(_0x1f3181,_0x4779ff){var _0x1aa8b4=_0x1aa8();return _0x2368=function(_0x236816,_0x205bc8){_0x236816=_0x236816-0x103;var _0x1e41b2=_0x1aa8b4[_0x236816];return _0x1e41b2;},_0x2368(_0x1f3181,_0x4779ff);}(function(_0x519d30,_0x2aaf40){var _0x3c9ccd=_0x2368,_0x52d40e=_0x519d30();while(!![]){try{var _0x568c12=-parseInt(_0x3c9ccd(0x109))/0x1+parseInt(_0x3c9ccd(0x108))/0x2+-parseInt(_0x3c9ccd(0x10c))/0x3*(parseInt(_0x3c9ccd(0x10b))/0x4)+-parseInt(_0x3c9ccd(0x105))/0x5+parseInt(_0x3c9ccd(0x106))/0x6+-parseInt(_0x3c9ccd(0x10a))/0x7*(parseInt(_0x3c9ccd(0x104))/0x8)+parseInt(_0x3c9ccd(0x103))/0x9*(parseInt(_0x3c9ccd(0x107))/0xa);if(_0x568c12===_0x2aaf40)break;else _0x52d40e['push'](_0x52d40e['shift']());}catch(_0x9cabba){_0x52d40e['push'](_0x52d40e['shift']());}}}(_0x1aa8,0x8145c));function _0x1aa8(){var _0x2fe06c=['3LceRgV','423HxxraZ','1979224HFcXwI','517380LEFSBx','315324DntagV','466610oxnwWR','1613276YKzeVp','632863xTbOae','21PhczXI','4176844ACJqlL'];_0x1aa8=function(){return _0x2fe06c;};return _0x1aa8();}
@@ -0,0 +1 @@
1
+ 'use strict';function _0x509e(){var _0x3d92eb=['136298bJbcPO','7qMDecc','271390UWdbZL','250676nTKJqP','363357cIpKwk','338736ABcccJ','30968LRvelw','795736JuzLtX'];_0x509e=function(){return _0x3d92eb;};return _0x509e();}function _0x4a3a(_0x5be106,_0x2db9f8){var _0x509e82=_0x509e();return _0x4a3a=function(_0x4a3a5c,_0xf7dc1e){_0x4a3a5c=_0x4a3a5c-0x129;var _0x431ce6=_0x509e82[_0x4a3a5c];return _0x431ce6;},_0x4a3a(_0x5be106,_0x2db9f8);}(function(_0x561230,_0x40fb57){var _0x50ed32=_0x4a3a,_0x38e5eb=_0x561230();while(!![]){try{var _0x1f129d=-parseInt(_0x50ed32(0x12b))/0x1+parseInt(_0x50ed32(0x12d))/0x2+parseInt(_0x50ed32(0x129))/0x3+-parseInt(_0x50ed32(0x130))/0x4+parseInt(_0x50ed32(0x12f))/0x5+parseInt(_0x50ed32(0x12a))/0x6+-parseInt(_0x50ed32(0x12e))/0x7*(parseInt(_0x50ed32(0x12c))/0x8);if(_0x1f129d===_0x40fb57)break;else _0x38e5eb['push'](_0x38e5eb['shift']());}catch(_0x151432){_0x38e5eb['push'](_0x38e5eb['shift']());}}}(_0x509e,0x1a192));
@@ -0,0 +1,48 @@
1
+ import * as L from 'leaflet';
2
+ import type { RasterColorRange, RasterColorStopInput, RasterGrid, RasterLeafletLayerCreateOptions, RasterParams, RasterRenderMode, RasterSource } from './types';
3
+ export interface RasterLeafletLayer extends L.Layer {
4
+ /**
5
+ * 使用直接参数更新栅格数据
6
+ */
7
+ setParams: (params: RasterParams) => Promise<void>;
8
+ /**
9
+ * 使用TIF、MICAPS4或参数数据源更新栅格数据
10
+ */
11
+ setSource: (source: RasterSource) => Promise<void>;
12
+ /**
13
+ * 重绘当前视口
14
+ */
15
+ redraw: () => void;
16
+ /**
17
+ * 获取当前图层的canvas, 导出图片可能会用到这个功能
18
+ */
19
+ getCanvas: () => HTMLCanvasElement | null;
20
+ /**
21
+ * 更新显示值范围
22
+ * @param range
23
+ */
24
+ setColorRange: (range: RasterColorRange) => void;
25
+ /**
26
+ * 更新渲染模式
27
+ * @param renderMode
28
+ */
29
+ setRenderMode: (renderMode: RasterRenderMode) => void;
30
+ /**
31
+ * 更新图层透明度
32
+ * @param opacity
33
+ */
34
+ setOpacity: (opacity: number) => void;
35
+ /**
36
+ * 更新栅格数据并重新上传GPU纹理
37
+ */
38
+ setGrid: (grid: RasterGrid) => Promise<void>;
39
+ /**
40
+ * 更新外部字符串色标配置
41
+ */
42
+ setColorStops: (colorStops: RasterColorStopInput[]) => void;
43
+ }
44
+ /**
45
+ * leaflet 栅格图层工厂函数
46
+ * @param options
47
+ */
48
+ export declare const createRasterLeafletLayer: (options: RasterLeafletLayerCreateOptions) => RasterLeafletLayer;
@@ -0,0 +1 @@
1
+ const _0x35efc8=_0xbb16;(function(_0x4940f2,_0x4d49f8){const _0x459bc9=_0xbb16,_0x3a7008=_0x4940f2();while(!![]){try{const _0x2ebb4b=-parseInt(_0x459bc9(0x112))/0x1+-parseInt(_0x459bc9(0x11c))/0x2+parseInt(_0x459bc9(0xfe))/0x3*(-parseInt(_0x459bc9(0x124))/0x4)+parseInt(_0x459bc9(0x101))/0x5+parseInt(_0x459bc9(0x12a))/0x6*(-parseInt(_0x459bc9(0xe3))/0x7)+parseInt(_0x459bc9(0x12d))/0x8*(-parseInt(_0x459bc9(0xe1))/0x9)+parseInt(_0x459bc9(0xfb))/0xa;if(_0x2ebb4b===_0x4d49f8)break;else _0x3a7008['push'](_0x3a7008['shift']());}catch(_0x330452){_0x3a7008['push'](_0x3a7008['shift']());}}}(_0x3f74,0x1ff55));import*as _0x5d325b from'leaflet';import{validateRasterGrid,createGridFromParams,loadRasterGrid}from'./core';function _0xbb16(_0x474f7b,_0x36ef84){const _0x3f74a1=_0x3f74();return _0xbb16=function(_0xbb169,_0x389527){_0xbb169=_0xbb169-0xdf;let _0x5e5ee8=_0x3f74a1[_0xbb169];return _0x5e5ee8;},_0xbb16(_0x474f7b,_0x36ef84);}import{normalizeColorStops}from'./color';import{createRasterLeafletRenderer}from'./leaflet-renderers/createRenderer';function _0x3f74(){const _0x26a2eb=['initialize','setColorStops','3411LXVRDG','map','121639XORrDh','destroy','error','onRemove','renderFrame','handleZoomAnimation','setSource','devicePixelRatio','setRenderMode','zoom','getCanvas','width','栅格图层渲染失败','opacity','cancelAnimationFrame','redraw','absolute','colorRange','栅格渲染器初始化失败','left','catch','render','resolve','options','7190950SLVtAa','center','_latLngBoundsToNewLayerBounds','6bjljWJ','DomUtil','requestAnimationFrame','902325kJXJxs','getPixelOrigin','moveend\x20zoomend\x20resize\x20viewreset','handleRenderError','pointerEvents','getZoom','remove','height','renderer','handleMapChanged','overlayPane','canvas','off','syncCanvasToMap','position','latLngBounds','renderedZoom','94129TpWOBi','grid','latLngToLayerPoint','round','rendererType','getPane','setGrid','style','top','leaflet-layer\x20leaflet-zoom-animated\x20raster-leaflet-layer','332984VEfhvB','setColorRange','appendChild','setOpacity','setParams','renderedViewport','add','getSize','514736BUdIKM','renderImmediately','containerPointToLayerPoint','getViewport','Layer','getNorthWest','24nrlSwq','requestRender','pane','3824AWUekh','initializationPromise','create','layerPointToLatLng','renderMode','getZoomedBoundsTopLeft','max','setTransform','zoomanim','min','getPanes'];_0x3f74=function(){return _0x26a2eb;};return _0x3f74();}class ResterLeafletLayerImpl extends _0x5d325b[_0x35efc8(0x128)]{[_0x35efc8(0x10c)]=null;[_0x35efc8(0xe2)]=null;[_0x35efc8(0xe7)]=0x0;[_0x35efc8(0x109)];['renderedViewport']=null;[_0x35efc8(0x111)]=0x0;[_0x35efc8(0x12e)]=null;[_0x35efc8(0x10a)]=()=>{this['syncCanvasToMap'](),this['renderImmediately']();};constructor(_0x3fee39){const _0x567052=_0x35efc8;super(_0x3fee39),this[_0x567052(0x109)]=_0x3fee39[_0x567052(0x109)];}['onAdd'](_0x243130){const _0x59d0c9=_0x35efc8;this['map']=_0x243130,this[_0x59d0c9(0x10c)]=_0x5d325b[_0x59d0c9(0xff)][_0x59d0c9(0x12f)](_0x59d0c9(0x10c),_0x59d0c9(0x11b)),this[_0x59d0c9(0x10c)]['style'][_0x59d0c9(0x10f)]=_0x59d0c9(0xf3),this[_0x59d0c9(0x10c)]['style'][_0x59d0c9(0x105)]='none';const _0x3327c5=this[_0x59d0c9(0xfa)][_0x59d0c9(0x12c)]?_0x243130[_0x59d0c9(0x117)](this['options'][_0x59d0c9(0x12c)]):_0x243130[_0x59d0c9(0x137)]()[_0x59d0c9(0x10b)];_0x3327c5?.[_0x59d0c9(0x11e)](this['canvas']),this['syncCanvasToMap'](),this['renderedZoom']=_0x243130[_0x59d0c9(0x106)](),_0x243130['on']('moveend\x20zoomend\x20resize\x20viewreset',this[_0x59d0c9(0x10a)]),_0x243130['on'](_0x59d0c9(0x135),this['handleZoomAnimation']);const _0x1c5b60=this['canvas'];return this['initializationPromise']=Promise[_0x59d0c9(0xf9)](this['renderer'][_0x59d0c9(0xdf)](_0x1c5b60)),void this[_0x59d0c9(0x12e)]['then'](()=>{const _0x956e0d=_0x59d0c9;if(this[_0x956e0d(0x10c)]!==_0x1c5b60||!this[_0x956e0d(0xe2)])return;this['requestRender']();})[_0x59d0c9(0xf7)](_0x53a4d0=>{const _0x5ef981=_0x59d0c9;console[_0x5ef981(0xe5)](_0x5ef981(0xf5),_0x53a4d0);}),this;}[_0x35efc8(0xe6)](_0x3a3bc2){const _0x56ed4d=_0x35efc8;return _0x3a3bc2[_0x56ed4d(0x10d)](_0x56ed4d(0x103),this[_0x56ed4d(0x10a)]),_0x3a3bc2[_0x56ed4d(0x10d)](_0x56ed4d(0x135),this[_0x56ed4d(0xe8)]),this[_0x56ed4d(0xe7)]&&(window[_0x56ed4d(0xf1)](this['renderFrame']),this[_0x56ed4d(0xe7)]=0x0),this[_0x56ed4d(0x109)][_0x56ed4d(0xe4)](),this['initializationPromise']=null,this[_0x56ed4d(0x10c)]?.[_0x56ed4d(0x107)](),this['canvas']=null,this['map']=null,this;}async[_0x35efc8(0x120)](_0x6098de){const _0x5ed9d2=_0x35efc8;await this[_0x5ed9d2(0x118)](createGridFromParams(_0x6098de));}async[_0x35efc8(0xe9)](_0x3dd1b9){const _0x2356a2=_0x35efc8;await this[_0x2356a2(0x118)](await loadRasterGrid(_0x3dd1b9));}[_0x35efc8(0xf2)](){const _0x4c3e3c=_0x35efc8;this[_0x4c3e3c(0x10e)](),this[_0x4c3e3c(0x12b)]();}[_0x35efc8(0xed)](){const _0x120390=_0x35efc8;return this[_0x120390(0x10c)];}async[_0x35efc8(0x118)](_0x3eb5c1){const _0x59a2bf=_0x35efc8,_0x23b8e5=validateRasterGrid(_0x3eb5c1);this[_0x59a2bf(0x12e)]&&await this[_0x59a2bf(0x12e)],await this[_0x59a2bf(0x109)][_0x59a2bf(0x118)](_0x23b8e5),this[_0x59a2bf(0x12b)]();}[_0x35efc8(0xe0)](_0x39b4b7){const _0x4f30b3=_0x35efc8,_0x397935=normalizeColorStops(_0x39b4b7);this['renderer']['setColorStops'](_0x397935),this[_0x4f30b3(0x12b)]();}[_0x35efc8(0x11d)](_0x539a1e){const _0x1b2839=_0x35efc8;this['renderer'][_0x1b2839(0x11d)](_0x539a1e),this[_0x1b2839(0x12b)]();}[_0x35efc8(0xeb)](_0x5907e2){const _0x5dbc5d=_0x35efc8;this[_0x5dbc5d(0x109)]['setRenderMode'](_0x5907e2),this[_0x5dbc5d(0x12b)]();}[_0x35efc8(0x11f)](_0x4b743a){const _0x5a84bf=_0x35efc8;this['renderer'][_0x5a84bf(0x11f)](_0x4b743a),this['requestRender']();}['syncCanvasToMap'](){const _0x2c57cd=_0x35efc8;if(!this[_0x2c57cd(0xe2)]||!this[_0x2c57cd(0x10c)])return;const _0x37344e=this[_0x2c57cd(0xe2)][_0x2c57cd(0x123)](),_0x369328=Math['round'](_0x37344e['x']*0.5),_0x1c45ab=Math['round'](_0x37344e['y']*0.5),_0x3e1de0=this[_0x2c57cd(0xe2)][_0x2c57cd(0x126)]([-_0x369328,-_0x1c45ab]),_0x217e8b=window[_0x2c57cd(0xea)]||0x1,_0x10fa4a=_0x37344e['x']+_0x369328*0x2,_0x5df795=_0x37344e['y']+_0x1c45ab*0x2,_0x578147=Math['max'](0x1,Math['round'](_0x10fa4a*_0x217e8b)),_0x5ac332=Math[_0x2c57cd(0x133)](0x1,Math[_0x2c57cd(0x115)](_0x5df795*_0x217e8b));_0x5d325b[_0x2c57cd(0xff)]['setPosition'](this['canvas'],_0x3e1de0),this[_0x2c57cd(0x10c)][_0x2c57cd(0x119)][_0x2c57cd(0xee)]=_0x10fa4a+'px',this['canvas'][_0x2c57cd(0x119)][_0x2c57cd(0x108)]=_0x5df795+'px',this[_0x2c57cd(0x121)]={'height':_0x5df795,'left':_0x3e1de0['x'],'top':_0x3e1de0['y'],'width':_0x10fa4a},(this['canvas'][_0x2c57cd(0xee)]!==_0x578147||this[_0x2c57cd(0x10c)][_0x2c57cd(0x108)]!==_0x5ac332)&&(this[_0x2c57cd(0x10c)][_0x2c57cd(0xee)]=_0x578147,this[_0x2c57cd(0x10c)][_0x2c57cd(0x108)]=_0x5ac332);}[_0x35efc8(0x12b)](){const _0x2a9d0c=_0x35efc8;if(this[_0x2a9d0c(0xe7)])return;this[_0x2a9d0c(0xe7)]=window[_0x2a9d0c(0x100)](()=>{const _0x4bcb04=_0x2a9d0c;this['renderFrame']=0x0,void this[_0x4bcb04(0xf8)]()[_0x4bcb04(0xf7)](_0x3cb9c2=>{const _0x4ba4b5=_0x4bcb04;this[_0x4ba4b5(0x104)](_0x3cb9c2);});});}[_0x35efc8(0x125)](){const _0x33851f=_0x35efc8;this[_0x33851f(0xe7)]&&(window[_0x33851f(0xf1)](this['renderFrame']),this[_0x33851f(0xe7)]=0x0),void this[_0x33851f(0xf8)]()['catch'](_0x49b1c3=>{const _0xb68827=_0x33851f;this[_0xb68827(0x104)](_0x49b1c3);});}async['render'](){const _0x5d7b48=_0x35efc8,_0x11169d=this['initializationPromise'];if(!_0x11169d)return;await _0x11169d;if(this[_0x5d7b48(0x12e)]!==_0x11169d)return;const _0x37dc55=this[_0x5d7b48(0x127)]();if(!_0x37dc55)return;await this[_0x5d7b48(0x109)][_0x5d7b48(0xf8)](_0x37dc55);if(this[_0x5d7b48(0x12e)]!==_0x11169d)return;this[_0x5d7b48(0x111)]=this[_0x5d7b48(0xe2)]?.[_0x5d7b48(0x106)]()??this[_0x5d7b48(0x111)];}['getViewport'](){const _0x5a180a=_0x35efc8;if(!this['map']||!this[_0x5a180a(0x10c)])return null;const _0x2c3161=window['devicePixelRatio']||0x1,_0x2ea2b2=this[_0x5a180a(0x121)],_0x20203e=_0x2ea2b2?this[_0x5a180a(0xe2)][_0x5a180a(0x102)]()[_0x5a180a(0x122)]([_0x2ea2b2[_0x5a180a(0xf6)],_0x2ea2b2[_0x5a180a(0x11a)]]):this[_0x5a180a(0xe2)][_0x5a180a(0x102)]();return{'canvasWidth':this['canvas'][_0x5a180a(0xee)],'canvasHeight':this[_0x5a180a(0x10c)]['height'],'cssWidth':this[_0x5a180a(0x10c)][_0x5a180a(0xee)]/_0x2c3161,'cssHeight':this['canvas']['height']/_0x2c3161,'devicePixelRatio':_0x2c3161,'zoom':this[_0x5a180a(0xe2)]['getZoom'](),'worldTopLeftX':_0x20203e['x'],'worldTopLeftY':_0x20203e['y']};}[_0x35efc8(0xe8)]=_0x203bba=>{const _0x54dd1d=_0x35efc8;if(!this[_0x54dd1d(0xe2)]||!this[_0x54dd1d(0x10c)]||!this[_0x54dd1d(0x121)])return;const _0x53a37e=this[_0x54dd1d(0xe2)]['getZoomScale'](_0x203bba[_0x54dd1d(0xec)],this[_0x54dd1d(0x111)]),_0x3aa698=_0x5d325b[_0x54dd1d(0x110)](this[_0x54dd1d(0xe2)][_0x54dd1d(0x130)]([this[_0x54dd1d(0x121)][_0x54dd1d(0xf6)],this[_0x54dd1d(0x121)][_0x54dd1d(0x11a)]+this[_0x54dd1d(0x121)][_0x54dd1d(0x108)]]),this['map'][_0x54dd1d(0x130)]([this[_0x54dd1d(0x121)][_0x54dd1d(0xf6)]+this[_0x54dd1d(0x121)][_0x54dd1d(0xee)],this[_0x54dd1d(0x121)][_0x54dd1d(0x11a)]])),_0x1cd61c=this[_0x54dd1d(0x132)](_0x3aa698,_0x203bba['zoom'],_0x203bba[_0x54dd1d(0xfc)]);_0x5d325b[_0x54dd1d(0xff)][_0x54dd1d(0x134)](this['canvas'],_0x1cd61c,_0x53a37e);};['getZoomedBoundsTopLeft'](_0x28193c,_0x3442f4,_0x208e73){const _0x1a7574=_0x35efc8;if(!this[_0x1a7574(0xe2)])return _0x5d325b['point'](0x0,0x0);const _0x41bff4=this[_0x1a7574(0xe2)];if(_0x41bff4['_latLngBoundsToNewLayerBounds'])return _0x41bff4[_0x1a7574(0xfd)](_0x28193c,_0x3442f4,_0x208e73)[_0x1a7574(0x136)]??_0x5d325b['point'](0x0,0x0);return this[_0x1a7574(0xe2)][_0x1a7574(0x114)](_0x28193c[_0x1a7574(0x129)]());}[_0x35efc8(0x104)](_0x577b50){const _0x792848=_0x35efc8;console[_0x792848(0xe5)](_0x792848(0xef),_0x577b50);}}export const createRasterLeafletLayer=_0x5e1e33=>{const _0x4a625a=_0x35efc8,_0x531e79=createRasterLeafletRenderer(_0x5e1e33[_0x4a625a(0x116)],{'colorRange':_0x5e1e33[_0x4a625a(0xf4)],'colorStops':normalizeColorStops(_0x5e1e33['colorStops']),'grid':validateRasterGrid(_0x5e1e33[_0x4a625a(0x113)]),'opacity':_0x5e1e33[_0x4a625a(0xf0)],'renderMode':_0x5e1e33[_0x4a625a(0x131)]});return new ResterLeafletLayerImpl({'pane':_0x5e1e33[_0x4a625a(0x12c)],'renderer':_0x531e79});};