@antv/l7-layers 2.16.0 → 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.
Files changed (242) hide show
  1. package/es/Geometry/index.js +31 -9
  2. package/es/Geometry/models/billboard.js +89 -51
  3. package/es/Geometry/models/plane.js +143 -81
  4. package/es/Geometry/models/sprite.js +118 -60
  5. package/es/canvas/index.js +33 -10
  6. package/es/canvas/models/canvas.js +97 -41
  7. package/es/citybuliding/building.js +27 -8
  8. package/es/citybuliding/models/build.js +82 -57
  9. package/es/core/BaseLayer.js +485 -321
  10. package/es/core/BaseModel.js +126 -97
  11. package/es/core/LayerPickService.js +32 -21
  12. package/es/core/TextureService.js +13 -0
  13. package/es/core/interface.js +24 -17
  14. package/es/core/shape/Path.js +20 -13
  15. package/es/core/shape/extrude.js +31 -10
  16. package/es/core/triangulation.js +114 -54
  17. package/es/earth/index.js +33 -9
  18. package/es/earth/models/atmosphere.js +54 -30
  19. package/es/earth/models/base.js +85 -47
  20. package/es/earth/models/bloomsphere.js +54 -30
  21. package/es/earth/utils.js +13 -9
  22. package/es/heatmap/index.js +40 -10
  23. package/es/heatmap/models/grid.js +52 -28
  24. package/es/heatmap/models/grid3d.js +52 -28
  25. package/es/heatmap/models/heatmap.js +146 -91
  26. package/es/heatmap/models/hexagon.js +52 -28
  27. package/es/heatmap/triangulation.js +4 -0
  28. package/es/image/index.js +28 -9
  29. package/es/image/models/image.js +100 -66
  30. package/es/index.js +17 -9
  31. package/es/line/index.js +34 -9
  32. package/es/line/models/arc.js +118 -66
  33. package/es/line/models/arc_3d.js +108 -60
  34. package/es/line/models/earthArc_3d.js +111 -63
  35. package/es/line/models/great_circle.js +100 -56
  36. package/es/line/models/half.js +77 -46
  37. package/es/line/models/line.js +148 -94
  38. package/es/line/models/linearline.js +80 -45
  39. package/es/line/models/simpleLine.js +74 -41
  40. package/es/line/models/wall.js +92 -52
  41. package/es/mask/index.js +28 -9
  42. package/es/mask/models/fill.js +54 -29
  43. package/es/plugins/DataMappingPlugin.js +117 -80
  44. package/es/plugins/DataSourcePlugin.js +68 -45
  45. package/es/plugins/FeatureScalePlugin.js +122 -67
  46. package/es/plugins/LayerAnimateStylePlugin.js +5 -0
  47. package/es/plugins/LayerMaskPlugin.js +11 -3
  48. package/es/plugins/LayerModelPlugin.js +104 -67
  49. package/es/plugins/LayerStylePlugin.js +9 -3
  50. package/es/plugins/LightingPlugin.js +18 -12
  51. package/es/plugins/MultiPassRendererPlugin.js +16 -11
  52. package/es/plugins/PixelPickingPlugin.js +21 -12
  53. package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
  54. package/es/plugins/ShaderUniformPlugin.js +27 -13
  55. package/es/plugins/UpdateModelPlugin.js +5 -0
  56. package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
  57. package/es/point/index.js +77 -26
  58. package/es/point/models/earthExtrude.js +102 -61
  59. package/es/point/models/earthFill.js +87 -57
  60. package/es/point/models/extrude.js +101 -60
  61. package/es/point/models/fill.js +100 -70
  62. package/es/point/models/fillmage.js +107 -63
  63. package/es/point/models/image.js +88 -48
  64. package/es/point/models/index.js +2 -2
  65. package/es/point/models/normal.js +54 -30
  66. package/es/point/models/radar.js +64 -40
  67. package/es/point/models/simplePoint.js +69 -41
  68. package/es/point/models/text.js +301 -198
  69. package/es/point/shape/extrude.js +13 -4
  70. package/es/polygon/index.js +40 -11
  71. package/es/polygon/models/extrude.js +92 -48
  72. package/es/polygon/models/fill.js +88 -54
  73. package/es/polygon/models/index.js +2 -3
  74. package/es/polygon/models/ocean.js +76 -42
  75. package/es/polygon/models/water.js +71 -37
  76. package/es/raster/buffers/triangulation.js +4 -2
  77. package/es/raster/index.js +32 -9
  78. package/es/raster/models/raster.js +116 -80
  79. package/es/raster/models/rasterRgb.js +127 -84
  80. package/es/raster/models/rasterTerrainRgb.js +84 -56
  81. package/es/tile/interaction/getRasterData.js +20 -14
  82. package/es/tile/interaction/utils.js +9 -7
  83. package/es/tile/manager/base.js +96 -63
  84. package/es/tile/service/TileLayerService.js +55 -33
  85. package/es/tile/service/TilePickService.js +40 -26
  86. package/es/tile/service/TileSourceService.js +7 -3
  87. package/es/tile/tileFactory/DebugTile.js +46 -29
  88. package/es/tile/tileFactory/ImageTile.js +38 -20
  89. package/es/tile/tileFactory/MaskTile.js +43 -22
  90. package/es/tile/tileFactory/RasterRGBTile.js +42 -22
  91. package/es/tile/tileFactory/RasterTerrainRGBTile.js +38 -20
  92. package/es/tile/tileFactory/RasterTile.js +53 -30
  93. package/es/tile/tileFactory/Tile.js +97 -63
  94. package/es/tile/tileFactory/VectorTile.js +68 -41
  95. package/es/tile/tileFactory/index.js +11 -0
  96. package/es/tile/tileFactory/layers/TileDebugLayer.js +27 -6
  97. package/es/tile/tileFactory/util.js +3 -0
  98. package/es/tile/tileLayer/BaseLayer.js +146 -105
  99. package/es/tile/utils.js +1 -1
  100. package/es/utils/blend.js +2 -0
  101. package/es/utils/collision-index.js +16 -9
  102. package/es/utils/dataMappingStyle.js +18 -8
  103. package/es/utils/extrude_polyline.js +149 -101
  104. package/es/utils/grid-index.js +27 -2
  105. package/es/utils/identityScale.js +8 -0
  106. package/es/utils/layerData.js +44 -30
  107. package/es/utils/multiPassRender.js +13 -11
  108. package/es/utils/polylineNormal.js +37 -31
  109. package/es/utils/simpleLine.js +16 -2
  110. package/es/utils/stencil.js +3 -2
  111. package/es/utils/symbol-layout.js +53 -27
  112. package/es/wind/index.js +29 -9
  113. package/es/wind/models/utils.js +51 -26
  114. package/es/wind/models/wind.js +147 -101
  115. package/es/wind/models/windRender.js +66 -53
  116. package/lib/Geometry/index.js +38 -9
  117. package/lib/Geometry/models/billboard.js +97 -51
  118. package/lib/Geometry/models/index.js +5 -0
  119. package/lib/Geometry/models/plane.js +151 -79
  120. package/lib/Geometry/models/sprite.js +127 -60
  121. package/lib/canvas/index.js +40 -10
  122. package/lib/canvas/models/canvas.js +101 -41
  123. package/lib/canvas/models/index.js +3 -0
  124. package/lib/citybuliding/building.js +35 -8
  125. package/lib/citybuliding/models/build.js +92 -57
  126. package/lib/core/BaseLayer.js +479 -321
  127. package/lib/core/BaseModel.js +139 -97
  128. package/lib/core/LayerPickService.js +37 -21
  129. package/lib/core/TextureService.js +16 -0
  130. package/lib/core/interface.js +31 -21
  131. package/lib/core/schema.js +1 -0
  132. package/lib/core/shape/Path.js +31 -14
  133. package/lib/core/shape/extrude.js +54 -10
  134. package/lib/core/triangulation.js +153 -53
  135. package/lib/earth/index.js +43 -9
  136. package/lib/earth/models/atmosphere.js +63 -30
  137. package/lib/earth/models/base.js +90 -47
  138. package/lib/earth/models/bloomsphere.js +63 -30
  139. package/lib/earth/utils.js +31 -7
  140. package/lib/heatmap/index.js +48 -10
  141. package/lib/heatmap/models/grid.js +60 -28
  142. package/lib/heatmap/models/grid3d.js +60 -28
  143. package/lib/heatmap/models/heatmap.js +162 -91
  144. package/lib/heatmap/models/hexagon.js +60 -28
  145. package/lib/heatmap/models/index.js +6 -0
  146. package/lib/heatmap/triangulation.js +5 -0
  147. package/lib/image/index.js +36 -9
  148. package/lib/image/models/image.js +109 -66
  149. package/lib/image/models/index.js +3 -0
  150. package/lib/index.js +61 -7
  151. package/lib/line/index.js +40 -9
  152. package/lib/line/models/arc.js +128 -64
  153. package/lib/line/models/arc_3d.js +119 -58
  154. package/lib/line/models/earthArc_3d.js +122 -61
  155. package/lib/line/models/great_circle.js +111 -56
  156. package/lib/line/models/half.js +87 -46
  157. package/lib/line/models/index.js +11 -0
  158. package/lib/line/models/line.js +156 -92
  159. package/lib/line/models/linearline.js +92 -45
  160. package/lib/line/models/simpleLine.js +84 -41
  161. package/lib/line/models/wall.js +103 -52
  162. package/lib/mask/index.js +36 -9
  163. package/lib/mask/models/fill.js +63 -29
  164. package/lib/mask/models/index.js +3 -0
  165. package/lib/plugins/DataMappingPlugin.js +128 -80
  166. package/lib/plugins/DataSourcePlugin.js +76 -45
  167. package/lib/plugins/FeatureScalePlugin.js +138 -67
  168. package/lib/plugins/LayerAnimateStylePlugin.js +10 -0
  169. package/lib/plugins/LayerMaskPlugin.js +17 -4
  170. package/lib/plugins/LayerModelPlugin.js +113 -68
  171. package/lib/plugins/LayerStylePlugin.js +14 -4
  172. package/lib/plugins/LightingPlugin.js +25 -12
  173. package/lib/plugins/MultiPassRendererPlugin.js +22 -11
  174. package/lib/plugins/PixelPickingPlugin.js +27 -12
  175. package/lib/plugins/RegisterStyleAttributePlugin.js +19 -5
  176. package/lib/plugins/ShaderUniformPlugin.js +34 -13
  177. package/lib/plugins/UpdateModelPlugin.js +10 -1
  178. package/lib/plugins/UpdateStyleAttributePlugin.js +16 -5
  179. package/lib/point/index.js +83 -26
  180. package/lib/point/models/earthExtrude.js +113 -61
  181. package/lib/point/models/earthFill.js +117 -57
  182. package/lib/point/models/extrude.js +111 -60
  183. package/lib/point/models/fill.js +109 -68
  184. package/lib/point/models/fillmage.js +115 -61
  185. package/lib/point/models/image.js +98 -48
  186. package/lib/point/models/index.js +12 -1
  187. package/lib/point/models/normal.js +64 -30
  188. package/lib/point/models/radar.js +74 -40
  189. package/lib/point/models/simplePoint.js +79 -41
  190. package/lib/point/models/text.js +309 -198
  191. package/lib/point/shape/extrude.js +20 -4
  192. package/lib/polygon/index.js +48 -11
  193. package/lib/polygon/models/extrude.js +103 -48
  194. package/lib/polygon/models/fill.js +98 -54
  195. package/lib/polygon/models/index.js +14 -2
  196. package/lib/polygon/models/ocean.js +88 -42
  197. package/lib/polygon/models/water.js +82 -37
  198. package/lib/raster/buffers/triangulation.js +7 -3
  199. package/lib/raster/index.js +40 -9
  200. package/lib/raster/models/index.js +5 -0
  201. package/lib/raster/models/raster.js +125 -80
  202. package/lib/raster/models/rasterRgb.js +139 -84
  203. package/lib/raster/models/rasterTerrainRgb.js +93 -56
  204. package/lib/tile/interaction/getRasterData.js +25 -14
  205. package/lib/tile/interaction/utils.js +19 -7
  206. package/lib/tile/manager/base.js +104 -63
  207. package/lib/tile/service/TileLayerService.js +60 -33
  208. package/lib/tile/service/TilePickService.js +48 -26
  209. package/lib/tile/service/TileSourceService.js +16 -2
  210. package/lib/tile/style/utils.js +3 -0
  211. package/lib/tile/tileFactory/DebugTile.js +54 -29
  212. package/lib/tile/tileFactory/ImageTile.js +46 -20
  213. package/lib/tile/tileFactory/MaskTile.js +51 -22
  214. package/lib/tile/tileFactory/RasterRGBTile.js +50 -22
  215. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +46 -20
  216. package/lib/tile/tileFactory/RasterTile.js +63 -30
  217. package/lib/tile/tileFactory/Tile.js +102 -63
  218. package/lib/tile/tileFactory/VectorTile.js +76 -41
  219. package/lib/tile/tileFactory/index.js +25 -0
  220. package/lib/tile/tileFactory/layers/TileDebugLayer.js +32 -6
  221. package/lib/tile/tileFactory/util.js +9 -0
  222. package/lib/tile/tileLayer/BaseLayer.js +153 -105
  223. package/lib/tile/utils.js +5 -1
  224. package/lib/utils/blend.js +5 -0
  225. package/lib/utils/collision-index.js +25 -9
  226. package/lib/utils/dataMappingStyle.js +19 -8
  227. package/lib/utils/extrude_polyline.js +181 -101
  228. package/lib/utils/grid-index.js +28 -2
  229. package/lib/utils/identityScale.js +9 -0
  230. package/lib/utils/layerData.js +49 -30
  231. package/lib/utils/multiPassRender.js +16 -11
  232. package/lib/utils/polylineNormal.js +66 -31
  233. package/lib/utils/simpleLine.js +21 -2
  234. package/lib/utils/stencil.js +4 -0
  235. package/lib/utils/symbol-layout.js +55 -27
  236. package/lib/wind/index.js +37 -9
  237. package/lib/wind/models/index.js +3 -0
  238. package/lib/wind/models/utils.js +62 -26
  239. package/lib/wind/models/wind.js +157 -101
  240. package/lib/wind/models/windRender.js +71 -53
  241. package/lib/wind/models/windShader.js +1 -0
  242. package/package.json +7 -7
@@ -1,58 +1,88 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
9
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
11
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
12
18
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
13
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
14
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
15
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
16
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
17
28
  var _l7Core = require("@antv/l7-core");
29
+
18
30
  var _l7Utils = require("@antv/l7-utils");
31
+
19
32
  var _lodash = require("lodash");
33
+
20
34
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
35
+
21
36
  var _interface = require("../../core/interface");
37
+
22
38
  var _triangulation = require("../../core/triangulation");
39
+
23
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
41
+
24
42
  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; } }
43
+
25
44
  /* babel-plugin-inline-import '../shaders/image/fillImage_frag.glsl' */
26
45
  // static pointLayer shader - not support animate
27
46
  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";
47
+
28
48
  /* babel-plugin-inline-import '../shaders/image/fillImage_vert.glsl' */
29
49
  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";
50
+
30
51
  var FillImageModel = /*#__PURE__*/function (_BaseModel) {
31
52
  (0, _inherits2.default)(FillImageModel, _BaseModel);
53
+
32
54
  var _super = _createSuper(FillImageModel);
55
+
33
56
  function FillImageModel() {
34
57
  var _this;
58
+
35
59
  (0, _classCallCheck2.default)(this, FillImageModel);
60
+
36
61
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
37
62
  args[_key] = arguments[_key];
38
63
  }
64
+
39
65
  _this = _super.call.apply(_super, [this].concat(args));
40
66
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meter2coord", 1);
41
67
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isMeter", false);
42
68
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "radian", 0);
43
69
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateTexture", function () {
44
70
  var createTexture2D = _this.rendererService.createTexture2D;
71
+
45
72
  if (_this.texture) {
46
73
  _this.texture.update({
47
74
  data: _this.iconService.getCanvas(),
48
75
  mag: 'linear',
49
76
  min: 'linear mipmap nearest',
50
77
  mipmap: true
51
- });
52
- // 更新完纹理后在更新的图层的时候需要更新所有的图层
78
+ }); // 更新完纹理后在更新的图层的时候需要更新所有的图层
79
+
80
+
53
81
  _this.layerService.throttleRenderLayers();
82
+
54
83
  return;
55
84
  }
85
+
56
86
  _this.texture = createTexture2D({
57
87
  data: _this.iconService.getCanvas(),
58
88
  mag: _l7Core.gl.LINEAR,
@@ -65,23 +95,24 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
65
95
  });
66
96
  return _this;
67
97
  }
98
+
68
99
  (0, _createClass2.default)(FillImageModel, [{
69
100
  key: "getUninforms",
70
- value:
71
- // 旋转的弧度
101
+ value: // 旋转的弧度
72
102
  function getUninforms() {
73
103
  var _ref = this.layer.getLayerConfig(),
74
- _ref$opacity = _ref.opacity,
75
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
76
- _ref$offsets = _ref.offsets,
77
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
78
- rotation = _ref.rotation,
79
- _ref$raisingHeight = _ref.raisingHeight,
80
- raisingHeight = _ref$raisingHeight === void 0 ? 0.0 : _ref$raisingHeight,
81
- _ref$heightfixed = _ref.heightfixed,
82
- heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
83
- _ref$unit = _ref.unit,
84
- unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
104
+ _ref$opacity = _ref.opacity,
105
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
106
+ _ref$offsets = _ref.offsets,
107
+ offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
108
+ rotation = _ref.rotation,
109
+ _ref$raisingHeight = _ref.raisingHeight,
110
+ raisingHeight = _ref$raisingHeight === void 0 ? 0.0 : _ref$raisingHeight,
111
+ _ref$heightfixed = _ref.heightfixed,
112
+ heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
113
+ _ref$unit = _ref.unit,
114
+ unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
115
+
85
116
  if (this.rendererService.getDirty()) {
86
117
  this.texture.bind();
87
118
  }
@@ -92,12 +123,17 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
92
123
  * GAODE2.x -1
93
124
  * GAODE1.x -1
94
125
  */
126
+
127
+
95
128
  var rotateFlag = 1;
129
+
96
130
  if (this.mapService.version === 'GAODE2.x' || this.mapService.version === 'GAODE1.x') {
97
131
  rotateFlag = -1;
98
- }
99
- // 控制图标的旋转角度(绕 Z 轴旋转)
132
+ } // 控制图标的旋转角度(绕 Z 轴旋转)
133
+
134
+
100
135
  this.radian = rotation !== undefined ? rotateFlag * Math.PI * rotation / 180 : rotateFlag * Math.PI * (this.mapService.getRotation() % 360) / 180;
136
+
101
137
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
102
138
  opacity: opacity,
103
139
  offsets: offsets
@@ -108,10 +144,12 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
108
144
  offsets: offsets
109
145
  });
110
146
  var encodeData = this.layer.getEncodedData();
147
+
111
148
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
112
- data = _this$calDataFrame.data,
113
- width = _this$calDataFrame.width,
114
- height = _this$calDataFrame.height;
149
+ data = _this$calDataFrame.data,
150
+ width = _this$calDataFrame.width,
151
+ height = _this$calDataFrame.height;
152
+
115
153
  this.rowCount = height; // 当前数据纹理有多少行
116
154
 
117
155
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
@@ -130,6 +168,7 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
130
168
  height: 1
131
169
  });
132
170
  }
171
+
133
172
  return {
134
173
  u_raisingHeight: Number(raisingHeight),
135
174
  u_heightfixed: Number(heightfixed),
@@ -154,20 +193,25 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
154
193
  value: function () {
155
194
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
156
195
  return _regenerator.default.wrap(function _callee$(_context) {
157
- while (1) switch (_context.prev = _context.next) {
158
- case 0:
159
- this.iconService.on('imageUpdate', this.updateTexture);
160
- this.updateTexture();
161
- return _context.abrupt("return", this.buildModels());
162
- case 3:
163
- case "end":
164
- return _context.stop();
196
+ while (1) {
197
+ switch (_context.prev = _context.next) {
198
+ case 0:
199
+ this.iconService.on('imageUpdate', this.updateTexture);
200
+ this.updateTexture();
201
+ return _context.abrupt("return", this.buildModels());
202
+
203
+ case 3:
204
+ case "end":
205
+ return _context.stop();
206
+ }
165
207
  }
166
208
  }, _callee, this);
167
209
  }));
210
+
168
211
  function initModels() {
169
212
  return _initModels.apply(this, arguments);
170
213
  }
214
+
171
215
  return initModels;
172
216
  }()
173
217
  }, {
@@ -176,50 +220,57 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
176
220
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
177
221
  var model;
178
222
  return _regenerator.default.wrap(function _callee2$(_context2) {
179
- while (1) switch (_context2.prev = _context2.next) {
180
- case 0:
181
- _context2.next = 2;
182
- return this.layer.buildLayerModel({
183
- moduleName: 'pointFillImage',
184
- vertexShader: pointFillVert,
185
- fragmentShader: pointFillFrag,
186
- triangulation: _triangulation.PointFillTriangulation,
187
- depth: {
188
- enable: false
189
- },
190
- cull: {
191
- enable: true,
192
- face: (0, _l7Utils.getCullFace)(this.mapService.version)
193
- }
194
- });
195
- case 2:
196
- model = _context2.sent;
197
- return _context2.abrupt("return", [model]);
198
- case 4:
199
- case "end":
200
- return _context2.stop();
223
+ while (1) {
224
+ switch (_context2.prev = _context2.next) {
225
+ case 0:
226
+ _context2.next = 2;
227
+ return this.layer.buildLayerModel({
228
+ moduleName: 'pointFillImage',
229
+ vertexShader: pointFillVert,
230
+ fragmentShader: pointFillFrag,
231
+ triangulation: _triangulation.PointFillTriangulation,
232
+ depth: {
233
+ enable: false
234
+ },
235
+ cull: {
236
+ enable: true,
237
+ face: (0, _l7Utils.getCullFace)(this.mapService.version)
238
+ }
239
+ });
240
+
241
+ case 2:
242
+ model = _context2.sent;
243
+ return _context2.abrupt("return", [model]);
244
+
245
+ case 4:
246
+ case "end":
247
+ return _context2.stop();
248
+ }
201
249
  }
202
250
  }, _callee2, this);
203
251
  }));
252
+
204
253
  function buildModels() {
205
254
  return _buildModels.apply(this, arguments);
206
255
  }
256
+
207
257
  return buildModels;
208
258
  }()
209
259
  }, {
210
260
  key: "clearModels",
211
261
  value: function clearModels() {
212
262
  var _this$texture, _this$dataTexture;
263
+
213
264
  this.iconService.off('imageUpdate', this.updateTexture);
214
265
  (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
215
266
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
216
- }
267
+ } // overwrite baseModel func
217
268
 
218
- // overwrite baseModel func
219
269
  }, {
220
270
  key: "registerBuiltinAttributes",
221
271
  value: function registerBuiltinAttributes() {
222
272
  var _this2 = this;
273
+
223
274
  this.styleAttributeService.registerStyleAttribute({
224
275
  name: 'rotate',
225
276
  type: _l7Core.AttributeType.Attribute,
@@ -233,7 +284,7 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
233
284
  size: 1,
234
285
  update: function update(feature) {
235
286
  var _feature$rotate = feature.rotate,
236
- rotate = _feature$rotate === void 0 ? 0 : _feature$rotate;
287
+ rotate = _feature$rotate === void 0 ? 0 : _feature$rotate;
237
288
  return Array.isArray(rotate) ? [rotate[0]] : [rotate];
238
289
  }
239
290
  }
@@ -252,13 +303,16 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
252
303
  size: 2,
253
304
  update: function update(feature) {
254
305
  var iconMap = _this2.iconService.getIconMap();
306
+
255
307
  var shape = feature.shape;
308
+
256
309
  var _ref2 = iconMap[shape] || {
257
- x: -64,
258
- y: -64
259
- },
260
- x = _ref2.x,
261
- y = _ref2.y;
310
+ x: -64,
311
+ y: -64
312
+ },
313
+ x = _ref2.x,
314
+ y = _ref2.y;
315
+
262
316
  return [x, y];
263
317
  }
264
318
  }
@@ -281,9 +335,8 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
281
335
  return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
282
336
  }
283
337
  }
284
- });
338
+ }); // point layer size;
285
339
 
286
- // point layer size;
287
340
  this.styleAttributeService.registerStyleAttribute({
288
341
  name: 'size',
289
342
  type: _l7Core.AttributeType.Attribute,
@@ -298,7 +351,7 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
298
351
  size: 1,
299
352
  update: function update(feature) {
300
353
  var _feature$size = feature.size,
301
- size = _feature$size === void 0 ? 5 : _feature$size;
354
+ size = _feature$size === void 0 ? 5 : _feature$size;
302
355
  return Array.isArray(size) ? [size[0]] : [size];
303
356
  }
304
357
  }
@@ -307,4 +360,5 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
307
360
  }]);
308
361
  return FillImageModel;
309
362
  }(_BaseModel2.default);
363
+
310
364
  exports.default = FillImageModel;
@@ -1,56 +1,83 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
9
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
11
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
12
18
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
13
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
14
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
15
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
16
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
17
28
  var _l7Core = require("@antv/l7-core");
29
+
18
30
  var _lodash = require("lodash");
31
+
19
32
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
33
+
20
34
  var _triangulation = require("../../core/triangulation");
35
+
21
36
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
+
22
38
  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; } }
39
+
23
40
  /* babel-plugin-inline-import '../shaders/image_frag.glsl' */
24
41
  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";
42
+
25
43
  /* babel-plugin-inline-import '../shaders/image_vert.glsl' */
26
44
  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";
45
+
27
46
  var ImageModel = /*#__PURE__*/function (_BaseModel) {
28
47
  (0, _inherits2.default)(ImageModel, _BaseModel);
48
+
29
49
  var _super = _createSuper(ImageModel);
50
+
30
51
  function ImageModel() {
31
52
  var _this;
53
+
32
54
  (0, _classCallCheck2.default)(this, ImageModel);
55
+
33
56
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
34
57
  args[_key] = arguments[_key];
35
58
  }
59
+
36
60
  _this = _super.call.apply(_super, [this].concat(args));
37
61
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateTexture", function () {
38
62
  var createTexture2D = _this.rendererService.createTexture2D;
63
+
39
64
  if (_this.texture) {
40
65
  _this.texture.update({
41
66
  data: _this.iconService.getCanvas(),
42
67
  mag: 'linear',
43
68
  min: 'linear mipmap nearest',
44
69
  mipmap: true
45
- });
46
- // 更新完纹理后在更新的图层的时候需要更新所有的图层
70
+ }); // 更新完纹理后在更新的图层的时候需要更新所有的图层
47
71
  // this.layer.layerModelNeedUpdate = true;
72
+
73
+
48
74
  setTimeout(function () {
49
75
  // 延迟渲染
50
76
  _this.layerService.throttleRenderLayers();
51
77
  });
52
78
  return;
53
79
  }
80
+
54
81
  _this.texture = createTexture2D({
55
82
  data: _this.iconService.getCanvas(),
56
83
  mag: _l7Core.gl.LINEAR,
@@ -63,21 +90,24 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
63
90
  });
64
91
  return _this;
65
92
  }
93
+
66
94
  (0, _createClass2.default)(ImageModel, [{
67
95
  key: "getUninforms",
68
96
  value: function getUninforms() {
69
97
  var _ref = this.layer.getLayerConfig(),
70
- _ref$opacity = _ref.opacity,
71
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
72
- _ref$offsets = _ref.offsets,
73
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
74
- _ref$raisingHeight = _ref.raisingHeight,
75
- raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
76
- _ref$heightfixed = _ref.heightfixed,
77
- heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed;
98
+ _ref$opacity = _ref.opacity,
99
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
100
+ _ref$offsets = _ref.offsets,
101
+ offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
102
+ _ref$raisingHeight = _ref.raisingHeight,
103
+ raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
104
+ _ref$heightfixed = _ref.heightfixed,
105
+ heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed;
106
+
78
107
  if (this.rendererService.getDirty()) {
79
108
  this.texture.bind();
80
109
  }
110
+
81
111
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
82
112
  opacity: opacity,
83
113
  offsets: offsets
@@ -87,10 +117,12 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
87
117
  offsets: offsets
88
118
  });
89
119
  var encodeData = this.layer.getEncodedData();
120
+
90
121
  var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
91
- data = _this$calDataFrame.data,
92
- width = _this$calDataFrame.width,
93
- height = _this$calDataFrame.height;
122
+ data = _this$calDataFrame.data,
123
+ width = _this$calDataFrame.width,
124
+ height = _this$calDataFrame.height;
125
+
94
126
  this.rowCount = height; // 当前数据纹理有多少行
95
127
 
96
128
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
@@ -109,6 +141,7 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
109
141
  height: 1
110
142
  });
111
143
  }
144
+
112
145
  return {
113
146
  u_raisingHeight: Number(raisingHeight),
114
147
  u_heightfixed: Number(heightfixed),
@@ -126,26 +159,32 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
126
159
  value: function () {
127
160
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
128
161
  return _regenerator.default.wrap(function _callee$(_context) {
129
- while (1) switch (_context.prev = _context.next) {
130
- case 0:
131
- this.iconService.on('imageUpdate', this.updateTexture);
132
- this.updateTexture();
133
- return _context.abrupt("return", this.buildModels());
134
- case 3:
135
- case "end":
136
- return _context.stop();
162
+ while (1) {
163
+ switch (_context.prev = _context.next) {
164
+ case 0:
165
+ this.iconService.on('imageUpdate', this.updateTexture);
166
+ this.updateTexture();
167
+ return _context.abrupt("return", this.buildModels());
168
+
169
+ case 3:
170
+ case "end":
171
+ return _context.stop();
172
+ }
137
173
  }
138
174
  }, _callee, this);
139
175
  }));
176
+
140
177
  function initModels() {
141
178
  return _initModels.apply(this, arguments);
142
179
  }
180
+
143
181
  return initModels;
144
182
  }()
145
183
  }, {
146
184
  key: "clearModels",
147
185
  value: function clearModels() {
148
186
  var _this$texture, _this$dataTexture;
187
+
149
188
  (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
150
189
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
151
190
  this.iconService.off('imageUpdate', this.updateTexture);
@@ -156,37 +195,44 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
156
195
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
157
196
  var model;
158
197
  return _regenerator.default.wrap(function _callee2$(_context2) {
159
- while (1) switch (_context2.prev = _context2.next) {
160
- case 0:
161
- _context2.next = 2;
162
- return this.layer.buildLayerModel({
163
- moduleName: 'pointImage',
164
- vertexShader: pointImageVert,
165
- fragmentShader: pointImageFrag,
166
- triangulation: _triangulation.PointImageTriangulation,
167
- depth: {
168
- enable: false
169
- },
170
- primitive: _l7Core.gl.POINTS
171
- });
172
- case 2:
173
- model = _context2.sent;
174
- return _context2.abrupt("return", [model]);
175
- case 4:
176
- case "end":
177
- return _context2.stop();
198
+ while (1) {
199
+ switch (_context2.prev = _context2.next) {
200
+ case 0:
201
+ _context2.next = 2;
202
+ return this.layer.buildLayerModel({
203
+ moduleName: 'pointImage',
204
+ vertexShader: pointImageVert,
205
+ fragmentShader: pointImageFrag,
206
+ triangulation: _triangulation.PointImageTriangulation,
207
+ depth: {
208
+ enable: false
209
+ },
210
+ primitive: _l7Core.gl.POINTS
211
+ });
212
+
213
+ case 2:
214
+ model = _context2.sent;
215
+ return _context2.abrupt("return", [model]);
216
+
217
+ case 4:
218
+ case "end":
219
+ return _context2.stop();
220
+ }
178
221
  }
179
222
  }, _callee2, this);
180
223
  }));
224
+
181
225
  function buildModels() {
182
226
  return _buildModels.apply(this, arguments);
183
227
  }
228
+
184
229
  return buildModels;
185
230
  }()
186
231
  }, {
187
232
  key: "registerBuiltinAttributes",
188
233
  value: function registerBuiltinAttributes() {
189
234
  var _this2 = this;
235
+
190
236
  // point layer size;
191
237
  this.styleAttributeService.registerStyleAttribute({
192
238
  name: 'size',
@@ -202,13 +248,12 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
202
248
  size: 1,
203
249
  update: function update(feature) {
204
250
  var _feature$size = feature.size,
205
- size = _feature$size === void 0 ? 5 : _feature$size;
251
+ size = _feature$size === void 0 ? 5 : _feature$size;
206
252
  return Array.isArray(size) ? [size[0]] : [size];
207
253
  }
208
254
  }
209
- });
255
+ }); // point layer size;
210
256
 
211
- // point layer size;
212
257
  this.styleAttributeService.registerStyleAttribute({
213
258
  name: 'uv',
214
259
  type: _l7Core.AttributeType.Attribute,
@@ -223,13 +268,17 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
223
268
  size: 2,
224
269
  update: function update(feature) {
225
270
  var iconMap = _this2.iconService.getIconMap();
271
+
226
272
  var shape = feature.shape;
273
+
227
274
  var _ref2 = iconMap[shape] || {
228
- x: -64,
229
- y: -64
230
- },
231
- x = _ref2.x,
232
- y = _ref2.y; // 非画布区域,默认的图标改为透明
275
+ x: -64,
276
+ y: -64
277
+ },
278
+ x = _ref2.x,
279
+ y = _ref2.y; // 非画布区域,默认的图标改为透明
280
+
281
+
233
282
  return [x, y];
234
283
  }
235
284
  }
@@ -238,4 +287,5 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
238
287
  }]);
239
288
  return ImageModel;
240
289
  }(_BaseModel2.default);
290
+
241
291
  exports.default = ImageModel;