@antv/l7-layers 2.17.2 → 2.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +478 -313
  10. package/es/core/BaseModel.js +80 -51
  11. package/es/core/CommonStyleAttribute.js +5 -2
  12. package/es/core/LayerPickService.js +32 -21
  13. package/es/core/TextureService.js +13 -0
  14. package/es/core/interface.js +24 -17
  15. package/es/core/shape/Path.js +20 -13
  16. package/es/core/shape/extrude.js +39 -27
  17. package/es/core/triangulation.js +136 -99
  18. package/es/earth/index.js +33 -9
  19. package/es/earth/models/atmosphere.js +54 -30
  20. package/es/earth/models/base.js +85 -47
  21. package/es/earth/models/bloomsphere.js +54 -30
  22. package/es/earth/utils.js +13 -9
  23. package/es/heatmap/index.js +40 -10
  24. package/es/heatmap/models/grid.js +52 -28
  25. package/es/heatmap/models/grid3d.js +52 -28
  26. package/es/heatmap/models/heatmap.js +149 -92
  27. package/es/heatmap/models/hexagon.js +52 -28
  28. package/es/heatmap/triangulation.js +4 -0
  29. package/es/image/index.js +28 -9
  30. package/es/image/models/image.js +100 -66
  31. package/es/index.js +17 -9
  32. package/es/line/index.js +35 -9
  33. package/es/line/models/arc.js +114 -64
  34. package/es/line/models/arc_3d.js +102 -58
  35. package/es/line/models/earthArc_3d.js +105 -60
  36. package/es/line/models/flow.js +60 -36
  37. package/es/line/models/great_circle.js +94 -53
  38. package/es/line/models/line.js +138 -86
  39. package/es/line/models/linearline.js +76 -43
  40. package/es/line/models/simpleLine.js +69 -39
  41. package/es/line/models/wall.js +92 -52
  42. package/es/mask/index.js +28 -9
  43. package/es/mask/models/fill.js +54 -29
  44. package/es/plugins/DataMappingPlugin.js +114 -78
  45. package/es/plugins/DataSourcePlugin.js +68 -45
  46. package/es/plugins/FeatureScalePlugin.js +122 -67
  47. package/es/plugins/LayerAnimateStylePlugin.js +5 -0
  48. package/es/plugins/LayerMaskPlugin.js +11 -3
  49. package/es/plugins/LayerModelPlugin.js +108 -69
  50. package/es/plugins/LayerStylePlugin.js +9 -3
  51. package/es/plugins/LightingPlugin.js +18 -12
  52. package/es/plugins/MultiPassRendererPlugin.js +16 -11
  53. package/es/plugins/PixelPickingPlugin.js +21 -12
  54. package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
  55. package/es/plugins/ShaderUniformPlugin.js +27 -13
  56. package/es/plugins/UpdateModelPlugin.js +5 -0
  57. package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
  58. package/es/point/index.js +78 -26
  59. package/es/point/models/earthExtrude.js +95 -58
  60. package/es/point/models/earthFill.js +80 -52
  61. package/es/point/models/extrude.js +94 -57
  62. package/es/point/models/fill.js +81 -56
  63. package/es/point/models/fillmage.js +100 -60
  64. package/es/point/models/image.js +83 -47
  65. package/es/point/models/index.js +2 -2
  66. package/es/point/models/normal.js +54 -30
  67. package/es/point/models/radar.js +63 -38
  68. package/es/point/models/simplePoint.js +62 -38
  69. package/es/point/models/text.js +296 -199
  70. package/es/point/shape/extrude.js +13 -4
  71. package/es/polygon/index.js +41 -11
  72. package/es/polygon/models/extrude.js +135 -87
  73. package/es/polygon/models/fill.js +79 -50
  74. package/es/polygon/models/index.js +2 -3
  75. package/es/polygon/models/ocean.js +76 -42
  76. package/es/polygon/models/water.js +71 -37
  77. package/es/raster/buffers/triangulation.js +4 -2
  78. package/es/raster/index.js +32 -9
  79. package/es/raster/models/raster.js +116 -80
  80. package/es/raster/models/rasterRgb.js +127 -84
  81. package/es/raster/models/rasterTerrainRgb.js +84 -56
  82. package/es/tile/interaction/getRasterData.js +20 -14
  83. package/es/tile/interaction/utils.js +9 -7
  84. package/es/tile/manager/base.js +96 -63
  85. package/es/tile/service/TileLayerService.js +55 -33
  86. package/es/tile/service/TilePickService.js +40 -26
  87. package/es/tile/service/TileSourceService.js +7 -3
  88. package/es/tile/tileFactory/DebugTile.js +46 -29
  89. package/es/tile/tileFactory/ImageTile.js +38 -20
  90. package/es/tile/tileFactory/MaskTile.js +43 -22
  91. package/es/tile/tileFactory/RasterRGBTile.js +42 -22
  92. package/es/tile/tileFactory/RasterTerrainRGBTile.js +38 -20
  93. package/es/tile/tileFactory/RasterTile.js +53 -30
  94. package/es/tile/tileFactory/Tile.js +97 -63
  95. package/es/tile/tileFactory/VectorTile.js +68 -41
  96. package/es/tile/tileFactory/index.js +11 -0
  97. package/es/tile/tileFactory/layers/TileDebugLayer.js +27 -6
  98. package/es/tile/tileFactory/util.js +3 -0
  99. package/es/tile/tileLayer/BaseLayer.js +146 -105
  100. package/es/tile/utils.js +1 -1
  101. package/es/utils/blend.js +2 -0
  102. package/es/utils/collision-index.js +16 -9
  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 +469 -313
  127. package/lib/core/BaseModel.js +90 -51
  128. package/lib/core/CommonStyleAttribute.js +7 -2
  129. package/lib/core/LayerPickService.js +37 -21
  130. package/lib/core/TextureService.js +16 -0
  131. package/lib/core/interface.js +31 -21
  132. package/lib/core/schema.js +1 -0
  133. package/lib/core/shape/Path.js +31 -14
  134. package/lib/core/shape/extrude.js +62 -27
  135. package/lib/core/triangulation.js +177 -98
  136. package/lib/earth/index.js +43 -9
  137. package/lib/earth/models/atmosphere.js +63 -30
  138. package/lib/earth/models/base.js +90 -47
  139. package/lib/earth/models/bloomsphere.js +63 -30
  140. package/lib/earth/utils.js +31 -7
  141. package/lib/heatmap/index.js +48 -10
  142. package/lib/heatmap/models/grid.js +60 -28
  143. package/lib/heatmap/models/grid3d.js +60 -28
  144. package/lib/heatmap/models/heatmap.js +166 -92
  145. package/lib/heatmap/models/hexagon.js +60 -28
  146. package/lib/heatmap/models/index.js +6 -0
  147. package/lib/heatmap/triangulation.js +5 -0
  148. package/lib/image/index.js +36 -9
  149. package/lib/image/models/image.js +109 -66
  150. package/lib/image/models/index.js +3 -0
  151. package/lib/index.js +61 -7
  152. package/lib/line/index.js +40 -9
  153. package/lib/line/models/arc.js +124 -62
  154. package/lib/line/models/arc_3d.js +113 -56
  155. package/lib/line/models/earthArc_3d.js +115 -58
  156. package/lib/line/models/flow.js +70 -36
  157. package/lib/line/models/great_circle.js +104 -53
  158. package/lib/line/models/index.js +11 -0
  159. package/lib/line/models/line.js +146 -84
  160. package/lib/line/models/linearline.js +88 -43
  161. package/lib/line/models/simpleLine.js +79 -39
  162. package/lib/line/models/wall.js +103 -52
  163. package/lib/mask/index.js +36 -9
  164. package/lib/mask/models/fill.js +63 -29
  165. package/lib/mask/models/index.js +3 -0
  166. package/lib/plugins/DataMappingPlugin.js +125 -78
  167. package/lib/plugins/DataSourcePlugin.js +76 -45
  168. package/lib/plugins/FeatureScalePlugin.js +138 -67
  169. package/lib/plugins/LayerAnimateStylePlugin.js +10 -0
  170. package/lib/plugins/LayerMaskPlugin.js +17 -4
  171. package/lib/plugins/LayerModelPlugin.js +117 -70
  172. package/lib/plugins/LayerStylePlugin.js +14 -4
  173. package/lib/plugins/LightingPlugin.js +25 -12
  174. package/lib/plugins/MultiPassRendererPlugin.js +22 -11
  175. package/lib/plugins/PixelPickingPlugin.js +27 -12
  176. package/lib/plugins/RegisterStyleAttributePlugin.js +19 -5
  177. package/lib/plugins/ShaderUniformPlugin.js +34 -13
  178. package/lib/plugins/UpdateModelPlugin.js +10 -1
  179. package/lib/plugins/UpdateStyleAttributePlugin.js +16 -5
  180. package/lib/point/index.js +83 -26
  181. package/lib/point/models/earthExtrude.js +106 -58
  182. package/lib/point/models/earthFill.js +110 -52
  183. package/lib/point/models/extrude.js +103 -57
  184. package/lib/point/models/fill.js +90 -54
  185. package/lib/point/models/fillmage.js +107 -58
  186. package/lib/point/models/image.js +92 -47
  187. package/lib/point/models/index.js +12 -1
  188. package/lib/point/models/normal.js +64 -30
  189. package/lib/point/models/radar.js +72 -38
  190. package/lib/point/models/simplePoint.js +72 -38
  191. package/lib/point/models/text.js +305 -199
  192. package/lib/point/shape/extrude.js +20 -4
  193. package/lib/polygon/index.js +48 -11
  194. package/lib/polygon/models/extrude.js +146 -87
  195. package/lib/polygon/models/fill.js +89 -50
  196. package/lib/polygon/models/index.js +14 -2
  197. package/lib/polygon/models/ocean.js +88 -42
  198. package/lib/polygon/models/water.js +82 -37
  199. package/lib/raster/buffers/triangulation.js +7 -3
  200. package/lib/raster/index.js +40 -9
  201. package/lib/raster/models/index.js +5 -0
  202. package/lib/raster/models/raster.js +125 -80
  203. package/lib/raster/models/rasterRgb.js +139 -84
  204. package/lib/raster/models/rasterTerrainRgb.js +93 -56
  205. package/lib/tile/interaction/getRasterData.js +25 -14
  206. package/lib/tile/interaction/utils.js +19 -7
  207. package/lib/tile/manager/base.js +104 -63
  208. package/lib/tile/service/TileLayerService.js +60 -33
  209. package/lib/tile/service/TilePickService.js +48 -26
  210. package/lib/tile/service/TileSourceService.js +16 -2
  211. package/lib/tile/style/utils.js +3 -0
  212. package/lib/tile/tileFactory/DebugTile.js +54 -29
  213. package/lib/tile/tileFactory/ImageTile.js +46 -20
  214. package/lib/tile/tileFactory/MaskTile.js +51 -22
  215. package/lib/tile/tileFactory/RasterRGBTile.js +50 -22
  216. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +46 -20
  217. package/lib/tile/tileFactory/RasterTile.js +63 -30
  218. package/lib/tile/tileFactory/Tile.js +102 -63
  219. package/lib/tile/tileFactory/VectorTile.js +76 -41
  220. package/lib/tile/tileFactory/index.js +25 -0
  221. package/lib/tile/tileFactory/layers/TileDebugLayer.js +32 -6
  222. package/lib/tile/tileFactory/util.js +9 -0
  223. package/lib/tile/tileLayer/BaseLayer.js +153 -105
  224. package/lib/tile/utils.js +5 -1
  225. package/lib/utils/blend.js +5 -0
  226. package/lib/utils/collision-index.js +25 -9
  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,40 +1,60 @@
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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
13
20
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
14
22
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
15
24
  var _l7Core = require("@antv/l7-core");
25
+
16
26
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
27
+
17
28
  var _triangulation = require("../../core/triangulation");
29
+
18
30
  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); }; }
31
+
19
32
  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; } }
33
+
20
34
  /* babel-plugin-inline-import '../shaders/hexagon_3d_vert.glsl' */
21
35
  var heatmapGrid3dVert = "precision highp float;\n// \u591A\u8FB9\u5F62\u9876\u70B9\u5750\u6807\nattribute vec3 a_Position;\n// \u591A\u8FB9\u5F62\u7ECF\u7EAC\u5EA6\u5750\u6807\nattribute vec3 a_Pos;\n\nattribute vec3 a_Normal;\nattribute float a_Size;\nattribute vec4 a_Color;\nuniform vec2 u_radius;\nuniform float u_coverage: 0.9;\nuniform float u_angle: 0;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nvarying vec4 v_color;\n\nuniform vec2 u_sceneCenterMercator;\n\n#pragma include \"projection\"\n#pragma include \"project\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\n\nvoid main() {\n mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle));\n vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage));\n\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n \n vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // \u7ECF\u7EAC\u5EA6\n vec2 customLnglat = customProject(lnglat) - u_sceneCenterMercator; // \u5C06\u7ECF\u7EAC\u5EA6\u8F6C\u6362\u4E3A\u9AD8\u5FB72.0\u9700\u8981\u7684\u5E73\u9762\u5750\u6807\n vec4 project_pos = project_position(vec4(customLnglat, a_Position.z * a_Size, 1.0));\n\n float lightWeight = calc_lighting(project_pos);\n v_color =vec4(a_Color.rgb*lightWeight, a_Color.w);\n \n gl_Position = u_Mvp * vec4(customLnglat , a_Position.z * a_Size, 1.0);\n } else {\n vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // \u5B9E\u9645\u7684\u7ECF\u7EAC\u5EA6\n vec4 project_pos = project_position(vec4(lnglat, a_Position.z * a_Size, 1.0));\n \n float lightWeight = calc_lighting(project_pos);\n v_color =vec4(a_Color.rgb*lightWeight, a_Color.w);\n \n gl_Position = project_common_position_to_clipspace(project_pos);\n }\n\n\n\n setPickingColor(a_PickingColor);\n}\n";
36
+
22
37
  /* babel-plugin-inline-import '../shaders/hexagon_frag.glsl' */
23
38
  var heatmapGridFrag = "precision highp float;\nvarying vec4 v_color;\nuniform float u_opacity: 1;\n\n#pragma include \"picking\"\n\nvoid main() {\n gl_FragColor = v_color;\n gl_FragColor.a *= u_opacity;\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
39
+
24
40
  var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
25
41
  (0, _inherits2.default)(Grid3DModel, _BaseModel);
42
+
26
43
  var _super = _createSuper(Grid3DModel);
44
+
27
45
  function Grid3DModel() {
28
46
  (0, _classCallCheck2.default)(this, Grid3DModel);
29
47
  return _super.apply(this, arguments);
30
48
  }
49
+
31
50
  (0, _createClass2.default)(Grid3DModel, [{
32
51
  key: "getUninforms",
33
52
  value: function getUninforms() {
34
53
  var _ref = this.layer.getLayerConfig(),
35
- opacity = _ref.opacity,
36
- coverage = _ref.coverage,
37
- angle = _ref.angle;
54
+ opacity = _ref.opacity,
55
+ coverage = _ref.coverage,
56
+ angle = _ref.angle;
57
+
38
58
  return {
39
59
  u_opacity: opacity || 1.0,
40
60
  u_coverage: coverage || 1.0,
@@ -47,18 +67,23 @@ var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
47
67
  value: function () {
48
68
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
49
69
  return _regenerator.default.wrap(function _callee$(_context) {
50
- while (1) switch (_context.prev = _context.next) {
51
- case 0:
52
- return _context.abrupt("return", this.buildModels());
53
- case 1:
54
- case "end":
55
- return _context.stop();
70
+ while (1) {
71
+ switch (_context.prev = _context.next) {
72
+ case 0:
73
+ return _context.abrupt("return", this.buildModels());
74
+
75
+ case 1:
76
+ case "end":
77
+ return _context.stop();
78
+ }
56
79
  }
57
80
  }, _callee, this);
58
81
  }));
82
+
59
83
  function initModels() {
60
84
  return _initModels.apply(this, arguments);
61
85
  }
86
+
62
87
  return initModels;
63
88
  }()
64
89
  }, {
@@ -67,31 +92,37 @@ var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
67
92
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
68
93
  var model;
69
94
  return _regenerator.default.wrap(function _callee2$(_context2) {
70
- while (1) switch (_context2.prev = _context2.next) {
71
- case 0:
72
- _context2.next = 2;
73
- return this.layer.buildLayerModel({
74
- moduleName: 'heatmapGrid3d',
75
- vertexShader: heatmapGrid3dVert,
76
- fragmentShader: heatmapGridFrag,
77
- triangulation: _triangulation.PointExtrudeTriangulation,
78
- primitive: _l7Core.gl.TRIANGLES,
79
- depth: {
80
- enable: true
81
- }
82
- });
83
- case 2:
84
- model = _context2.sent;
85
- return _context2.abrupt("return", [model]);
86
- case 4:
87
- case "end":
88
- return _context2.stop();
95
+ while (1) {
96
+ switch (_context2.prev = _context2.next) {
97
+ case 0:
98
+ _context2.next = 2;
99
+ return this.layer.buildLayerModel({
100
+ moduleName: 'heatmapGrid3d',
101
+ vertexShader: heatmapGrid3dVert,
102
+ fragmentShader: heatmapGridFrag,
103
+ triangulation: _triangulation.PointExtrudeTriangulation,
104
+ primitive: _l7Core.gl.TRIANGLES,
105
+ depth: {
106
+ enable: true
107
+ }
108
+ });
109
+
110
+ case 2:
111
+ model = _context2.sent;
112
+ return _context2.abrupt("return", [model]);
113
+
114
+ case 4:
115
+ case "end":
116
+ return _context2.stop();
117
+ }
89
118
  }
90
119
  }, _callee2, this);
91
120
  }));
121
+
92
122
  function buildModels() {
93
123
  return _buildModels.apply(this, arguments);
94
124
  }
125
+
95
126
  return buildModels;
96
127
  }()
97
128
  }, {
@@ -152,4 +183,5 @@ var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
152
183
  }]);
153
184
  return Grid3DModel;
154
185
  }(_BaseModel2.default);
186
+
155
187
  exports.default = Grid3DModel;
@@ -1,59 +1,93 @@
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
10
14
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
+
11
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
12
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
13
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
14
22
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
15
24
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
+
16
26
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
+
17
28
  var _l7Core = require("@antv/l7-core");
29
+
18
30
  var _l7Utils = require("@antv/l7-utils");
31
+
19
32
  var _glMatrix = require("gl-matrix");
33
+
20
34
  var _inversify = require("inversify");
35
+
21
36
  require("reflect-metadata");
37
+
22
38
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
39
+
23
40
  var _triangulation = require("../../core/triangulation");
41
+
24
42
  var _lodash = require("lodash");
43
+
25
44
  var _triangulation2 = require("../triangulation");
45
+
26
46
  var _dec, _class;
47
+
27
48
  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); }; }
49
+
28
50
  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; } }
51
+
29
52
  /* babel-plugin-inline-import '../shaders/heatmap_3d_frag.glsl' */
30
53
  var heatmap3DFrag = "uniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_opacity;\nvarying vec2 v_texCoord;\nvarying float v_intensity;\n\nvoid main(){\n \n float intensity = texture2D(u_texture, v_texCoord).r;\n vec4 color = texture2D(u_colorTexture,vec2(intensity, 0));\n gl_FragColor = color;\n // gl_FragColor.a = color.a * smoothstep(0.1,0.2,intensity)* u_opacity;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n}\n";
54
+
31
55
  /* babel-plugin-inline-import '../shaders/heatmap_3d_vert.glsl' */
32
56
  var heatmap3DVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nuniform sampler2D u_texture;\nvarying vec2 v_texCoord;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_InverseViewProjectionMatrix;\nuniform mat4 u_ViewProjectionMatrixUncentered;\nvarying float v_intensity;\n\n\nvec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) {\n float t2 = t * t;\n float one_minus_t = 1.0 - t;\n float one_minus_t2 = one_minus_t * one_minus_t;\n return (P0 * one_minus_t2 * one_minus_t + P1 * 3.0 * t * one_minus_t2 + P2 * 3.0 * t2 * one_minus_t + P3 * t2 * t);\n}\nvec2 toBezier(float t, vec4 p){\n return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0));\n}\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n\n vec2 pos = a_Uv * vec2(2.0) - vec2(1.0); // \u5C06\u539F\u672C 0 -> 1 \u7684 uv \u8F6C\u6362\u4E3A -1 -> 1 \u7684\u6807\u51C6\u5750\u6807\u7A7A\u95F4\uFF08NDC\uFF09\n\n vec4 p1 = vec4(pos, 0.0, 1.0); // x/y \u5E73\u9762\u4E0A\u7684\u70B9\uFF08z == 0\uFF09\u53EF\u4EE5\u8BA4\u4E3A\u662F\u4E09\u7EF4\u4E0A\u7684\u70B9\u88AB\u6295\u5F71\u5230\u5E73\u9762\u540E\u7684\u70B9\n\tvec4 p2 = vec4(pos, 1.0, 1.0); // \u5E73\u884C\u4E8Ex/y\u5E73\u9762\u3001z==1 \u7684\u5E73\u9762\u4E0A\u7684\u70B9\n\n\tvec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // \u6839\u636E\u89C6\u56FE\u6295\u5F71\u77E9\u9635\u7684\u9006\u77E9\u9635\u5E73\u9762\u4E0A\u7684\u53CD\u7B97\u51FA\u4E09\u7EF4\u7A7A\u95F4\u4E2D\u7684\u70B9\uFF08p1\u5E73\u9762\u4E0A\u7684\u70B9\uFF09\n\tvec4 inverseP2 = u_InverseViewProjectionMatrix * p2;\n\n inverseP1 = inverseP1 / inverseP1.w; // \u5F52\u4E00\u5316\u64CD\u4F5C\uFF08\u5F52\u4E00\u5316\u540E\u4E3A\u4E16\u754C\u5750\u6807\uFF09\n\tinverseP2 = inverseP2 / inverseP2.w;\n\n\tfloat zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ??\n\tvec4 position = inverseP1 + zPos * (inverseP2 - inverseP1);\n\n vec4 b= vec4(0.5000, 0.0, 1.0, 0.5000);\n float fh;\n\n v_intensity = texture2D(u_texture, v_texCoord).r;\n fh = toBezier(v_intensity, b).y;\n gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.), 1.0);\n \n}\n"; // 绘制平面热力的 shader
57
+
33
58
  /* babel-plugin-inline-import '../shaders/heatmap_frag.glsl' */
34
59
  var heatmapColorFrag = "uniform sampler2D u_texture; // \u70ED\u529B\u5F3A\u5EA6\u56FE\nuniform sampler2D u_colorTexture; // \u6839\u636E\u5F3A\u5EA6\u5206\u5E03\u7684\u8272\u5E26\nuniform float u_opacity;\nvarying vec2 v_texCoord;\n\nuniform vec2 u_ViewportSize;\n\nfloat getBlurIndusty() {\n float vW = 2.0/u_ViewportSize.x;\n float vH = 2.0/u_ViewportSize.y;\n vec2 vUv = v_texCoord;\n float i11 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i12 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i13 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n\n float i21 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y) ).r;\n float i22 = texture2D( u_texture, vec2( vUv.x , vUv.y) ).r;\n float i23 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y) ).r;\n\n float i31 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y-1.0*vH) ).r;\n float i32 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y-1.0*vH) ).r;\n float i33 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y-1.0*vH) ).r;\n\n return(\n i11 + \n i12 + \n i13 + \n i21 + \n i21 + \n i22 + \n i23 + \n i31 + \n i32 + \n i33\n )/9.0;\n}\n\n\nvoid main(){\n // float intensity = texture2D(u_texture, v_texCoord).r;\n float intensity = getBlurIndusty();\n vec4 color = texture2D(u_colorTexture, vec2(intensity, 0.0));\n\n gl_FragColor =color;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n\n}\n";
60
+
35
61
  /* babel-plugin-inline-import '../shaders/heatmap_vert.glsl' */
36
62
  var heatmapColorVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n\nvoid main() {\n v_texCoord = a_Uv;\n\n gl_Position = vec4(a_Position.xy, 0, 1.);\n}\n";
63
+
37
64
  /* babel-plugin-inline-import '../shaders/heatmap_framebuffer_frag.glsl' */
38
65
  var heatmapFramebufferFrag = "precision highp float;\nuniform float u_intensity;\nvarying float v_weight;\nvarying vec2 v_extrude;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(){\n float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);\n float val = v_weight * u_intensity * GAUSS_COEF * exp(d);\n gl_FragColor = vec4(val, 1., 1., 1.);\n}\n";
66
+
39
67
  /* babel-plugin-inline-import '../shaders/heatmap_framebuffer_vert.glsl' */
40
68
  var heatmapFramebufferVert = "precision highp float;\nattribute vec3 a_Position;\nattribute float a_Size;\nattribute vec2 a_Dir;\nuniform float u_intensity;\nuniform float u_radius;\nvarying vec2 v_extrude;\nvarying float v_weight;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\n#define GAUSS_COEF 0.3989422804014327\n\n#pragma include \"projection\"\n\nvoid main(){\n v_weight = a_Size;\n float ZERO = 1.0 / 255.0 / 16.0;\n float extrude_x = a_Dir.x * 2.0 -1.0;\n float extrude_y = a_Dir.y * 2.0 -1.0;\n vec2 extrude_dir = normalize(vec2(extrude_x,extrude_y));\n float S = sqrt(-2.0 * log(ZERO / a_Size / u_intensity / GAUSS_COEF)) / 2.5;\n v_extrude = extrude_dir * S;\n\n vec2 offset = project_pixel(v_extrude * u_radius);\n vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy + offset, 0.0, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n }\n}\n";
41
69
  var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function (_BaseModel) {
42
70
  (0, _inherits2.default)(HeatMapModel, _BaseModel);
71
+
43
72
  var _super = _createSuper(HeatMapModel);
73
+
44
74
  function HeatMapModel() {
45
75
  (0, _classCallCheck2.default)(this, HeatMapModel);
46
76
  return _super.apply(this, arguments);
47
77
  }
78
+
48
79
  (0, _createClass2.default)(HeatMapModel, [{
49
80
  key: "render",
50
81
  value: function render(options) {
51
82
  var _this = this;
83
+
52
84
  var _this$rendererService = this.rendererService,
53
- clear = _this$rendererService.clear,
54
- useFramebuffer = _this$rendererService.useFramebuffer;
85
+ clear = _this$rendererService.clear,
86
+ useFramebuffer = _this$rendererService.useFramebuffer;
87
+
55
88
  var _ref = this.layer.getLayerConfig(),
56
- rampColors = _ref.rampColors;
89
+ rampColors = _ref.rampColors;
90
+
57
91
  useFramebuffer(this.heatmapFramerBuffer, function () {
58
92
  clear({
59
93
  color: [0, 0, 0, 0],
@@ -61,11 +95,14 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
61
95
  stencil: 0,
62
96
  framebuffer: _this.heatmapFramerBuffer
63
97
  });
98
+
64
99
  _this.drawIntensityMode();
65
100
  });
101
+
66
102
  if (!(0, _lodash.isEqual)(this.preRampColors, rampColors)) {
67
103
  this.updateColorTexture();
68
104
  }
105
+
69
106
  this.shapeType === 'heatmap' ? this.drawColorMode(options) : this.draw3DHeatMap(options);
70
107
  }
71
108
  }, {
@@ -78,45 +115,55 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
78
115
  value: function () {
79
116
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
80
117
  var _shapeAttr$scale;
118
+
81
119
  var _this$rendererService2, createFramebuffer, getViewportSize, createTexture2D, shapeAttr, shapeType, _getViewportSize, width, height;
120
+
82
121
  return _regenerator.default.wrap(function _callee$(_context) {
83
- while (1) switch (_context.prev = _context.next) {
84
- case 0:
85
- _this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D;
86
- shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
87
- shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
88
- this.shapeType = shapeType;
89
- // 生成热力图密度图
90
- _context.next = 6;
91
- return this.buildHeatMapIntensity();
92
- case 6:
93
- this.intensityModel = _context.sent;
94
- // 渲染到屏幕
95
- this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() // 2D
96
- : this.build3dHeatMap(); // 3D
97
- _getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height; // 初始化密度图纹理
98
- this.heatmapFramerBuffer = createFramebuffer({
99
- color: createTexture2D({
100
- width: Math.floor(width / 4),
101
- height: Math.floor(height / 4),
102
- wrapS: _l7Core.gl.CLAMP_TO_EDGE,
103
- wrapT: _l7Core.gl.CLAMP_TO_EDGE,
104
- min: _l7Core.gl.LINEAR,
105
- mag: _l7Core.gl.LINEAR
106
- }),
107
- depth: false
108
- });
109
- this.updateColorTexture();
110
- return _context.abrupt("return", [this.intensityModel, this.colorModel]);
111
- case 12:
112
- case "end":
113
- return _context.stop();
122
+ while (1) {
123
+ switch (_context.prev = _context.next) {
124
+ case 0:
125
+ _this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D;
126
+ shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
127
+ shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
128
+ this.shapeType = shapeType; // 生成热力图密度图
129
+
130
+ _context.next = 6;
131
+ return this.buildHeatMapIntensity();
132
+
133
+ case 6:
134
+ this.intensityModel = _context.sent;
135
+ // 渲染到屏幕
136
+ this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() // 2D
137
+ : this.build3dHeatMap(); // 3D
138
+
139
+ _getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height; // 初始化密度图纹理
140
+
141
+ this.heatmapFramerBuffer = createFramebuffer({
142
+ color: createTexture2D({
143
+ width: Math.floor(width / 4),
144
+ height: Math.floor(height / 4),
145
+ wrapS: _l7Core.gl.CLAMP_TO_EDGE,
146
+ wrapT: _l7Core.gl.CLAMP_TO_EDGE,
147
+ min: _l7Core.gl.LINEAR,
148
+ mag: _l7Core.gl.LINEAR
149
+ }),
150
+ depth: false
151
+ });
152
+ this.updateColorTexture();
153
+ return _context.abrupt("return", [this.intensityModel, this.colorModel]);
154
+
155
+ case 12:
156
+ case "end":
157
+ return _context.stop();
158
+ }
114
159
  }
115
160
  }, _callee, this);
116
161
  }));
162
+
117
163
  function initModels() {
118
164
  return _initModels.apply(this, arguments);
119
165
  }
166
+
120
167
  return initModels;
121
168
  }()
122
169
  }, {
@@ -124,18 +171,23 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
124
171
  value: function () {
125
172
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
126
173
  return _regenerator.default.wrap(function _callee2$(_context2) {
127
- while (1) switch (_context2.prev = _context2.next) {
128
- case 0:
129
- return _context2.abrupt("return", this.initModels());
130
- case 1:
131
- case "end":
132
- return _context2.stop();
174
+ while (1) {
175
+ switch (_context2.prev = _context2.next) {
176
+ case 0:
177
+ return _context2.abrupt("return", this.initModels());
178
+
179
+ case 1:
180
+ case "end":
181
+ return _context2.stop();
182
+ }
133
183
  }
134
184
  }, _callee2, this);
135
185
  }));
186
+
136
187
  function buildModels() {
137
188
  return _buildModels.apply(this, arguments);
138
189
  }
190
+
139
191
  return buildModels;
140
192
  }()
141
193
  }, {
@@ -171,7 +223,7 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
171
223
  size: 1,
172
224
  update: function update(feature) {
173
225
  var _feature$size = feature.size,
174
- size = _feature$size === void 0 ? 1 : _feature$size;
226
+ size = _feature$size === void 0 ? 1 : _feature$size;
175
227
  return [size];
176
228
  }
177
229
  }
@@ -183,35 +235,41 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
183
235
  var _buildHeatMapIntensity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
184
236
  var model;
185
237
  return _regenerator.default.wrap(function _callee3$(_context3) {
186
- while (1) switch (_context3.prev = _context3.next) {
187
- case 0:
188
- this.layer.triangulation = _triangulation.HeatmapTriangulation;
189
- _context3.next = 3;
190
- return this.layer.buildLayerModel({
191
- moduleName: 'heatmapIntensity',
192
- vertexShader: heatmapFramebufferVert,
193
- fragmentShader: heatmapFramebufferFrag,
194
- triangulation: _triangulation.HeatmapTriangulation,
195
- depth: {
196
- enable: false
197
- },
198
- cull: {
199
- enable: true,
200
- face: (0, _l7Utils.getCullFace)(this.mapService.version)
201
- }
202
- });
203
- case 3:
204
- model = _context3.sent;
205
- return _context3.abrupt("return", model);
206
- case 5:
207
- case "end":
208
- return _context3.stop();
238
+ while (1) {
239
+ switch (_context3.prev = _context3.next) {
240
+ case 0:
241
+ this.layer.triangulation = _triangulation.HeatmapTriangulation;
242
+ _context3.next = 3;
243
+ return this.layer.buildLayerModel({
244
+ moduleName: 'heatmapIntensity',
245
+ vertexShader: heatmapFramebufferVert,
246
+ fragmentShader: heatmapFramebufferFrag,
247
+ triangulation: _triangulation.HeatmapTriangulation,
248
+ depth: {
249
+ enable: false
250
+ },
251
+ cull: {
252
+ enable: true,
253
+ face: (0, _l7Utils.getCullFace)(this.mapService.version)
254
+ }
255
+ });
256
+
257
+ case 3:
258
+ model = _context3.sent;
259
+ return _context3.abrupt("return", model);
260
+
261
+ case 5:
262
+ case "end":
263
+ return _context3.stop();
264
+ }
209
265
  }
210
266
  }, _callee3, this);
211
267
  }));
268
+
212
269
  function buildHeatMapIntensity() {
213
270
  return _buildHeatMapIntensity.apply(this, arguments);
214
271
  }
272
+
215
273
  return buildHeatMapIntensity;
216
274
  }()
217
275
  }, {
@@ -221,15 +279,17 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
221
279
  vs: heatmapColorVert,
222
280
  fs: heatmapColorFrag
223
281
  });
282
+
224
283
  var _this$shaderModuleSer = this.shaderModuleService.getModule('heatmapColor'),
225
- vs = _this$shaderModuleSer.vs,
226
- fs = _this$shaderModuleSer.fs,
227
- uniforms = _this$shaderModuleSer.uniforms;
284
+ vs = _this$shaderModuleSer.vs,
285
+ fs = _this$shaderModuleSer.fs,
286
+ uniforms = _this$shaderModuleSer.uniforms;
287
+
228
288
  var _this$rendererService3 = this.rendererService,
229
- createAttribute = _this$rendererService3.createAttribute,
230
- createElements = _this$rendererService3.createElements,
231
- createBuffer = _this$rendererService3.createBuffer,
232
- createModel = _this$rendererService3.createModel;
289
+ createAttribute = _this$rendererService3.createAttribute,
290
+ createElements = _this$rendererService3.createElements,
291
+ createBuffer = _this$rendererService3.createBuffer,
292
+ createModel = _this$rendererService3.createModel;
233
293
  return createModel({
234
294
  vs: vs,
235
295
  fs: fs,
@@ -264,15 +324,17 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
264
324
  key: "drawIntensityMode",
265
325
  value: function drawIntensityMode() {
266
326
  var _this$intensityModel;
327
+
267
328
  var _ref2 = this.layer.getLayerConfig(),
268
- opacity = _ref2.opacity,
269
- _ref2$intensity = _ref2.intensity,
270
- intensity = _ref2$intensity === void 0 ? 10 : _ref2$intensity,
271
- _ref2$radius = _ref2.radius,
272
- radius = _ref2$radius === void 0 ? 5 : _ref2$radius;
329
+ opacity = _ref2.opacity,
330
+ _ref2$intensity = _ref2.intensity,
331
+ intensity = _ref2$intensity === void 0 ? 10 : _ref2$intensity,
332
+ _ref2$radius = _ref2.radius,
333
+ radius = _ref2$radius === void 0 ? 5 : _ref2$radius;
334
+
273
335
  this.layerService.beforeRenderData(this.layer);
274
- this.layer.hooks.beforeRender.call();
275
- // 绘制密度图
336
+ this.layer.hooks.beforeRender.call(); // 绘制密度图
337
+
276
338
  (_this$intensityModel = this.intensityModel) === null || _this$intensityModel === void 0 ? void 0 : _this$intensityModel.draw({
277
339
  uniforms: {
278
340
  u_opacity: opacity || 1.0,
@@ -305,8 +367,10 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
305
367
  key: "drawColorMode",
306
368
  value: function drawColorMode(options) {
307
369
  var _this$colorModel;
370
+
308
371
  var _ref3 = this.layer.getLayerConfig(),
309
- opacity = _ref3.opacity;
372
+ opacity = _ref3.opacity;
373
+
310
374
  (_this$colorModel = this.colorModel) === null || _this$colorModel === void 0 ? void 0 : _this$colorModel.draw({
311
375
  uniforms: {
312
376
  u_opacity: opacity || 1.0,
@@ -321,18 +385,21 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
321
385
  key: "draw3DHeatMap",
322
386
  value: function draw3DHeatMap(options) {
323
387
  var _this$colorModel2;
324
- var _ref4 = this.layer.getLayerConfig(),
325
- opacity = _ref4.opacity;
326
388
 
327
- // const invert = mat4.invert(
389
+ var _ref4 = this.layer.getLayerConfig(),
390
+ opacity = _ref4.opacity; // const invert = mat4.invert(
328
391
  // mat4.create(),
329
392
  // mat4.fromValues(
330
393
  // // @ts-ignore
331
394
  // ...this.cameraService.getViewProjectionMatrixUncentered(),
332
395
  // ),
333
396
  // ) as mat4;
397
+
398
+
334
399
  var invert = _glMatrix.mat4.create();
400
+
335
401
  _glMatrix.mat4.invert(invert, this.cameraService.getViewProjectionMatrixUncentered());
402
+
336
403
  (_this$colorModel2 = this.colorModel) === null || _this$colorModel2 === void 0 ? void 0 : _this$colorModel2.draw({
337
404
  uniforms: {
338
405
  u_opacity: opacity || 1.0,
@@ -357,23 +424,27 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
357
424
  key: "build3dHeatMap",
358
425
  value: function build3dHeatMap() {
359
426
  var getViewportSize = this.rendererService.getViewportSize;
427
+
360
428
  var _getViewportSize2 = getViewportSize(),
361
- width = _getViewportSize2.width,
362
- height = _getViewportSize2.height;
429
+ width = _getViewportSize2.width,
430
+ height = _getViewportSize2.height;
431
+
363
432
  var triangulation = (0, _triangulation2.heatMap3DTriangulation)(width / 4.0, height / 4.0);
364
433
  this.shaderModuleService.registerModule('heatmap3dColor', {
365
434
  vs: heatmap3DVert,
366
435
  fs: heatmap3DFrag
367
436
  });
437
+
368
438
  var _this$shaderModuleSer2 = this.shaderModuleService.getModule('heatmap3dColor'),
369
- vs = _this$shaderModuleSer2.vs,
370
- fs = _this$shaderModuleSer2.fs,
371
- uniforms = _this$shaderModuleSer2.uniforms;
439
+ vs = _this$shaderModuleSer2.vs,
440
+ fs = _this$shaderModuleSer2.fs,
441
+ uniforms = _this$shaderModuleSer2.uniforms;
442
+
372
443
  var _this$rendererService4 = this.rendererService,
373
- createAttribute = _this$rendererService4.createAttribute,
374
- createElements = _this$rendererService4.createElements,
375
- createBuffer = _this$rendererService4.createBuffer,
376
- createModel = _this$rendererService4.createModel;
444
+ createAttribute = _this$rendererService4.createAttribute,
445
+ createElements = _this$rendererService4.createElements,
446
+ createBuffer = _this$rendererService4.createBuffer,
447
+ createModel = _this$rendererService4.createModel;
377
448
  return createModel({
378
449
  vs: vs,
379
450
  fs: fs,
@@ -423,11 +494,14 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
423
494
  key: "updateColorTexture",
424
495
  value: function updateColorTexture() {
425
496
  var createTexture2D = this.rendererService.createTexture2D;
497
+
426
498
  if (this.texture) {
427
499
  this.texture.destroy();
428
500
  }
501
+
429
502
  var _ref5 = this.layer.getLayerConfig(),
430
- rampColors = _ref5.rampColors;
503
+ rampColors = _ref5.rampColors;
504
+
431
505
  var imageData = (0, _l7Utils.generateColorRamp)(rampColors);
432
506
  this.colorTexture = createTexture2D({
433
507
  data: new Uint8Array(imageData.data),