@antv/l7-layers 2.17.2 → 2.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/Geometry/index.js +31 -9
- package/es/Geometry/models/billboard.js +89 -51
- package/es/Geometry/models/plane.js +143 -81
- package/es/Geometry/models/sprite.js +118 -60
- package/es/canvas/index.js +33 -10
- package/es/canvas/models/canvas.js +97 -41
- package/es/citybuliding/building.js +27 -8
- package/es/citybuliding/models/build.js +82 -57
- package/es/core/BaseLayer.js +478 -313
- package/es/core/BaseModel.js +80 -51
- package/es/core/CommonStyleAttribute.js +5 -2
- package/es/core/LayerPickService.js +32 -21
- package/es/core/TextureService.js +13 -0
- package/es/core/interface.js +24 -17
- package/es/core/shape/Path.js +20 -13
- package/es/core/shape/extrude.js +39 -27
- package/es/core/triangulation.js +136 -99
- package/es/earth/index.js +33 -9
- package/es/earth/models/atmosphere.js +54 -30
- package/es/earth/models/base.js +85 -47
- package/es/earth/models/bloomsphere.js +54 -30
- package/es/earth/utils.js +13 -9
- package/es/heatmap/index.js +40 -10
- package/es/heatmap/models/grid.js +52 -28
- package/es/heatmap/models/grid3d.js +52 -28
- package/es/heatmap/models/heatmap.js +149 -92
- package/es/heatmap/models/hexagon.js +52 -28
- package/es/heatmap/triangulation.js +4 -0
- package/es/image/index.js +28 -9
- package/es/image/models/image.js +100 -66
- package/es/index.js +17 -9
- package/es/line/index.js +35 -9
- package/es/line/models/arc.js +114 -64
- package/es/line/models/arc_3d.js +102 -58
- package/es/line/models/earthArc_3d.js +105 -60
- package/es/line/models/flow.js +60 -36
- package/es/line/models/great_circle.js +94 -53
- package/es/line/models/line.js +138 -86
- package/es/line/models/linearline.js +76 -43
- package/es/line/models/simpleLine.js +69 -39
- package/es/line/models/wall.js +92 -52
- package/es/mask/index.js +28 -9
- package/es/mask/models/fill.js +54 -29
- package/es/plugins/DataMappingPlugin.js +114 -78
- package/es/plugins/DataSourcePlugin.js +68 -45
- package/es/plugins/FeatureScalePlugin.js +122 -67
- package/es/plugins/LayerAnimateStylePlugin.js +5 -0
- package/es/plugins/LayerMaskPlugin.js +11 -3
- package/es/plugins/LayerModelPlugin.js +108 -69
- package/es/plugins/LayerStylePlugin.js +9 -3
- package/es/plugins/LightingPlugin.js +18 -12
- package/es/plugins/MultiPassRendererPlugin.js +16 -11
- package/es/plugins/PixelPickingPlugin.js +21 -12
- package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
- package/es/plugins/ShaderUniformPlugin.js +27 -13
- package/es/plugins/UpdateModelPlugin.js +5 -0
- package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
- package/es/point/index.js +78 -26
- package/es/point/models/earthExtrude.js +95 -58
- package/es/point/models/earthFill.js +80 -52
- package/es/point/models/extrude.js +94 -57
- package/es/point/models/fill.js +81 -56
- package/es/point/models/fillmage.js +100 -60
- package/es/point/models/image.js +83 -47
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +54 -30
- package/es/point/models/radar.js +63 -38
- package/es/point/models/simplePoint.js +62 -38
- package/es/point/models/text.js +296 -199
- package/es/point/shape/extrude.js +13 -4
- package/es/polygon/index.js +41 -11
- package/es/polygon/models/extrude.js +135 -87
- package/es/polygon/models/fill.js +79 -50
- package/es/polygon/models/index.js +2 -3
- package/es/polygon/models/ocean.js +76 -42
- package/es/polygon/models/water.js +71 -37
- package/es/raster/buffers/triangulation.js +4 -2
- package/es/raster/index.js +32 -9
- package/es/raster/models/raster.js +116 -80
- package/es/raster/models/rasterRgb.js +127 -84
- package/es/raster/models/rasterTerrainRgb.js +84 -56
- package/es/tile/interaction/getRasterData.js +20 -14
- package/es/tile/interaction/utils.js +9 -7
- package/es/tile/manager/base.js +96 -63
- package/es/tile/service/TileLayerService.js +55 -33
- package/es/tile/service/TilePickService.js +40 -26
- package/es/tile/service/TileSourceService.js +7 -3
- package/es/tile/tileFactory/DebugTile.js +46 -29
- package/es/tile/tileFactory/ImageTile.js +38 -20
- package/es/tile/tileFactory/MaskTile.js +43 -22
- package/es/tile/tileFactory/RasterRGBTile.js +42 -22
- package/es/tile/tileFactory/RasterTerrainRGBTile.js +38 -20
- package/es/tile/tileFactory/RasterTile.js +53 -30
- package/es/tile/tileFactory/Tile.js +97 -63
- package/es/tile/tileFactory/VectorTile.js +68 -41
- package/es/tile/tileFactory/index.js +11 -0
- package/es/tile/tileFactory/layers/TileDebugLayer.js +27 -6
- package/es/tile/tileFactory/util.js +3 -0
- package/es/tile/tileLayer/BaseLayer.js +146 -105
- package/es/tile/utils.js +1 -1
- package/es/utils/blend.js +2 -0
- package/es/utils/collision-index.js +16 -9
- package/es/utils/extrude_polyline.js +149 -101
- package/es/utils/grid-index.js +27 -2
- package/es/utils/identityScale.js +8 -0
- package/es/utils/layerData.js +44 -30
- package/es/utils/multiPassRender.js +13 -11
- package/es/utils/polylineNormal.js +37 -31
- package/es/utils/simpleLine.js +16 -2
- package/es/utils/stencil.js +3 -2
- package/es/utils/symbol-layout.js +53 -27
- package/es/wind/index.js +29 -9
- package/es/wind/models/utils.js +51 -26
- package/es/wind/models/wind.js +147 -101
- package/es/wind/models/windRender.js +66 -53
- package/lib/Geometry/index.js +38 -9
- package/lib/Geometry/models/billboard.js +97 -51
- package/lib/Geometry/models/index.js +5 -0
- package/lib/Geometry/models/plane.js +151 -79
- package/lib/Geometry/models/sprite.js +127 -60
- package/lib/canvas/index.js +40 -10
- package/lib/canvas/models/canvas.js +101 -41
- package/lib/canvas/models/index.js +3 -0
- package/lib/citybuliding/building.js +35 -8
- package/lib/citybuliding/models/build.js +92 -57
- package/lib/core/BaseLayer.js +469 -313
- package/lib/core/BaseModel.js +90 -51
- package/lib/core/CommonStyleAttribute.js +7 -2
- package/lib/core/LayerPickService.js +37 -21
- package/lib/core/TextureService.js +16 -0
- package/lib/core/interface.js +31 -21
- package/lib/core/schema.js +1 -0
- package/lib/core/shape/Path.js +31 -14
- package/lib/core/shape/extrude.js +62 -27
- package/lib/core/triangulation.js +177 -98
- package/lib/earth/index.js +43 -9
- package/lib/earth/models/atmosphere.js +63 -30
- package/lib/earth/models/base.js +90 -47
- package/lib/earth/models/bloomsphere.js +63 -30
- package/lib/earth/utils.js +31 -7
- package/lib/heatmap/index.js +48 -10
- package/lib/heatmap/models/grid.js +60 -28
- package/lib/heatmap/models/grid3d.js +60 -28
- package/lib/heatmap/models/heatmap.js +166 -92
- package/lib/heatmap/models/hexagon.js +60 -28
- package/lib/heatmap/models/index.js +6 -0
- package/lib/heatmap/triangulation.js +5 -0
- package/lib/image/index.js +36 -9
- package/lib/image/models/image.js +109 -66
- package/lib/image/models/index.js +3 -0
- package/lib/index.js +61 -7
- package/lib/line/index.js +40 -9
- package/lib/line/models/arc.js +124 -62
- package/lib/line/models/arc_3d.js +113 -56
- package/lib/line/models/earthArc_3d.js +115 -58
- package/lib/line/models/flow.js +70 -36
- package/lib/line/models/great_circle.js +104 -53
- package/lib/line/models/index.js +11 -0
- package/lib/line/models/line.js +146 -84
- package/lib/line/models/linearline.js +88 -43
- package/lib/line/models/simpleLine.js +79 -39
- package/lib/line/models/wall.js +103 -52
- package/lib/mask/index.js +36 -9
- package/lib/mask/models/fill.js +63 -29
- package/lib/mask/models/index.js +3 -0
- package/lib/plugins/DataMappingPlugin.js +125 -78
- package/lib/plugins/DataSourcePlugin.js +76 -45
- package/lib/plugins/FeatureScalePlugin.js +138 -67
- package/lib/plugins/LayerAnimateStylePlugin.js +10 -0
- package/lib/plugins/LayerMaskPlugin.js +17 -4
- package/lib/plugins/LayerModelPlugin.js +117 -70
- package/lib/plugins/LayerStylePlugin.js +14 -4
- package/lib/plugins/LightingPlugin.js +25 -12
- package/lib/plugins/MultiPassRendererPlugin.js +22 -11
- package/lib/plugins/PixelPickingPlugin.js +27 -12
- package/lib/plugins/RegisterStyleAttributePlugin.js +19 -5
- package/lib/plugins/ShaderUniformPlugin.js +34 -13
- package/lib/plugins/UpdateModelPlugin.js +10 -1
- package/lib/plugins/UpdateStyleAttributePlugin.js +16 -5
- package/lib/point/index.js +83 -26
- package/lib/point/models/earthExtrude.js +106 -58
- package/lib/point/models/earthFill.js +110 -52
- package/lib/point/models/extrude.js +103 -57
- package/lib/point/models/fill.js +90 -54
- package/lib/point/models/fillmage.js +107 -58
- package/lib/point/models/image.js +92 -47
- package/lib/point/models/index.js +12 -1
- package/lib/point/models/normal.js +64 -30
- package/lib/point/models/radar.js +72 -38
- package/lib/point/models/simplePoint.js +72 -38
- package/lib/point/models/text.js +305 -199
- package/lib/point/shape/extrude.js +20 -4
- package/lib/polygon/index.js +48 -11
- package/lib/polygon/models/extrude.js +146 -87
- package/lib/polygon/models/fill.js +89 -50
- package/lib/polygon/models/index.js +14 -2
- package/lib/polygon/models/ocean.js +88 -42
- package/lib/polygon/models/water.js +82 -37
- package/lib/raster/buffers/triangulation.js +7 -3
- package/lib/raster/index.js +40 -9
- package/lib/raster/models/index.js +5 -0
- package/lib/raster/models/raster.js +125 -80
- package/lib/raster/models/rasterRgb.js +139 -84
- package/lib/raster/models/rasterTerrainRgb.js +93 -56
- package/lib/tile/interaction/getRasterData.js +25 -14
- package/lib/tile/interaction/utils.js +19 -7
- package/lib/tile/manager/base.js +104 -63
- package/lib/tile/service/TileLayerService.js +60 -33
- package/lib/tile/service/TilePickService.js +48 -26
- package/lib/tile/service/TileSourceService.js +16 -2
- package/lib/tile/style/utils.js +3 -0
- package/lib/tile/tileFactory/DebugTile.js +54 -29
- package/lib/tile/tileFactory/ImageTile.js +46 -20
- package/lib/tile/tileFactory/MaskTile.js +51 -22
- package/lib/tile/tileFactory/RasterRGBTile.js +50 -22
- package/lib/tile/tileFactory/RasterTerrainRGBTile.js +46 -20
- package/lib/tile/tileFactory/RasterTile.js +63 -30
- package/lib/tile/tileFactory/Tile.js +102 -63
- package/lib/tile/tileFactory/VectorTile.js +76 -41
- package/lib/tile/tileFactory/index.js +25 -0
- package/lib/tile/tileFactory/layers/TileDebugLayer.js +32 -6
- package/lib/tile/tileFactory/util.js +9 -0
- package/lib/tile/tileLayer/BaseLayer.js +153 -105
- package/lib/tile/utils.js +5 -1
- package/lib/utils/blend.js +5 -0
- package/lib/utils/collision-index.js +25 -9
- package/lib/utils/extrude_polyline.js +181 -101
- package/lib/utils/grid-index.js +28 -2
- package/lib/utils/identityScale.js +9 -0
- package/lib/utils/layerData.js +49 -30
- package/lib/utils/multiPassRender.js +16 -11
- package/lib/utils/polylineNormal.js +66 -31
- package/lib/utils/simpleLine.js +21 -2
- package/lib/utils/stencil.js +4 -0
- package/lib/utils/symbol-layout.js +55 -27
- package/lib/wind/index.js +37 -9
- package/lib/wind/models/index.js +3 -0
- package/lib/wind/models/utils.js +62 -26
- package/lib/wind/models/wind.js +157 -101
- package/lib/wind/models/windRender.js +71 -53
- package/lib/wind/models/windShader.js +1 -0
- package/package.json +7 -7
|
@@ -6,10 +6,15 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
6
6
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
7
7
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
8
8
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
9
|
+
|
|
9
10
|
var _dec, _class;
|
|
11
|
+
|
|
10
12
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
13
|
+
|
|
11
14
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
15
|
+
|
|
12
16
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
17
|
+
|
|
13
18
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
14
19
|
import { generateColorRamp, getCullFace } from '@antv/l7-utils';
|
|
15
20
|
import { mat4 } from 'gl-matrix';
|
|
@@ -17,36 +22,49 @@ import { injectable } from 'inversify';
|
|
|
17
22
|
import 'reflect-metadata';
|
|
18
23
|
import BaseModel from "../../core/BaseModel";
|
|
19
24
|
import { HeatmapTriangulation } from "../../core/triangulation";
|
|
25
|
+
|
|
20
26
|
/* babel-plugin-inline-import '../shaders/heatmap_3d_frag.glsl' */
|
|
21
27
|
var heatmap3DFrag = "uniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_opacity;\nvarying vec2 v_texCoord;\nvarying float v_intensity;\n\nvoid main(){\n \n float intensity = texture2D(u_texture, v_texCoord).r;\n vec4 color = texture2D(u_colorTexture,vec2(intensity, 0));\n gl_FragColor = color;\n // gl_FragColor.a = color.a * smoothstep(0.1,0.2,intensity)* u_opacity;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n}\n";
|
|
28
|
+
|
|
22
29
|
/* babel-plugin-inline-import '../shaders/heatmap_3d_vert.glsl' */
|
|
23
30
|
var heatmap3DVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nuniform sampler2D u_texture;\nvarying vec2 v_texCoord;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_InverseViewProjectionMatrix;\nuniform mat4 u_ViewProjectionMatrixUncentered;\nvarying float v_intensity;\n\n\nvec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) {\n float t2 = t * t;\n float one_minus_t = 1.0 - t;\n float one_minus_t2 = one_minus_t * one_minus_t;\n return (P0 * one_minus_t2 * one_minus_t + P1 * 3.0 * t * one_minus_t2 + P2 * 3.0 * t2 * one_minus_t + P3 * t2 * t);\n}\nvec2 toBezier(float t, vec4 p){\n return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0));\n}\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n\n vec2 pos = a_Uv * vec2(2.0) - vec2(1.0); // \u5C06\u539F\u672C 0 -> 1 \u7684 uv \u8F6C\u6362\u4E3A -1 -> 1 \u7684\u6807\u51C6\u5750\u6807\u7A7A\u95F4\uFF08NDC\uFF09\n\n vec4 p1 = vec4(pos, 0.0, 1.0); // x/y \u5E73\u9762\u4E0A\u7684\u70B9\uFF08z == 0\uFF09\u53EF\u4EE5\u8BA4\u4E3A\u662F\u4E09\u7EF4\u4E0A\u7684\u70B9\u88AB\u6295\u5F71\u5230\u5E73\u9762\u540E\u7684\u70B9\n\tvec4 p2 = vec4(pos, 1.0, 1.0); // \u5E73\u884C\u4E8Ex/y\u5E73\u9762\u3001z==1 \u7684\u5E73\u9762\u4E0A\u7684\u70B9\n\n\tvec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // \u6839\u636E\u89C6\u56FE\u6295\u5F71\u77E9\u9635\u7684\u9006\u77E9\u9635\u5E73\u9762\u4E0A\u7684\u53CD\u7B97\u51FA\u4E09\u7EF4\u7A7A\u95F4\u4E2D\u7684\u70B9\uFF08p1\u5E73\u9762\u4E0A\u7684\u70B9\uFF09\n\tvec4 inverseP2 = u_InverseViewProjectionMatrix * p2;\n\n inverseP1 = inverseP1 / inverseP1.w; // \u5F52\u4E00\u5316\u64CD\u4F5C\uFF08\u5F52\u4E00\u5316\u540E\u4E3A\u4E16\u754C\u5750\u6807\uFF09\n\tinverseP2 = inverseP2 / inverseP2.w;\n\n\tfloat zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ??\n\tvec4 position = inverseP1 + zPos * (inverseP2 - inverseP1);\n\n vec4 b= vec4(0.5000, 0.0, 1.0, 0.5000);\n float fh;\n\n v_intensity = texture2D(u_texture, v_texCoord).r;\n fh = toBezier(v_intensity, b).y;\n gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.), 1.0);\n \n}\n"; // 绘制平面热力的 shader
|
|
31
|
+
|
|
24
32
|
/* babel-plugin-inline-import '../shaders/heatmap_frag.glsl' */
|
|
25
33
|
var heatmapColorFrag = "uniform sampler2D u_texture; // \u70ED\u529B\u5F3A\u5EA6\u56FE\nuniform sampler2D u_colorTexture; // \u6839\u636E\u5F3A\u5EA6\u5206\u5E03\u7684\u8272\u5E26\nuniform float u_opacity;\nvarying vec2 v_texCoord;\n\nuniform vec2 u_ViewportSize;\n\nfloat getBlurIndusty() {\n float vW = 2.0/u_ViewportSize.x;\n float vH = 2.0/u_ViewportSize.y;\n vec2 vUv = v_texCoord;\n float i11 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i12 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i13 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n\n float i21 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y) ).r;\n float i22 = texture2D( u_texture, vec2( vUv.x , vUv.y) ).r;\n float i23 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y) ).r;\n\n float i31 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y-1.0*vH) ).r;\n float i32 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y-1.0*vH) ).r;\n float i33 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y-1.0*vH) ).r;\n\n return(\n i11 + \n i12 + \n i13 + \n i21 + \n i21 + \n i22 + \n i23 + \n i31 + \n i32 + \n i33\n )/9.0;\n}\n\n\nvoid main(){\n // float intensity = texture2D(u_texture, v_texCoord).r;\n float intensity = getBlurIndusty();\n vec4 color = texture2D(u_colorTexture, vec2(intensity, 0.0));\n\n gl_FragColor =color;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n\n}\n";
|
|
34
|
+
|
|
26
35
|
/* babel-plugin-inline-import '../shaders/heatmap_vert.glsl' */
|
|
27
36
|
var heatmapColorVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n\nvoid main() {\n v_texCoord = a_Uv;\n\n gl_Position = vec4(a_Position.xy, 0, 1.);\n}\n";
|
|
37
|
+
|
|
28
38
|
/* babel-plugin-inline-import '../shaders/heatmap_framebuffer_frag.glsl' */
|
|
29
39
|
var heatmapFramebufferFrag = "precision highp float;\nuniform float u_intensity;\nvarying float v_weight;\nvarying vec2 v_extrude;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(){\n float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);\n float val = v_weight * u_intensity * GAUSS_COEF * exp(d);\n gl_FragColor = vec4(val, 1., 1., 1.);\n}\n";
|
|
40
|
+
|
|
30
41
|
/* babel-plugin-inline-import '../shaders/heatmap_framebuffer_vert.glsl' */
|
|
31
42
|
var heatmapFramebufferVert = "precision highp float;\nattribute vec3 a_Position;\nattribute float a_Size;\nattribute vec2 a_Dir;\nuniform float u_intensity;\nuniform float u_radius;\nvarying vec2 v_extrude;\nvarying float v_weight;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\n#define GAUSS_COEF 0.3989422804014327\n\n#pragma include \"projection\"\n\nvoid main(){\n v_weight = a_Size;\n float ZERO = 1.0 / 255.0 / 16.0;\n float extrude_x = a_Dir.x * 2.0 -1.0;\n float extrude_y = a_Dir.y * 2.0 -1.0;\n vec2 extrude_dir = normalize(vec2(extrude_x,extrude_y));\n float S = sqrt(-2.0 * log(ZERO / a_Size / u_intensity / GAUSS_COEF)) / 2.5;\n v_extrude = extrude_dir * S;\n\n vec2 offset = project_pixel(v_extrude * u_radius);\n vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy + offset, 0.0, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n }\n}\n";
|
|
32
43
|
import { isEqual } from 'lodash';
|
|
33
44
|
import { heatMap3DTriangulation } from "../triangulation";
|
|
34
45
|
var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_BaseModel) {
|
|
35
46
|
_inherits(HeatMapModel, _BaseModel);
|
|
47
|
+
|
|
36
48
|
var _super = _createSuper(HeatMapModel);
|
|
49
|
+
|
|
37
50
|
function HeatMapModel() {
|
|
38
51
|
_classCallCheck(this, HeatMapModel);
|
|
52
|
+
|
|
39
53
|
return _super.apply(this, arguments);
|
|
40
54
|
}
|
|
55
|
+
|
|
41
56
|
_createClass(HeatMapModel, [{
|
|
42
57
|
key: "render",
|
|
43
58
|
value: function render(options) {
|
|
44
59
|
var _this = this;
|
|
60
|
+
|
|
45
61
|
var _this$rendererService = this.rendererService,
|
|
46
|
-
|
|
47
|
-
|
|
62
|
+
clear = _this$rendererService.clear,
|
|
63
|
+
useFramebuffer = _this$rendererService.useFramebuffer;
|
|
64
|
+
|
|
48
65
|
var _ref = this.layer.getLayerConfig(),
|
|
49
|
-
|
|
66
|
+
rampColors = _ref.rampColors;
|
|
67
|
+
|
|
50
68
|
useFramebuffer(this.heatmapFramerBuffer, function () {
|
|
51
69
|
clear({
|
|
52
70
|
color: [0, 0, 0, 0],
|
|
@@ -54,11 +72,14 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
54
72
|
stencil: 0,
|
|
55
73
|
framebuffer: _this.heatmapFramerBuffer
|
|
56
74
|
});
|
|
75
|
+
|
|
57
76
|
_this.drawIntensityMode();
|
|
58
77
|
});
|
|
78
|
+
|
|
59
79
|
if (!isEqual(this.preRampColors, rampColors)) {
|
|
60
80
|
this.updateColorTexture();
|
|
61
81
|
}
|
|
82
|
+
|
|
62
83
|
this.shapeType === 'heatmap' ? this.drawColorMode(options) : this.draw3DHeatMap(options);
|
|
63
84
|
}
|
|
64
85
|
}, {
|
|
@@ -71,45 +92,55 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
71
92
|
value: function () {
|
|
72
93
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
73
94
|
var _shapeAttr$scale;
|
|
95
|
+
|
|
74
96
|
var _this$rendererService2, createFramebuffer, getViewportSize, createTexture2D, shapeAttr, shapeType, _getViewportSize, width, height;
|
|
97
|
+
|
|
75
98
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
76
|
-
while (1)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
99
|
+
while (1) {
|
|
100
|
+
switch (_context.prev = _context.next) {
|
|
101
|
+
case 0:
|
|
102
|
+
_this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D;
|
|
103
|
+
shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
|
|
104
|
+
shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
|
|
105
|
+
this.shapeType = shapeType; // 生成热力图密度图
|
|
106
|
+
|
|
107
|
+
_context.next = 6;
|
|
108
|
+
return this.buildHeatMapIntensity();
|
|
109
|
+
|
|
110
|
+
case 6:
|
|
111
|
+
this.intensityModel = _context.sent;
|
|
112
|
+
// 渲染到屏幕
|
|
113
|
+
this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() // 2D
|
|
114
|
+
: this.build3dHeatMap(); // 3D
|
|
115
|
+
|
|
116
|
+
_getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height; // 初始化密度图纹理
|
|
117
|
+
|
|
118
|
+
this.heatmapFramerBuffer = createFramebuffer({
|
|
119
|
+
color: createTexture2D({
|
|
120
|
+
width: Math.floor(width / 4),
|
|
121
|
+
height: Math.floor(height / 4),
|
|
122
|
+
wrapS: gl.CLAMP_TO_EDGE,
|
|
123
|
+
wrapT: gl.CLAMP_TO_EDGE,
|
|
124
|
+
min: gl.LINEAR,
|
|
125
|
+
mag: gl.LINEAR
|
|
126
|
+
}),
|
|
127
|
+
depth: false
|
|
128
|
+
});
|
|
129
|
+
this.updateColorTexture();
|
|
130
|
+
return _context.abrupt("return", [this.intensityModel, this.colorModel]);
|
|
131
|
+
|
|
132
|
+
case 12:
|
|
133
|
+
case "end":
|
|
134
|
+
return _context.stop();
|
|
135
|
+
}
|
|
107
136
|
}
|
|
108
137
|
}, _callee, this);
|
|
109
138
|
}));
|
|
139
|
+
|
|
110
140
|
function initModels() {
|
|
111
141
|
return _initModels.apply(this, arguments);
|
|
112
142
|
}
|
|
143
|
+
|
|
113
144
|
return initModels;
|
|
114
145
|
}()
|
|
115
146
|
}, {
|
|
@@ -117,18 +148,23 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
117
148
|
value: function () {
|
|
118
149
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
119
150
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
120
|
-
while (1)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
151
|
+
while (1) {
|
|
152
|
+
switch (_context2.prev = _context2.next) {
|
|
153
|
+
case 0:
|
|
154
|
+
return _context2.abrupt("return", this.initModels());
|
|
155
|
+
|
|
156
|
+
case 1:
|
|
157
|
+
case "end":
|
|
158
|
+
return _context2.stop();
|
|
159
|
+
}
|
|
126
160
|
}
|
|
127
161
|
}, _callee2, this);
|
|
128
162
|
}));
|
|
163
|
+
|
|
129
164
|
function buildModels() {
|
|
130
165
|
return _buildModels.apply(this, arguments);
|
|
131
166
|
}
|
|
167
|
+
|
|
132
168
|
return buildModels;
|
|
133
169
|
}()
|
|
134
170
|
}, {
|
|
@@ -164,7 +200,7 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
164
200
|
size: 1,
|
|
165
201
|
update: function update(feature) {
|
|
166
202
|
var _feature$size = feature.size,
|
|
167
|
-
|
|
203
|
+
size = _feature$size === void 0 ? 1 : _feature$size;
|
|
168
204
|
return [size];
|
|
169
205
|
}
|
|
170
206
|
}
|
|
@@ -176,35 +212,41 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
176
212
|
var _buildHeatMapIntensity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
177
213
|
var model;
|
|
178
214
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
179
|
-
while (1)
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
215
|
+
while (1) {
|
|
216
|
+
switch (_context3.prev = _context3.next) {
|
|
217
|
+
case 0:
|
|
218
|
+
this.layer.triangulation = HeatmapTriangulation;
|
|
219
|
+
_context3.next = 3;
|
|
220
|
+
return this.layer.buildLayerModel({
|
|
221
|
+
moduleName: 'heatmapIntensity',
|
|
222
|
+
vertexShader: heatmapFramebufferVert,
|
|
223
|
+
fragmentShader: heatmapFramebufferFrag,
|
|
224
|
+
triangulation: HeatmapTriangulation,
|
|
225
|
+
depth: {
|
|
226
|
+
enable: false
|
|
227
|
+
},
|
|
228
|
+
cull: {
|
|
229
|
+
enable: true,
|
|
230
|
+
face: getCullFace(this.mapService.version)
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
case 3:
|
|
235
|
+
model = _context3.sent;
|
|
236
|
+
return _context3.abrupt("return", model);
|
|
237
|
+
|
|
238
|
+
case 5:
|
|
239
|
+
case "end":
|
|
240
|
+
return _context3.stop();
|
|
241
|
+
}
|
|
202
242
|
}
|
|
203
243
|
}, _callee3, this);
|
|
204
244
|
}));
|
|
245
|
+
|
|
205
246
|
function buildHeatMapIntensity() {
|
|
206
247
|
return _buildHeatMapIntensity.apply(this, arguments);
|
|
207
248
|
}
|
|
249
|
+
|
|
208
250
|
return buildHeatMapIntensity;
|
|
209
251
|
}()
|
|
210
252
|
}, {
|
|
@@ -214,15 +256,17 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
214
256
|
vs: heatmapColorVert,
|
|
215
257
|
fs: heatmapColorFrag
|
|
216
258
|
});
|
|
259
|
+
|
|
217
260
|
var _this$shaderModuleSer = this.shaderModuleService.getModule('heatmapColor'),
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
261
|
+
vs = _this$shaderModuleSer.vs,
|
|
262
|
+
fs = _this$shaderModuleSer.fs,
|
|
263
|
+
uniforms = _this$shaderModuleSer.uniforms;
|
|
264
|
+
|
|
221
265
|
var _this$rendererService3 = this.rendererService,
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
266
|
+
createAttribute = _this$rendererService3.createAttribute,
|
|
267
|
+
createElements = _this$rendererService3.createElements,
|
|
268
|
+
createBuffer = _this$rendererService3.createBuffer,
|
|
269
|
+
createModel = _this$rendererService3.createModel;
|
|
226
270
|
return createModel({
|
|
227
271
|
vs: vs,
|
|
228
272
|
fs: fs,
|
|
@@ -257,15 +301,17 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
257
301
|
key: "drawIntensityMode",
|
|
258
302
|
value: function drawIntensityMode() {
|
|
259
303
|
var _this$intensityModel;
|
|
304
|
+
|
|
260
305
|
var _ref2 = this.layer.getLayerConfig(),
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
306
|
+
opacity = _ref2.opacity,
|
|
307
|
+
_ref2$intensity = _ref2.intensity,
|
|
308
|
+
intensity = _ref2$intensity === void 0 ? 10 : _ref2$intensity,
|
|
309
|
+
_ref2$radius = _ref2.radius,
|
|
310
|
+
radius = _ref2$radius === void 0 ? 5 : _ref2$radius;
|
|
311
|
+
|
|
266
312
|
this.layerService.beforeRenderData(this.layer);
|
|
267
|
-
this.layer.hooks.beforeRender.call();
|
|
268
|
-
|
|
313
|
+
this.layer.hooks.beforeRender.call(); // 绘制密度图
|
|
314
|
+
|
|
269
315
|
(_this$intensityModel = this.intensityModel) === null || _this$intensityModel === void 0 ? void 0 : _this$intensityModel.draw({
|
|
270
316
|
uniforms: {
|
|
271
317
|
u_opacity: opacity || 1.0,
|
|
@@ -298,8 +344,10 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
298
344
|
key: "drawColorMode",
|
|
299
345
|
value: function drawColorMode(options) {
|
|
300
346
|
var _this$colorModel;
|
|
347
|
+
|
|
301
348
|
var _ref3 = this.layer.getLayerConfig(),
|
|
302
|
-
|
|
349
|
+
opacity = _ref3.opacity;
|
|
350
|
+
|
|
303
351
|
(_this$colorModel = this.colorModel) === null || _this$colorModel === void 0 ? void 0 : _this$colorModel.draw({
|
|
304
352
|
uniforms: {
|
|
305
353
|
u_opacity: opacity || 1.0,
|
|
@@ -314,16 +362,17 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
314
362
|
key: "draw3DHeatMap",
|
|
315
363
|
value: function draw3DHeatMap(options) {
|
|
316
364
|
var _this$colorModel2;
|
|
317
|
-
var _ref4 = this.layer.getLayerConfig(),
|
|
318
|
-
opacity = _ref4.opacity;
|
|
319
365
|
|
|
320
|
-
|
|
366
|
+
var _ref4 = this.layer.getLayerConfig(),
|
|
367
|
+
opacity = _ref4.opacity; // const invert = mat4.invert(
|
|
321
368
|
// mat4.create(),
|
|
322
369
|
// mat4.fromValues(
|
|
323
370
|
// // @ts-ignore
|
|
324
371
|
// ...this.cameraService.getViewProjectionMatrixUncentered(),
|
|
325
372
|
// ),
|
|
326
373
|
// ) as mat4;
|
|
374
|
+
|
|
375
|
+
|
|
327
376
|
var invert = mat4.create();
|
|
328
377
|
mat4.invert(invert, this.cameraService.getViewProjectionMatrixUncentered());
|
|
329
378
|
(_this$colorModel2 = this.colorModel) === null || _this$colorModel2 === void 0 ? void 0 : _this$colorModel2.draw({
|
|
@@ -350,23 +399,27 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
350
399
|
key: "build3dHeatMap",
|
|
351
400
|
value: function build3dHeatMap() {
|
|
352
401
|
var getViewportSize = this.rendererService.getViewportSize;
|
|
402
|
+
|
|
353
403
|
var _getViewportSize2 = getViewportSize(),
|
|
354
|
-
|
|
355
|
-
|
|
404
|
+
width = _getViewportSize2.width,
|
|
405
|
+
height = _getViewportSize2.height;
|
|
406
|
+
|
|
356
407
|
var triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);
|
|
357
408
|
this.shaderModuleService.registerModule('heatmap3dColor', {
|
|
358
409
|
vs: heatmap3DVert,
|
|
359
410
|
fs: heatmap3DFrag
|
|
360
411
|
});
|
|
412
|
+
|
|
361
413
|
var _this$shaderModuleSer2 = this.shaderModuleService.getModule('heatmap3dColor'),
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
414
|
+
vs = _this$shaderModuleSer2.vs,
|
|
415
|
+
fs = _this$shaderModuleSer2.fs,
|
|
416
|
+
uniforms = _this$shaderModuleSer2.uniforms;
|
|
417
|
+
|
|
365
418
|
var _this$rendererService4 = this.rendererService,
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
419
|
+
createAttribute = _this$rendererService4.createAttribute,
|
|
420
|
+
createElements = _this$rendererService4.createElements,
|
|
421
|
+
createBuffer = _this$rendererService4.createBuffer,
|
|
422
|
+
createModel = _this$rendererService4.createModel;
|
|
370
423
|
return createModel({
|
|
371
424
|
vs: vs,
|
|
372
425
|
fs: fs,
|
|
@@ -416,11 +469,14 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
416
469
|
key: "updateColorTexture",
|
|
417
470
|
value: function updateColorTexture() {
|
|
418
471
|
var createTexture2D = this.rendererService.createTexture2D;
|
|
472
|
+
|
|
419
473
|
if (this.texture) {
|
|
420
474
|
this.texture.destroy();
|
|
421
475
|
}
|
|
476
|
+
|
|
422
477
|
var _ref5 = this.layer.getLayerConfig(),
|
|
423
|
-
|
|
478
|
+
rampColors = _ref5.rampColors;
|
|
479
|
+
|
|
424
480
|
var imageData = generateColorRamp(rampColors);
|
|
425
481
|
this.colorTexture = createTexture2D({
|
|
426
482
|
data: new Uint8Array(imageData.data),
|
|
@@ -435,6 +491,7 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
|
|
|
435
491
|
this.preRampColors = rampColors;
|
|
436
492
|
}
|
|
437
493
|
}]);
|
|
494
|
+
|
|
438
495
|
return HeatMapModel;
|
|
439
496
|
}(BaseModel)) || _class);
|
|
440
497
|
export { HeatMapModel as default };
|
|
@@ -5,29 +5,40 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
|
5
5
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
6
6
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
7
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
|
+
|
|
8
9
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
+
|
|
9
11
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
|
+
|
|
10
13
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
11
14
|
import BaseModel from "../../core/BaseModel";
|
|
12
15
|
import { HeatmapGridTriangulation } from "../../core/triangulation";
|
|
16
|
+
|
|
13
17
|
/* babel-plugin-inline-import '../shaders/hexagon_frag.glsl' */
|
|
14
18
|
var heatmapGridFrag = "precision highp float;\nvarying vec4 v_color;\nuniform float u_opacity: 1;\n\n#pragma include \"picking\"\n\nvoid main() {\n gl_FragColor = v_color;\n gl_FragColor.a *= u_opacity;\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
19
|
+
|
|
15
20
|
/* babel-plugin-inline-import '../shaders/hexagon_vert.glsl' */
|
|
16
21
|
var heatmapGridVert = "precision highp float;\n// \u591A\u8FB9\u5F62\u9876\u70B9\u5750\u6807\nattribute vec3 a_Position;\n// \u591A\u8FB9\u5F62\u7ECF\u7EAC\u5EA6\u5750\u6807\nattribute vec3 a_Pos;\nattribute float a_Size;\nattribute vec4 a_Color;\nuniform vec2 u_radius;\nuniform float u_coverage: 0.9;\nuniform float u_angle: 0;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nvarying vec4 v_color;\n\nuniform vec2 u_sceneCenterMercator;\n\n#pragma include \"projection\"\n#pragma include \"project\"\n#pragma include \"picking\"\n\nvoid main() {\n v_color = a_Color;\n \n mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle));\n vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage));\n vec2 lnglat = unProjectFlat(a_Pos.xy + offset);\n \n // vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0., 1.0));\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n // gl_Position = u_Mvp * (vec4(project_pos.xy, 0., 1.0));\n // gl_Position = u_Mvp * (vec4(a_Pos.xy + offset, 0., 1.0));\n vec2 customLnglat = customProject(lnglat) - u_sceneCenterMercator;\n vec4 project_pos = project_position(vec4(customLnglat, 0, 1.0));\n gl_Position = u_Mvp * vec4(project_pos.xy, 0.0, 1.0);\n } else {\n vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0., 1.0));\n }\n setPickingColor(a_PickingColor);\n}\n";
|
|
22
|
+
|
|
17
23
|
var HexagonModel = /*#__PURE__*/function (_BaseModel) {
|
|
18
24
|
_inherits(HexagonModel, _BaseModel);
|
|
25
|
+
|
|
19
26
|
var _super = _createSuper(HexagonModel);
|
|
27
|
+
|
|
20
28
|
function HexagonModel() {
|
|
21
29
|
_classCallCheck(this, HexagonModel);
|
|
30
|
+
|
|
22
31
|
return _super.apply(this, arguments);
|
|
23
32
|
}
|
|
33
|
+
|
|
24
34
|
_createClass(HexagonModel, [{
|
|
25
35
|
key: "getUninforms",
|
|
26
36
|
value: function getUninforms() {
|
|
27
37
|
var _ref = this.layer.getLayerConfig(),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
38
|
+
opacity = _ref.opacity,
|
|
39
|
+
coverage = _ref.coverage,
|
|
40
|
+
angle = _ref.angle;
|
|
41
|
+
|
|
31
42
|
return {
|
|
32
43
|
u_opacity: opacity || 1.0,
|
|
33
44
|
u_coverage: coverage || 0.9,
|
|
@@ -40,18 +51,23 @@ var HexagonModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
40
51
|
value: function () {
|
|
41
52
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
42
53
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
43
|
-
while (1)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
while (1) {
|
|
55
|
+
switch (_context.prev = _context.next) {
|
|
56
|
+
case 0:
|
|
57
|
+
return _context.abrupt("return", this.buildModels());
|
|
58
|
+
|
|
59
|
+
case 1:
|
|
60
|
+
case "end":
|
|
61
|
+
return _context.stop();
|
|
62
|
+
}
|
|
49
63
|
}
|
|
50
64
|
}, _callee, this);
|
|
51
65
|
}));
|
|
66
|
+
|
|
52
67
|
function initModels() {
|
|
53
68
|
return _initModels.apply(this, arguments);
|
|
54
69
|
}
|
|
70
|
+
|
|
55
71
|
return initModels;
|
|
56
72
|
}()
|
|
57
73
|
}, {
|
|
@@ -60,31 +76,37 @@ var HexagonModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
60
76
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
61
77
|
var model;
|
|
62
78
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
63
|
-
while (1)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
while (1) {
|
|
80
|
+
switch (_context2.prev = _context2.next) {
|
|
81
|
+
case 0:
|
|
82
|
+
_context2.next = 2;
|
|
83
|
+
return this.layer.buildLayerModel({
|
|
84
|
+
moduleName: 'heatmapHexagon',
|
|
85
|
+
vertexShader: heatmapGridVert,
|
|
86
|
+
fragmentShader: heatmapGridFrag,
|
|
87
|
+
triangulation: HeatmapGridTriangulation,
|
|
88
|
+
depth: {
|
|
89
|
+
enable: false
|
|
90
|
+
},
|
|
91
|
+
primitive: gl.TRIANGLES
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
case 2:
|
|
95
|
+
model = _context2.sent;
|
|
96
|
+
return _context2.abrupt("return", [model]);
|
|
97
|
+
|
|
98
|
+
case 4:
|
|
99
|
+
case "end":
|
|
100
|
+
return _context2.stop();
|
|
101
|
+
}
|
|
82
102
|
}
|
|
83
103
|
}, _callee2, this);
|
|
84
104
|
}));
|
|
105
|
+
|
|
85
106
|
function buildModels() {
|
|
86
107
|
return _buildModels.apply(this, arguments);
|
|
87
108
|
}
|
|
109
|
+
|
|
88
110
|
return buildModels;
|
|
89
111
|
}()
|
|
90
112
|
}, {
|
|
@@ -110,6 +132,8 @@ var HexagonModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
110
132
|
});
|
|
111
133
|
}
|
|
112
134
|
}]);
|
|
135
|
+
|
|
113
136
|
return HexagonModel;
|
|
114
137
|
}(BaseModel);
|
|
138
|
+
|
|
115
139
|
export { HexagonModel as default };
|
|
@@ -6,8 +6,10 @@ export function heatMap3DTriangulation(width, height) {
|
|
|
6
6
|
var gridY1 = height + 1;
|
|
7
7
|
var widthHalf = width / 2;
|
|
8
8
|
var heightHalf = height / 2;
|
|
9
|
+
|
|
9
10
|
for (var iy = 0; iy < gridY1; iy++) {
|
|
10
11
|
var y = iy - heightHalf;
|
|
12
|
+
|
|
11
13
|
for (var ix = 0; ix < gridX1; ix++) {
|
|
12
14
|
var x = ix - widthHalf;
|
|
13
15
|
vertices.push(x / widthHalf, -y / heightHalf, 0);
|
|
@@ -15,6 +17,7 @@ export function heatMap3DTriangulation(width, height) {
|
|
|
15
17
|
uvs.push(1 - iy / height);
|
|
16
18
|
}
|
|
17
19
|
}
|
|
20
|
+
|
|
18
21
|
for (var _iy = 0; _iy < height; _iy++) {
|
|
19
22
|
for (var _ix = 0; _ix < width; _ix++) {
|
|
20
23
|
var a = _ix + gridX1 * _iy;
|
|
@@ -25,6 +28,7 @@ export function heatMap3DTriangulation(width, height) {
|
|
|
25
28
|
indices.push(b, c, d);
|
|
26
29
|
}
|
|
27
30
|
}
|
|
31
|
+
|
|
28
32
|
return {
|
|
29
33
|
vertices: vertices,
|
|
30
34
|
indices: indices,
|