@antv/l7-layers 2.17.2 → 2.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/es/Geometry/index.js +31 -9
  2. package/es/Geometry/models/billboard.js +89 -51
  3. package/es/Geometry/models/plane.js +143 -81
  4. package/es/Geometry/models/sprite.js +118 -60
  5. package/es/canvas/index.js +33 -10
  6. package/es/canvas/models/canvas.js +97 -41
  7. package/es/citybuliding/building.js +27 -8
  8. package/es/citybuliding/models/build.js +82 -57
  9. package/es/core/BaseLayer.js +478 -313
  10. package/es/core/BaseModel.js +80 -51
  11. package/es/core/CommonStyleAttribute.js +5 -2
  12. package/es/core/LayerPickService.js +32 -21
  13. package/es/core/TextureService.js +13 -0
  14. package/es/core/interface.js +24 -17
  15. package/es/core/shape/Path.js +20 -13
  16. package/es/core/shape/extrude.js +39 -27
  17. package/es/core/triangulation.js +136 -99
  18. package/es/earth/index.js +33 -9
  19. package/es/earth/models/atmosphere.js +54 -30
  20. package/es/earth/models/base.js +85 -47
  21. package/es/earth/models/bloomsphere.js +54 -30
  22. package/es/earth/utils.js +13 -9
  23. package/es/heatmap/index.js +40 -10
  24. package/es/heatmap/models/grid.js +52 -28
  25. package/es/heatmap/models/grid3d.js +52 -28
  26. package/es/heatmap/models/heatmap.js +149 -92
  27. package/es/heatmap/models/hexagon.js +52 -28
  28. package/es/heatmap/triangulation.js +4 -0
  29. package/es/image/index.js +28 -9
  30. package/es/image/models/image.js +100 -66
  31. package/es/index.js +17 -9
  32. package/es/line/index.js +35 -9
  33. package/es/line/models/arc.js +114 -64
  34. package/es/line/models/arc_3d.js +102 -58
  35. package/es/line/models/earthArc_3d.js +105 -60
  36. package/es/line/models/flow.js +60 -36
  37. package/es/line/models/great_circle.js +94 -53
  38. package/es/line/models/line.js +138 -86
  39. package/es/line/models/linearline.js +76 -43
  40. package/es/line/models/simpleLine.js +69 -39
  41. package/es/line/models/wall.js +92 -52
  42. package/es/mask/index.js +28 -9
  43. package/es/mask/models/fill.js +54 -29
  44. package/es/plugins/DataMappingPlugin.js +114 -78
  45. package/es/plugins/DataSourcePlugin.js +68 -45
  46. package/es/plugins/FeatureScalePlugin.js +122 -67
  47. package/es/plugins/LayerAnimateStylePlugin.js +5 -0
  48. package/es/plugins/LayerMaskPlugin.js +11 -3
  49. package/es/plugins/LayerModelPlugin.js +108 -69
  50. package/es/plugins/LayerStylePlugin.js +9 -3
  51. package/es/plugins/LightingPlugin.js +18 -12
  52. package/es/plugins/MultiPassRendererPlugin.js +16 -11
  53. package/es/plugins/PixelPickingPlugin.js +21 -12
  54. package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
  55. package/es/plugins/ShaderUniformPlugin.js +27 -13
  56. package/es/plugins/UpdateModelPlugin.js +5 -0
  57. package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
  58. package/es/point/index.js +78 -26
  59. package/es/point/models/earthExtrude.js +95 -58
  60. package/es/point/models/earthFill.js +80 -52
  61. package/es/point/models/extrude.js +94 -57
  62. package/es/point/models/fill.js +81 -56
  63. package/es/point/models/fillmage.js +100 -60
  64. package/es/point/models/image.js +83 -47
  65. package/es/point/models/index.js +2 -2
  66. package/es/point/models/normal.js +54 -30
  67. package/es/point/models/radar.js +63 -38
  68. package/es/point/models/simplePoint.js +62 -38
  69. package/es/point/models/text.js +296 -199
  70. package/es/point/shape/extrude.js +13 -4
  71. package/es/polygon/index.js +41 -11
  72. package/es/polygon/models/extrude.js +135 -87
  73. package/es/polygon/models/fill.js +79 -50
  74. package/es/polygon/models/index.js +2 -3
  75. package/es/polygon/models/ocean.js +76 -42
  76. package/es/polygon/models/water.js +71 -37
  77. package/es/raster/buffers/triangulation.js +4 -2
  78. package/es/raster/index.js +32 -9
  79. package/es/raster/models/raster.js +116 -80
  80. package/es/raster/models/rasterRgb.js +127 -84
  81. package/es/raster/models/rasterTerrainRgb.js +84 -56
  82. package/es/tile/interaction/getRasterData.js +20 -14
  83. package/es/tile/interaction/utils.js +9 -7
  84. package/es/tile/manager/base.js +96 -63
  85. package/es/tile/service/TileLayerService.js +55 -33
  86. package/es/tile/service/TilePickService.js +40 -26
  87. package/es/tile/service/TileSourceService.js +7 -3
  88. package/es/tile/tileFactory/DebugTile.js +46 -29
  89. package/es/tile/tileFactory/ImageTile.js +38 -20
  90. package/es/tile/tileFactory/MaskTile.js +43 -22
  91. package/es/tile/tileFactory/RasterRGBTile.js +42 -22
  92. package/es/tile/tileFactory/RasterTerrainRGBTile.js +38 -20
  93. package/es/tile/tileFactory/RasterTile.js +53 -30
  94. package/es/tile/tileFactory/Tile.js +97 -63
  95. package/es/tile/tileFactory/VectorTile.js +68 -41
  96. package/es/tile/tileFactory/index.js +11 -0
  97. package/es/tile/tileFactory/layers/TileDebugLayer.js +27 -6
  98. package/es/tile/tileFactory/util.js +3 -0
  99. package/es/tile/tileLayer/BaseLayer.js +146 -105
  100. package/es/tile/utils.js +1 -1
  101. package/es/utils/blend.js +2 -0
  102. package/es/utils/collision-index.js +16 -9
  103. package/es/utils/extrude_polyline.js +149 -101
  104. package/es/utils/grid-index.js +27 -2
  105. package/es/utils/identityScale.js +8 -0
  106. package/es/utils/layerData.js +44 -30
  107. package/es/utils/multiPassRender.js +13 -11
  108. package/es/utils/polylineNormal.js +37 -31
  109. package/es/utils/simpleLine.js +16 -2
  110. package/es/utils/stencil.js +3 -2
  111. package/es/utils/symbol-layout.js +53 -27
  112. package/es/wind/index.js +29 -9
  113. package/es/wind/models/utils.js +51 -26
  114. package/es/wind/models/wind.js +147 -101
  115. package/es/wind/models/windRender.js +66 -53
  116. package/lib/Geometry/index.js +38 -9
  117. package/lib/Geometry/models/billboard.js +97 -51
  118. package/lib/Geometry/models/index.js +5 -0
  119. package/lib/Geometry/models/plane.js +151 -79
  120. package/lib/Geometry/models/sprite.js +127 -60
  121. package/lib/canvas/index.js +40 -10
  122. package/lib/canvas/models/canvas.js +101 -41
  123. package/lib/canvas/models/index.js +3 -0
  124. package/lib/citybuliding/building.js +35 -8
  125. package/lib/citybuliding/models/build.js +92 -57
  126. package/lib/core/BaseLayer.js +469 -313
  127. package/lib/core/BaseModel.js +90 -51
  128. package/lib/core/CommonStyleAttribute.js +7 -2
  129. package/lib/core/LayerPickService.js +37 -21
  130. package/lib/core/TextureService.js +16 -0
  131. package/lib/core/interface.js +31 -21
  132. package/lib/core/schema.js +1 -0
  133. package/lib/core/shape/Path.js +31 -14
  134. package/lib/core/shape/extrude.js +62 -27
  135. package/lib/core/triangulation.js +177 -98
  136. package/lib/earth/index.js +43 -9
  137. package/lib/earth/models/atmosphere.js +63 -30
  138. package/lib/earth/models/base.js +90 -47
  139. package/lib/earth/models/bloomsphere.js +63 -30
  140. package/lib/earth/utils.js +31 -7
  141. package/lib/heatmap/index.js +48 -10
  142. package/lib/heatmap/models/grid.js +60 -28
  143. package/lib/heatmap/models/grid3d.js +60 -28
  144. package/lib/heatmap/models/heatmap.js +166 -92
  145. package/lib/heatmap/models/hexagon.js +60 -28
  146. package/lib/heatmap/models/index.js +6 -0
  147. package/lib/heatmap/triangulation.js +5 -0
  148. package/lib/image/index.js +36 -9
  149. package/lib/image/models/image.js +109 -66
  150. package/lib/image/models/index.js +3 -0
  151. package/lib/index.js +61 -7
  152. package/lib/line/index.js +40 -9
  153. package/lib/line/models/arc.js +124 -62
  154. package/lib/line/models/arc_3d.js +113 -56
  155. package/lib/line/models/earthArc_3d.js +115 -58
  156. package/lib/line/models/flow.js +70 -36
  157. package/lib/line/models/great_circle.js +104 -53
  158. package/lib/line/models/index.js +11 -0
  159. package/lib/line/models/line.js +146 -84
  160. package/lib/line/models/linearline.js +88 -43
  161. package/lib/line/models/simpleLine.js +79 -39
  162. package/lib/line/models/wall.js +103 -52
  163. package/lib/mask/index.js +36 -9
  164. package/lib/mask/models/fill.js +63 -29
  165. package/lib/mask/models/index.js +3 -0
  166. package/lib/plugins/DataMappingPlugin.js +125 -78
  167. package/lib/plugins/DataSourcePlugin.js +76 -45
  168. package/lib/plugins/FeatureScalePlugin.js +138 -67
  169. package/lib/plugins/LayerAnimateStylePlugin.js +10 -0
  170. package/lib/plugins/LayerMaskPlugin.js +17 -4
  171. package/lib/plugins/LayerModelPlugin.js +117 -70
  172. package/lib/plugins/LayerStylePlugin.js +14 -4
  173. package/lib/plugins/LightingPlugin.js +25 -12
  174. package/lib/plugins/MultiPassRendererPlugin.js +22 -11
  175. package/lib/plugins/PixelPickingPlugin.js +27 -12
  176. package/lib/plugins/RegisterStyleAttributePlugin.js +19 -5
  177. package/lib/plugins/ShaderUniformPlugin.js +34 -13
  178. package/lib/plugins/UpdateModelPlugin.js +10 -1
  179. package/lib/plugins/UpdateStyleAttributePlugin.js +16 -5
  180. package/lib/point/index.js +83 -26
  181. package/lib/point/models/earthExtrude.js +106 -58
  182. package/lib/point/models/earthFill.js +110 -52
  183. package/lib/point/models/extrude.js +103 -57
  184. package/lib/point/models/fill.js +90 -54
  185. package/lib/point/models/fillmage.js +107 -58
  186. package/lib/point/models/image.js +92 -47
  187. package/lib/point/models/index.js +12 -1
  188. package/lib/point/models/normal.js +64 -30
  189. package/lib/point/models/radar.js +72 -38
  190. package/lib/point/models/simplePoint.js +72 -38
  191. package/lib/point/models/text.js +305 -199
  192. package/lib/point/shape/extrude.js +20 -4
  193. package/lib/polygon/index.js +48 -11
  194. package/lib/polygon/models/extrude.js +146 -87
  195. package/lib/polygon/models/fill.js +89 -50
  196. package/lib/polygon/models/index.js +14 -2
  197. package/lib/polygon/models/ocean.js +88 -42
  198. package/lib/polygon/models/water.js +82 -37
  199. package/lib/raster/buffers/triangulation.js +7 -3
  200. package/lib/raster/index.js +40 -9
  201. package/lib/raster/models/index.js +5 -0
  202. package/lib/raster/models/raster.js +125 -80
  203. package/lib/raster/models/rasterRgb.js +139 -84
  204. package/lib/raster/models/rasterTerrainRgb.js +93 -56
  205. package/lib/tile/interaction/getRasterData.js +25 -14
  206. package/lib/tile/interaction/utils.js +19 -7
  207. package/lib/tile/manager/base.js +104 -63
  208. package/lib/tile/service/TileLayerService.js +60 -33
  209. package/lib/tile/service/TilePickService.js +48 -26
  210. package/lib/tile/service/TileSourceService.js +16 -2
  211. package/lib/tile/style/utils.js +3 -0
  212. package/lib/tile/tileFactory/DebugTile.js +54 -29
  213. package/lib/tile/tileFactory/ImageTile.js +46 -20
  214. package/lib/tile/tileFactory/MaskTile.js +51 -22
  215. package/lib/tile/tileFactory/RasterRGBTile.js +50 -22
  216. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +46 -20
  217. package/lib/tile/tileFactory/RasterTile.js +63 -30
  218. package/lib/tile/tileFactory/Tile.js +102 -63
  219. package/lib/tile/tileFactory/VectorTile.js +76 -41
  220. package/lib/tile/tileFactory/index.js +25 -0
  221. package/lib/tile/tileFactory/layers/TileDebugLayer.js +32 -6
  222. package/lib/tile/tileFactory/util.js +9 -0
  223. package/lib/tile/tileLayer/BaseLayer.js +153 -105
  224. package/lib/tile/utils.js +5 -1
  225. package/lib/utils/blend.js +5 -0
  226. package/lib/utils/collision-index.js +25 -9
  227. package/lib/utils/extrude_polyline.js +181 -101
  228. package/lib/utils/grid-index.js +28 -2
  229. package/lib/utils/identityScale.js +9 -0
  230. package/lib/utils/layerData.js +49 -30
  231. package/lib/utils/multiPassRender.js +16 -11
  232. package/lib/utils/polylineNormal.js +66 -31
  233. package/lib/utils/simpleLine.js +21 -2
  234. package/lib/utils/stencil.js +4 -0
  235. package/lib/utils/symbol-layout.js +55 -27
  236. package/lib/wind/index.js +37 -9
  237. package/lib/wind/models/index.js +3 -0
  238. package/lib/wind/models/utils.js +62 -26
  239. package/lib/wind/models/wind.js +157 -101
  240. package/lib/wind/models/windRender.js +71 -53
  241. package/lib/wind/models/windShader.js +1 -0
  242. package/package.json +7 -7
@@ -1,50 +1,74 @@
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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
+
10
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
11
16
  var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
17
+
12
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
13
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
14
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
15
24
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
25
+
16
26
  var _initializerWarningHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerWarningHelper"));
27
+
17
28
  var _l7Core = require("@antv/l7-core");
29
+
18
30
  var _l7Maps = require("@antv/l7-maps");
31
+
19
32
  var _l7Utils = require("@antv/l7-utils");
33
+
20
34
  var _inversify = require("inversify");
35
+
21
36
  var _lodash = require("lodash");
37
+
22
38
  require("reflect-metadata");
39
+
23
40
  var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
41
+
24
42
  var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inversify.inject)(_l7Core.TYPES.IMapService), _dec3 = (0, _inversify.inject)(_l7Core.TYPES.IFontService), _dec(_class = (_class2 = /*#__PURE__*/function () {
25
43
  function DataMappingPlugin() {
26
44
  (0, _classCallCheck2.default)(this, DataMappingPlugin);
27
45
  (0, _initializerDefineProperty2.default)(this, "mapService", _descriptor, this);
28
46
  (0, _initializerDefineProperty2.default)(this, "fontService", _descriptor2, this);
29
47
  }
48
+
30
49
  (0, _createClass2.default)(DataMappingPlugin, [{
31
50
  key: "apply",
32
51
  value: function apply(layer, _ref) {
33
52
  var _this = this;
53
+
34
54
  var styleAttributeService = _ref.styleAttributeService;
35
55
  layer.hooks.init.tapPromise('DataMappingPlugin', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
36
56
  return _regenerator.default.wrap(function _callee$(_context) {
37
- while (1) switch (_context.prev = _context.next) {
38
- case 0:
39
- layer.log(_l7Core.IDebugLog.MappingStart, _l7Core.ILayerStage.INIT);
40
- // 初始化重新生成 map
41
- _this.generateMaping(layer, {
42
- styleAttributeService: styleAttributeService
43
- });
44
- layer.log(_l7Core.IDebugLog.MappingEnd, _l7Core.ILayerStage.INIT);
45
- case 3:
46
- case "end":
47
- return _context.stop();
57
+ while (1) {
58
+ switch (_context.prev = _context.next) {
59
+ case 0:
60
+ layer.log(_l7Core.IDebugLog.MappingStart, _l7Core.ILayerStage.INIT); // 初始化重新生成 map
61
+
62
+ _this.generateMaping(layer, {
63
+ styleAttributeService: styleAttributeService
64
+ });
65
+
66
+ layer.log(_l7Core.IDebugLog.MappingEnd, _l7Core.ILayerStage.INIT);
67
+
68
+ case 3:
69
+ case "end":
70
+ return _context.stop();
71
+ }
48
72
  }
49
73
  }, _callee);
50
74
  })));
@@ -52,95 +76,106 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
52
76
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(flag) {
53
77
  var mappingResult;
54
78
  return _regenerator.default.wrap(function _callee2$(_context2) {
55
- while (1) switch (_context2.prev = _context2.next) {
56
- case 0:
57
- if (flag) {
58
- _context2.next = 2;
59
- break;
60
- }
61
- return _context2.abrupt("return", flag);
62
- case 2:
63
- layer.dataState.dataMappingNeedUpdate = false;
64
- layer.log(_l7Core.IDebugLog.MappingStart, _l7Core.ILayerStage.UPDATE);
65
- mappingResult = _this.generateMaping(layer, {
66
- styleAttributeService: styleAttributeService
67
- });
68
- layer.log(_l7Core.IDebugLog.MappingEnd, _l7Core.ILayerStage.UPDATE);
69
- return _context2.abrupt("return", mappingResult);
70
- case 7:
71
- case "end":
72
- return _context2.stop();
79
+ while (1) {
80
+ switch (_context2.prev = _context2.next) {
81
+ case 0:
82
+ if (flag) {
83
+ _context2.next = 2;
84
+ break;
85
+ }
86
+
87
+ return _context2.abrupt("return", flag);
88
+
89
+ case 2:
90
+ layer.dataState.dataMappingNeedUpdate = false;
91
+ layer.log(_l7Core.IDebugLog.MappingStart, _l7Core.ILayerStage.UPDATE);
92
+ mappingResult = _this.generateMaping(layer, {
93
+ styleAttributeService: styleAttributeService
94
+ });
95
+ layer.log(_l7Core.IDebugLog.MappingEnd, _l7Core.ILayerStage.UPDATE);
96
+ return _context2.abrupt("return", mappingResult);
97
+
98
+ case 7:
99
+ case "end":
100
+ return _context2.stop();
101
+ }
73
102
  }
74
103
  }, _callee2);
75
104
  }));
105
+
76
106
  return function (_x) {
77
107
  return _ref3.apply(this, arguments);
78
108
  };
79
- }());
109
+ }()); // remapping before render
80
110
 
81
- // remapping before render
82
111
  layer.hooks.beforeRender.tap('DataMappingPlugin', function () {
83
112
  var source = layer.getSource();
113
+
84
114
  if (layer.layerModelNeedUpdate || !source || !source.inited) {
85
115
  return;
86
116
  }
117
+
87
118
  var attributes = styleAttributeService.getLayerStyleAttributes() || [];
88
119
  var filter = styleAttributeService.getLayerStyleAttribute('filter');
89
- var dataArray = source.data.dataArray;
90
- // TODO 数据为空的情况
120
+ var dataArray = source.data.dataArray; // TODO 数据为空的情况
121
+
91
122
  if (Array.isArray(dataArray) && dataArray.length === 0) {
92
123
  return;
93
124
  }
125
+
94
126
  var attributesToRemapping = attributes.filter(function (attribute) {
95
127
  return attribute.needRemapping;
96
128
  } // 如果filter变化
97
129
  );
130
+ var filterData = dataArray; // 数据过滤完 再执行数据映射
98
131
 
99
- var filterData = dataArray;
100
- // 数据过滤完 再执行数据映射
101
132
  if (filter !== null && filter !== void 0 && filter.needRemapping && filter !== null && filter !== void 0 && filter.scale) {
102
133
  filterData = dataArray.filter(function (record) {
103
134
  return _this.applyAttributeMapping(filter, record)[0];
104
135
  });
105
136
  }
137
+
106
138
  if (attributesToRemapping.length) {
107
139
  // 过滤数据
108
140
  var encodeData = _this.mapping(layer, attributesToRemapping, filterData, layer.getEncodedData() // TODO 优化
109
141
  );
110
142
 
111
143
  layer.setEncodedData(encodeData);
112
- }
113
-
114
- // 处理文本更新,更新文字形状
144
+ } // 处理文本更新,更新文字形状
115
145
  // layer.emit('remapping', null);
146
+
116
147
  });
117
148
  }
118
149
  }, {
119
150
  key: "generateMaping",
120
151
  value: function generateMaping(layer, _ref4) {
121
152
  var _this2 = this;
153
+
122
154
  var styleAttributeService = _ref4.styleAttributeService;
123
155
  var attributes = styleAttributeService.getLayerStyleAttributes() || [];
124
156
  var filter = styleAttributeService.getLayerStyleAttribute('filter');
125
157
  var dataArray = layer.getSource().data.dataArray;
126
- var filterData = dataArray;
127
- // 数据过滤完 再执行数据映射
158
+ var filterData = dataArray; // 数据过滤完 再执行数据映射
159
+
128
160
  if (filter !== null && filter !== void 0 && filter.scale) {
129
161
  filterData = dataArray.filter(function (record) {
130
162
  return _this2.applyAttributeMapping(filter, record)[0];
131
163
  });
132
- }
133
- // Tip: layer 对数据做处理
164
+ } // Tip: layer 对数据做处理
134
165
  // 数据处理 在数据进行 mapping 生成 encodeData 之前对数据进行处理
135
166
  // 在各个 layer 中继承
136
167
 
168
+
137
169
  filterData = layer.processData(filterData); // 目前只有简单线需要处理
170
+
138
171
  var encodeData = this.mapping(layer, attributes, filterData, undefined);
139
172
  layer.setEncodedData(encodeData);
173
+
140
174
  if (dataArray.length === 0 && layer.encodeDataLength === 0) {
141
175
  return false;
142
- }
143
- // 对外暴露事件
176
+ } // 对外暴露事件
177
+
178
+
144
179
  layer.emit('dataUpdate', null);
145
180
  return true;
146
181
  }
@@ -148,11 +183,13 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
148
183
  key: "mapping",
149
184
  value: function mapping(layer, attributes, data, predata) {
150
185
  var _this3 = this;
186
+
151
187
  var _ref5 = layer.getLayerConfig(),
152
- _ref5$arrow = _ref5.arrow,
153
- arrow = _ref5$arrow === void 0 ? {
154
- enable: false
155
- } : _ref5$arrow;
188
+ _ref5$arrow = _ref5.arrow,
189
+ arrow = _ref5$arrow === void 0 ? {
190
+ enable: false
191
+ } : _ref5$arrow;
192
+
156
193
  var usedAttributes = attributes.filter(function (attribute) {
157
194
  return attribute.scale !== undefined;
158
195
  }).filter(function (attribute) {
@@ -165,42 +202,45 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
165
202
  coordinates: record.coordinates
166
203
  }, preRecord);
167
204
  usedAttributes.forEach(function (attribute) {
168
- var values = _this3.applyAttributeMapping(attribute, record);
169
- // TODO: 支持每个属性配置 postprocess}
205
+ var values = _this3.applyAttributeMapping(attribute, record); // TODO: 支持每个属性配置 postprocess}
206
+
207
+
170
208
  if (attribute.name === 'color' || attribute.name === 'stroke') {
171
209
  values = values.map(function (c) {
172
210
  return (0, _l7Utils.rgb2arr)(c);
173
211
  });
174
- }
175
- // @ts-ignore
176
- encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values;
212
+ } // @ts-ignore
213
+
214
+
215
+ encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values; // 增加对 layer/text/iconfont unicode 映射的解析
177
216
 
178
- // 增加对 layer/text/iconfont unicode 映射的解析
179
217
  if (attribute.name === 'shape') {
180
218
  encodeRecord.shape = _this3.fontService.getIconFontKey(encodeRecord[attribute.name]);
181
219
  }
182
220
  });
221
+
183
222
  if (arrow.enable && encodeRecord.shape === 'line') {
184
223
  // 只有在线图层且支持配置箭头的时候进行插入顶点的处理
185
- var coords = encodeRecord.coordinates;
186
- // @ts-ignore
224
+ var coords = encodeRecord.coordinates; // @ts-ignore
225
+
187
226
  if (layer.arrowInsertCount < layer.encodeDataLength) {
188
227
  // Tip: arrowInsert 的判断用于确保每一条线数据 arrow 的属性点只会被植入一次
189
228
  var arrowPoint = _this3.getArrowPoints(coords[0], coords[1]);
190
- encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);
191
- // @ts-ignore
229
+
230
+ encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint); // @ts-ignore
231
+
192
232
  layer.arrowInsertCount++;
193
233
  }
194
234
  }
235
+
195
236
  return encodeRecord;
196
237
  });
197
238
  attributes.forEach(function (attribute) {
198
239
  attribute.needRemapping = false;
199
- });
200
- // 调整数据兼容 Amap2.0
201
- this.adjustData2Amap2Coordinates(mappedData, layer);
240
+ }); // 调整数据兼容 Amap2.0
241
+
242
+ this.adjustData2Amap2Coordinates(mappedData, layer); // 调整数据兼容 SimpleCoordinates
202
243
 
203
- // 调整数据兼容 SimpleCoordinates
204
244
  this.adjustData2SimpleCoordinates(mappedData);
205
245
  return mappedData;
206
246
  }
@@ -208,21 +248,22 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
208
248
  key: "adjustData2Amap2Coordinates",
209
249
  value: function adjustData2Amap2Coordinates(mappedData, layer) {
210
250
  var _this4 = this;
251
+
211
252
  // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移
212
253
  if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version['GAODE2.x']) {
213
- var layerCenter = layer.coordCenter || layer.getSource().center;
214
- // 单个的点数据
254
+ var layerCenter = layer.coordCenter || layer.getSource().center; // 单个的点数据
215
255
  // @ts-ignore
216
- mappedData
217
- // TODO: 避免经纬度被重复计算导致坐标位置偏移
256
+
257
+ mappedData // TODO: 避免经纬度被重复计算导致坐标位置偏移
218
258
  .filter(function (d) {
219
259
  return !d.originCoordinates;
220
260
  }).map(function (d) {
221
- d.version = _l7Maps.Version['GAODE2.x'];
222
- // @ts-ignore
261
+ d.version = _l7Maps.Version['GAODE2.x']; // @ts-ignore
262
+
223
263
  d.originCoordinates = (0, _lodash.cloneDeep)(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)
224
264
  // @ts-ignore
225
265
  // d.coordinates = this.mapService.lngLatToCoord(d.coordinates);
266
+
226
267
  d.coordinates = _this4.mapService.coordToAMap2RelativeCoordinates(d.coordinates, layerCenter);
227
268
  });
228
269
  }
@@ -231,6 +272,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
231
272
  key: "adjustData2SimpleCoordinates",
232
273
  value: function adjustData2SimpleCoordinates(mappedData) {
233
274
  var _this5 = this;
275
+
234
276
  if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version.SIMPLE) {
235
277
  mappedData.map(function (d) {
236
278
  if (!d.simpleCoordinate) {
@@ -244,9 +286,11 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
244
286
  key: "unProjectCoordinates",
245
287
  value: function unProjectCoordinates(coordinates) {
246
288
  var _this6 = this;
289
+
247
290
  if (typeof coordinates[0] === 'number') {
248
291
  return this.mapService.simpleMapCoord.unproject(coordinates);
249
292
  }
293
+
250
294
  if (coordinates[0] && coordinates[0][0] instanceof Array) {
251
295
  // @ts-ignore
252
296
  var coords = [];
@@ -255,20 +299,20 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
255
299
  var c1 = [];
256
300
  coord.map(function (co) {
257
301
  c1.push(_this6.mapService.simpleMapCoord.unproject(co));
258
- });
259
- // @ts-ignore
302
+ }); // @ts-ignore
303
+
260
304
  coords.push(c1);
261
- });
262
- // @ts-ignore
305
+ }); // @ts-ignore
306
+
263
307
  return coords;
264
308
  } else {
265
309
  // @ts-ignore
266
- var _coords = [];
267
- // @ts-ignore
310
+ var _coords = []; // @ts-ignore
311
+
268
312
  coordinates.map(function (coord) {
269
313
  _coords.push(_this6.mapService.simpleMapCoord.unproject(coord));
270
- });
271
- // @ts-ignore
314
+ }); // @ts-ignore
315
+
272
316
  return _coords;
273
317
  }
274
318
  }
@@ -276,22 +320,25 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
276
320
  key: "applyAttributeMapping",
277
321
  value: function applyAttributeMapping(attribute, record) {
278
322
  var _attribute$scale;
323
+
279
324
  if (!attribute.scale) {
280
325
  return [];
281
326
  }
327
+
282
328
  var scalers = (attribute === null || attribute === void 0 ? void 0 : (_attribute$scale = attribute.scale) === null || _attribute$scale === void 0 ? void 0 : _attribute$scale.scalers) || [];
283
329
  var params = [];
284
330
  scalers.forEach(function (_ref6) {
285
331
  var _attribute$scale2;
332
+
286
333
  var field = _ref6.field;
334
+
287
335
  if (record.hasOwnProperty(field) || ((_attribute$scale2 = attribute.scale) === null || _attribute$scale2 === void 0 ? void 0 : _attribute$scale2.type) === 'variable') {
288
336
  // TODO:多字段,常量
289
337
  params.push(record[field]);
290
338
  }
291
339
  });
292
340
  var mappingResult = attribute.mapping ? attribute.mapping(params) : [];
293
- return mappingResult;
294
- // return attribute.mapping ? attribute.mapping(params) : [];
341
+ return mappingResult; // return attribute.mapping ? attribute.mapping(params) : [];
295
342
  }
296
343
  }, {
297
344
  key: "getArrowPoints",
@@ -1,81 +1,107 @@
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 _l7Core = require("@antv/l7-core");
19
+
13
20
  var _l7Source = _interopRequireDefault(require("@antv/l7-source"));
21
+
14
22
  var _inversify = require("inversify");
23
+
15
24
  require("reflect-metadata");
25
+
16
26
  var _dec, _class;
27
+
17
28
  var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function () {
18
29
  function DataSourcePlugin() {
19
30
  (0, _classCallCheck2.default)(this, DataSourcePlugin);
20
31
  }
32
+
21
33
  (0, _createClass2.default)(DataSourcePlugin, [{
22
34
  key: "apply",
23
35
  value: function apply(layer) {
24
36
  var _this = this;
37
+
25
38
  this.mapService = layer.getContainer().get(_l7Core.TYPES.IMapService);
26
39
  layer.hooks.init.tapPromise('DataSourcePlugin', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
27
40
  var source, _ref2, data, options;
41
+
28
42
  return _regenerator.default.wrap(function _callee$(_context) {
29
- while (1) switch (_context.prev = _context.next) {
30
- case 0:
31
- layer.log(_l7Core.IDebugLog.SourceInitStart, _l7Core.ILayerStage.INIT);
32
- source = layer.getSource();
33
- if (!source) {
34
- // Tip: 用户没有传入 source 的时候使用图层的默认数据
35
- _ref2 = layer.sourceOption || layer.defaultSourceConfig, data = _ref2.data, options = _ref2.options;
36
- source = new _l7Source.default(data, options);
37
- layer.setSource(source);
38
- }
39
- if (!source.inited) {
40
- _context.next = 8;
43
+ while (1) {
44
+ switch (_context.prev = _context.next) {
45
+ case 0:
46
+ layer.log(_l7Core.IDebugLog.SourceInitStart, _l7Core.ILayerStage.INIT);
47
+ source = layer.getSource();
48
+
49
+ if (!source) {
50
+ // Tip: 用户没有传入 source 的时候使用图层的默认数据
51
+ _ref2 = layer.sourceOption || layer.defaultSourceConfig, data = _ref2.data, options = _ref2.options;
52
+ source = new _l7Source.default(data, options);
53
+ layer.setSource(source);
54
+ }
55
+
56
+ if (!source.inited) {
57
+ _context.next = 8;
58
+ break;
59
+ }
60
+
61
+ _this.updateClusterData(layer);
62
+
63
+ layer.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.INIT);
64
+ _context.next = 10;
41
65
  break;
42
- }
43
- _this.updateClusterData(layer);
44
- layer.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.INIT);
45
- _context.next = 10;
46
- break;
47
- case 8:
48
- _context.next = 10;
49
- return new Promise(function (resolve) {
50
- source.on('update', function (e) {
51
- if (e.type === 'inited') {
52
- _this.updateClusterData(layer);
53
- layer.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.INIT);
54
- }
55
- resolve(null);
66
+
67
+ case 8:
68
+ _context.next = 10;
69
+ return new Promise(function (resolve) {
70
+ source.on('update', function (e) {
71
+ if (e.type === 'inited') {
72
+ _this.updateClusterData(layer);
73
+
74
+ layer.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.INIT);
75
+ }
76
+
77
+ resolve(null);
78
+ });
56
79
  });
57
- });
58
- case 10:
59
- case "end":
60
- return _context.stop();
80
+
81
+ case 10:
82
+ case "end":
83
+ return _context.stop();
84
+ }
61
85
  }
62
86
  }, _callee);
63
- })));
87
+ }))); // 检测数据是否需要更新
64
88
 
65
- // 检测数据是否需要更新
66
89
  layer.hooks.beforeRenderData.tapPromise('DataSourcePlugin', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
67
90
  var neeUpdateCluster, dataSourceNeedUpdate, needScale;
68
91
  return _regenerator.default.wrap(function _callee2$(_context2) {
69
- while (1) switch (_context2.prev = _context2.next) {
70
- case 0:
71
- neeUpdateCluster = _this.updateClusterData(layer);
72
- dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;
73
- layer.dataState.dataSourceNeedUpdate = false;
74
- needScale = neeUpdateCluster || dataSourceNeedUpdate;
75
- return _context2.abrupt("return", needScale);
76
- case 5:
77
- case "end":
78
- return _context2.stop();
92
+ while (1) {
93
+ switch (_context2.prev = _context2.next) {
94
+ case 0:
95
+ neeUpdateCluster = _this.updateClusterData(layer);
96
+ dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;
97
+ layer.dataState.dataSourceNeedUpdate = false;
98
+ needScale = neeUpdateCluster || dataSourceNeedUpdate;
99
+ return _context2.abrupt("return", needScale);
100
+
101
+ case 5:
102
+ case "end":
103
+ return _context2.stop();
104
+ }
79
105
  }
80
106
  }, _callee2);
81
107
  })));
@@ -87,24 +113,29 @@ var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__
87
113
  if (layer.isTileLayer || layer.tileLayer || !layer.getSource()) {
88
114
  return false;
89
115
  }
116
+
90
117
  var source = layer.getSource();
91
118
  var cluster = source.cluster;
92
119
  var _source$clusterOption = source.clusterOptions.zoom,
93
- zoom = _source$clusterOption === void 0 ? 0 : _source$clusterOption;
120
+ zoom = _source$clusterOption === void 0 ? 0 : _source$clusterOption;
94
121
  var newZoom = this.mapService.getZoom() - 1;
95
122
  var dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;
123
+
96
124
  if (cluster && dataSourceNeedUpdate) {
97
125
  // 数据发生更新
98
126
  source.updateClusterData(Math.floor(newZoom));
99
- }
100
- // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次
127
+ } // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次
128
+
129
+
101
130
  if (cluster && Math.abs(layer.clusterZoom - newZoom) >= 1) {
102
131
  if (zoom !== Math.floor(newZoom)) {
103
132
  source.updateClusterData(Math.floor(newZoom));
104
133
  }
134
+
105
135
  layer.clusterZoom = newZoom;
106
136
  return true;
107
137
  }
138
+
108
139
  return false;
109
140
  }
110
141
  }]);