@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
package/es/earth/index.js CHANGED
@@ -7,8 +7,11 @@ 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 BaseLayer from "../core/BaseLayer";
13
16
  import EarthAtomSphereModel from "./models/atmosphere";
14
17
  import BaseEarthModel from "./models/base";
@@ -19,17 +22,25 @@ var EarthModels = {
19
22
  bloomSphere: EarthBloomSphereModel
20
23
  };
21
24
  var earthLayerTypes = ['base', 'atomSphere', 'bloomSphere'];
25
+
22
26
  var EarthLayer = /*#__PURE__*/function (_BaseLayer) {
23
27
  _inherits(EarthLayer, _BaseLayer);
28
+
24
29
  var _super = _createSuper(EarthLayer);
30
+
25
31
  function EarthLayer() {
26
32
  var _this;
33
+
27
34
  _classCallCheck(this, EarthLayer);
35
+
28
36
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
37
  args[_key] = arguments[_key];
30
38
  }
39
+
31
40
  _this = _super.call.apply(_super, [this].concat(args));
41
+
32
42
  _defineProperty(_assertThisInitialized(_this), "type", 'EarthLayer');
43
+
33
44
  _defineProperty(_assertThisInitialized(_this), "defaultSourceConfig", {
34
45
  data: [],
35
46
  options: {
@@ -38,35 +49,43 @@ var EarthLayer = /*#__PURE__*/function (_BaseLayer) {
38
49
  }
39
50
  }
40
51
  });
52
+
41
53
  return _this;
42
54
  }
55
+
43
56
  _createClass(EarthLayer, [{
44
57
  key: "buildModels",
45
58
  value: function () {
46
59
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
47
60
  var shape;
48
61
  return _regeneratorRuntime.wrap(function _callee$(_context) {
49
- while (1) switch (_context.prev = _context.next) {
50
- case 0:
51
- shape = this.getModelType();
52
- this.layerModel = new EarthModels[shape](this);
53
- _context.next = 4;
54
- return this.initLayerModels();
55
- case 4:
56
- case "end":
57
- return _context.stop();
62
+ while (1) {
63
+ switch (_context.prev = _context.next) {
64
+ case 0:
65
+ shape = this.getModelType();
66
+ this.layerModel = new EarthModels[shape](this);
67
+ _context.next = 4;
68
+ return this.initLayerModels();
69
+
70
+ case 4:
71
+ case "end":
72
+ return _context.stop();
73
+ }
58
74
  }
59
75
  }, _callee, this);
60
76
  }));
77
+
61
78
  function buildModels() {
62
79
  return _buildModels.apply(this, arguments);
63
80
  }
81
+
64
82
  return buildModels;
65
83
  }()
66
84
  /**
67
85
  * 设置当前地球时间
68
86
  * @param time
69
87
  */
88
+
70
89
  }, {
71
90
  key: "setEarthTime",
72
91
  value: function setEarthTime(time) {
@@ -80,14 +99,19 @@ var EarthLayer = /*#__PURE__*/function (_BaseLayer) {
80
99
  key: "getModelType",
81
100
  value: function getModelType() {
82
101
  var _shapeAttribute$scale;
102
+
83
103
  var shapeAttribute = this.styleAttributeService.getLayerStyleAttribute('shape');
84
104
  var shape = (shapeAttribute === null || shapeAttribute === void 0 ? void 0 : (_shapeAttribute$scale = shapeAttribute.scale) === null || _shapeAttribute$scale === void 0 ? void 0 : _shapeAttribute$scale.field) || 'base';
105
+
85
106
  if (earthLayerTypes.indexOf(shape) < 0) {
86
107
  shape = 'base';
87
108
  }
109
+
88
110
  return shape;
89
111
  }
90
112
  }]);
113
+
91
114
  return EarthLayer;
92
115
  }(BaseLayer);
116
+
93
117
  export { EarthLayer as default };
@@ -5,29 +5,40 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
+
8
9
  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); }; }
10
+
9
11
  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; } }
12
+
10
13
  import { AttributeType, gl } from '@antv/l7-core';
11
14
  import { isNumber } from 'lodash';
12
15
  import BaseModel from "../../core/BaseModel";
13
16
  import { earthTriangulation } from "../../core/triangulation";
17
+
14
18
  /* babel-plugin-inline-import '../shaders/atmosphere_frag.glsl' */
15
19
  var atmoSphereFrag = "\nuniform float u_opacity;\nuniform vec3 u_CameraPosition;\n\nvarying vec3 vVertexNormal;\nvarying float v_offset;\nvarying vec4 v_Color;\nvoid main() {\n \n \n // float intensity = pow(0.5 + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);\n float intensity = pow(v_offset + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);\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";
20
+
16
21
  /* babel-plugin-inline-import '../shaders/atmosphere_vert.glsl' */
17
22
  var atmoSphereVert = "\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute vec2 a_Uv;\nattribute vec4 a_Color;\nuniform vec3 u_CameraPosition;\nvarying float v_CamreaDistance;\n\nuniform mat4 u_ViewProjectionMatrix;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_ViewMatrix;\n\nvarying vec3 vVertexNormal;\nvarying vec4 v_Color;\nvarying float v_offset;\n\nvoid main() {\n float EARTH_RADIUS = 100.0;\n \n v_Color = a_Color;\n\n v_offset = min(((length(u_CameraPosition) - EARTH_RADIUS)/600.0) * 0.5 + 0.4, 1.0);\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
23
+
18
24
  var EarthAtomSphereModel = /*#__PURE__*/function (_BaseModel) {
19
25
  _inherits(EarthAtomSphereModel, _BaseModel);
26
+
20
27
  var _super = _createSuper(EarthAtomSphereModel);
28
+
21
29
  function EarthAtomSphereModel() {
22
30
  _classCallCheck(this, EarthAtomSphereModel);
31
+
23
32
  return _super.apply(this, arguments);
24
33
  }
34
+
25
35
  _createClass(EarthAtomSphereModel, [{
26
36
  key: "getUninforms",
27
37
  value: function getUninforms() {
28
38
  var _ref = this.layer.getLayerConfig(),
29
- _ref$opacity = _ref.opacity,
30
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
39
+ _ref$opacity = _ref.opacity,
40
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
41
+
31
42
  return {
32
43
  u_opacity: isNumber(opacity) ? opacity : 1.0
33
44
  };
@@ -37,18 +48,23 @@ var EarthAtomSphereModel = /*#__PURE__*/function (_BaseModel) {
37
48
  value: function () {
38
49
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
39
50
  return _regeneratorRuntime.wrap(function _callee$(_context) {
40
- while (1) switch (_context.prev = _context.next) {
41
- case 0:
42
- return _context.abrupt("return", this.buildModels());
43
- case 1:
44
- case "end":
45
- return _context.stop();
51
+ while (1) {
52
+ switch (_context.prev = _context.next) {
53
+ case 0:
54
+ return _context.abrupt("return", this.buildModels());
55
+
56
+ case 1:
57
+ case "end":
58
+ return _context.stop();
59
+ }
46
60
  }
47
61
  }, _callee, this);
48
62
  }));
63
+
49
64
  function initModels() {
50
65
  return _initModels.apply(this, arguments);
51
66
  }
67
+
52
68
  return initModels;
53
69
  }()
54
70
  }, {
@@ -62,33 +78,39 @@ var EarthAtomSphereModel = /*#__PURE__*/function (_BaseModel) {
62
78
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
63
79
  var model;
64
80
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
65
- while (1) switch (_context2.prev = _context2.next) {
66
- case 0:
67
- // TODO: 调整图层的绘制顺序 地球大气层
68
- this.layer.zIndex = -997;
69
- _context2.next = 3;
70
- return this.layer.buildLayerModel({
71
- moduleName: 'earthAtmoSphere',
72
- vertexShader: atmoSphereVert,
73
- fragmentShader: atmoSphereFrag,
74
- triangulation: earthTriangulation,
75
- depth: {
76
- enable: false
77
- },
78
- blend: this.getBlend()
79
- });
80
- case 3:
81
- model = _context2.sent;
82
- return _context2.abrupt("return", [model]);
83
- case 5:
84
- case "end":
85
- return _context2.stop();
81
+ while (1) {
82
+ switch (_context2.prev = _context2.next) {
83
+ case 0:
84
+ // TODO: 调整图层的绘制顺序 地球大气层
85
+ this.layer.zIndex = -997;
86
+ _context2.next = 3;
87
+ return this.layer.buildLayerModel({
88
+ moduleName: 'earthAtmoSphere',
89
+ vertexShader: atmoSphereVert,
90
+ fragmentShader: atmoSphereFrag,
91
+ triangulation: earthTriangulation,
92
+ depth: {
93
+ enable: false
94
+ },
95
+ blend: this.getBlend()
96
+ });
97
+
98
+ case 3:
99
+ model = _context2.sent;
100
+ return _context2.abrupt("return", [model]);
101
+
102
+ case 5:
103
+ case "end":
104
+ return _context2.stop();
105
+ }
86
106
  }
87
107
  }, _callee2, this);
88
108
  }));
109
+
89
110
  function buildModels() {
90
111
  return _buildModels.apply(this, arguments);
91
112
  }
113
+
92
114
  return buildModels;
93
115
  }()
94
116
  }, {
@@ -108,7 +130,7 @@ var EarthAtomSphereModel = /*#__PURE__*/function (_BaseModel) {
108
130
  size: 1,
109
131
  update: function update(feature) {
110
132
  var _feature$size = feature.size,
111
- size = _feature$size === void 0 ? 1 : _feature$size;
133
+ size = _feature$size === void 0 ? 1 : _feature$size;
112
134
  return Array.isArray(size) ? [size[0]] : [size];
113
135
  }
114
136
  }
@@ -147,6 +169,8 @@ var EarthAtomSphereModel = /*#__PURE__*/function (_BaseModel) {
147
169
  });
148
170
  }
149
171
  }]);
172
+
150
173
  return EarthAtomSphereModel;
151
174
  }(BaseModel);
175
+
152
176
  export { EarthAtomSphereModel as default };
@@ -7,38 +7,57 @@ 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 BaseModel from "../../core/BaseModel";
14
17
  import { earthTriangulation } from "../../core/triangulation";
18
+
15
19
  /* babel-plugin-inline-import '../shaders/base_frag.glsl' */
16
20
  var baseFrag = "\nuniform sampler2D u_texture;\n\nvarying vec2 v_texCoord;\nvarying float v_lightWeight;\n\n\nvoid main() {\n\n vec4 color = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y));\n color.xyz = color.xyz * v_lightWeight;\n gl_FragColor = color;\n}\n";
21
+
17
22
  /* babel-plugin-inline-import '../shaders/base_vert.glsl' */
18
23
  var baseVert = "// attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n\n// attribute vec2 a_Extrude;\n// attribute float a_Size;\n// attribute float a_Shape;\n\nuniform vec3 u_CameraPosition;\nuniform mat4 u_ViewProjectionMatrix;\nuniform mat4 u_ModelMatrix;\nuniform float u_ambientRatio : 0.5;\nuniform float u_diffuseRatio : 0.3;\nuniform float u_specularRatio : 0.2;\nuniform vec3 u_sunLight: [1.0, -10.5, 12.0];\n\n\n\nfloat calc_lighting(vec4 pos) {\n\n vec3 worldPos = vec3(pos * u_ModelMatrix);\n\n vec3 worldNormal = a_Normal;\n\n // cal light weight\n vec3 viewDir = normalize(u_CameraPosition - worldPos);\n\n vec3 lightDir = normalize(u_sunLight);\n\n vec3 halfDir = normalize(viewDir+lightDir);\n // lambert\n float lambert = dot(worldNormal, lightDir);\n // specular\n float specular = pow(max(0.0, dot(worldNormal, halfDir)), 32.0);\n //sum to light weight\n float lightWeight = u_ambientRatio + u_diffuseRatio * lambert + u_specularRatio * specular;\n\n return lightWeight;\n}\n\nvarying float v_lightWeight;\nvoid main() {\n\n v_texCoord = a_Uv;\n\n float lightWeight = calc_lighting(vec4(a_Position, 1.0));\n v_lightWeight = lightWeight;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
24
+
19
25
  var BaseEarthModel = /*#__PURE__*/function (_BaseModel) {
20
26
  _inherits(BaseEarthModel, _BaseModel);
27
+
21
28
  var _super = _createSuper(BaseEarthModel);
29
+
22
30
  function BaseEarthModel() {
23
31
  var _this;
32
+
24
33
  _classCallCheck(this, BaseEarthModel);
34
+
25
35
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26
36
  args[_key] = arguments[_key];
27
37
  }
38
+
28
39
  _this = _super.call.apply(_super, [this].concat(args));
40
+
29
41
  _defineProperty(_assertThisInitialized(_this), "earthTime", 3.4);
42
+
30
43
  _defineProperty(_assertThisInitialized(_this), "sunX", 1000);
44
+
31
45
  _defineProperty(_assertThisInitialized(_this), "sunY", 1000);
46
+
32
47
  _defineProperty(_assertThisInitialized(_this), "sunZ", 1000);
48
+
33
49
  _defineProperty(_assertThisInitialized(_this), "sunRadius", Math.sqrt(_this.sunX * _this.sunX + _this.sunY * _this.sunY + _this.sunZ * _this.sunZ));
50
+
34
51
  return _this;
35
52
  }
53
+
36
54
  _createClass(BaseEarthModel, [{
37
55
  key: "getUninforms",
38
56
  value: function getUninforms() {
39
57
  var _this$layer$getLayerC = this.layer.getLayerConfig(),
40
- animateOption = _this$layer$getLayerC.animateOption,
41
- globalOptions = _this$layer$getLayerC.globalOptions;
58
+ animateOption = _this$layer$getLayerC.animateOption,
59
+ globalOptions = _this$layer$getLayerC.globalOptions;
60
+
42
61
  if (animateOption !== null && animateOption !== void 0 && animateOption.enable) {
43
62
  // @ts-ignore
44
63
  // T: rotateY 方法只有在地球模式下存在
@@ -50,6 +69,7 @@ var BaseEarthModel = /*#__PURE__*/function (_BaseModel) {
50
69
  this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);
51
70
  this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);
52
71
  }
72
+
53
73
  return {
54
74
  u_ambientRatio: (globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.ambientRatio) || 0.6,
55
75
  // 环境光
@@ -75,38 +95,48 @@ var BaseEarthModel = /*#__PURE__*/function (_BaseModel) {
75
95
  value: function () {
76
96
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
77
97
  var _this2 = this;
98
+
78
99
  var _this$layer$getLayerC2, globalOptions, source, createTexture2D;
100
+
79
101
  return _regeneratorRuntime.wrap(function _callee$(_context) {
80
- while (1) switch (_context.prev = _context.next) {
81
- case 0:
82
- _this$layer$getLayerC2 = this.layer.getLayerConfig(), globalOptions = _this$layer$getLayerC2.globalOptions;
83
- if ((globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.earthTime) !== undefined) {
84
- this.setEarthTime(globalOptions.earthTime);
85
- }
86
- source = this.layer.getSource();
87
- createTexture2D = this.rendererService.createTexture2D;
88
- this.texture = createTexture2D({
89
- height: 0,
90
- width: 0
91
- });
92
- source.data.images.then(function (imageData) {
93
- _this2.texture = createTexture2D({
94
- data: imageData[0],
95
- width: imageData[0].width,
96
- height: imageData[0].height
102
+ while (1) {
103
+ switch (_context.prev = _context.next) {
104
+ case 0:
105
+ _this$layer$getLayerC2 = this.layer.getLayerConfig(), globalOptions = _this$layer$getLayerC2.globalOptions;
106
+
107
+ if ((globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.earthTime) !== undefined) {
108
+ this.setEarthTime(globalOptions.earthTime);
109
+ }
110
+
111
+ source = this.layer.getSource();
112
+ createTexture2D = this.rendererService.createTexture2D;
113
+ this.texture = createTexture2D({
114
+ height: 0,
115
+ width: 0
97
116
  });
98
- _this2.layerService.reRender();
99
- });
100
- return _context.abrupt("return", this.buildModels());
101
- case 7:
102
- case "end":
103
- return _context.stop();
117
+ source.data.images.then(function (imageData) {
118
+ _this2.texture = createTexture2D({
119
+ data: imageData[0],
120
+ width: imageData[0].width,
121
+ height: imageData[0].height
122
+ });
123
+
124
+ _this2.layerService.reRender();
125
+ });
126
+ return _context.abrupt("return", this.buildModels());
127
+
128
+ case 7:
129
+ case "end":
130
+ return _context.stop();
131
+ }
104
132
  }
105
133
  }, _callee, this);
106
134
  }));
135
+
107
136
  function initModels() {
108
137
  return _initModels.apply(this, arguments);
109
138
  }
139
+
110
140
  return initModels;
111
141
  }()
112
142
  }, {
@@ -120,33 +150,39 @@ var BaseEarthModel = /*#__PURE__*/function (_BaseModel) {
120
150
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
121
151
  var model;
122
152
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
123
- while (1) switch (_context2.prev = _context2.next) {
124
- case 0:
125
- // Tip: 调整图层的绘制顺序 地球大气层
126
- this.layer.zIndex = -998;
127
- _context2.next = 3;
128
- return this.layer.buildLayerModel({
129
- moduleName: 'earthBase',
130
- vertexShader: baseVert,
131
- fragmentShader: baseFrag,
132
- triangulation: earthTriangulation,
133
- depth: {
134
- enable: true
135
- },
136
- blend: this.getBlend()
137
- });
138
- case 3:
139
- model = _context2.sent;
140
- return _context2.abrupt("return", [model]);
141
- case 5:
142
- case "end":
143
- return _context2.stop();
153
+ while (1) {
154
+ switch (_context2.prev = _context2.next) {
155
+ case 0:
156
+ // Tip: 调整图层的绘制顺序 地球大气层
157
+ this.layer.zIndex = -998;
158
+ _context2.next = 3;
159
+ return this.layer.buildLayerModel({
160
+ moduleName: 'earthBase',
161
+ vertexShader: baseVert,
162
+ fragmentShader: baseFrag,
163
+ triangulation: earthTriangulation,
164
+ depth: {
165
+ enable: true
166
+ },
167
+ blend: this.getBlend()
168
+ });
169
+
170
+ case 3:
171
+ model = _context2.sent;
172
+ return _context2.abrupt("return", [model]);
173
+
174
+ case 5:
175
+ case "end":
176
+ return _context2.stop();
177
+ }
144
178
  }
145
179
  }, _callee2, this);
146
180
  }));
181
+
147
182
  function buildModels() {
148
183
  return _buildModels.apply(this, arguments);
149
184
  }
185
+
150
186
  return buildModels;
151
187
  }()
152
188
  }, {
@@ -165,7 +201,7 @@ var BaseEarthModel = /*#__PURE__*/function (_BaseModel) {
165
201
  size: 1,
166
202
  update: function update(feature) {
167
203
  var _feature$size = feature.size,
168
- size = _feature$size === void 0 ? 1 : _feature$size;
204
+ size = _feature$size === void 0 ? 1 : _feature$size;
169
205
  return Array.isArray(size) ? [size[0]] : [size];
170
206
  }
171
207
  }
@@ -205,6 +241,8 @@ var BaseEarthModel = /*#__PURE__*/function (_BaseModel) {
205
241
  });
206
242
  }
207
243
  }]);
244
+
208
245
  return BaseEarthModel;
209
246
  }(BaseModel);
247
+
210
248
  export { BaseEarthModel as default };
@@ -5,29 +5,40 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
+
8
9
  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); }; }
10
+
9
11
  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; } }
12
+
10
13
  import { AttributeType, gl } from '@antv/l7-core';
11
14
  import { isNumber } from 'lodash';
12
15
  import BaseModel from "../../core/BaseModel";
13
16
  import { earthOuterTriangulation } from "../../core/triangulation";
17
+
14
18
  /* babel-plugin-inline-import '../shaders/bloomsphere_frag.glsl' */
15
19
  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";
20
+
16
21
  /* babel-plugin-inline-import '../shaders/bloomsphere_vert.glsl' */
17
22
  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";
23
+
18
24
  var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
19
25
  _inherits(EarthBloomSphereModel, _BaseModel);
26
+
20
27
  var _super = _createSuper(EarthBloomSphereModel);
28
+
21
29
  function EarthBloomSphereModel() {
22
30
  _classCallCheck(this, EarthBloomSphereModel);
31
+
23
32
  return _super.apply(this, arguments);
24
33
  }
34
+
25
35
  _createClass(EarthBloomSphereModel, [{
26
36
  key: "getUninforms",
27
37
  value: function getUninforms() {
28
38
  var _ref = this.layer.getLayerConfig(),
29
- _ref$opacity = _ref.opacity,
30
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
39
+ _ref$opacity = _ref.opacity,
40
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
41
+
31
42
  return {
32
43
  u_opacity: isNumber(opacity) ? opacity : 1.0
33
44
  };
@@ -37,18 +48,23 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
37
48
  value: function () {
38
49
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
39
50
  return _regeneratorRuntime.wrap(function _callee$(_context) {
40
- while (1) switch (_context.prev = _context.next) {
41
- case 0:
42
- return _context.abrupt("return", this.buildModels());
43
- case 1:
44
- case "end":
45
- return _context.stop();
51
+ while (1) {
52
+ switch (_context.prev = _context.next) {
53
+ case 0:
54
+ return _context.abrupt("return", this.buildModels());
55
+
56
+ case 1:
57
+ case "end":
58
+ return _context.stop();
59
+ }
46
60
  }
47
61
  }, _callee, this);
48
62
  }));
63
+
49
64
  function initModels() {
50
65
  return _initModels.apply(this, arguments);
51
66
  }
67
+
52
68
  return initModels;
53
69
  }()
54
70
  }, {
@@ -62,33 +78,39 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
62
78
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
63
79
  var model;
64
80
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
65
- while (1) switch (_context2.prev = _context2.next) {
66
- case 0:
67
- // Tip: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)
68
- this.layer.zIndex = -999;
69
- _context2.next = 3;
70
- return this.layer.buildLayerModel({
71
- moduleName: 'earthBloom',
72
- vertexShader: bloomSphereVert,
73
- fragmentShader: bloomSphereFrag,
74
- triangulation: earthOuterTriangulation,
75
- depth: {
76
- enable: false
77
- },
78
- blend: this.getBlend()
79
- });
80
- case 3:
81
- model = _context2.sent;
82
- return _context2.abrupt("return", [model]);
83
- case 5:
84
- case "end":
85
- return _context2.stop();
81
+ while (1) {
82
+ switch (_context2.prev = _context2.next) {
83
+ case 0:
84
+ // Tip: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)
85
+ this.layer.zIndex = -999;
86
+ _context2.next = 3;
87
+ return this.layer.buildLayerModel({
88
+ moduleName: 'earthBloom',
89
+ vertexShader: bloomSphereVert,
90
+ fragmentShader: bloomSphereFrag,
91
+ triangulation: earthOuterTriangulation,
92
+ depth: {
93
+ enable: false
94
+ },
95
+ blend: this.getBlend()
96
+ });
97
+
98
+ case 3:
99
+ model = _context2.sent;
100
+ return _context2.abrupt("return", [model]);
101
+
102
+ case 5:
103
+ case "end":
104
+ return _context2.stop();
105
+ }
86
106
  }
87
107
  }, _callee2, this);
88
108
  }));
109
+
89
110
  function buildModels() {
90
111
  return _buildModels.apply(this, arguments);
91
112
  }
113
+
92
114
  return buildModels;
93
115
  }()
94
116
  }, {
@@ -107,7 +129,7 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
107
129
  size: 1,
108
130
  update: function update(feature) {
109
131
  var _feature$size = feature.size,
110
- size = _feature$size === void 0 ? 1 : _feature$size;
132
+ size = _feature$size === void 0 ? 1 : _feature$size;
111
133
  return Array.isArray(size) ? [size[0]] : [size];
112
134
  }
113
135
  }
@@ -146,6 +168,8 @@ var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
146
168
  });
147
169
  }
148
170
  }]);
171
+
149
172
  return EarthBloomSphereModel;
150
173
  }(BaseModel);
174
+
151
175
  export { EarthBloomSphereModel as default };