@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,40 +1,61 @@
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 _lodash = require("lodash");
27
+
17
28
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
29
+
18
30
  var _triangulation = require("../../core/triangulation");
31
+
19
32
  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); }; }
33
+
20
34
  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; } }
35
+
21
36
  /* babel-plugin-inline-import '../shaders/bloomsphere_frag.glsl' */
22
37
  var bloomSphereFrag = "\nuniform float u_opacity;\nuniform vec3 u_CameraPosition;\nvarying vec3 vVertexNormal;\n\nvarying vec4 v_Color;\nvoid main() {\n\n\n float intensity = - dot(normalize(vVertexNormal), normalize(u_CameraPosition));\n // \u53BB\u9664\u80CC\u9762\n if(intensity > 1.0) intensity = 0.0;\n\n gl_FragColor = vec4(v_Color.rgb, v_Color.a * intensity * u_opacity);\n}\n";
38
+
23
39
  /* babel-plugin-inline-import '../shaders/bloomsphere_vert.glsl' */
24
40
  var bloomSphereVert = "\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute vec2 a_Uv;\nattribute vec4 a_Color;\nuniform vec3 u_CameraPosition;\nuniform mat4 u_ViewProjectionMatrix;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_ViewMatrix;\n\nvarying vec3 vVertexNormal;\nvarying vec4 v_Color;\n\nvoid main() {\n v_Color = a_Color;\n\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
41
+
25
42
  var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
26
43
  (0, _inherits2.default)(EarthBloomSphereModel, _BaseModel);
44
+
27
45
  var _super = _createSuper(EarthBloomSphereModel);
46
+
28
47
  function EarthBloomSphereModel() {
29
48
  (0, _classCallCheck2.default)(this, EarthBloomSphereModel);
30
49
  return _super.apply(this, arguments);
31
50
  }
51
+
32
52
  (0, _createClass2.default)(EarthBloomSphereModel, [{
33
53
  key: "getUninforms",
34
54
  value: function getUninforms() {
35
55
  var _ref = this.layer.getLayerConfig(),
36
- _ref$opacity = _ref.opacity,
37
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
56
+ _ref$opacity = _ref.opacity,
57
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
58
+
38
59
  return {
39
60
  u_opacity: (0, _lodash.isNumber)(opacity) ? opacity : 1.0
40
61
  };
@@ -44,18 +65,23 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
44
65
  value: function () {
45
66
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
46
67
  return _regenerator.default.wrap(function _callee$(_context) {
47
- while (1) switch (_context.prev = _context.next) {
48
- case 0:
49
- return _context.abrupt("return", this.buildModels());
50
- case 1:
51
- case "end":
52
- return _context.stop();
68
+ while (1) {
69
+ switch (_context.prev = _context.next) {
70
+ case 0:
71
+ return _context.abrupt("return", this.buildModels());
72
+
73
+ case 1:
74
+ case "end":
75
+ return _context.stop();
76
+ }
53
77
  }
54
78
  }, _callee, this);
55
79
  }));
80
+
56
81
  function initModels() {
57
82
  return _initModels.apply(this, arguments);
58
83
  }
84
+
59
85
  return initModels;
60
86
  }()
61
87
  }, {
@@ -69,33 +95,39 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
69
95
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
70
96
  var model;
71
97
  return _regenerator.default.wrap(function _callee2$(_context2) {
72
- while (1) switch (_context2.prev = _context2.next) {
73
- case 0:
74
- // Tip: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)
75
- this.layer.zIndex = -999;
76
- _context2.next = 3;
77
- return this.layer.buildLayerModel({
78
- moduleName: 'earthBloom',
79
- vertexShader: bloomSphereVert,
80
- fragmentShader: bloomSphereFrag,
81
- triangulation: _triangulation.earthOuterTriangulation,
82
- depth: {
83
- enable: false
84
- },
85
- blend: this.getBlend()
86
- });
87
- case 3:
88
- model = _context2.sent;
89
- return _context2.abrupt("return", [model]);
90
- case 5:
91
- case "end":
92
- return _context2.stop();
98
+ while (1) {
99
+ switch (_context2.prev = _context2.next) {
100
+ case 0:
101
+ // Tip: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)
102
+ this.layer.zIndex = -999;
103
+ _context2.next = 3;
104
+ return this.layer.buildLayerModel({
105
+ moduleName: 'earthBloom',
106
+ vertexShader: bloomSphereVert,
107
+ fragmentShader: bloomSphereFrag,
108
+ triangulation: _triangulation.earthOuterTriangulation,
109
+ depth: {
110
+ enable: false
111
+ },
112
+ blend: this.getBlend()
113
+ });
114
+
115
+ case 3:
116
+ model = _context2.sent;
117
+ return _context2.abrupt("return", [model]);
118
+
119
+ case 5:
120
+ case "end":
121
+ return _context2.stop();
122
+ }
93
123
  }
94
124
  }, _callee2, this);
95
125
  }));
126
+
96
127
  function buildModels() {
97
128
  return _buildModels.apply(this, arguments);
98
129
  }
130
+
99
131
  return buildModels;
100
132
  }()
101
133
  }, {
@@ -114,7 +146,7 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
114
146
  size: 1,
115
147
  update: function update(feature) {
116
148
  var _feature$size = feature.size,
117
- size = _feature$size === void 0 ? 1 : _feature$size;
149
+ size = _feature$size === void 0 ? 1 : _feature$size;
118
150
  return Array.isArray(size) ? [size[0]] : [size];
119
151
  }
120
152
  }
@@ -155,4 +187,5 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
155
187
  }]);
156
188
  return EarthBloomSphereModel;
157
189
  }(_BaseModel2.default);
190
+
158
191
  exports.default = EarthBloomSphereModel;
@@ -1,29 +1,33 @@
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.EARTH_SEGMENTS = exports.EARTH_RADIUS_OUTER = exports.EARTH_RADIUS = void 0;
8
9
  exports.lglt2xyz = lglt2xyz;
9
10
  exports.primitiveSphere = primitiveSphere;
11
+
10
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
11
14
  var _glMatrix = require("gl-matrix");
12
- // 该文件专门记录地球模式的数值
13
15
 
16
+ // 该文件专门记录地球模式的数值
14
17
  // 地球网格半径
15
18
  var EARTH_RADIUS = 100;
16
19
  exports.EARTH_RADIUS = EARTH_RADIUS;
17
20
  var EARTH_SEGMENTS = 36;
18
21
  exports.EARTH_SEGMENTS = EARTH_SEGMENTS;
19
22
  var EARTH_RADIUS_OUTER = 40;
20
-
21
23
  /**
22
24
  * 角度转弧度
23
25
  * @param deg
24
26
  * @returns
25
27
  */
28
+
26
29
  exports.EARTH_RADIUS_OUTER = EARTH_RADIUS_OUTER;
30
+
27
31
  function torad(deg) {
28
32
  return deg / 180 * Math.acos(-1);
29
33
  }
@@ -33,30 +37,36 @@ function torad(deg) {
33
37
  * @param latitude 纬度
34
38
  * @param radius 半径
35
39
  */
40
+
41
+
36
42
  function lglt2xyz(lnglat) {
37
43
  // TODO: + Math.PI/2 是为了对齐坐标
38
44
  var lng = torad(lnglat[0]) + Math.PI / 2;
39
- var lat = torad(lnglat[1]);
45
+ var lat = torad(lnglat[1]); // TODO: 手动增加一些偏移,减轻面的冲突
40
46
 
41
- // TODO: 手动增加一些偏移,减轻面的冲突
42
47
  var radius = EARTH_RADIUS + Math.random() * 0.4;
43
48
  var z = radius * Math.cos(lat) * Math.cos(lng);
44
49
  var x = radius * Math.cos(lat) * Math.sin(lng);
45
50
  var y = radius * Math.sin(lat);
46
51
  return [x, y, z];
47
52
  }
48
-
49
53
  /**
50
54
  * 构建地球球体网格
51
55
  * @param radius
52
56
  * @param opt
53
57
  * @returns
54
58
  */
59
+
60
+
55
61
  function primitiveSphere(radius, opt) {
56
62
  var matRotY = _glMatrix.mat4.create();
63
+
57
64
  var matRotZ = _glMatrix.mat4.create();
65
+
58
66
  var up = _glMatrix.vec3.fromValues(0, 1, 0);
67
+
59
68
  var tmpVec3 = _glMatrix.vec3.fromValues(0, 0, 0);
69
+
60
70
  opt = opt || {};
61
71
  radius = typeof radius !== 'undefined' ? radius : 1;
62
72
  var segments = typeof opt.segments !== 'undefined' ? opt.segments : 32;
@@ -68,31 +78,44 @@ function primitiveSphere(radius, opt) {
68
78
  var positionsArr = [];
69
79
  var normalArr = [];
70
80
  var uvs = [];
81
+
71
82
  for (var zRotationStep = 0; zRotationStep <= totalZRotationSteps; zRotationStep++) {
72
83
  var normalizedZ = zRotationStep / totalZRotationSteps;
73
84
  var angleZ = normalizedZ * Math.PI;
85
+
74
86
  for (var yRotationStep = 0; yRotationStep <= totalYRotationSteps; yRotationStep++) {
75
87
  var normalizedY = yRotationStep / totalYRotationSteps;
76
88
  var angleY = normalizedY * Math.PI * 2;
89
+
77
90
  _glMatrix.mat4.identity(matRotZ);
91
+
78
92
  _glMatrix.mat4.rotateZ(matRotZ, matRotZ, -angleZ);
93
+
79
94
  _glMatrix.mat4.identity(matRotY);
95
+
80
96
  _glMatrix.mat4.rotateY(matRotY, matRotY, angleY);
97
+
81
98
  _glMatrix.vec3.transformMat4(tmpVec3, up, matRotZ);
99
+
82
100
  _glMatrix.vec3.transformMat4(tmpVec3, tmpVec3, matRotY);
101
+
83
102
  _glMatrix.vec3.scale(tmpVec3, tmpVec3, -radius);
103
+
84
104
  positions.push(tmpVec3.slice());
85
105
  positionsArr.push.apply(positionsArr, (0, _toConsumableArray2.default)(tmpVec3.slice()));
106
+
86
107
  _glMatrix.vec3.normalize(tmpVec3, tmpVec3);
108
+
87
109
  normalArr.push.apply(normalArr, (0, _toConsumableArray2.default)(tmpVec3.slice()));
88
- uvs.push([normalizedY, 1 - normalizedZ]);
110
+ uvs.push([normalizedY, 1 - normalizedZ]); // position 和 uv 一起存储
89
111
 
90
- // position 和 uv 一起存储
91
112
  positionsArr.push(normalizedY, 1 - normalizedZ);
92
113
  }
114
+
93
115
  if (zRotationStep > 0) {
94
116
  var verticesCount = positions.length;
95
117
  var firstIndex = verticesCount - 2 * (totalYRotationSteps + 1);
118
+
96
119
  for (; firstIndex + totalYRotationSteps + 2 < verticesCount; firstIndex++) {
97
120
  indices.push([firstIndex, firstIndex + 1, firstIndex + totalYRotationSteps + 1]);
98
121
  indicesArr.push(firstIndex, firstIndex + 1, firstIndex + totalYRotationSteps + 1);
@@ -101,6 +124,7 @@ function primitiveSphere(radius, opt) {
101
124
  }
102
125
  }
103
126
  }
127
+
104
128
  return {
105
129
  cells: indices,
106
130
  positions: positions,
@@ -1,65 +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 _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 _BaseLayer2 = _interopRequireDefault(require("../core/BaseLayer"));
29
+
18
30
  var _models = _interopRequireDefault(require("./models"));
31
+
19
32
  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); }; }
33
+
20
34
  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; } }
35
+
21
36
  var HeatMapLayer = /*#__PURE__*/function (_BaseLayer) {
22
37
  (0, _inherits2.default)(HeatMapLayer, _BaseLayer);
38
+
23
39
  var _super = _createSuper(HeatMapLayer);
40
+
24
41
  function HeatMapLayer() {
25
42
  var _this;
43
+
26
44
  (0, _classCallCheck2.default)(this, HeatMapLayer);
45
+
27
46
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28
47
  args[_key] = arguments[_key];
29
48
  }
49
+
30
50
  _this = _super.call.apply(_super, [this].concat(args));
31
51
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", 'HeatMapLayer');
32
52
  return _this;
33
53
  }
54
+
34
55
  (0, _createClass2.default)(HeatMapLayer, [{
35
56
  key: "buildModels",
36
57
  value: function () {
37
58
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
38
59
  var shape;
39
60
  return _regenerator.default.wrap(function _callee$(_context) {
40
- while (1) switch (_context.prev = _context.next) {
41
- case 0:
42
- shape = this.getModelType();
43
- this.layerModel = new _models.default[shape](this);
44
- _context.next = 4;
45
- return this.initLayerModels();
46
- case 4:
47
- case "end":
48
- return _context.stop();
61
+ while (1) {
62
+ switch (_context.prev = _context.next) {
63
+ case 0:
64
+ shape = this.getModelType();
65
+ this.layerModel = new _models.default[shape](this);
66
+ _context.next = 4;
67
+ return this.initLayerModels();
68
+
69
+ case 4:
70
+ case "end":
71
+ return _context.stop();
72
+ }
49
73
  }
50
74
  }, _callee, this);
51
75
  }));
76
+
52
77
  function buildModels() {
53
78
  return _buildModels.apply(this, arguments);
54
79
  }
80
+
55
81
  return buildModels;
56
82
  }()
57
83
  }, {
58
84
  key: "renderModels",
59
85
  value: function renderModels() {
60
86
  var _this2 = this;
87
+
61
88
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
62
89
  var shape = this.getModelType();
90
+
63
91
  if (shape === 'heatmap') {
64
92
  if (this.layerModel) {
65
93
  this.layerModel.render(options); // 独立的渲染流程
@@ -67,9 +95,11 @@ var HeatMapLayer = /*#__PURE__*/function (_BaseLayer) {
67
95
 
68
96
  return this;
69
97
  }
98
+
70
99
  if (this.encodeDataLength <= 0 && !this.forceRender) {
71
100
  return this;
72
101
  }
102
+
73
103
  this.hooks.beforeRender.call();
74
104
  this.models.forEach(function (model) {
75
105
  return model.draw({
@@ -94,24 +124,32 @@ var HeatMapLayer = /*#__PURE__*/function (_BaseLayer) {
94
124
  key: "getModelType",
95
125
  value: function getModelType() {
96
126
  var _shapeAttribute$scale;
127
+
97
128
  var shapeAttribute = this.styleAttributeService.getLayerStyleAttribute('shape');
129
+
98
130
  var _this$getLayerConfig = this.getLayerConfig(),
99
- shape3d = _this$getLayerConfig.shape3d;
131
+ shape3d = _this$getLayerConfig.shape3d;
132
+
100
133
  var source = this.getSource();
101
134
  var sourceType = source.data.type;
102
135
  var shape = (shapeAttribute === null || shapeAttribute === void 0 ? void 0 : (_shapeAttribute$scale = shapeAttribute.scale) === null || _shapeAttribute$scale === void 0 ? void 0 : _shapeAttribute$scale.field) || 'heatmap';
136
+
103
137
  if (shape === 'heatmap' || shape === 'heatmap3d') {
104
138
  return 'heatmap';
105
139
  }
140
+
106
141
  if (sourceType === 'hexagon') {
107
142
  return (shape3d === null || shape3d === void 0 ? void 0 : shape3d.indexOf(shape)) === -1 ? 'hexagon' : 'grid3d';
108
143
  }
144
+
109
145
  if (sourceType === 'grid') {
110
146
  return (shape3d === null || shape3d === void 0 ? void 0 : shape3d.indexOf(shape)) === -1 ? 'grid' : 'grid3d';
111
147
  }
148
+
112
149
  return 'heatmap';
113
150
  }
114
151
  }]);
115
152
  return HeatMapLayer;
116
153
  }(_BaseLayer2.default);
154
+
117
155
  exports.default = HeatMapLayer;
@@ -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/grid_vert.glsl' */
21
35
  var heatmapGridVert = "precision highp float;\r\n// \u591A\u8FB9\u5F62\u9876\u70B9\u5750\u6807\r\nattribute vec3 a_Position;\r\n// \u591A\u8FB9\u5F62\u7ECF\u7EAC\u5EA6\u5750\u6807\r\nattribute vec3 a_Pos;\r\nattribute float a_Size;\r\nattribute vec4 a_Color;\r\nuniform vec2 u_radius;\r\nuniform float u_coverage: 0.9;\r\nuniform float u_angle: 0;\r\nuniform mat4 u_ModelMatrix;\r\nuniform mat4 u_Mvp;\r\nvarying vec4 v_color;\r\n\r\nuniform vec2 u_SceneCenterMKT;\r\n\r\n#pragma include \"projection\"\r\n#pragma include \"project\"\r\n#pragma include \"picking\"\r\n\r\nvoid main() {\r\n v_color = a_Color;\r\n\r\n mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle));\r\n vec2 offset = a_Position.xy * u_radius * rotationMatrix * u_coverage ;\r\n // vec2 lnglat = unProjectFlat(a_Pos.xy + offset);\r\n // vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));\r\n // gl_Position = project_common_position_to_clipspace(project_pos);\r\n\r\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\r\n vec2 lnglat = unProjectFlat(a_Pos.xy + offset);\r\n vec2 customLnglat = customProject(lnglat) - u_SceneCenterMKT; // \u5C06\u7ECF\u7EAC\u5EA6\u8F6C\u6362\u4E3A\u9AD8\u5FB72.0\u9700\u8981\u7684\u5E73\u9762\u5750\u6807\r\n vec4 project_pos = project_position(vec4(customLnglat, 0, 1.0));\r\n gl_Position = u_Mvp * (project_pos);\r\n } else {\r\n vec2 lnglat = unProjectFlat(a_Pos.xy + offset);\r\n vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));\r\n gl_Position = project_common_position_to_clipspace(project_pos);\r\n }\r\n\r\n setPickingColor(a_PickingColor);\r\n}\r\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 GridModel = /*#__PURE__*/function (_BaseModel) {
25
41
  (0, _inherits2.default)(GridModel, _BaseModel);
42
+
26
43
  var _super = _createSuper(GridModel);
44
+
27
45
  function GridModel() {
28
46
  (0, _classCallCheck2.default)(this, GridModel);
29
47
  return _super.apply(this, arguments);
30
48
  }
49
+
31
50
  (0, _createClass2.default)(GridModel, [{
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 || 0.9,
@@ -47,18 +67,23 @@ var GridModel = /*#__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 GridModel = /*#__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: 'heatmapGrid',
75
- vertexShader: heatmapGridVert,
76
- fragmentShader: heatmapGridFrag,
77
- triangulation: _triangulation.HeatmapGridTriangulation,
78
- primitive: _l7Core.gl.TRIANGLES,
79
- depth: {
80
- enable: false
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: 'heatmapGrid',
101
+ vertexShader: heatmapGridVert,
102
+ fragmentShader: heatmapGridFrag,
103
+ triangulation: _triangulation.HeatmapGridTriangulation,
104
+ primitive: _l7Core.gl.TRIANGLES,
105
+ depth: {
106
+ enable: false
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
  }, {
@@ -119,4 +150,5 @@ var GridModel = /*#__PURE__*/function (_BaseModel) {
119
150
  }]);
120
151
  return GridModel;
121
152
  }(_BaseModel2.default);
153
+
122
154
  exports.default = GridModel;