@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
@@ -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
- // static pointLayer shader - not support animate
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
- _ref$opacity = _ref.opacity,
68
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
69
- _ref$offsets = _ref.offsets,
70
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
71
- rotation = _ref.rotation,
72
- _ref$raisingHeight = _ref.raisingHeight,
73
- raisingHeight = _ref$raisingHeight === void 0 ? 0.0 : _ref$raisingHeight,
74
- _ref$heightfixed = _ref.heightfixed,
75
- heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
76
- _ref$unit = _ref.unit,
77
- unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
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
- // 控制图标的旋转角度(绕 Z 轴旋转)
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
- data = _this$calDataFrame.data,
106
- width = _this$calDataFrame.width,
107
- height = _this$calDataFrame.height;
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) switch (_context.prev = _context.next) {
151
- case 0:
152
- this.iconService.on('imageUpdate', this.updateTexture);
153
- this.updateTexture();
154
- return _context.abrupt("return", this.buildModels());
155
- case 3:
156
- case "end":
157
- return _context.stop();
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) switch (_context2.prev = _context2.next) {
173
- case 0:
174
- _context2.next = 2;
175
- return this.layer.buildLayerModel({
176
- moduleName: 'pointFillImage',
177
- vertexShader: pointFillVert,
178
- fragmentShader: pointFillFrag,
179
- triangulation: PointFillTriangulation,
180
- depth: {
181
- enable: false
182
- },
183
- cull: {
184
- enable: true,
185
- face: getCullFace(this.mapService.version)
186
- }
187
- });
188
- case 2:
189
- model = _context2.sent;
190
- return _context2.abrupt("return", [model]);
191
- case 4:
192
- case "end":
193
- return _context2.stop();
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
- rotate = _feature$rotate === void 0 ? 0 : _feature$rotate;
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
- x: -64,
251
- y: -64
252
- },
253
- x = _ref2.x,
254
- y = _ref2.y;
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
- size = _feature$size === void 0 ? 5 : _feature$size;
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 };
@@ -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
- _ref$opacity = _ref.opacity,
64
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
65
- _ref$offsets = _ref.offsets,
66
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
67
- _ref$raisingHeight = _ref.raisingHeight,
68
- raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
69
- _ref$heightfixed = _ref.heightfixed,
70
- heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed;
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
- data = _this$calDataFrame.data,
85
- width = _this$calDataFrame.width,
86
- height = _this$calDataFrame.height;
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) switch (_context.prev = _context.next) {
123
- case 0:
124
- this.iconService.on('imageUpdate', this.updateTexture);
125
- this.updateTexture();
126
- return _context.abrupt("return", this.buildModels());
127
- case 3:
128
- case "end":
129
- return _context.stop();
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) switch (_context2.prev = _context2.next) {
153
- case 0:
154
- _context2.next = 2;
155
- return this.layer.buildLayerModel({
156
- moduleName: 'pointImage',
157
- vertexShader: pointImageVert,
158
- fragmentShader: pointImageFrag,
159
- triangulation: PointImageTriangulation,
160
- depth: {
161
- enable: false
162
- },
163
- primitive: gl.POINTS
164
- });
165
- case 2:
166
- model = _context2.sent;
167
- return _context2.abrupt("return", [model]);
168
- case 4:
169
- case "end":
170
- return _context2.stop();
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
- size = _feature$size === void 0 ? 5 : _feature$size;
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
- x: -64,
222
- y: -64
223
- },
224
- x = _ref2.x,
225
- y = _ref2.y; // 非画布区域,默认的图标改为透明
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 };
@@ -1,5 +1,5 @@
1
- import EarthExtrudeModel from "./earthExtrude";
2
- // earth
1
+ import EarthExtrudeModel from "./earthExtrude"; // earth
2
+
3
3
  import EarthFillModel from "./earthFill";
4
4
  import ExtrudeModel from "./extrude";
5
5
  import FillModel from "./fill";