@antv/l7-layers 2.15.5 → 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +486 -321
- package/es/core/BaseModel.js +126 -97
- 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 +31 -10
- package/es/core/triangulation.js +114 -54
- 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 +146 -91
- 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 +34 -9
- package/es/line/models/arc.js +118 -66
- package/es/line/models/arc_3d.js +108 -60
- package/es/line/models/earthArc_3d.js +111 -63
- package/es/line/models/great_circle.js +100 -56
- package/es/line/models/half.js +77 -46
- package/es/line/models/line.js +148 -94
- package/es/line/models/linearline.js +80 -45
- package/es/line/models/simpleLine.js +74 -41
- 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 +117 -80
- 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 +104 -67
- 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 +77 -26
- package/es/point/models/earthExtrude.js +102 -61
- package/es/point/models/earthFill.js +87 -57
- package/es/point/models/extrude.js +101 -60
- package/es/point/models/fill.js +100 -70
- package/es/point/models/fillmage.js +107 -63
- package/es/point/models/image.js +88 -48
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +54 -30
- package/es/point/models/radar.js +64 -40
- package/es/point/models/simplePoint.js +69 -41
- package/es/point/models/text.d.ts +2 -1
- package/es/point/models/text.js +305 -201
- package/es/point/shape/extrude.js +13 -4
- package/es/polygon/index.js +40 -11
- package/es/polygon/models/extrude.js +92 -48
- package/es/polygon/models/fill.js +88 -54
- 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/dataMappingStyle.js +18 -8
- 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 +480 -321
- package/lib/core/BaseModel.js +139 -97
- 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 +54 -10
- package/lib/core/triangulation.js +153 -53
- 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 +162 -91
- 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 +128 -64
- package/lib/line/models/arc_3d.js +119 -58
- package/lib/line/models/earthArc_3d.js +122 -61
- package/lib/line/models/great_circle.js +111 -56
- package/lib/line/models/half.js +87 -46
- package/lib/line/models/index.js +11 -0
- package/lib/line/models/line.js +156 -92
- package/lib/line/models/linearline.js +92 -45
- package/lib/line/models/simpleLine.js +84 -41
- 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 +128 -80
- 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 +113 -68
- 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 +113 -61
- package/lib/point/models/earthFill.js +117 -57
- package/lib/point/models/extrude.js +111 -60
- package/lib/point/models/fill.js +109 -68
- package/lib/point/models/fillmage.js +115 -61
- package/lib/point/models/image.js +98 -48
- package/lib/point/models/index.js +12 -1
- package/lib/point/models/normal.js +64 -30
- package/lib/point/models/radar.js +74 -40
- package/lib/point/models/simplePoint.js +79 -41
- package/lib/point/models/text.js +314 -202
- package/lib/point/shape/extrude.js +20 -4
- package/lib/polygon/index.js +48 -11
- package/lib/polygon/models/extrude.js +103 -48
- package/lib/polygon/models/fill.js +98 -54
- 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/dataMappingStyle.js +19 -8
- 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
|
@@ -7,45 +7,63 @@ 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
|
+
|
|
10
11
|
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
|
+
|
|
11
13
|
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
|
+
|
|
12
15
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
13
16
|
import { getCullFace } from '@antv/l7-utils';
|
|
14
17
|
import { isNumber } from 'lodash';
|
|
15
18
|
import BaseModel from "../../core/BaseModel";
|
|
16
19
|
import { SizeUnitType } from "../../core/interface";
|
|
17
|
-
import { PointFillTriangulation } from "../../core/triangulation";
|
|
18
|
-
|
|
20
|
+
import { PointFillTriangulation } from "../../core/triangulation"; // static pointLayer shader - not support animate
|
|
21
|
+
|
|
19
22
|
/* babel-plugin-inline-import '../shaders/image/fillImage_frag.glsl' */
|
|
20
23
|
var pointFillFrag = "uniform sampler2D u_texture;\nuniform vec2 u_textSize;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv;\n\nvoid main() {\n\n float opacity = styleMappingMat[0][0];\n\n vec2 pos = v_Iconuv / u_textSize + v_uv / u_textSize * 64.;\n gl_FragColor = texture2D(u_texture, pos);\n gl_FragColor.a *= opacity;\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
24
|
+
|
|
21
25
|
/* babel-plugin-inline-import '../shaders/image/fillImage_vert.glsl' */
|
|
22
26
|
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute vec2 a_Uv;\nattribute float a_Rotate;\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;\nuniform mat2 u_RotateMatrix;\nuniform int u_Size_Unit;\n\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv; // icon \u8D34\u56FE\u7684 uv \u5750\u6807\n\nuniform float u_raisingHeight: 0.0;\nuniform float u_heightfixed: 0.0;\nuniform float u_opacity : 1;\nuniform vec2 u_offsets;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n vec3 extrude = a_Extrude;\n\n v_uv = (a_Extrude.xy + 1.0)/2.0;\n v_uv.y = 1.0 - v_uv.y;\n v_Iconuv = a_Uv;\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 - empty - empty - empty\n 0.0, 0.0, 0.0, 0.0, // empty - empty - empty - empty\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 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping\n\n highp float angle_sin = sin(a_Rotate);\n highp float angle_cos = cos(a_Rotate);\n mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\n float newSize = a_Size;\n if(u_Size_Unit == 1) {\n newSize = newSize * u_PixelsPerMeter.z;\n }\n\n // vec2 offset = (u_RotateMatrix * extrude.xy * (a_Size) + textrueOffsets);\n vec2 offset = (rotation_matrix * u_RotateMatrix * extrude.xy * (newSize) + textrueOffsets);\n vec3 aPosition = a_Position;\n\n offset = project_pixel(offset);\n\n vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0));\n float raisingHeight = u_raisingHeight;\n if(u_heightfixed < 1.0) { // height fixed\n raisingHeight = project_pixel(u_raisingHeight);\n } else {\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);\n raisingHeight = u_raisingHeight * mapboxZoomScale;\n }\n }\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp *vec4(project_pos.xy + offset, raisingHeight, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0));\n }\n \n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
27
|
+
|
|
23
28
|
var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
24
29
|
_inherits(FillImageModel, _BaseModel);
|
|
30
|
+
|
|
25
31
|
var _super = _createSuper(FillImageModel);
|
|
32
|
+
|
|
26
33
|
function FillImageModel() {
|
|
27
34
|
var _this;
|
|
35
|
+
|
|
28
36
|
_classCallCheck(this, FillImageModel);
|
|
37
|
+
|
|
29
38
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
30
39
|
args[_key] = arguments[_key];
|
|
31
40
|
}
|
|
41
|
+
|
|
32
42
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
43
|
+
|
|
33
44
|
_defineProperty(_assertThisInitialized(_this), "meter2coord", 1);
|
|
45
|
+
|
|
34
46
|
_defineProperty(_assertThisInitialized(_this), "isMeter", false);
|
|
47
|
+
|
|
35
48
|
_defineProperty(_assertThisInitialized(_this), "radian", 0);
|
|
49
|
+
|
|
36
50
|
_defineProperty(_assertThisInitialized(_this), "updateTexture", function () {
|
|
37
51
|
var createTexture2D = _this.rendererService.createTexture2D;
|
|
52
|
+
|
|
38
53
|
if (_this.texture) {
|
|
39
54
|
_this.texture.update({
|
|
40
55
|
data: _this.iconService.getCanvas(),
|
|
41
56
|
mag: 'linear',
|
|
42
57
|
min: 'linear mipmap nearest',
|
|
43
58
|
mipmap: true
|
|
44
|
-
});
|
|
45
|
-
|
|
59
|
+
}); // 更新完纹理后在更新的图层的时候需要更新所有的图层
|
|
60
|
+
|
|
61
|
+
|
|
46
62
|
_this.layerService.throttleRenderLayers();
|
|
63
|
+
|
|
47
64
|
return;
|
|
48
65
|
}
|
|
66
|
+
|
|
49
67
|
_this.texture = createTexture2D({
|
|
50
68
|
data: _this.iconService.getCanvas(),
|
|
51
69
|
mag: gl.LINEAR,
|
|
@@ -56,25 +74,27 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
56
74
|
mipmap: true
|
|
57
75
|
});
|
|
58
76
|
});
|
|
77
|
+
|
|
59
78
|
return _this;
|
|
60
79
|
}
|
|
80
|
+
|
|
61
81
|
_createClass(FillImageModel, [{
|
|
62
82
|
key: "getUninforms",
|
|
63
|
-
value:
|
|
64
|
-
// 旋转的弧度
|
|
83
|
+
value: // 旋转的弧度
|
|
65
84
|
function getUninforms() {
|
|
66
85
|
var _ref = this.layer.getLayerConfig(),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
86
|
+
_ref$opacity = _ref.opacity,
|
|
87
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
88
|
+
_ref$offsets = _ref.offsets,
|
|
89
|
+
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
90
|
+
rotation = _ref.rotation,
|
|
91
|
+
_ref$raisingHeight = _ref.raisingHeight,
|
|
92
|
+
raisingHeight = _ref$raisingHeight === void 0 ? 0.0 : _ref$raisingHeight,
|
|
93
|
+
_ref$heightfixed = _ref.heightfixed,
|
|
94
|
+
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
|
|
95
|
+
_ref$unit = _ref.unit,
|
|
96
|
+
unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
|
|
97
|
+
|
|
78
98
|
if (this.rendererService.getDirty()) {
|
|
79
99
|
this.texture.bind();
|
|
80
100
|
}
|
|
@@ -85,12 +105,17 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
85
105
|
* GAODE2.x -1
|
|
86
106
|
* GAODE1.x -1
|
|
87
107
|
*/
|
|
108
|
+
|
|
109
|
+
|
|
88
110
|
var rotateFlag = 1;
|
|
111
|
+
|
|
89
112
|
if (this.mapService.version === 'GAODE2.x' || this.mapService.version === 'GAODE1.x') {
|
|
90
113
|
rotateFlag = -1;
|
|
91
|
-
}
|
|
92
|
-
|
|
114
|
+
} // 控制图标的旋转角度(绕 Z 轴旋转)
|
|
115
|
+
|
|
116
|
+
|
|
93
117
|
this.radian = rotation !== undefined ? rotateFlag * Math.PI * rotation / 180 : rotateFlag * Math.PI * (this.mapService.getRotation() % 360) / 180;
|
|
118
|
+
|
|
94
119
|
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
95
120
|
opacity: opacity,
|
|
96
121
|
offsets: offsets
|
|
@@ -101,10 +126,12 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
101
126
|
offsets: offsets
|
|
102
127
|
});
|
|
103
128
|
var encodeData = this.layer.getEncodedData();
|
|
129
|
+
|
|
104
130
|
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
131
|
+
data = _this$calDataFrame.data,
|
|
132
|
+
width = _this$calDataFrame.width,
|
|
133
|
+
height = _this$calDataFrame.height;
|
|
134
|
+
|
|
108
135
|
this.rowCount = height; // 当前数据纹理有多少行
|
|
109
136
|
|
|
110
137
|
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
@@ -123,6 +150,7 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
123
150
|
height: 1
|
|
124
151
|
});
|
|
125
152
|
}
|
|
153
|
+
|
|
126
154
|
return {
|
|
127
155
|
u_raisingHeight: Number(raisingHeight),
|
|
128
156
|
u_heightfixed: Number(heightfixed),
|
|
@@ -147,20 +175,25 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
147
175
|
value: function () {
|
|
148
176
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
149
177
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
150
|
-
while (1)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
178
|
+
while (1) {
|
|
179
|
+
switch (_context.prev = _context.next) {
|
|
180
|
+
case 0:
|
|
181
|
+
this.iconService.on('imageUpdate', this.updateTexture);
|
|
182
|
+
this.updateTexture();
|
|
183
|
+
return _context.abrupt("return", this.buildModels());
|
|
184
|
+
|
|
185
|
+
case 3:
|
|
186
|
+
case "end":
|
|
187
|
+
return _context.stop();
|
|
188
|
+
}
|
|
158
189
|
}
|
|
159
190
|
}, _callee, this);
|
|
160
191
|
}));
|
|
192
|
+
|
|
161
193
|
function initModels() {
|
|
162
194
|
return _initModels.apply(this, arguments);
|
|
163
195
|
}
|
|
196
|
+
|
|
164
197
|
return initModels;
|
|
165
198
|
}()
|
|
166
199
|
}, {
|
|
@@ -169,50 +202,57 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
169
202
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
170
203
|
var model;
|
|
171
204
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
172
|
-
while (1)
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
205
|
+
while (1) {
|
|
206
|
+
switch (_context2.prev = _context2.next) {
|
|
207
|
+
case 0:
|
|
208
|
+
_context2.next = 2;
|
|
209
|
+
return this.layer.buildLayerModel({
|
|
210
|
+
moduleName: 'pointFillImage',
|
|
211
|
+
vertexShader: pointFillVert,
|
|
212
|
+
fragmentShader: pointFillFrag,
|
|
213
|
+
triangulation: PointFillTriangulation,
|
|
214
|
+
depth: {
|
|
215
|
+
enable: false
|
|
216
|
+
},
|
|
217
|
+
cull: {
|
|
218
|
+
enable: true,
|
|
219
|
+
face: getCullFace(this.mapService.version)
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
case 2:
|
|
224
|
+
model = _context2.sent;
|
|
225
|
+
return _context2.abrupt("return", [model]);
|
|
226
|
+
|
|
227
|
+
case 4:
|
|
228
|
+
case "end":
|
|
229
|
+
return _context2.stop();
|
|
230
|
+
}
|
|
194
231
|
}
|
|
195
232
|
}, _callee2, this);
|
|
196
233
|
}));
|
|
234
|
+
|
|
197
235
|
function buildModels() {
|
|
198
236
|
return _buildModels.apply(this, arguments);
|
|
199
237
|
}
|
|
238
|
+
|
|
200
239
|
return buildModels;
|
|
201
240
|
}()
|
|
202
241
|
}, {
|
|
203
242
|
key: "clearModels",
|
|
204
243
|
value: function clearModels() {
|
|
205
244
|
var _this$texture, _this$dataTexture;
|
|
245
|
+
|
|
206
246
|
this.iconService.off('imageUpdate', this.updateTexture);
|
|
207
247
|
(_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
|
|
208
248
|
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
209
|
-
}
|
|
249
|
+
} // overwrite baseModel func
|
|
210
250
|
|
|
211
|
-
// overwrite baseModel func
|
|
212
251
|
}, {
|
|
213
252
|
key: "registerBuiltinAttributes",
|
|
214
253
|
value: function registerBuiltinAttributes() {
|
|
215
254
|
var _this2 = this;
|
|
255
|
+
|
|
216
256
|
this.styleAttributeService.registerStyleAttribute({
|
|
217
257
|
name: 'rotate',
|
|
218
258
|
type: AttributeType.Attribute,
|
|
@@ -226,7 +266,7 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
226
266
|
size: 1,
|
|
227
267
|
update: function update(feature) {
|
|
228
268
|
var _feature$rotate = feature.rotate,
|
|
229
|
-
|
|
269
|
+
rotate = _feature$rotate === void 0 ? 0 : _feature$rotate;
|
|
230
270
|
return Array.isArray(rotate) ? [rotate[0]] : [rotate];
|
|
231
271
|
}
|
|
232
272
|
}
|
|
@@ -245,13 +285,16 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
245
285
|
size: 2,
|
|
246
286
|
update: function update(feature) {
|
|
247
287
|
var iconMap = _this2.iconService.getIconMap();
|
|
288
|
+
|
|
248
289
|
var shape = feature.shape;
|
|
290
|
+
|
|
249
291
|
var _ref2 = iconMap[shape] || {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
292
|
+
x: -64,
|
|
293
|
+
y: -64
|
|
294
|
+
},
|
|
295
|
+
x = _ref2.x,
|
|
296
|
+
y = _ref2.y;
|
|
297
|
+
|
|
255
298
|
return [x, y];
|
|
256
299
|
}
|
|
257
300
|
}
|
|
@@ -274,9 +317,8 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
274
317
|
return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
|
|
275
318
|
}
|
|
276
319
|
}
|
|
277
|
-
});
|
|
320
|
+
}); // point layer size;
|
|
278
321
|
|
|
279
|
-
// point layer size;
|
|
280
322
|
this.styleAttributeService.registerStyleAttribute({
|
|
281
323
|
name: 'size',
|
|
282
324
|
type: AttributeType.Attribute,
|
|
@@ -291,13 +333,15 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
291
333
|
size: 1,
|
|
292
334
|
update: function update(feature) {
|
|
293
335
|
var _feature$size = feature.size,
|
|
294
|
-
|
|
336
|
+
size = _feature$size === void 0 ? 5 : _feature$size;
|
|
295
337
|
return Array.isArray(size) ? [size[0]] : [size];
|
|
296
338
|
}
|
|
297
339
|
}
|
|
298
340
|
});
|
|
299
341
|
}
|
|
300
342
|
}]);
|
|
343
|
+
|
|
301
344
|
return FillImageModel;
|
|
302
345
|
}(BaseModel);
|
|
346
|
+
|
|
303
347
|
export { FillImageModel as default };
|
package/es/point/models/image.js
CHANGED
|
@@ -7,43 +7,58 @@ 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
|
+
|
|
10
11
|
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
|
+
|
|
11
13
|
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
|
+
|
|
12
15
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
13
16
|
import { isNumber } from 'lodash';
|
|
14
17
|
import BaseModel from "../../core/BaseModel";
|
|
15
18
|
import { PointImageTriangulation } from "../../core/triangulation";
|
|
19
|
+
|
|
16
20
|
/* babel-plugin-inline-import '../shaders/image_frag.glsl' */
|
|
17
21
|
var pointImageFrag = "\nuniform sampler2D u_texture;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform vec2 u_textSize;\nuniform float u_opacity : 1;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n#pragma include \"picking\"\n\nvoid main(){\n float opacity = styleMappingMat[0][0];\n float size = styleMappingMat[1][0];\n vec2 pos = v_uv / u_textSize + gl_PointCoord / u_textSize * 64.;\n vec4 textureColor;\n\n // Y = 0.299R + 0.587G + 0.114B // \u4EAE\u5EA6\u63D0\u53D6\n \n textureColor = texture2D(u_texture, pos);\n\n // Tip: \u53BB\u9664\u8FB9\u7F18\u90E8\u5206 mipmap \u5BFC\u81F4\u7684\u6DF7\u5408\u53D8\u6697\n float fragmengTocenter = distance(vec2(0.5), gl_PointCoord);\n if(fragmengTocenter >= 0.5) {\n float luma = 0.299 * textureColor.r + 0.587 * textureColor.g + 0.114 * textureColor.b;\n textureColor.a *= luma;\n }\n \n \n\n if(all(lessThan(v_color, vec4(1.0+0.00001))) && all(greaterThan(v_color, vec4(1.0-0.00001))) || v_color==vec4(1.0)){\n gl_FragColor= textureColor;\n }else {\n gl_FragColor= step(0.01, textureColor.z) * v_color;\n }\n\n gl_FragColor.a = gl_FragColor.a * opacity;\n \n if (gl_FragColor.a < 0.01) {\n discard;\n }\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
22
|
+
|
|
18
23
|
/* babel-plugin-inline-import '../shaders/image_vert.glsl' */
|
|
19
24
|
var pointImageVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec4 a_Color;\nattribute vec2 a_Uv;\nattribute float a_Size;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform vec2 u_offsets;\n\nuniform float u_opacity : 1;\nuniform float u_raisingHeight: 0.0;\nuniform float u_heightfixed: 0.0;\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 \"picking\"\n\nvoid main() {\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 styleMappingMat[1][0] = a_Size;\n\n vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n v_color = a_Color;\n v_uv = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n \n vec2 offset = project_pixel(textrueOffsets);\n\n float raisingHeight = u_raisingHeight;\n if(u_heightfixed < 1.0) { // false\n raisingHeight = project_pixel(u_raisingHeight);\n } else {\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);\n raisingHeight = u_raisingHeight * mapboxZoomScale;\n }\n }\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(project_pos.xy + offset, raisingHeight, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0));\n }\n\n gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n setPickingColor(a_PickingColor);\n}\n";
|
|
25
|
+
|
|
20
26
|
var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
21
27
|
_inherits(ImageModel, _BaseModel);
|
|
28
|
+
|
|
22
29
|
var _super = _createSuper(ImageModel);
|
|
30
|
+
|
|
23
31
|
function ImageModel() {
|
|
24
32
|
var _this;
|
|
33
|
+
|
|
25
34
|
_classCallCheck(this, ImageModel);
|
|
35
|
+
|
|
26
36
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
27
37
|
args[_key] = arguments[_key];
|
|
28
38
|
}
|
|
39
|
+
|
|
29
40
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
41
|
+
|
|
30
42
|
_defineProperty(_assertThisInitialized(_this), "updateTexture", function () {
|
|
31
43
|
var createTexture2D = _this.rendererService.createTexture2D;
|
|
44
|
+
|
|
32
45
|
if (_this.texture) {
|
|
33
46
|
_this.texture.update({
|
|
34
47
|
data: _this.iconService.getCanvas(),
|
|
35
48
|
mag: 'linear',
|
|
36
49
|
min: 'linear mipmap nearest',
|
|
37
50
|
mipmap: true
|
|
38
|
-
});
|
|
39
|
-
// 更新完纹理后在更新的图层的时候需要更新所有的图层
|
|
51
|
+
}); // 更新完纹理后在更新的图层的时候需要更新所有的图层
|
|
40
52
|
// this.layer.layerModelNeedUpdate = true;
|
|
53
|
+
|
|
54
|
+
|
|
41
55
|
setTimeout(function () {
|
|
42
56
|
// 延迟渲染
|
|
43
57
|
_this.layerService.throttleRenderLayers();
|
|
44
58
|
});
|
|
45
59
|
return;
|
|
46
60
|
}
|
|
61
|
+
|
|
47
62
|
_this.texture = createTexture2D({
|
|
48
63
|
data: _this.iconService.getCanvas(),
|
|
49
64
|
mag: gl.LINEAR,
|
|
@@ -54,23 +69,27 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
54
69
|
mipmap: true
|
|
55
70
|
});
|
|
56
71
|
});
|
|
72
|
+
|
|
57
73
|
return _this;
|
|
58
74
|
}
|
|
75
|
+
|
|
59
76
|
_createClass(ImageModel, [{
|
|
60
77
|
key: "getUninforms",
|
|
61
78
|
value: function getUninforms() {
|
|
62
79
|
var _ref = this.layer.getLayerConfig(),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
80
|
+
_ref$opacity = _ref.opacity,
|
|
81
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
82
|
+
_ref$offsets = _ref.offsets,
|
|
83
|
+
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
84
|
+
_ref$raisingHeight = _ref.raisingHeight,
|
|
85
|
+
raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
|
|
86
|
+
_ref$heightfixed = _ref.heightfixed,
|
|
87
|
+
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed;
|
|
88
|
+
|
|
71
89
|
if (this.rendererService.getDirty()) {
|
|
72
90
|
this.texture.bind();
|
|
73
91
|
}
|
|
92
|
+
|
|
74
93
|
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
75
94
|
opacity: opacity,
|
|
76
95
|
offsets: offsets
|
|
@@ -80,10 +99,12 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
80
99
|
offsets: offsets
|
|
81
100
|
});
|
|
82
101
|
var encodeData = this.layer.getEncodedData();
|
|
102
|
+
|
|
83
103
|
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
104
|
+
data = _this$calDataFrame.data,
|
|
105
|
+
width = _this$calDataFrame.width,
|
|
106
|
+
height = _this$calDataFrame.height;
|
|
107
|
+
|
|
87
108
|
this.rowCount = height; // 当前数据纹理有多少行
|
|
88
109
|
|
|
89
110
|
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
@@ -102,6 +123,7 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
102
123
|
height: 1
|
|
103
124
|
});
|
|
104
125
|
}
|
|
126
|
+
|
|
105
127
|
return {
|
|
106
128
|
u_raisingHeight: Number(raisingHeight),
|
|
107
129
|
u_heightfixed: Number(heightfixed),
|
|
@@ -119,26 +141,32 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
119
141
|
value: function () {
|
|
120
142
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
121
143
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
122
|
-
while (1)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
144
|
+
while (1) {
|
|
145
|
+
switch (_context.prev = _context.next) {
|
|
146
|
+
case 0:
|
|
147
|
+
this.iconService.on('imageUpdate', this.updateTexture);
|
|
148
|
+
this.updateTexture();
|
|
149
|
+
return _context.abrupt("return", this.buildModels());
|
|
150
|
+
|
|
151
|
+
case 3:
|
|
152
|
+
case "end":
|
|
153
|
+
return _context.stop();
|
|
154
|
+
}
|
|
130
155
|
}
|
|
131
156
|
}, _callee, this);
|
|
132
157
|
}));
|
|
158
|
+
|
|
133
159
|
function initModels() {
|
|
134
160
|
return _initModels.apply(this, arguments);
|
|
135
161
|
}
|
|
162
|
+
|
|
136
163
|
return initModels;
|
|
137
164
|
}()
|
|
138
165
|
}, {
|
|
139
166
|
key: "clearModels",
|
|
140
167
|
value: function clearModels() {
|
|
141
168
|
var _this$texture, _this$dataTexture;
|
|
169
|
+
|
|
142
170
|
(_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
|
|
143
171
|
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
144
172
|
this.iconService.off('imageUpdate', this.updateTexture);
|
|
@@ -149,37 +177,44 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
149
177
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
150
178
|
var model;
|
|
151
179
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
152
|
-
while (1)
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
180
|
+
while (1) {
|
|
181
|
+
switch (_context2.prev = _context2.next) {
|
|
182
|
+
case 0:
|
|
183
|
+
_context2.next = 2;
|
|
184
|
+
return this.layer.buildLayerModel({
|
|
185
|
+
moduleName: 'pointImage',
|
|
186
|
+
vertexShader: pointImageVert,
|
|
187
|
+
fragmentShader: pointImageFrag,
|
|
188
|
+
triangulation: PointImageTriangulation,
|
|
189
|
+
depth: {
|
|
190
|
+
enable: false
|
|
191
|
+
},
|
|
192
|
+
primitive: gl.POINTS
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
case 2:
|
|
196
|
+
model = _context2.sent;
|
|
197
|
+
return _context2.abrupt("return", [model]);
|
|
198
|
+
|
|
199
|
+
case 4:
|
|
200
|
+
case "end":
|
|
201
|
+
return _context2.stop();
|
|
202
|
+
}
|
|
171
203
|
}
|
|
172
204
|
}, _callee2, this);
|
|
173
205
|
}));
|
|
206
|
+
|
|
174
207
|
function buildModels() {
|
|
175
208
|
return _buildModels.apply(this, arguments);
|
|
176
209
|
}
|
|
210
|
+
|
|
177
211
|
return buildModels;
|
|
178
212
|
}()
|
|
179
213
|
}, {
|
|
180
214
|
key: "registerBuiltinAttributes",
|
|
181
215
|
value: function registerBuiltinAttributes() {
|
|
182
216
|
var _this2 = this;
|
|
217
|
+
|
|
183
218
|
// point layer size;
|
|
184
219
|
this.styleAttributeService.registerStyleAttribute({
|
|
185
220
|
name: 'size',
|
|
@@ -195,13 +230,12 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
195
230
|
size: 1,
|
|
196
231
|
update: function update(feature) {
|
|
197
232
|
var _feature$size = feature.size,
|
|
198
|
-
|
|
233
|
+
size = _feature$size === void 0 ? 5 : _feature$size;
|
|
199
234
|
return Array.isArray(size) ? [size[0]] : [size];
|
|
200
235
|
}
|
|
201
236
|
}
|
|
202
|
-
});
|
|
237
|
+
}); // point layer size;
|
|
203
238
|
|
|
204
|
-
// point layer size;
|
|
205
239
|
this.styleAttributeService.registerStyleAttribute({
|
|
206
240
|
name: 'uv',
|
|
207
241
|
type: AttributeType.Attribute,
|
|
@@ -216,19 +250,25 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
216
250
|
size: 2,
|
|
217
251
|
update: function update(feature) {
|
|
218
252
|
var iconMap = _this2.iconService.getIconMap();
|
|
253
|
+
|
|
219
254
|
var shape = feature.shape;
|
|
255
|
+
|
|
220
256
|
var _ref2 = iconMap[shape] || {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
257
|
+
x: -64,
|
|
258
|
+
y: -64
|
|
259
|
+
},
|
|
260
|
+
x = _ref2.x,
|
|
261
|
+
y = _ref2.y; // 非画布区域,默认的图标改为透明
|
|
262
|
+
|
|
263
|
+
|
|
226
264
|
return [x, y];
|
|
227
265
|
}
|
|
228
266
|
}
|
|
229
267
|
});
|
|
230
268
|
}
|
|
231
269
|
}]);
|
|
270
|
+
|
|
232
271
|
return ImageModel;
|
|
233
272
|
}(BaseModel);
|
|
273
|
+
|
|
234
274
|
export { ImageModel as default };
|
package/es/point/models/index.js
CHANGED