@antv/l7-layers 2.15.2 → 2.15.3
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 +9 -31
- package/es/Geometry/models/billboard.js +51 -89
- package/es/Geometry/models/plane.js +81 -143
- package/es/Geometry/models/sprite.js +60 -118
- package/es/canvas/index.js +10 -33
- package/es/canvas/models/canvas.js +41 -97
- package/es/citybuliding/building.js +8 -27
- package/es/citybuliding/models/build.js +57 -82
- package/es/core/BaseLayer.js +320 -484
- package/es/core/BaseModel.js +97 -126
- package/es/core/LayerPickService.js +21 -32
- package/es/core/TextureService.js +0 -13
- package/es/core/interface.js +17 -24
- package/es/core/shape/Path.js +13 -20
- package/es/core/shape/extrude.js +10 -31
- package/es/core/triangulation.js +54 -114
- package/es/earth/index.js +9 -33
- package/es/earth/models/atmosphere.js +30 -54
- package/es/earth/models/base.js +47 -85
- package/es/earth/models/bloomsphere.js +30 -54
- package/es/earth/utils.js +9 -13
- package/es/heatmap/index.js +10 -40
- package/es/heatmap/models/grid.js +28 -52
- package/es/heatmap/models/grid3d.js +28 -52
- package/es/heatmap/models/heatmap.js +91 -146
- package/es/heatmap/models/hexagon.js +28 -52
- package/es/heatmap/triangulation.js +0 -4
- package/es/image/index.js +9 -28
- package/es/image/models/image.js +66 -100
- package/es/index.js +9 -17
- package/es/line/index.js +9 -34
- package/es/line/models/arc.js +66 -118
- package/es/line/models/arc_3d.js +60 -108
- package/es/line/models/earthArc_3d.js +63 -111
- package/es/line/models/great_circle.js +56 -100
- package/es/line/models/half.js +46 -77
- package/es/line/models/line.js +94 -148
- package/es/line/models/linearline.js +45 -80
- package/es/line/models/simpleLine.js +41 -74
- package/es/line/models/wall.js +52 -92
- package/es/mask/index.js +9 -28
- package/es/mask/models/fill.js +29 -54
- package/es/plugins/DataMappingPlugin.js +80 -117
- package/es/plugins/DataSourcePlugin.js +45 -68
- package/es/plugins/FeatureScalePlugin.js +67 -122
- package/es/plugins/LayerAnimateStylePlugin.js +0 -5
- package/es/plugins/LayerMaskPlugin.js +3 -11
- package/es/plugins/LayerModelPlugin.js +67 -104
- package/es/plugins/LayerStylePlugin.js +3 -9
- package/es/plugins/LightingPlugin.js +12 -18
- package/es/plugins/MultiPassRendererPlugin.js +11 -16
- package/es/plugins/PixelPickingPlugin.js +12 -21
- package/es/plugins/RegisterStyleAttributePlugin.js +5 -12
- package/es/plugins/ShaderUniformPlugin.js +13 -27
- package/es/plugins/UpdateModelPlugin.js +0 -5
- package/es/plugins/UpdateStyleAttributePlugin.js +5 -11
- package/es/point/index.js +26 -77
- package/es/point/models/earthExtrude.js +61 -102
- package/es/point/models/earthFill.js +57 -87
- package/es/point/models/extrude.js +60 -101
- package/es/point/models/fill.js +70 -100
- package/es/point/models/fillmage.js +63 -107
- package/es/point/models/image.js +48 -88
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +30 -54
- package/es/point/models/radar.js +40 -64
- package/es/point/models/simplePoint.js +41 -69
- package/es/point/models/text.js +197 -299
- package/es/point/shape/extrude.js +4 -13
- package/es/polygon/index.js +11 -40
- package/es/polygon/models/extrude.js +48 -92
- package/es/polygon/models/fill.js +54 -88
- package/es/polygon/models/index.js +3 -2
- package/es/polygon/models/ocean.js +42 -76
- package/es/polygon/models/water.js +37 -71
- package/es/raster/buffers/triangulation.js +2 -4
- package/es/raster/index.js +9 -32
- package/es/raster/models/raster.js +80 -116
- package/es/raster/models/rasterRgb.js +84 -127
- package/es/raster/models/rasterTerrainRgb.js +56 -84
- package/es/tile/interaction/getRasterData.js +14 -20
- package/es/tile/interaction/utils.js +7 -9
- package/es/tile/manager/base.js +63 -96
- package/es/tile/service/TileLayerService.js +30 -52
- package/es/tile/service/TilePickService.js +26 -40
- package/es/tile/service/TileSourceService.js +3 -7
- package/es/tile/tileFactory/DebugTile.js +28 -45
- package/es/tile/tileFactory/ImageTile.js +20 -38
- package/es/tile/tileFactory/MaskTile.js +22 -43
- package/es/tile/tileFactory/RasterRGBTile.js +22 -42
- package/es/tile/tileFactory/RasterTerrainRGBTile.js +20 -38
- package/es/tile/tileFactory/RasterTile.js +30 -53
- package/es/tile/tileFactory/Tile.js +63 -97
- package/es/tile/tileFactory/VectorTile.js +41 -68
- package/es/tile/tileFactory/index.js +0 -11
- package/es/tile/tileFactory/layers/TileDebugLayer.js +6 -27
- package/es/tile/tileFactory/util.js +0 -3
- package/es/tile/tileLayer/BaseLayer.js +105 -146
- package/es/tile/utils.js +1 -1
- package/es/utils/blend.js +0 -2
- package/es/utils/collision-index.js +9 -16
- package/es/utils/dataMappingStyle.js +8 -18
- package/es/utils/extrude_polyline.js +101 -149
- package/es/utils/grid-index.js +2 -27
- package/es/utils/identityScale.js +0 -8
- package/es/utils/layerData.js +30 -44
- package/es/utils/multiPassRender.js +11 -13
- package/es/utils/polylineNormal.js +31 -37
- package/es/utils/simpleLine.js +2 -16
- package/es/utils/stencil.js +2 -3
- package/es/utils/symbol-layout.js +27 -53
- package/es/wind/index.js +9 -29
- package/es/wind/models/utils.js +26 -51
- package/es/wind/models/wind.js +101 -147
- package/es/wind/models/windRender.js +53 -66
- package/lib/Geometry/index.js +9 -38
- package/lib/Geometry/models/billboard.js +51 -97
- package/lib/Geometry/models/index.js +0 -5
- package/lib/Geometry/models/plane.js +79 -151
- package/lib/Geometry/models/sprite.js +60 -127
- package/lib/canvas/index.js +10 -40
- package/lib/canvas/models/canvas.js +41 -101
- package/lib/canvas/models/index.js +0 -3
- package/lib/citybuliding/building.js +8 -35
- package/lib/citybuliding/models/build.js +57 -92
- package/lib/core/BaseLayer.js +320 -478
- package/lib/core/BaseModel.js +97 -139
- package/lib/core/LayerPickService.js +21 -37
- package/lib/core/TextureService.js +0 -16
- package/lib/core/interface.js +21 -31
- package/lib/core/schema.js +0 -1
- package/lib/core/shape/Path.js +14 -31
- package/lib/core/shape/extrude.js +10 -54
- package/lib/core/triangulation.js +53 -153
- package/lib/earth/index.js +9 -43
- package/lib/earth/models/atmosphere.js +30 -63
- package/lib/earth/models/base.js +47 -90
- package/lib/earth/models/bloomsphere.js +30 -63
- package/lib/earth/utils.js +7 -31
- package/lib/heatmap/index.js +10 -48
- package/lib/heatmap/models/grid.js +28 -60
- package/lib/heatmap/models/grid3d.js +28 -60
- package/lib/heatmap/models/heatmap.js +91 -162
- package/lib/heatmap/models/hexagon.js +28 -60
- package/lib/heatmap/models/index.js +0 -6
- package/lib/heatmap/triangulation.js +0 -5
- package/lib/image/index.js +9 -36
- package/lib/image/models/image.js +66 -109
- package/lib/image/models/index.js +0 -3
- package/lib/index.js +7 -61
- package/lib/line/index.js +9 -40
- package/lib/line/models/arc.js +64 -128
- package/lib/line/models/arc_3d.js +58 -119
- package/lib/line/models/earthArc_3d.js +61 -122
- package/lib/line/models/great_circle.js +56 -111
- package/lib/line/models/half.js +46 -87
- package/lib/line/models/index.js +0 -11
- package/lib/line/models/line.js +92 -156
- package/lib/line/models/linearline.js +45 -92
- package/lib/line/models/simpleLine.js +41 -84
- package/lib/line/models/wall.js +52 -103
- package/lib/mask/index.js +9 -36
- package/lib/mask/models/fill.js +29 -63
- package/lib/mask/models/index.js +0 -3
- package/lib/plugins/DataMappingPlugin.js +80 -128
- package/lib/plugins/DataSourcePlugin.js +45 -76
- package/lib/plugins/FeatureScalePlugin.js +67 -138
- package/lib/plugins/LayerAnimateStylePlugin.js +0 -10
- package/lib/plugins/LayerMaskPlugin.js +4 -17
- package/lib/plugins/LayerModelPlugin.js +68 -113
- package/lib/plugins/LayerStylePlugin.js +4 -14
- package/lib/plugins/LightingPlugin.js +12 -25
- package/lib/plugins/MultiPassRendererPlugin.js +11 -22
- package/lib/plugins/PixelPickingPlugin.js +12 -27
- package/lib/plugins/RegisterStyleAttributePlugin.js +5 -19
- package/lib/plugins/ShaderUniformPlugin.js +13 -34
- package/lib/plugins/UpdateModelPlugin.js +1 -10
- package/lib/plugins/UpdateStyleAttributePlugin.js +5 -16
- package/lib/point/index.js +26 -83
- package/lib/point/models/earthExtrude.js +61 -113
- package/lib/point/models/earthFill.js +57 -117
- package/lib/point/models/extrude.js +60 -111
- package/lib/point/models/fill.js +68 -109
- package/lib/point/models/fillmage.js +61 -115
- package/lib/point/models/image.js +48 -98
- package/lib/point/models/index.js +1 -12
- package/lib/point/models/normal.js +30 -64
- package/lib/point/models/radar.js +40 -74
- package/lib/point/models/simplePoint.js +41 -79
- package/lib/point/models/text.js +197 -307
- package/lib/point/shape/extrude.js +4 -20
- package/lib/polygon/index.js +11 -48
- package/lib/polygon/models/extrude.js +48 -103
- package/lib/polygon/models/fill.js +54 -98
- package/lib/polygon/models/index.js +2 -14
- package/lib/polygon/models/ocean.js +42 -88
- package/lib/polygon/models/water.js +37 -82
- package/lib/raster/buffers/triangulation.js +3 -7
- package/lib/raster/index.js +9 -40
- package/lib/raster/models/index.js +0 -5
- package/lib/raster/models/raster.js +80 -125
- package/lib/raster/models/rasterRgb.js +84 -139
- package/lib/raster/models/rasterTerrainRgb.js +56 -93
- package/lib/tile/interaction/getRasterData.js +14 -25
- package/lib/tile/interaction/utils.js +7 -19
- package/lib/tile/manager/base.js +63 -104
- package/lib/tile/service/TileLayerService.js +30 -57
- package/lib/tile/service/TilePickService.js +26 -48
- package/lib/tile/service/TileSourceService.js +2 -16
- package/lib/tile/style/utils.js +0 -3
- package/lib/tile/tileFactory/DebugTile.js +28 -53
- package/lib/tile/tileFactory/ImageTile.js +20 -46
- package/lib/tile/tileFactory/MaskTile.js +22 -51
- package/lib/tile/tileFactory/RasterRGBTile.js +22 -50
- package/lib/tile/tileFactory/RasterTerrainRGBTile.js +20 -46
- package/lib/tile/tileFactory/RasterTile.js +30 -63
- package/lib/tile/tileFactory/Tile.js +63 -102
- package/lib/tile/tileFactory/VectorTile.js +41 -76
- package/lib/tile/tileFactory/index.js +0 -25
- package/lib/tile/tileFactory/layers/TileDebugLayer.js +6 -32
- package/lib/tile/tileFactory/util.js +0 -9
- package/lib/tile/tileLayer/BaseLayer.js +105 -153
- package/lib/tile/utils.js +1 -5
- package/lib/utils/blend.js +0 -5
- package/lib/utils/collision-index.js +9 -25
- package/lib/utils/dataMappingStyle.js +8 -19
- package/lib/utils/extrude_polyline.js +101 -181
- package/lib/utils/grid-index.js +2 -28
- package/lib/utils/identityScale.js +0 -9
- package/lib/utils/layerData.js +30 -49
- package/lib/utils/multiPassRender.js +11 -16
- package/lib/utils/polylineNormal.js +31 -66
- package/lib/utils/simpleLine.js +2 -21
- package/lib/utils/stencil.js +0 -4
- package/lib/utils/symbol-layout.js +27 -55
- package/lib/wind/index.js +9 -37
- package/lib/wind/models/index.js +0 -3
- package/lib/wind/models/utils.js +26 -62
- package/lib/wind/models/wind.js +101 -157
- package/lib/wind/models/windRender.js +53 -71
- package/lib/wind/models/windShader.js +0 -1
- package/package.json +7 -7
|
@@ -7,73 +7,57 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConst
|
|
|
7
7
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
9
9
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
10
|
-
|
|
11
10
|
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); }; }
|
|
12
|
-
|
|
13
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; } }
|
|
14
|
-
|
|
15
12
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
16
13
|
import { calculateCentroid, getCullFace, rgb2arr } from '@antv/l7-utils';
|
|
17
14
|
import { isNumber } from 'lodash';
|
|
18
15
|
import BaseModel from "../../core/BaseModel";
|
|
19
16
|
import { PointExtrudeTriangulation } from "../../core/triangulation";
|
|
20
17
|
import { lglt2xyz } from "../../earth/utils";
|
|
21
|
-
|
|
22
18
|
/* babel-plugin-inline-import '../shaders/earth/extrude_frag.glsl' */
|
|
23
19
|
var pointExtrudeFrag = "varying vec4 v_color;\nuniform float u_opacity: 1.0;\n\nuniform float u_pickLight: 0.0;\n\n#pragma include \"picking\"\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nuniform float u_linearColor: 0;\nuniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\n\nuniform float u_opacitylinear: 0.0;\nuniform float u_opacitylinear_dir: 1.0;\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float lightWeight = styleMappingMat[1][3];\n float barLinearZ = styleMappingMat[2][3];\n\n // \u8BBE\u7F6E\u5706\u67F1\u7684\u5E95\u8272\n if(u_linearColor == 1.0) { // \u4F7F\u7528\u6E10\u53D8\u989C\u8272\n gl_FragColor = mix(u_sourceColor, u_targetColor, barLinearZ);\n gl_FragColor.rgb *= lightWeight;\n } else { // \u4F7F\u7528 color \u65B9\u6CD5\u4F20\u5165\u7684\u989C\u8272\n gl_FragColor = v_color;\n }\n\n // \u5E94\u7528\u900F\u660E\u5EA6\n gl_FragColor.a *= opacity;\n\n // \u5F00\u542F\u900F\u660E\u5EA6\u6E10\u53D8\n if(u_opacitylinear > 0.0) {\n gl_FragColor.a *= u_opacitylinear_dir > 0.0 ? (1.0 - barLinearZ): barLinearZ;\n }\n\n // picking\n if(u_pickLight > 0.0) {\n gl_FragColor = filterColorAlpha(gl_FragColor, lightWeight);\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n";
|
|
24
|
-
|
|
25
20
|
/* babel-plugin-inline-import '../shaders/earth/extrude_vert.glsl' */
|
|
26
21
|
var pointExtrudeVert = "precision highp float;\n\n#define pi 3.1415926535\n#define ambientRatio 0.5\n#define diffuseRatio 0.3\n#define specularRatio 0.2\n\nattribute vec3 a_Position;\nattribute vec3 a_Pos;\nattribute vec4 a_Color;\nattribute vec3 a_Size;\nattribute vec3 a_Normal;\n\nuniform float u_heightfixed: 0.0; // \u9ED8\u8BA4\u4E0D\u56FA\u5B9A\nuniform float u_globel;\nuniform float u_r;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nvarying vec4 v_color;\n\nuniform float u_opacity : 1;\nuniform float u_lightEnable: 1;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nfloat getYRadian(float x, float z) {\n if(x > 0.0 && z > 0.0) {\n return atan(x/z);\n } else if(x > 0.0 && z <= 0.0){\n return atan(-z/x) + pi/2.0;\n } else if(x <= 0.0 && z <= 0.0) {\n return pi + atan(x/z); //atan(x/z) + \n } else {\n return atan(z/-x) + pi*3.0/2.0;\n }\n}\n\nfloat getXRadian(float y, float r) {\n return atan(y/r);\n}\n\nvoid main() {\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA - lightWeight\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1] - linearZ(\u5782\u76F4\u65B9\u5411 0 - 1 \u7684\u503C)\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n vec3 size = a_Size * a_Position;\n\n // a_Position.z \u662F\u5728\u6784\u5EFA\u7F51\u683C\u7684\u65F6\u5019\u4F20\u5165\u7684\u6807\u51C6\u503C 0 - 1\uFF0C\u5728\u63D2\u503C\u5668\u63D2\u503C\u53EF\u4EE5\u83B7\u53D6 0\uFF5E1 \u7EBF\u6027\u6E10\u53D8\u7684\u503C\n styleMappingMat[2][3] = a_Position.z;\n\n vec3 offset = size; // \u63A7\u5236\u5706\u67F1\u4F53\u7684\u5927\u5C0F - \u4ECE\u6807\u51C6\u5355\u4F4D\u5706\u67F1\u4F53\u8FDB\u884C\u504F\u79FB\n if(u_heightfixed < 1.0) { // \u5706\u67F1\u4F53\u4E0D\u56FA\u5B9A\u9AD8\u5EA6\n \n if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) {\n // P20 \u5750\u6807\u7CFB\u4E0B\uFF0C\u4E3A\u4E86\u548C Web \u58A8\u5361\u6258\u5750\u6807\u7CFB\u7EDF\u4E00\uFF0Czoom \u9ED8\u8BA4\u51CF1\n offset = offset * pow(2.0, (19.0 - u_Zoom));\n }\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) {\n // P20_2 \u5750\u6807\u7CFB\u4E0B\uFF0C\u4E3A\u4E86\u548C Web \u58A8\u5361\u6258\u5750\u6807\u7CFB\u7EDF\u4E00\uFF0Czoom \u9ED8\u8BA4\u51CF3\n offset = offset * pow(2.0, (19.0 - 3.0 - u_Zoom));\n }\n } else {// \u5706\u67F1\u4F53\u56FA\u5B9A\u9AD8\u5EA6 \uFF08 \u5904\u7406 mapbox \uFF09\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n offset *= 4.0/pow(2.0, 21.0 - u_Zoom);\n }\n }\n\n\n vec4 project_pos = project_position(vec4(a_Pos.xy, 0., 1.0));\n\n // u_r \u63A7\u5236\u5706\u67F1\u7684\u751F\u957F\n vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0);\n\n // \u5706\u67F1\u5149\u7167\u6548\u679C\n float lightWeight = 1.0;\n if(u_lightEnable > 0.0) { // \u53D6\u6D88\u4E09\u5143\u8868\u8FBE\u5F0F\uFF0C\u589E\u5F3A\u5065\u58EE\u6027\n lightWeight = calc_lighting(pos);\n }\n styleMappingMat[1][3] = lightWeight;\n\n v_color =vec4(a_Color.rgb * lightWeight, a_Color.w);\n\n \n // \u5728\u5730\u7403\u6A21\u5F0F\u4E0B\uFF0C\u5C06\u539F\u672C\u5782\u76F4\u4E8E xy \u5E73\u9762\u7684\u5706\u67F1\u8C03\u6574\u59FF\u6001\u5230\u9002\u5E94\u5706\u7684\u89D2\u5EA6\n //\u65CB\u8F6C\u77E9\u9635mx\uFF0C\u521B\u5EFA\u7ED5x\u8F74\u65CB\u8F6C\u77E9\u9635\n float r = sqrt(a_Pos.z*a_Pos.z + a_Pos.x*a_Pos.x);\n float xRadian = getXRadian(a_Pos.y, r);\n float xcos = cos(xRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u4F59\u5F26\u503C\n float xsin = sin(xRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u6B63\u5F26\u503C\n mat4 mx = mat4(\n 1,0,0,0, \n 0,xcos,-xsin,0, \n 0,xsin,xcos,0, \n 0,0,0,1);\n\n //\u65CB\u8F6C\u77E9\u9635my\uFF0C\u521B\u5EFA\u7ED5y\u8F74\u65CB\u8F6C\u77E9\u9635\n float yRadian = getYRadian(a_Pos.x, a_Pos.z);\n float ycos = cos(yRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u4F59\u5F26\u503C\n float ysin = sin(yRadian);//\u6C42\u89E3\u65CB\u8F6C\u89D2\u5EA6\u6B63\u5F26\u503C\n mat4 my = mat4(\n ycos,0,-ysin,0, \n 0,1,0,0, \n ysin,0,ycos,0, \n 0,0,0,1);\n\n gl_Position = u_ViewProjectionMatrix * vec4(( my * mx * vec4(a_Position * a_Size, 1.0)).xyz + a_Pos, 1.0);\n \n\n setPickingColor(a_PickingColor);\n}\n";
|
|
27
|
-
|
|
28
22
|
var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
29
23
|
_inherits(ExtrudeModel, _BaseModel);
|
|
30
|
-
|
|
31
24
|
var _super = _createSuper(ExtrudeModel);
|
|
32
|
-
|
|
33
25
|
function ExtrudeModel() {
|
|
34
26
|
var _this;
|
|
35
|
-
|
|
36
27
|
_classCallCheck(this, ExtrudeModel);
|
|
37
|
-
|
|
38
28
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
39
29
|
args[_key] = arguments[_key];
|
|
40
30
|
}
|
|
41
|
-
|
|
42
31
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
43
|
-
|
|
44
32
|
_defineProperty(_assertThisInitialized(_this), "raiseCount", 0);
|
|
45
|
-
|
|
46
33
|
_defineProperty(_assertThisInitialized(_this), "raiseRepeat", 0);
|
|
47
|
-
|
|
48
34
|
return _this;
|
|
49
35
|
}
|
|
50
|
-
|
|
51
36
|
_createClass(ExtrudeModel, [{
|
|
52
37
|
key: "getUninforms",
|
|
53
38
|
value: function getUninforms() {
|
|
54
39
|
var _ref = this.layer.getLayerConfig(),
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
40
|
+
_ref$animateOption = _ref.animateOption,
|
|
41
|
+
animateOption = _ref$animateOption === void 0 ? {
|
|
42
|
+
enable: false,
|
|
43
|
+
speed: 0.01,
|
|
44
|
+
repeat: false
|
|
45
|
+
} : _ref$animateOption,
|
|
46
|
+
_ref$opacity = _ref.opacity,
|
|
47
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
48
|
+
sourceColor = _ref.sourceColor,
|
|
49
|
+
targetColor = _ref.targetColor,
|
|
50
|
+
_ref$pickLight = _ref.pickLight,
|
|
51
|
+
pickLight = _ref$pickLight === void 0 ? false : _ref$pickLight,
|
|
52
|
+
_ref$heightfixed = _ref.heightfixed,
|
|
53
|
+
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
|
|
54
|
+
_ref$opacityLinear = _ref.opacityLinear,
|
|
55
|
+
opacityLinear = _ref$opacityLinear === void 0 ? {
|
|
56
|
+
enable: false,
|
|
57
|
+
dir: 'up'
|
|
58
|
+
} : _ref$opacityLinear,
|
|
59
|
+
_ref$lightEnable = _ref.lightEnable,
|
|
60
|
+
lightEnable = _ref$lightEnable === void 0 ? true : _ref$lightEnable;
|
|
77
61
|
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
78
62
|
opacity: opacity
|
|
79
63
|
})) {
|
|
@@ -81,12 +65,10 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
81
65
|
opacity: opacity
|
|
82
66
|
});
|
|
83
67
|
var encodeData = this.layer.getEncodedData();
|
|
84
|
-
|
|
85
68
|
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
69
|
+
data = _this$calDataFrame.data,
|
|
70
|
+
width = _this$calDataFrame.width,
|
|
71
|
+
height = _this$calDataFrame.height;
|
|
90
72
|
this.rowCount = height; // 当前数据纹理有多少行
|
|
91
73
|
|
|
92
74
|
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
@@ -104,26 +86,22 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
104
86
|
width: 1,
|
|
105
87
|
height: 1
|
|
106
88
|
});
|
|
107
|
-
}
|
|
108
|
-
|
|
89
|
+
}
|
|
109
90
|
|
|
91
|
+
// 转化渐变色
|
|
110
92
|
var useLinearColor = 0; // 默认不生效
|
|
111
|
-
|
|
112
93
|
var sourceColorArr = [0, 0, 0, 0];
|
|
113
94
|
var targetColorArr = [0, 0, 0, 0];
|
|
114
|
-
|
|
115
95
|
if (sourceColor && targetColor) {
|
|
116
96
|
sourceColorArr = rgb2arr(sourceColor);
|
|
117
97
|
targetColorArr = rgb2arr(targetColor);
|
|
118
98
|
useLinearColor = 1;
|
|
119
99
|
}
|
|
120
|
-
|
|
121
100
|
if (this.raiseCount < 1 && this.raiseRepeat > 0) {
|
|
122
101
|
if (animateOption.enable) {
|
|
123
102
|
var _animateOption$speed = animateOption.speed,
|
|
124
|
-
|
|
103
|
+
speed = _animateOption$speed === void 0 ? 0.01 : _animateOption$speed;
|
|
125
104
|
this.raiseCount += speed;
|
|
126
|
-
|
|
127
105
|
if (this.raiseCount >= 1) {
|
|
128
106
|
if (this.raiseRepeat > 1) {
|
|
129
107
|
this.raiseCount = 0;
|
|
@@ -134,7 +112,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
134
112
|
}
|
|
135
113
|
}
|
|
136
114
|
}
|
|
137
|
-
|
|
138
115
|
return {
|
|
139
116
|
// 圆柱体的拾取高亮是否要计算光照
|
|
140
117
|
u_pickLight: Number(pickLight),
|
|
@@ -161,23 +138,18 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
161
138
|
value: function () {
|
|
162
139
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
163
140
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
164
|
-
while (1) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
case "end":
|
|
171
|
-
return _context.stop();
|
|
172
|
-
}
|
|
141
|
+
while (1) switch (_context.prev = _context.next) {
|
|
142
|
+
case 0:
|
|
143
|
+
return _context.abrupt("return", this.buildModels());
|
|
144
|
+
case 1:
|
|
145
|
+
case "end":
|
|
146
|
+
return _context.stop();
|
|
173
147
|
}
|
|
174
148
|
}, _callee, this);
|
|
175
149
|
}));
|
|
176
|
-
|
|
177
150
|
function initModels() {
|
|
178
151
|
return _initModels.apply(this, arguments);
|
|
179
152
|
}
|
|
180
|
-
|
|
181
153
|
return initModels;
|
|
182
154
|
}()
|
|
183
155
|
}, {
|
|
@@ -185,53 +157,45 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
185
157
|
value: function () {
|
|
186
158
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
187
159
|
var _ref2, _ref2$animateOption$r, repeat, model;
|
|
188
|
-
|
|
189
160
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
190
|
-
while (1) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
case 6:
|
|
217
|
-
case "end":
|
|
218
|
-
return _context2.stop();
|
|
219
|
-
}
|
|
161
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
162
|
+
case 0:
|
|
163
|
+
// GAODE1.x GAODE2.x MAPBOX
|
|
164
|
+
_ref2 = this.layer.getLayerConfig(), _ref2$animateOption$r = _ref2.animateOption.repeat, repeat = _ref2$animateOption$r === void 0 ? 1 : _ref2$animateOption$r;
|
|
165
|
+
this.raiseRepeat = repeat;
|
|
166
|
+
_context2.next = 4;
|
|
167
|
+
return this.layer.buildLayerModel({
|
|
168
|
+
moduleName: 'pointEarthExtrude',
|
|
169
|
+
vertexShader: pointExtrudeVert,
|
|
170
|
+
fragmentShader: pointExtrudeFrag,
|
|
171
|
+
triangulation: PointExtrudeTriangulation,
|
|
172
|
+
depth: {
|
|
173
|
+
enable: true
|
|
174
|
+
},
|
|
175
|
+
cull: {
|
|
176
|
+
enable: true,
|
|
177
|
+
face: getCullFace(this.mapService.version)
|
|
178
|
+
},
|
|
179
|
+
blend: this.getBlend()
|
|
180
|
+
});
|
|
181
|
+
case 4:
|
|
182
|
+
model = _context2.sent;
|
|
183
|
+
return _context2.abrupt("return", [model]);
|
|
184
|
+
case 6:
|
|
185
|
+
case "end":
|
|
186
|
+
return _context2.stop();
|
|
220
187
|
}
|
|
221
188
|
}, _callee2, this);
|
|
222
189
|
}));
|
|
223
|
-
|
|
224
190
|
function buildModels() {
|
|
225
191
|
return _buildModels.apply(this, arguments);
|
|
226
192
|
}
|
|
227
|
-
|
|
228
193
|
return buildModels;
|
|
229
194
|
}()
|
|
230
195
|
}, {
|
|
231
196
|
key: "clearModels",
|
|
232
197
|
value: function clearModels() {
|
|
233
198
|
var _this$dataTexture;
|
|
234
|
-
|
|
235
199
|
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
236
200
|
}
|
|
237
201
|
}, {
|
|
@@ -250,26 +214,23 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
250
214
|
size: 3,
|
|
251
215
|
update: function update(feature) {
|
|
252
216
|
var size = feature.size;
|
|
253
|
-
|
|
254
217
|
if (size) {
|
|
255
218
|
var buffersize = [];
|
|
256
|
-
|
|
257
219
|
if (Array.isArray(size)) {
|
|
258
220
|
buffersize = size.length === 2 ? [size[0], size[0], size[1]] : size;
|
|
259
221
|
}
|
|
260
|
-
|
|
261
222
|
if (!Array.isArray(size)) {
|
|
262
223
|
buffersize = [size, size, size];
|
|
263
224
|
}
|
|
264
|
-
|
|
265
225
|
return buffersize;
|
|
266
226
|
} else {
|
|
267
227
|
return [2, 2, 2];
|
|
268
228
|
}
|
|
269
229
|
}
|
|
270
230
|
}
|
|
271
|
-
});
|
|
231
|
+
});
|
|
272
232
|
|
|
233
|
+
// point layer size;
|
|
273
234
|
this.styleAttributeService.registerStyleAttribute({
|
|
274
235
|
name: 'normal',
|
|
275
236
|
type: AttributeType.Attribute,
|
|
@@ -306,8 +267,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
306
267
|
});
|
|
307
268
|
}
|
|
308
269
|
}]);
|
|
309
|
-
|
|
310
270
|
return ExtrudeModel;
|
|
311
271
|
}(BaseModel);
|
|
312
|
-
|
|
313
272
|
export { ExtrudeModel as default };
|
|
@@ -7,52 +7,41 @@ 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
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
10
|
-
|
|
11
10
|
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); }; }
|
|
12
|
-
|
|
13
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; } }
|
|
14
|
-
|
|
15
12
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
16
13
|
import { isNumber } from 'lodash';
|
|
17
14
|
import BaseModel from "../../core/BaseModel";
|
|
18
15
|
import { GlobelPointFillTriangulation } from "../../core/triangulation";
|
|
19
|
-
|
|
20
16
|
/* babel-plugin-inline-import '../shaders/earth/fill_frag.glsl' */
|
|
21
17
|
var pointFillFrag = "uniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\n\nvoid main() {\n int shape = int(floor(v_data.w + 0.5));\n\n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n float stroke_opacity = styleMappingMat[0][1];\n float strokeWidth = styleMappingMat[0][2];\n vec4 strokeColor = textrueStroke == vec4(0) ? v_color : textrueStroke;\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + strokeWidth);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n if (shape == 0) {\n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n } else if (shape == 1) {\n outer_df = sdEquilateralTriangle(1.1 * v_data.xy);\n inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);\n } else if (shape == 2) {\n outer_df = sdBox(v_data.xy, vec2(1.));\n inner_df = sdBox(v_data.xy, vec2(r));\n } else if (shape == 3) {\n outer_df = sdPentagon(v_data.xy, 0.8);\n inner_df = sdPentagon(v_data.xy, r * 0.8);\n } else if (shape == 4) {\n outer_df = sdHexagon(v_data.xy, 0.8);\n inner_df = sdHexagon(v_data.xy, r * 0.8);\n } else if (shape == 5) {\n outer_df = sdOctogon(v_data.xy, 1.0);\n inner_df = sdOctogon(v_data.xy, r);\n } else if (shape == 6) {\n outer_df = sdHexagram(v_data.xy, 0.52);\n inner_df = sdHexagram(v_data.xy, r * 0.52);\n } else if (shape == 7) {\n outer_df = sdRhombus(v_data.xy, vec2(1.0));\n inner_df = sdRhombus(v_data.xy, vec2(r));\n } else if (shape == 8) {\n outer_df = sdVesica(v_data.xy, 1.1, 0.8);\n inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);\n }\n\n if(outer_df > antialiasblur + 0.018) discard;\n\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df);\n\n float color_t = strokeWidth < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n\n if(strokeWidth < 0.01) {\n gl_FragColor = vec4(v_color.rgb, v_color.a * opacity);\n } else {\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), strokeColor * stroke_opacity, color_t);\n }\n\n if(u_additive > 0.0) {\n gl_FragColor *= opacity_t;\n gl_FragColor = filterColorAlpha(gl_FragColor, gl_FragColor.a);\n } else {\n gl_FragColor.a *= opacity_t;\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n";
|
|
22
|
-
|
|
23
18
|
/* babel-plugin-inline-import '../shaders/earth/fill_vert.glsl' */
|
|
24
19
|
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\nuniform float u_opacity : 1;\nuniform float u_stroke_opacity : 1;\nuniform float u_stroke_width : 2;\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\nuniform vec2 u_offsets;\n\nuniform float u_blur : 0.0;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n#pragma include \"styleMappingCalStrokeOpacity\"\n#pragma include \"styleMappingCalStrokeWidth\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n vec3 extrude = a_Extrude;\n float shape_type = a_Shape;\n /*\n * setPickingSize \u8BBE\u7F6E\u62FE\u53D6\u5927\u5C0F\n */\n float newSize = setPickingSize(a_Size);\n // float newSize = setPickingSize(a_Size) * 0.00001038445708445579;\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 strokeOpacityAndOffset = calStrokeOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][1] = strokeOpacityAndOffset.r;\n textureOffset = strokeOpacityAndOffset.g;\n\n vec2 strokeWidthAndOffset = calStrokeWidthAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][2] = strokeWidthAndOffset.r;\n textureOffset = strokeWidthAndOffset.g;\n\n vec4 textrueStroke = vec4(-1.0, -1.0, -1.0, -1.0);\n if(hasStroke()) {\n vec2 valueRPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][0] = pos2value(valueRPos, columnWidth, rowHeight); // R\n textureOffset += 1.0;\n\n vec2 valueGPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][1] = pos2value(valueGPos, columnWidth, rowHeight); // G\n textureOffset += 1.0;\n\n vec2 valueBPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][2] = pos2value(valueBPos, columnWidth, rowHeight); // B\n textureOffset += 1.0;\n\n vec2 valueAPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][3] = pos2value(valueAPos, columnWidth, rowHeight); // A\n textureOffset += 1.0;\n } else {\n if(u_stroke_color == vec4(0.0)) {\n styleMappingMat[1][0] = v_color.r;\n styleMappingMat[1][1] = v_color.g;\n styleMappingMat[1][2] = v_color.b;\n styleMappingMat[1][3] = v_color.a;\n } else {\n styleMappingMat[1][0] = u_stroke_color.r;\n styleMappingMat[1][1] = u_stroke_color.g;\n styleMappingMat[1][2] = u_stroke_color.b;\n styleMappingMat[1][3] = u_stroke_color.a;\n }\n }\n\n // cal style mapping\n\n // unpack color(vec2)\n v_color = a_Color;\n\n // radius(16-bit)\n v_radius = newSize;\n\n // anti-alias\n // float antialiased_blur = -max(u_blur, antialiasblur);\n float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur);\n\n // TODP: /abs(extrude.x) \u662F\u4E3A\u4E86\u517C\u5BB9\u5730\u7403\u6A21\u5F0F\n v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type);\n\n\n gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1, 1.0);\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
25
20
|
import { mat4, vec3 } from 'gl-matrix';
|
|
26
|
-
|
|
27
21
|
var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
28
22
|
_inherits(FillModel, _BaseModel);
|
|
29
|
-
|
|
30
23
|
var _super = _createSuper(FillModel);
|
|
31
|
-
|
|
32
24
|
function FillModel() {
|
|
33
25
|
_classCallCheck(this, FillModel);
|
|
34
|
-
|
|
35
26
|
return _super.apply(this, arguments);
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
_createClass(FillModel, [{
|
|
39
29
|
key: "getUninforms",
|
|
40
30
|
value: function getUninforms() {
|
|
41
31
|
var _ref = this.layer.getLayerConfig(),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
32
|
+
_ref$opacity = _ref.opacity,
|
|
33
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
34
|
+
_ref$strokeOpacity = _ref.strokeOpacity,
|
|
35
|
+
strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
|
|
36
|
+
_ref$strokeWidth = _ref.strokeWidth,
|
|
37
|
+
strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
|
|
38
|
+
_ref$stroke = _ref.stroke,
|
|
39
|
+
stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
|
|
40
|
+
_ref$offsets = _ref.offsets,
|
|
41
|
+
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
42
|
+
blend = _ref.blend,
|
|
43
|
+
_ref$blur = _ref.blur,
|
|
44
|
+
blur = _ref$blur === void 0 ? 0 : _ref$blur;
|
|
56
45
|
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
57
46
|
opacity: opacity,
|
|
58
47
|
strokeOpacity: strokeOpacity,
|
|
@@ -69,12 +58,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
69
58
|
offsets: offsets
|
|
70
59
|
});
|
|
71
60
|
var encodeData = this.layer.getEncodedData();
|
|
72
|
-
|
|
73
61
|
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
62
|
+
data = _this$calDataFrame.data,
|
|
63
|
+
width = _this$calDataFrame.width,
|
|
64
|
+
height = _this$calDataFrame.height;
|
|
78
65
|
this.rowCount = height; // 当前数据纹理有多少行
|
|
79
66
|
|
|
80
67
|
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
@@ -93,7 +80,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
93
80
|
height: 1
|
|
94
81
|
});
|
|
95
82
|
}
|
|
96
|
-
|
|
97
83
|
return {
|
|
98
84
|
u_blur: blur,
|
|
99
85
|
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
@@ -111,11 +97,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
111
97
|
key: "getAnimateUniforms",
|
|
112
98
|
value: function getAnimateUniforms() {
|
|
113
99
|
var _ref2 = this.layer.getLayerConfig(),
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
100
|
+
_ref2$animateOption = _ref2.animateOption,
|
|
101
|
+
animateOption = _ref2$animateOption === void 0 ? {
|
|
102
|
+
enable: false
|
|
103
|
+
} : _ref2$animateOption;
|
|
119
104
|
return {
|
|
120
105
|
u_animate: this.animateOption2Array(animateOption),
|
|
121
106
|
u_time: this.layer.getLayerAnimateTime()
|
|
@@ -126,23 +111,18 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
126
111
|
value: function () {
|
|
127
112
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
128
113
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
129
|
-
while (1) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
case "end":
|
|
136
|
-
return _context.stop();
|
|
137
|
-
}
|
|
114
|
+
while (1) switch (_context.prev = _context.next) {
|
|
115
|
+
case 0:
|
|
116
|
+
return _context.abrupt("return", this.buildModels());
|
|
117
|
+
case 1:
|
|
118
|
+
case "end":
|
|
119
|
+
return _context.stop();
|
|
138
120
|
}
|
|
139
121
|
}, _callee, this);
|
|
140
122
|
}));
|
|
141
|
-
|
|
142
123
|
function initModels() {
|
|
143
124
|
return _initModels.apply(this, arguments);
|
|
144
125
|
}
|
|
145
|
-
|
|
146
126
|
return initModels;
|
|
147
127
|
}()
|
|
148
128
|
}, {
|
|
@@ -151,48 +131,42 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
151
131
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
152
132
|
var model;
|
|
153
133
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
154
|
-
while (1) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
case 5:
|
|
175
|
-
case "end":
|
|
176
|
-
return _context2.stop();
|
|
177
|
-
}
|
|
134
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
135
|
+
case 0:
|
|
136
|
+
this.layer.triangulation = GlobelPointFillTriangulation;
|
|
137
|
+
_context2.next = 3;
|
|
138
|
+
return this.layer.buildLayerModel({
|
|
139
|
+
moduleName: 'pointEarthFill',
|
|
140
|
+
vertexShader: pointFillVert,
|
|
141
|
+
fragmentShader: pointFillFrag,
|
|
142
|
+
triangulation: GlobelPointFillTriangulation,
|
|
143
|
+
depth: {
|
|
144
|
+
enable: true
|
|
145
|
+
},
|
|
146
|
+
blend: this.getBlend()
|
|
147
|
+
});
|
|
148
|
+
case 3:
|
|
149
|
+
model = _context2.sent;
|
|
150
|
+
return _context2.abrupt("return", [model]);
|
|
151
|
+
case 5:
|
|
152
|
+
case "end":
|
|
153
|
+
return _context2.stop();
|
|
178
154
|
}
|
|
179
155
|
}, _callee2, this);
|
|
180
156
|
}));
|
|
181
|
-
|
|
182
157
|
function buildModels() {
|
|
183
158
|
return _buildModels.apply(this, arguments);
|
|
184
159
|
}
|
|
185
|
-
|
|
186
160
|
return buildModels;
|
|
187
161
|
}()
|
|
188
162
|
}, {
|
|
189
163
|
key: "clearModels",
|
|
190
164
|
value: function clearModels() {
|
|
191
165
|
var _this$dataTexture;
|
|
192
|
-
|
|
193
166
|
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
194
|
-
}
|
|
167
|
+
}
|
|
195
168
|
|
|
169
|
+
// overwrite baseModel func
|
|
196
170
|
}, {
|
|
197
171
|
key: "animateOption2Array",
|
|
198
172
|
value: function animateOption2Array(option) {
|
|
@@ -202,7 +176,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
202
176
|
key: "registerBuiltinAttributes",
|
|
203
177
|
value: function registerBuiltinAttributes() {
|
|
204
178
|
var _this = this;
|
|
205
|
-
|
|
206
179
|
this.styleAttributeService.registerStyleAttribute({
|
|
207
180
|
name: 'extrude',
|
|
208
181
|
type: AttributeType.Attribute,
|
|
@@ -217,10 +190,9 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
217
190
|
size: 3,
|
|
218
191
|
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
219
192
|
var _vertex = _slicedToArray(vertex, 3),
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
193
|
+
x = _vertex[0],
|
|
194
|
+
y = _vertex[1],
|
|
195
|
+
z = _vertex[2];
|
|
224
196
|
var n1 = vec3.fromValues(0, 0, 1);
|
|
225
197
|
var n2 = vec3.fromValues(x, 0, z);
|
|
226
198
|
var xzReg = x >= 0 ? vec3.angle(n1, n2) : Math.PI * 2 - vec3.angle(n1, n2);
|
|
@@ -245,8 +217,9 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
245
217
|
return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
|
|
246
218
|
}
|
|
247
219
|
}
|
|
248
|
-
});
|
|
220
|
+
});
|
|
249
221
|
|
|
222
|
+
// point layer size;
|
|
250
223
|
this.styleAttributeService.registerStyleAttribute({
|
|
251
224
|
name: 'size',
|
|
252
225
|
type: AttributeType.Attribute,
|
|
@@ -261,12 +234,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
261
234
|
size: 1,
|
|
262
235
|
update: function update(feature) {
|
|
263
236
|
var _feature$size = feature.size,
|
|
264
|
-
|
|
237
|
+
size = _feature$size === void 0 ? 5 : _feature$size;
|
|
265
238
|
return Array.isArray(size) ? [size[0]] : [size];
|
|
266
239
|
}
|
|
267
240
|
}
|
|
268
|
-
});
|
|
241
|
+
});
|
|
269
242
|
|
|
243
|
+
// point layer size;
|
|
270
244
|
this.styleAttributeService.registerStyleAttribute({
|
|
271
245
|
name: 'shape',
|
|
272
246
|
type: AttributeType.Attribute,
|
|
@@ -281,10 +255,8 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
281
255
|
size: 1,
|
|
282
256
|
update: function update(feature) {
|
|
283
257
|
var _feature$shape = feature.shape,
|
|
284
|
-
|
|
285
|
-
|
|
258
|
+
shape = _feature$shape === void 0 ? 2 : _feature$shape;
|
|
286
259
|
var shape2d = _this.layer.getLayerConfig().shape2d;
|
|
287
|
-
|
|
288
260
|
var shapeIndex = shape2d.indexOf(shape);
|
|
289
261
|
return [shapeIndex];
|
|
290
262
|
}
|
|
@@ -292,8 +264,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
292
264
|
});
|
|
293
265
|
}
|
|
294
266
|
}]);
|
|
295
|
-
|
|
296
267
|
return FillModel;
|
|
297
268
|
}(BaseModel);
|
|
298
|
-
|
|
299
269
|
export { FillModel as default };
|