@antv/l7-layers 2.17.3 → 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 +112 -63
  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 +136 -85
  39. package/es/line/models/linearline.js +74 -42
  40. package/es/line/models/simpleLine.js +67 -38
  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 +122 -61
  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 +144 -83
  160. package/lib/line/models/linearline.js +86 -42
  161. package/lib/line/models/simpleLine.js +77 -38
  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
@@ -6,13 +6,18 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConst
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
8
8
  import _regeneratorRuntime from "@babel/runtime/regenerator";
9
+
9
10
  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); }; }
11
+
10
12
  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; } }
13
+
11
14
  import { AttributeType, gl } from '@antv/l7-core';
12
15
  import { isNumber } from 'lodash';
13
16
  import BaseModel from "../../core/BaseModel";
17
+
14
18
  /* babel-plugin-inline-import '../shaders/normal_frag.glsl' */
15
19
  var normalFrag = "varying vec4 v_color;\nvoid main() {\n gl_FragColor = v_color;\n}\n";
20
+
16
21
  /* babel-plugin-inline-import '../shaders/normal_vert.glsl' */
17
22
  var normalVert = "\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform float u_opacity : 1;\nuniform mat4 u_Mvp;\nattribute float a_Size;\nattribute vec4 a_Color;\n\nvarying vec4 v_color;\n\n#pragma include \"projection\"\n#pragma include \"project\"\n\nvoid main() {\n v_color = vec4(a_Color.xyz, a_Color.w * u_opacity);\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(a_Position.xy, a_Position.z, 1.0);\n } else {\n vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.);\n gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy),project_pos.z,project_pos.w));\n }\n\n gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n}\n";
18
23
  export function PointTriangulation(feature) {
@@ -23,13 +28,18 @@ export function PointTriangulation(feature) {
23
28
  size: coordinates.length
24
29
  };
25
30
  }
31
+
26
32
  var NormalModel = /*#__PURE__*/function (_BaseModel) {
27
33
  _inherits(NormalModel, _BaseModel);
34
+
28
35
  var _super = _createSuper(NormalModel);
36
+
29
37
  function NormalModel() {
30
38
  _classCallCheck(this, NormalModel);
39
+
31
40
  return _super.apply(this, arguments);
32
41
  }
42
+
33
43
  _createClass(NormalModel, [{
34
44
  key: "getDefaultStyle",
35
45
  value: function getDefaultStyle() {
@@ -41,8 +51,9 @@ var NormalModel = /*#__PURE__*/function (_BaseModel) {
41
51
  key: "getUninforms",
42
52
  value: function getUninforms() {
43
53
  var _ref = this.layer.getLayerConfig(),
44
- _ref$opacity = _ref.opacity,
45
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
54
+ _ref$opacity = _ref.opacity,
55
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
56
+
46
57
  return {
47
58
  u_opacity: isNumber(opacity) ? opacity : 1.0
48
59
  };
@@ -52,18 +63,23 @@ var NormalModel = /*#__PURE__*/function (_BaseModel) {
52
63
  value: function () {
53
64
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
54
65
  return _regeneratorRuntime.wrap(function _callee$(_context) {
55
- while (1) switch (_context.prev = _context.next) {
56
- case 0:
57
- return _context.abrupt("return", this.buildModels());
58
- case 1:
59
- case "end":
60
- return _context.stop();
66
+ while (1) {
67
+ switch (_context.prev = _context.next) {
68
+ case 0:
69
+ return _context.abrupt("return", this.buildModels());
70
+
71
+ case 1:
72
+ case "end":
73
+ return _context.stop();
74
+ }
61
75
  }
62
76
  }, _callee, this);
63
77
  }));
78
+
64
79
  function initModels() {
65
80
  return _initModels.apply(this, arguments);
66
81
  }
82
+
67
83
  return initModels;
68
84
  }()
69
85
  }, {
@@ -72,33 +88,39 @@ var NormalModel = /*#__PURE__*/function (_BaseModel) {
72
88
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
73
89
  var model;
74
90
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
75
- while (1) switch (_context2.prev = _context2.next) {
76
- case 0:
77
- this.layer.triangulation = PointTriangulation;
78
- _context2.next = 3;
79
- return this.layer.buildLayerModel({
80
- moduleName: 'pointNormal',
81
- vertexShader: normalVert,
82
- fragmentShader: normalFrag,
83
- triangulation: PointTriangulation,
84
- depth: {
85
- enable: false
86
- },
87
- primitive: gl.POINTS,
88
- pick: false
89
- });
90
- case 3:
91
- model = _context2.sent;
92
- return _context2.abrupt("return", [model]);
93
- case 5:
94
- case "end":
95
- return _context2.stop();
91
+ while (1) {
92
+ switch (_context2.prev = _context2.next) {
93
+ case 0:
94
+ this.layer.triangulation = PointTriangulation;
95
+ _context2.next = 3;
96
+ return this.layer.buildLayerModel({
97
+ moduleName: 'pointNormal',
98
+ vertexShader: normalVert,
99
+ fragmentShader: normalFrag,
100
+ triangulation: PointTriangulation,
101
+ depth: {
102
+ enable: false
103
+ },
104
+ primitive: gl.POINTS,
105
+ pick: false
106
+ });
107
+
108
+ case 3:
109
+ model = _context2.sent;
110
+ return _context2.abrupt("return", [model]);
111
+
112
+ case 5:
113
+ case "end":
114
+ return _context2.stop();
115
+ }
96
116
  }
97
117
  }, _callee2, this);
98
118
  }));
119
+
99
120
  function buildModels() {
100
121
  return _buildModels.apply(this, arguments);
101
122
  }
123
+
102
124
  return buildModels;
103
125
  }()
104
126
  }, {
@@ -122,13 +144,15 @@ var NormalModel = /*#__PURE__*/function (_BaseModel) {
122
144
  size: 1,
123
145
  update: function update(feature) {
124
146
  var _feature$size = feature.size,
125
- size = _feature$size === void 0 ? 1 : _feature$size;
147
+ size = _feature$size === void 0 ? 1 : _feature$size;
126
148
  return Array.isArray(size) ? [size[0]] : [size];
127
149
  }
128
150
  }
129
151
  });
130
152
  }
131
153
  }]);
154
+
132
155
  return NormalModel;
133
156
  }(BaseModel);
157
+
134
158
  export { NormalModel as default };
@@ -5,34 +5,45 @@ 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 BaseModel from "../../core/BaseModel";
12
15
  import { SizeUnitType } from "../../core/interface";
13
16
  import { PointFillTriangulation } from "../../core/triangulation";
17
+
14
18
  /* babel-plugin-inline-import '../shaders/radar/radar_frag.glsl' */
15
19
  var pointFillFrag = "\nuniform float u_additive;\nuniform float u_opacity: 1.0;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nvarying vec2 v_exteude;\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\nvoid main() {\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius);\n\n float outer_df = sdCircle(v_data.xy, 1.0);\n float inner_df = sdCircle(v_data.xy, r);\n\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df);\n\n gl_FragColor = vec4(v_color.rgb, v_color.a * u_opacity);\n\n if(u_additive > 0.0) {\n gl_FragColor *= opacity_t;\n } else {\n gl_FragColor.a *= opacity_t;\n }\n\n if(gl_FragColor.a > 0.0) {\n gl_FragColor = filterColor(gl_FragColor);\n }\n\n vec2 extrude = v_exteude;\n vec2 dir = normalize(extrude);\n vec2 baseDir = vec2(1.0, 0.0);\n float pi = 3.14159265359;\n // full circle\n // float rades = dot(dir, baseDir);\n // float flag = sign(dir.y);\n // float radar_v = (flag - 1.0) * -0.5 + flag * acos(rades)/pi/2.0;\n \n // half circle\n float flag = sign(dir.y);\n float rades = dot(dir, baseDir);\n float radar_v = (flag - 1.0) * -0.5 * acos(rades)/pi;\n // simple AA\n if(radar_v > 0.99) {\n radar_v = 1.0 - (radar_v - 0.99)/0.01;\n }\n\n gl_FragColor.a *= radar_v;\n}\n";
20
+
16
21
  /* babel-plugin-inline-import '../shaders/radar/radar_vert.glsl' */
17
22
  var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nuniform float u_speed: 1.0;\nuniform float u_time;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform int u_size_unit;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nvarying vec2 v_exteude;\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n vec3 extrude = a_Extrude;\n float newSize = setPickingSize(a_Size);\n\n float time = u_time * u_speed;\n mat2 rotateMatrix = mat2( \n cos(time), sin(time), \n -sin(time), cos(time)\n );\n v_exteude = rotateMatrix * a_Extrude.xy;\n\n // unpack color(vec2)\n v_color = a_Color;\n\n\n\n // anti-alias\n float blur = 0.0;\n float antialiasblur = -max(2.0 / u_DevicePixelRatio / a_Size, blur);\n\n if(u_size_unit == 1) {\n newSize = newSize * u_PixelsPerMeter.z;\n }\n // radius(16-bit)\n v_radius = newSize;\n\n vec2 offset = (extrude.xy * (newSize));\n vec3 aPosition = a_Position;\n \n // \u4E0D\u4EE5\u7C73\u4E3A\u5B9E\u9645\u5355\u4F4D\n offset = project_pixel(offset);\n \n v_data = vec4(extrude.x, extrude.y, antialiasblur, -1.0);\n\n vec4 project_pos = project_position(vec4(aPosition.xy, 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, project_pixel(setPickingOrder(0.0)), 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}\n";
23
+
18
24
  var RadarModel = /*#__PURE__*/function (_BaseModel) {
19
25
  _inherits(RadarModel, _BaseModel);
26
+
20
27
  var _super = _createSuper(RadarModel);
28
+
21
29
  function RadarModel() {
22
30
  _classCallCheck(this, RadarModel);
31
+
23
32
  return _super.apply(this, arguments);
24
33
  }
34
+
25
35
  _createClass(RadarModel, [{
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,
31
- blend = _ref.blend,
32
- _ref$speed = _ref.speed,
33
- speed = _ref$speed === void 0 ? 1 : _ref$speed,
34
- _ref$unit = _ref.unit,
35
- unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
39
+ _ref$opacity = _ref.opacity,
40
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
41
+ blend = _ref.blend,
42
+ _ref$speed = _ref.speed,
43
+ speed = _ref$speed === void 0 ? 1 : _ref$speed,
44
+ _ref$unit = _ref.unit,
45
+ unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
46
+
36
47
  return {
37
48
  u_size_unit: SizeUnitType[unit],
38
49
  u_speed: speed,
@@ -44,10 +55,11 @@ var RadarModel = /*#__PURE__*/function (_BaseModel) {
44
55
  key: "getAnimateUniforms",
45
56
  value: function getAnimateUniforms() {
46
57
  var _ref2 = this.layer.getLayerConfig(),
47
- _ref2$animateOption = _ref2.animateOption,
48
- animateOption = _ref2$animateOption === void 0 ? {
49
- enable: false
50
- } : _ref2$animateOption;
58
+ _ref2$animateOption = _ref2.animateOption,
59
+ animateOption = _ref2$animateOption === void 0 ? {
60
+ enable: false
61
+ } : _ref2$animateOption;
62
+
51
63
  return {
52
64
  u_animate: this.animateOption2Array(animateOption),
53
65
  u_time: this.layer.getLayerAnimateTime()
@@ -63,18 +75,23 @@ var RadarModel = /*#__PURE__*/function (_BaseModel) {
63
75
  value: function () {
64
76
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
65
77
  return _regeneratorRuntime.wrap(function _callee$(_context) {
66
- while (1) switch (_context.prev = _context.next) {
67
- case 0:
68
- return _context.abrupt("return", this.buildModels());
69
- case 1:
70
- case "end":
71
- return _context.stop();
78
+ while (1) {
79
+ switch (_context.prev = _context.next) {
80
+ case 0:
81
+ return _context.abrupt("return", this.buildModels());
82
+
83
+ case 1:
84
+ case "end":
85
+ return _context.stop();
86
+ }
72
87
  }
73
88
  }, _callee, this);
74
89
  }));
90
+
75
91
  function initModels() {
76
92
  return _initModels.apply(this, arguments);
77
93
  }
94
+
78
95
  return initModels;
79
96
  }()
80
97
  }, {
@@ -83,32 +100,39 @@ var RadarModel = /*#__PURE__*/function (_BaseModel) {
83
100
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
84
101
  var model;
85
102
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
86
- while (1) switch (_context2.prev = _context2.next) {
87
- case 0:
88
- _context2.next = 2;
89
- return this.layer.buildLayerModel({
90
- moduleName: 'pointRadar',
91
- vertexShader: pointFillVert,
92
- fragmentShader: pointFillFrag,
93
- triangulation: PointFillTriangulation,
94
- depth: {
95
- enable: false
96
- }
97
- });
98
- case 2:
99
- model = _context2.sent;
100
- return _context2.abrupt("return", [model]);
101
- case 4:
102
- case "end":
103
- return _context2.stop();
103
+ while (1) {
104
+ switch (_context2.prev = _context2.next) {
105
+ case 0:
106
+ _context2.next = 2;
107
+ return this.layer.buildLayerModel({
108
+ moduleName: 'pointRadar',
109
+ vertexShader: pointFillVert,
110
+ fragmentShader: pointFillFrag,
111
+ triangulation: PointFillTriangulation,
112
+ depth: {
113
+ enable: false
114
+ }
115
+ });
116
+
117
+ case 2:
118
+ model = _context2.sent;
119
+ return _context2.abrupt("return", [model]);
120
+
121
+ case 4:
122
+ case "end":
123
+ return _context2.stop();
124
+ }
104
125
  }
105
126
  }, _callee2, this);
106
127
  }));
128
+
107
129
  function buildModels() {
108
130
  return _buildModels.apply(this, arguments);
109
131
  }
132
+
110
133
  return buildModels;
111
134
  }() // overwrite baseModel func
135
+
112
136
  }, {
113
137
  key: "animateOption2Array",
114
138
  value: function animateOption2Array(option) {
@@ -135,9 +159,8 @@ var RadarModel = /*#__PURE__*/function (_BaseModel) {
135
159
  return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
136
160
  }
137
161
  }
138
- });
162
+ }); // point layer size;
139
163
 
140
- // point layer size;
141
164
  this.styleAttributeService.registerStyleAttribute({
142
165
  name: 'size',
143
166
  type: AttributeType.Attribute,
@@ -152,13 +175,15 @@ var RadarModel = /*#__PURE__*/function (_BaseModel) {
152
175
  size: 1,
153
176
  update: function update(feature) {
154
177
  var _feature$size = feature.size,
155
- size = _feature$size === void 0 ? 5 : _feature$size;
178
+ size = _feature$size === void 0 ? 5 : _feature$size;
156
179
  return Array.isArray(size) ? [size[0]] : [size];
157
180
  }
158
181
  }
159
182
  });
160
183
  }
161
184
  }]);
185
+
162
186
  return RadarModel;
163
187
  }(BaseModel);
188
+
164
189
  export { RadarModel as default };
@@ -6,13 +6,18 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConst
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
8
8
  import _regeneratorRuntime from "@babel/runtime/regenerator";
9
+
9
10
  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); }; }
11
+
10
12
  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; } }
13
+
11
14
  import { AttributeType, gl } from '@antv/l7-core';
12
15
  import BaseModel from "../../core/BaseModel";
13
16
  import { rgb2arr } from '@antv/l7-utils';
17
+
14
18
  /* babel-plugin-inline-import '../shaders/simplePoint_frag.glsl' */
15
19
  var simplePointFrag = "\nuniform float u_additive;\nuniform float u_stroke_opacity : 1;\n\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\n\nvarying vec4 v_color;\nvarying float v_blur;\nvarying float v_innerRadius;\n\n#pragma include \"picking\"\nvoid main() {\n vec2 center = vec2(0.5);\n\n // Tip: \u7247\u5143\u5230\u4E2D\u5FC3\u70B9\u7684\u8DDD\u79BB 0 - 1\n float fragmengTocenter = distance(center, gl_PointCoord) * 2.0;\n // Tip: \u7247\u5143\u7684\u526A\u5207\u6210\u5706\u5F62\n float circleClipOpacity = 1.0 - smoothstep(v_blur, 1.0, fragmengTocenter);\n\n\n if(v_innerRadius < 0.99) {\n // \u5F53\u5B58\u5728 stroke \u4E14 stroke > 0.01\n float blurWidth = (1.0 - v_blur)/2.0;\n vec4 stroke = vec4(u_stroke_color.rgb, u_stroke_opacity);\n if(fragmengTocenter > v_innerRadius + blurWidth) {\n gl_FragColor = stroke;\n } else if(fragmengTocenter > v_innerRadius - blurWidth){\n float mixR = (fragmengTocenter - (v_innerRadius - blurWidth)) / (blurWidth * 2.0);\n gl_FragColor = mix(v_color, stroke, mixR);\n } else {\n gl_FragColor = v_color;\n }\n } else {\n // \u5F53\u4E0D\u5B58\u5728 stroke \u6216 stroke <= 0.01\n gl_FragColor = v_color;\n }\n\n gl_FragColor = filterColor(gl_FragColor);\n \n if(u_additive > 0.0) {\n gl_FragColor *= circleClipOpacity;\n } else {\n gl_FragColor.a *= circleClipOpacity;\n }\n\n}\n";
20
+
16
21
  /* babel-plugin-inline-import '../shaders/simplePoint_vert.glsl' */
17
22
  var simplePointVert = "\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute float a_Size;\nattribute vec4 a_Color;\nvarying vec4 v_color;\n\nuniform float u_opacity : 1;\nuniform vec2 u_offsets;\nuniform float u_stroke_width;\n\nvarying float v_blur;\nvarying float v_innerRadius;\n\n\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n#pragma include \"project\"\nvoid main() {\n v_color = vec4(a_Color.xyz, a_Color.w * u_opacity);\n v_blur = 1.0 - max(2.0/a_Size, 0.05);\n v_innerRadius = max((a_Size - u_stroke_width) / a_Size, 0.0);\n \n vec2 offset = project_pixel(u_offsets);\n \n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(a_Position.xy + offset, a_Position.z, 1.0);\n } else { // else\n vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.);\n gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy+offset),project_pos.z,project_pos.w));\n }\n\n gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n setPickingColor(a_PickingColor);\n}\n";
18
23
  export function PointTriangulation(feature) {
@@ -23,13 +28,18 @@ export function PointTriangulation(feature) {
23
28
  size: coordinates.length
24
29
  };
25
30
  }
31
+
26
32
  var SimplePointModel = /*#__PURE__*/function (_BaseModel) {
27
33
  _inherits(SimplePointModel, _BaseModel);
34
+
28
35
  var _super = _createSuper(SimplePointModel);
36
+
29
37
  function SimplePointModel() {
30
38
  _classCallCheck(this, SimplePointModel);
39
+
31
40
  return _super.apply(this, arguments);
32
41
  }
42
+
33
43
  _createClass(SimplePointModel, [{
34
44
  key: "getDefaultStyle",
35
45
  value: function getDefaultStyle() {
@@ -41,17 +51,18 @@ var SimplePointModel = /*#__PURE__*/function (_BaseModel) {
41
51
  key: "getUninforms",
42
52
  value: function getUninforms() {
43
53
  var _ref = this.layer.getLayerConfig(),
44
- _ref$opacity = _ref.opacity,
45
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
46
- _ref$offsets = _ref.offsets,
47
- offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
48
- blend = _ref.blend,
49
- _ref$strokeOpacity = _ref.strokeOpacity,
50
- strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
51
- _ref$strokeWidth = _ref.strokeWidth,
52
- strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
53
- _ref$stroke = _ref.stroke,
54
- stroke = _ref$stroke === void 0 ? '#fff' : _ref$stroke;
54
+ _ref$opacity = _ref.opacity,
55
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
56
+ _ref$offsets = _ref.offsets,
57
+ offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
58
+ blend = _ref.blend,
59
+ _ref$strokeOpacity = _ref.strokeOpacity,
60
+ strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
61
+ _ref$strokeWidth = _ref.strokeWidth,
62
+ strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
63
+ _ref$stroke = _ref.stroke,
64
+ stroke = _ref$stroke === void 0 ? '#fff' : _ref$stroke;
65
+
55
66
  return {
56
67
  u_additive: blend === 'additive' ? 1.0 : 0.0,
57
68
  u_opacity: opacity,
@@ -66,18 +77,23 @@ var SimplePointModel = /*#__PURE__*/function (_BaseModel) {
66
77
  value: function () {
67
78
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
68
79
  return _regeneratorRuntime.wrap(function _callee$(_context) {
69
- while (1) switch (_context.prev = _context.next) {
70
- case 0:
71
- return _context.abrupt("return", this.buildModels());
72
- case 1:
73
- case "end":
74
- return _context.stop();
80
+ while (1) {
81
+ switch (_context.prev = _context.next) {
82
+ case 0:
83
+ return _context.abrupt("return", this.buildModels());
84
+
85
+ case 1:
86
+ case "end":
87
+ return _context.stop();
88
+ }
75
89
  }
76
90
  }, _callee, this);
77
91
  }));
92
+
78
93
  function initModels() {
79
94
  return _initModels.apply(this, arguments);
80
95
  }
96
+
81
97
  return initModels;
82
98
  }()
83
99
  }, {
@@ -86,32 +102,38 @@ var SimplePointModel = /*#__PURE__*/function (_BaseModel) {
86
102
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
87
103
  var model;
88
104
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
89
- while (1) switch (_context2.prev = _context2.next) {
90
- case 0:
91
- this.layer.triangulation = PointTriangulation;
92
- _context2.next = 3;
93
- return this.layer.buildLayerModel({
94
- moduleName: 'pointSimple',
95
- vertexShader: simplePointVert,
96
- fragmentShader: simplePointFrag,
97
- triangulation: PointTriangulation,
98
- depth: {
99
- enable: false
100
- },
101
- primitive: gl.POINTS
102
- });
103
- case 3:
104
- model = _context2.sent;
105
- return _context2.abrupt("return", [model]);
106
- case 5:
107
- case "end":
108
- return _context2.stop();
105
+ while (1) {
106
+ switch (_context2.prev = _context2.next) {
107
+ case 0:
108
+ this.layer.triangulation = PointTriangulation;
109
+ _context2.next = 3;
110
+ return this.layer.buildLayerModel({
111
+ moduleName: 'pointSimple',
112
+ vertexShader: simplePointVert,
113
+ fragmentShader: simplePointFrag,
114
+ triangulation: PointTriangulation,
115
+ depth: {
116
+ enable: false
117
+ },
118
+ primitive: gl.POINTS
119
+ });
120
+
121
+ case 3:
122
+ model = _context2.sent;
123
+ return _context2.abrupt("return", [model]);
124
+
125
+ case 5:
126
+ case "end":
127
+ return _context2.stop();
128
+ }
109
129
  }
110
130
  }, _callee2, this);
111
131
  }));
132
+
112
133
  function buildModels() {
113
134
  return _buildModels.apply(this, arguments);
114
135
  }
136
+
115
137
  return buildModels;
116
138
  }()
117
139
  }, {
@@ -130,13 +152,15 @@ var SimplePointModel = /*#__PURE__*/function (_BaseModel) {
130
152
  size: 1,
131
153
  update: function update(feature) {
132
154
  var _feature$size = feature.size,
133
- size = _feature$size === void 0 ? 1 : _feature$size;
155
+ size = _feature$size === void 0 ? 1 : _feature$size;
134
156
  return Array.isArray(size) ? [size[0]] : [size];
135
157
  }
136
158
  }
137
159
  });
138
160
  }
139
161
  }]);
162
+
140
163
  return SimplePointModel;
141
164
  }(BaseModel);
165
+
142
166
  export { SimplePointModel as default };