@antv/l7-layers 2.9.14 → 2.9.17-alpha.0

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 (345) hide show
  1. package/es/Geometry/index.js +12 -2
  2. package/es/Geometry/index.js.map +1 -1
  3. package/es/Geometry/models/billboard.d.ts +3 -3
  4. package/es/Geometry/models/billboard.js +11 -6
  5. package/es/Geometry/models/billboard.js.map +1 -1
  6. package/es/Geometry/models/plane.d.ts +3 -3
  7. package/es/Geometry/models/plane.js +12 -7
  8. package/es/Geometry/models/plane.js.map +1 -1
  9. package/es/Geometry/models/sprite.d.ts +3 -3
  10. package/es/Geometry/models/sprite.js +11 -6
  11. package/es/Geometry/models/sprite.js.map +1 -1
  12. package/es/canvas/index.js +12 -2
  13. package/es/canvas/index.js.map +1 -1
  14. package/es/citybuliding/building.js +12 -2
  15. package/es/citybuliding/building.js.map +1 -1
  16. package/es/citybuliding/models/build.d.ts +2 -1
  17. package/es/citybuliding/models/build.js +16 -3
  18. package/es/citybuliding/models/build.js.map +1 -1
  19. package/es/core/BaseLayer.d.ts +1 -1
  20. package/es/core/BaseLayer.js +97 -58
  21. package/es/core/BaseLayer.js.map +1 -1
  22. package/es/core/BaseModel.d.ts +2 -2
  23. package/es/core/BaseModel.js +2 -2
  24. package/es/core/BaseModel.js.map +1 -1
  25. package/es/core/interface.d.ts +2 -0
  26. package/es/core/interface.js.map +1 -1
  27. package/es/core/triangulation.js +1 -2
  28. package/es/core/triangulation.js.map +1 -1
  29. package/es/earth/index.js +8 -2
  30. package/es/earth/index.js.map +1 -1
  31. package/es/earth/models/atmosphere.d.ts +2 -2
  32. package/es/earth/models/atmosphere.js +11 -6
  33. package/es/earth/models/atmosphere.js.map +1 -1
  34. package/es/earth/models/base.d.ts +2 -2
  35. package/es/earth/models/base.js +11 -6
  36. package/es/earth/models/base.js.map +1 -1
  37. package/es/earth/models/bloomsphere.d.ts +2 -2
  38. package/es/earth/models/bloomsphere.js +11 -6
  39. package/es/earth/models/bloomsphere.js.map +1 -1
  40. package/es/heatmap/index.js +17 -5
  41. package/es/heatmap/index.js.map +1 -1
  42. package/es/heatmap/models/grid.d.ts +2 -2
  43. package/es/heatmap/models/grid.js +12 -8
  44. package/es/heatmap/models/grid.js.map +1 -1
  45. package/es/heatmap/models/grid3d.d.ts +2 -2
  46. package/es/heatmap/models/grid3d.js +12 -6
  47. package/es/heatmap/models/grid3d.js.map +1 -1
  48. package/es/heatmap/models/heatmap.d.ts +2 -2
  49. package/es/heatmap/models/heatmap.js +112 -62
  50. package/es/heatmap/models/heatmap.js.map +1 -1
  51. package/es/heatmap/models/hexagon.d.ts +2 -2
  52. package/es/heatmap/models/hexagon.js +11 -6
  53. package/es/heatmap/models/hexagon.js.map +1 -1
  54. package/es/image/index.js +12 -2
  55. package/es/image/index.js.map +1 -1
  56. package/es/image/models/image.d.ts +3 -3
  57. package/es/image/models/image.js +11 -7
  58. package/es/image/models/image.js.map +1 -1
  59. package/es/line/index.d.ts +0 -2
  60. package/es/line/index.js +12 -5
  61. package/es/line/index.js.map +1 -1
  62. package/es/line/models/arc.d.ts +2 -2
  63. package/es/line/models/arc.js +14 -9
  64. package/es/line/models/arc.js.map +1 -1
  65. package/es/line/models/arc_3d.d.ts +2 -2
  66. package/es/line/models/arc_3d.js +13 -8
  67. package/es/line/models/arc_3d.js.map +1 -1
  68. package/es/line/models/earthArc_3d.d.ts +2 -2
  69. package/es/line/models/earthArc_3d.js +17 -9
  70. package/es/line/models/earthArc_3d.js.map +1 -1
  71. package/es/line/models/great_circle.d.ts +2 -2
  72. package/es/line/models/great_circle.js +11 -6
  73. package/es/line/models/great_circle.js.map +1 -1
  74. package/es/line/models/half.d.ts +2 -2
  75. package/es/line/models/half.js +46 -29
  76. package/es/line/models/half.js.map +1 -1
  77. package/es/line/models/index.d.ts +1 -1
  78. package/es/line/models/index.js +0 -2
  79. package/es/line/models/index.js.map +1 -1
  80. package/es/line/models/line.d.ts +2 -2
  81. package/es/line/models/line.js +27 -15
  82. package/es/line/models/line.js.map +1 -1
  83. package/es/line/models/linearline.d.ts +2 -11
  84. package/es/line/models/linearline.js +14 -24
  85. package/es/line/models/linearline.js.map +1 -1
  86. package/es/line/models/simpleLine.d.ts +2 -2
  87. package/es/line/models/simpleLine.js +13 -8
  88. package/es/line/models/simpleLine.js.map +1 -1
  89. package/es/line/models/tile.d.ts +2 -11
  90. package/es/line/models/tile.js +45 -39
  91. package/es/line/models/tile.js.map +1 -1
  92. package/es/line/models/wall.d.ts +2 -2
  93. package/es/line/models/wall.js +13 -9
  94. package/es/line/models/wall.js.map +1 -1
  95. package/es/mask/index.js +12 -2
  96. package/es/mask/index.js.map +1 -1
  97. package/es/mask/models/fill.d.ts +2 -2
  98. package/es/mask/models/fill.js +53 -27
  99. package/es/mask/models/fill.js.map +1 -1
  100. package/es/plugins/DataMappingPlugin.js +29 -8
  101. package/es/plugins/DataMappingPlugin.js.map +1 -1
  102. package/es/plugins/DataSourcePlugin.js +14 -5
  103. package/es/plugins/DataSourcePlugin.js.map +1 -1
  104. package/es/plugins/LayerModelPlugin.d.ts +2 -0
  105. package/es/plugins/LayerModelPlugin.js +33 -7
  106. package/es/plugins/LayerModelPlugin.js.map +1 -1
  107. package/es/plugins/PixelPickingPlugin.js +16 -13
  108. package/es/plugins/PixelPickingPlugin.js.map +1 -1
  109. package/es/point/index.d.ts +1 -1
  110. package/es/point/index.js +15 -8
  111. package/es/point/index.js.map +1 -1
  112. package/es/point/models/earthExtrude.d.ts +2 -2
  113. package/es/point/models/earthExtrude.js +16 -14
  114. package/es/point/models/earthExtrude.js.map +1 -1
  115. package/es/point/models/earthFill.d.ts +2 -11
  116. package/es/point/models/earthFill.js +13 -22
  117. package/es/point/models/earthFill.js.map +1 -1
  118. package/es/point/models/extrude.d.ts +2 -2
  119. package/es/point/models/extrude.js +49 -27
  120. package/es/point/models/extrude.js.map +1 -1
  121. package/es/point/models/fill.d.ts +2 -2
  122. package/es/point/models/fill.js +59 -41
  123. package/es/point/models/fill.js.map +1 -1
  124. package/es/point/models/fillmage.d.ts +2 -7
  125. package/es/point/models/fillmage.js +13 -22
  126. package/es/point/models/fillmage.js.map +1 -1
  127. package/es/point/models/image.d.ts +2 -2
  128. package/es/point/models/image.js +11 -6
  129. package/es/point/models/image.js.map +1 -1
  130. package/es/point/models/index.d.ts +1 -1
  131. package/es/point/models/index.js +0 -2
  132. package/es/point/models/index.js.map +1 -1
  133. package/es/point/models/normal.d.ts +2 -2
  134. package/es/point/models/normal.js +11 -6
  135. package/es/point/models/normal.js.map +1 -1
  136. package/es/point/models/radar.d.ts +2 -11
  137. package/es/point/models/radar.js +13 -22
  138. package/es/point/models/radar.js.map +1 -1
  139. package/es/point/models/simplePoint.d.ts +2 -2
  140. package/es/point/models/simplePoint.js +11 -6
  141. package/es/point/models/simplePoint.js.map +1 -1
  142. package/es/point/models/text.d.ts +3 -2
  143. package/es/point/models/text.js +108 -75
  144. package/es/point/models/text.js.map +1 -1
  145. package/es/point/models/tile.d.ts +2 -11
  146. package/es/point/models/tile.js +22 -25
  147. package/es/point/models/tile.js.map +1 -1
  148. package/es/polygon/index.js +12 -2
  149. package/es/polygon/index.js.map +1 -1
  150. package/es/polygon/models/extrude.d.ts +2 -2
  151. package/es/polygon/models/extrude.js +10 -5
  152. package/es/polygon/models/extrude.js.map +1 -1
  153. package/es/polygon/models/fill.d.ts +2 -2
  154. package/es/polygon/models/fill.js +27 -13
  155. package/es/polygon/models/fill.js.map +1 -1
  156. package/es/polygon/models/ocean.d.ts +2 -2
  157. package/es/polygon/models/ocean.js +12 -6
  158. package/es/polygon/models/ocean.js.map +1 -1
  159. package/es/polygon/models/tile.d.ts +2 -3
  160. package/es/polygon/models/tile.js +17 -27
  161. package/es/polygon/models/tile.js.map +1 -1
  162. package/es/polygon/models/water.d.ts +2 -2
  163. package/es/polygon/models/water.js +12 -6
  164. package/es/polygon/models/water.js.map +1 -1
  165. package/es/raster/index.js +12 -2
  166. package/es/raster/index.js.map +1 -1
  167. package/es/raster/models/raster.d.ts +3 -3
  168. package/es/raster/models/raster.js +11 -7
  169. package/es/raster/models/raster.js.map +1 -1
  170. package/es/tile/manager/tileLayerManager.js +4 -1
  171. package/es/tile/manager/tileLayerManager.js.map +1 -1
  172. package/es/tile/manager/tilePickerManager.js +1 -0
  173. package/es/tile/manager/tilePickerManager.js.map +1 -1
  174. package/es/tile/tileFactory/base.js.map +1 -1
  175. package/es/tile/tileFactory/point.js.map +1 -1
  176. package/es/tile/tileFactory/rasterDataLayer.js +12 -2
  177. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -1
  178. package/es/tile/tileFactory/vectorLayer.js +12 -2
  179. package/es/tile/tileFactory/vectorLayer.js.map +1 -1
  180. package/es/wind/index.js +12 -2
  181. package/es/wind/index.js.map +1 -1
  182. package/es/wind/models/wind.d.ts +2 -2
  183. package/es/wind/models/wind.js +14 -7
  184. package/es/wind/models/wind.js.map +1 -1
  185. package/lib/Geometry/index.js +12 -2
  186. package/lib/Geometry/index.js.map +1 -1
  187. package/lib/Geometry/models/billboard.js +11 -6
  188. package/lib/Geometry/models/billboard.js.map +1 -1
  189. package/lib/Geometry/models/plane.js +12 -7
  190. package/lib/Geometry/models/plane.js.map +1 -1
  191. package/lib/Geometry/models/sprite.js +11 -6
  192. package/lib/Geometry/models/sprite.js.map +1 -1
  193. package/lib/canvas/index.js +12 -2
  194. package/lib/canvas/index.js.map +1 -1
  195. package/lib/citybuliding/building.js +12 -2
  196. package/lib/citybuliding/building.js.map +1 -1
  197. package/lib/citybuliding/models/build.js +16 -3
  198. package/lib/citybuliding/models/build.js.map +1 -1
  199. package/lib/core/BaseLayer.js +96 -57
  200. package/lib/core/BaseLayer.js.map +1 -1
  201. package/lib/core/BaseModel.js +2 -2
  202. package/lib/core/BaseModel.js.map +1 -1
  203. package/lib/core/interface.js.map +1 -1
  204. package/lib/core/triangulation.js +4 -6
  205. package/lib/core/triangulation.js.map +1 -1
  206. package/lib/earth/index.js +8 -2
  207. package/lib/earth/index.js.map +1 -1
  208. package/lib/earth/models/atmosphere.js +11 -6
  209. package/lib/earth/models/atmosphere.js.map +1 -1
  210. package/lib/earth/models/base.js +11 -6
  211. package/lib/earth/models/base.js.map +1 -1
  212. package/lib/earth/models/bloomsphere.js +11 -6
  213. package/lib/earth/models/bloomsphere.js.map +1 -1
  214. package/lib/heatmap/index.js +17 -5
  215. package/lib/heatmap/index.js.map +1 -1
  216. package/lib/heatmap/models/grid.js +12 -8
  217. package/lib/heatmap/models/grid.js.map +1 -1
  218. package/lib/heatmap/models/grid3d.js +12 -6
  219. package/lib/heatmap/models/grid3d.js.map +1 -1
  220. package/lib/heatmap/models/heatmap.js +113 -62
  221. package/lib/heatmap/models/heatmap.js.map +1 -1
  222. package/lib/heatmap/models/hexagon.js +11 -6
  223. package/lib/heatmap/models/hexagon.js.map +1 -1
  224. package/lib/image/index.js +12 -2
  225. package/lib/image/index.js.map +1 -1
  226. package/lib/image/models/image.js +11 -7
  227. package/lib/image/models/image.js.map +1 -1
  228. package/lib/line/index.js +12 -5
  229. package/lib/line/index.js.map +1 -1
  230. package/lib/line/models/arc.js +14 -9
  231. package/lib/line/models/arc.js.map +1 -1
  232. package/lib/line/models/arc_3d.js +13 -8
  233. package/lib/line/models/arc_3d.js.map +1 -1
  234. package/lib/line/models/earthArc_3d.js +17 -9
  235. package/lib/line/models/earthArc_3d.js.map +1 -1
  236. package/lib/line/models/great_circle.js +11 -6
  237. package/lib/line/models/great_circle.js.map +1 -1
  238. package/lib/line/models/half.js +48 -29
  239. package/lib/line/models/half.js.map +1 -1
  240. package/lib/line/models/index.js +0 -3
  241. package/lib/line/models/index.js.map +1 -1
  242. package/lib/line/models/line.js +28 -17
  243. package/lib/line/models/line.js.map +1 -1
  244. package/lib/line/models/linearline.js +14 -24
  245. package/lib/line/models/linearline.js.map +1 -1
  246. package/lib/line/models/simpleLine.js +13 -8
  247. package/lib/line/models/simpleLine.js.map +1 -1
  248. package/lib/line/models/tile.js +47 -39
  249. package/lib/line/models/tile.js.map +1 -1
  250. package/lib/line/models/wall.js +13 -9
  251. package/lib/line/models/wall.js.map +1 -1
  252. package/lib/mask/index.js +12 -2
  253. package/lib/mask/index.js.map +1 -1
  254. package/lib/mask/models/fill.js +55 -27
  255. package/lib/mask/models/fill.js.map +1 -1
  256. package/lib/plugins/DataMappingPlugin.js +29 -8
  257. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  258. package/lib/plugins/DataSourcePlugin.js +13 -4
  259. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  260. package/lib/plugins/LayerModelPlugin.js +33 -7
  261. package/lib/plugins/LayerModelPlugin.js.map +1 -1
  262. package/lib/plugins/PixelPickingPlugin.js +16 -13
  263. package/lib/plugins/PixelPickingPlugin.js.map +1 -1
  264. package/lib/point/index.js +15 -8
  265. package/lib/point/index.js.map +1 -1
  266. package/lib/point/models/earthExtrude.js +16 -15
  267. package/lib/point/models/earthExtrude.js.map +1 -1
  268. package/lib/point/models/earthFill.js +13 -22
  269. package/lib/point/models/earthFill.js.map +1 -1
  270. package/lib/point/models/extrude.js +51 -28
  271. package/lib/point/models/extrude.js.map +1 -1
  272. package/lib/point/models/fill.js +61 -42
  273. package/lib/point/models/fill.js.map +1 -1
  274. package/lib/point/models/fillmage.js +13 -22
  275. package/lib/point/models/fillmage.js.map +1 -1
  276. package/lib/point/models/image.js +11 -6
  277. package/lib/point/models/image.js.map +1 -1
  278. package/lib/point/models/index.js +0 -3
  279. package/lib/point/models/index.js.map +1 -1
  280. package/lib/point/models/normal.js +11 -6
  281. package/lib/point/models/normal.js.map +1 -1
  282. package/lib/point/models/radar.js +13 -22
  283. package/lib/point/models/radar.js.map +1 -1
  284. package/lib/point/models/simplePoint.js +11 -6
  285. package/lib/point/models/simplePoint.js.map +1 -1
  286. package/lib/point/models/text.js +110 -78
  287. package/lib/point/models/text.js.map +1 -1
  288. package/lib/point/models/tile.js +22 -25
  289. package/lib/point/models/tile.js.map +1 -1
  290. package/lib/polygon/index.js +12 -2
  291. package/lib/polygon/index.js.map +1 -1
  292. package/lib/polygon/models/extrude.js +10 -5
  293. package/lib/polygon/models/extrude.js.map +1 -1
  294. package/lib/polygon/models/fill.js +25 -11
  295. package/lib/polygon/models/fill.js.map +1 -1
  296. package/lib/polygon/models/ocean.js +12 -6
  297. package/lib/polygon/models/ocean.js.map +1 -1
  298. package/lib/polygon/models/tile.js +17 -27
  299. package/lib/polygon/models/tile.js.map +1 -1
  300. package/lib/polygon/models/water.js +12 -6
  301. package/lib/polygon/models/water.js.map +1 -1
  302. package/lib/raster/index.js +12 -2
  303. package/lib/raster/index.js.map +1 -1
  304. package/lib/raster/models/raster.js +11 -7
  305. package/lib/raster/models/raster.js.map +1 -1
  306. package/lib/tile/manager/tileLayerManager.js +4 -1
  307. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  308. package/lib/tile/manager/tilePickerManager.js +1 -0
  309. package/lib/tile/manager/tilePickerManager.js.map +1 -1
  310. package/lib/tile/tileFactory/base.js.map +1 -1
  311. package/lib/tile/tileFactory/point.js.map +1 -1
  312. package/lib/tile/tileFactory/rasterDataLayer.js +12 -2
  313. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -1
  314. package/lib/tile/tileFactory/vectorLayer.js +12 -2
  315. package/lib/tile/tileFactory/vectorLayer.js.map +1 -1
  316. package/lib/wind/index.js +12 -2
  317. package/lib/wind/index.js.map +1 -1
  318. package/lib/wind/models/wind.js +14 -7
  319. package/lib/wind/models/wind.js.map +1 -1
  320. package/package.json +10 -9
  321. package/es/line/models/arcmini.d.ts +0 -9
  322. package/es/line/models/arcmini.js +0 -145
  323. package/es/line/models/arcmini.js.map +0 -1
  324. package/es/point/models/icon-font.d.ts +0 -11
  325. package/es/point/models/icon-font.js +0 -181
  326. package/es/point/models/icon-font.js.map +0 -1
  327. package/es/raster/image.d.ts +0 -0
  328. package/es/raster/image.js +0 -2
  329. package/es/raster/image.js.map +0 -1
  330. package/es/raster/raster2d.d.ts +0 -27
  331. package/es/raster/raster2d.js +0 -158
  332. package/es/raster/raster2d.js.map +0 -1
  333. package/es/utils/geo.d.ts +0 -12
  334. package/es/utils/geo.js +0 -53
  335. package/es/utils/geo.js.map +0 -1
  336. package/lib/line/models/arcmini.js +0 -161
  337. package/lib/line/models/arcmini.js.map +0 -1
  338. package/lib/point/models/icon-font.js +0 -196
  339. package/lib/point/models/icon-font.js.map +0 -1
  340. package/lib/raster/image.js +0 -2
  341. package/lib/raster/image.js.map +0 -1
  342. package/lib/raster/raster2d.js +0 -172
  343. package/lib/raster/raster2d.js.map +0 -1
  344. package/lib/utils/geo.js +0 -65
  345. package/lib/utils/geo.js.map +0 -1
@@ -7,6 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
15
 
12
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -55,37 +59,61 @@ var MaskModel = function (_BaseModel) {
55
59
  }
56
60
  }, {
57
61
  key: "initModels",
58
- value: function initModels() {
59
- return this.buildModels();
62
+ value: function initModels(callbackModel) {
63
+ this.buildModels(callbackModel);
60
64
  }
61
65
  }, {
62
66
  key: "buildModels",
63
- value: function buildModels() {
64
- return [this.layer.buildLayerModel({
65
- moduleName: 'mask',
66
- vertexShader: mask_vert,
67
- fragmentShader: mask_frag,
68
- triangulation: _triangulation.polygonTriangulation,
69
- blend: this.getBlend(),
70
- depth: {
71
- enable: false
72
- },
73
- stencil: {
74
- enable: true,
75
- mask: 0xff,
76
- func: {
77
- cmp: _l7Core.gl.ALWAYS,
78
- ref: 1,
79
- mask: 0xff
80
- },
81
- opFront: {
82
- fail: _l7Core.gl.REPLACE,
83
- zfail: _l7Core.gl.REPLACE,
84
- zpass: _l7Core.gl.REPLACE
67
+ value: function () {
68
+ var _buildModels = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(callbackModel) {
69
+ return _regenerator.default.wrap(function _callee$(_context) {
70
+ while (1) {
71
+ switch (_context.prev = _context.next) {
72
+ case 0:
73
+ this.layer.buildLayerModel({
74
+ moduleName: 'mask',
75
+ vertexShader: mask_vert,
76
+ fragmentShader: mask_frag,
77
+ triangulation: _triangulation.polygonTriangulation,
78
+ depth: {
79
+ enable: false
80
+ },
81
+ blend: this.getBlend(),
82
+ stencil: {
83
+ enable: true,
84
+ mask: 0xff,
85
+ func: {
86
+ cmp: _l7Core.gl.ALWAYS,
87
+ ref: 1,
88
+ mask: 0xff
89
+ },
90
+ opFront: {
91
+ fail: _l7Core.gl.REPLACE,
92
+ zfail: _l7Core.gl.REPLACE,
93
+ zpass: _l7Core.gl.REPLACE
94
+ }
95
+ }
96
+ }).then(function (model) {
97
+ callbackModel([model]);
98
+ }).catch(function (err) {
99
+ console.warn(err);
100
+ callbackModel([]);
101
+ });
102
+
103
+ case 1:
104
+ case "end":
105
+ return _context.stop();
106
+ }
85
107
  }
86
- }
87
- })];
88
- }
108
+ }, _callee, this);
109
+ }));
110
+
111
+ function buildModels(_x) {
112
+ return _buildModels.apply(this, arguments);
113
+ }
114
+
115
+ return buildModels;
116
+ }()
89
117
  }, {
90
118
  key: "clearModels",
91
119
  value: function clearModels() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mask/models/fill.ts"],"names":["MaskModel","layer","getLayerConfig","opacity","u_opacity","buildModels","buildLayerModel","moduleName","vertexShader","mask_vert","fragmentShader","mask_frag","triangulation","polygonTriangulation","blend","getBlend","depth","enable","stencil","mask","func","cmp","gl","ALWAYS","ref","opFront","fail","REPLACE","zfail","zpass","dataTexture","destroy","layerService","clear","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;;;;;;;;IAIqBA,S;;;;;;;;;;;;WACnB,wBAAsB;AACpB,iBAEI,KAAKC,KAAL,CAAWC,cAAX,EAFJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;;AAGA,aAAO;AACLC,QAAAA,SAAS,EAAE,wBAASD,OAAT,IAAoBA,OAApB,GAA8B;AADpC,OAAP;AAGD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKE,WAAL,EAAP;AACD;;;WAED,uBAA+B;AAC7B,aAAO,CACL,KAAKJ,KAAL,CAAWK,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,MADa;AAEzBC,QAAAA,YAAY,EAAEC,SAFW;AAGzBC,QAAAA,cAAc,EAAEC,SAHS;AAIzBC,QAAAA,aAAa,EAAEC,mCAJU;AAKzBC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EALkB;AAMzBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SANkB;AAQzBC,QAAAA,OAAO,EAAE;AACPD,UAAAA,MAAM,EAAE,IADD;AAEPE,UAAAA,IAAI,EAAE,IAFC;AAGPC,UAAAA,IAAI,EAAE;AACJC,YAAAA,GAAG,EAAEC,WAAGC,MADJ;AAEJC,YAAAA,GAAG,EAAE,CAFD;AAGJL,YAAAA,IAAI,EAAE;AAHF,WAHC;AAQPM,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAEJ,WAAGK,OADF;AAEPC,YAAAA,KAAK,EAAEN,WAAGK,OAFH;AAGPE,YAAAA,KAAK,EAAEP,WAAGK;AAHH;AARF;AARgB,OAA3B,CADK,CAAP;AAyBD;;;WAED,uBAAqB;AAAA;;AACnB,gCAAKG,WAAL,wEAAkBC,OAAlB;AACA,WAAKC,YAAL,CAAkBC,KAAlB;AACD;;;WAED,qCAAsC;AACpC,aAAO,EAAP;AACD;;;EAjDoCC,mB","sourcesContent":["import { gl, IModel } from '@antv/l7-core';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IMaskLayerStyleOptions } from '../../core/interface';\nimport { polygonTriangulation } from '../../core/triangulation';\nimport mask_frag from '../shaders/mask_frag.glsl';\nimport mask_vert from '../shaders/mask_vert.glsl';\n\nexport default class MaskModel extends BaseModel {\n public getUninforms() {\n const {\n opacity = 0,\n } = this.layer.getLayerConfig() as IMaskLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 0.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n return [\n this.layer.buildLayerModel({\n moduleName: 'mask',\n vertexShader: mask_vert,\n fragmentShader: mask_frag,\n triangulation: polygonTriangulation,\n blend: this.getBlend(),\n depth: { enable: false },\n\n stencil: {\n enable: true,\n mask: 0xff,\n func: {\n cmp: gl.ALWAYS,\n ref: 1,\n mask: 0xff,\n },\n opFront: {\n fail: gl.REPLACE,\n zfail: gl.REPLACE,\n zpass: gl.REPLACE,\n },\n },\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n this.layerService.clear();\n }\n\n protected registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"fill.js"}
1
+ {"version":3,"sources":["../../../src/mask/models/fill.ts"],"names":["MaskModel","layer","getLayerConfig","opacity","u_opacity","callbackModel","buildModels","buildLayerModel","moduleName","vertexShader","mask_vert","fragmentShader","mask_frag","triangulation","polygonTriangulation","depth","enable","blend","getBlend","stencil","mask","func","cmp","gl","ALWAYS","ref","opFront","fail","REPLACE","zfail","zpass","then","model","catch","err","console","warn","dataTexture","destroy","layerService","clear","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;;;;;;;;IAIqBA,S;;;;;;;;;;;;WACnB,wBAAsB;AACpB,iBAEI,KAAKC,KAAL,CAAWC,cAAX,EAFJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;;AAGA,aAAO;AACLC,QAAAA,SAAS,EAAE,wBAASD,OAAT,IAAoBA,OAApB,GAA8B;AADpC,OAAP;AAGD;;;WAED,oBAAkBE,aAAlB,EAA6D;AAC3D,WAAKC,WAAL,CAAiBD,aAAjB;AACD;;;;mFAED,iBAAyBA,aAAzB;AAAA;AAAA;AAAA;AAAA;AACE,qBAAKJ,KAAL,CACGM,eADH,CACmB;AACfC,kBAAAA,UAAU,EAAE,MADG;AAEfC,kBAAAA,YAAY,EAAEC,SAFC;AAGfC,kBAAAA,cAAc,EAAEC,SAHD;AAIfC,kBAAAA,aAAa,EAAEC,mCAJA;AAKfC,kBAAAA,KAAK,EAAE;AAAEC,oBAAAA,MAAM,EAAE;AAAV,mBALQ;AAMfC,kBAAAA,KAAK,EAAE,KAAKC,QAAL,EANQ;AAOfC,kBAAAA,OAAO,EAAE;AACPH,oBAAAA,MAAM,EAAE,IADD;AAEPI,oBAAAA,IAAI,EAAE,IAFC;AAGPC,oBAAAA,IAAI,EAAE;AACJC,sBAAAA,GAAG,EAAEC,WAAGC,MADJ;AAEJC,sBAAAA,GAAG,EAAE,CAFD;AAGJL,sBAAAA,IAAI,EAAE;AAHF,qBAHC;AAQPM,oBAAAA,OAAO,EAAE;AACPC,sBAAAA,IAAI,EAAEJ,WAAGK,OADF;AAEPC,sBAAAA,KAAK,EAAEN,WAAGK,OAFH;AAGPE,sBAAAA,KAAK,EAAEP,WAAGK;AAHH;AARF;AAPM,iBADnB,EAuBGG,IAvBH,CAuBQ,UAACC,KAAD,EAAW;AACf3B,kBAAAA,aAAa,CAAC,CAAC2B,KAAD,CAAD,CAAb;AACD,iBAzBH,EA0BGC,KA1BH,CA0BS,UAACC,GAAD,EAAS;AACdC,kBAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACA7B,kBAAAA,aAAa,CAAC,EAAD,CAAb;AACD,iBA7BH;;AADF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAiCA,uBAAqB;AAAA;;AACnB,gCAAKgC,WAAL,wEAAkBC,OAAlB;AACA,WAAKC,YAAL,CAAkBC,KAAlB;AACD;;;WAED,qCAAsC;AACpC,aAAO,EAAP;AACD;;;EAtDoCC,mB","sourcesContent":["import { gl, IModel } from '@antv/l7-core';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IMaskLayerStyleOptions } from '../../core/interface';\nimport { polygonTriangulation } from '../../core/triangulation';\nimport mask_frag from '../shaders/mask_frag.glsl';\nimport mask_vert from '../shaders/mask_vert.glsl';\n\nexport default class MaskModel extends BaseModel {\n public getUninforms() {\n const {\n opacity = 0,\n } = this.layer.getLayerConfig() as IMaskLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 0.0,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public async buildModels(callbackModel: (models: IModel[]) => void) {\n this.layer\n .buildLayerModel({\n moduleName: 'mask',\n vertexShader: mask_vert,\n fragmentShader: mask_frag,\n triangulation: polygonTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: {\n enable: true,\n mask: 0xff,\n func: {\n cmp: gl.ALWAYS,\n ref: 1,\n mask: 0xff,\n },\n opFront: {\n fail: gl.REPLACE,\n zfail: gl.REPLACE,\n zpass: gl.REPLACE,\n },\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n this.layerService.clear();\n }\n\n protected registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"fill.js"}
@@ -52,28 +52,49 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
52
52
 
53
53
  var styleAttributeService = _ref.styleAttributeService;
54
54
  layer.hooks.init.tap('DataMappingPlugin', function () {
55
- _this.generateMaping(layer, {
56
- styleAttributeService: styleAttributeService
57
- });
55
+ var source = layer.getSource();
56
+
57
+ if (source.inited) {
58
+ _this.generateMaping(layer, {
59
+ styleAttributeService: styleAttributeService
60
+ });
61
+ } else {
62
+ source.once('sourceUpdate', function () {
63
+ _this.generateMaping(layer, {
64
+ styleAttributeService: styleAttributeService
65
+ });
66
+ });
67
+ }
58
68
  });
59
69
  layer.hooks.beforeRenderData.tap('DataMappingPlugin', function () {
60
70
  layer.dataState.dataMappingNeedUpdate = false;
71
+ var source = layer.getSource();
61
72
 
62
- _this.generateMaping(layer, {
63
- styleAttributeService: styleAttributeService
64
- });
73
+ if (source.inited) {
74
+ _this.generateMaping(layer, {
75
+ styleAttributeService: styleAttributeService
76
+ });
77
+ } else {
78
+ source.once('sourceUpdate', function () {
79
+ _this.generateMaping(layer, {
80
+ styleAttributeService: styleAttributeService
81
+ });
82
+ });
83
+ }
65
84
 
66
85
  return true;
67
86
  });
68
87
  layer.hooks.beforeRender.tap('DataMappingPlugin', function () {
69
- if (layer.layerModelNeedUpdate) {
88
+ var source = layer.getSource();
89
+
90
+ if (layer.layerModelNeedUpdate || !source || !source.inited) {
70
91
  return;
71
92
  }
72
93
 
73
94
  var bottomColor = layer.getBottomColor();
74
95
  var attributes = styleAttributeService.getLayerStyleAttributes() || [];
75
96
  var filter = styleAttributeService.getLayerStyleAttribute('filter');
76
- var dataArray = layer.getSource().data.dataArray;
97
+ var dataArray = source.data.dataArray;
77
98
  var attributesToRemapping = attributes.filter(function (attribute) {
78
99
  return attribute.needRemapping;
79
100
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/DataMappingPlugin.ts"],"names":["DataMappingPlugin","TYPES","IGlobalConfigService","IMapService","IFontService","layer","styleAttributeService","hooks","init","tap","generateMaping","beforeRenderData","dataState","dataMappingNeedUpdate","beforeRender","layerModelNeedUpdate","bottomColor","getBottomColor","attributes","getLayerStyleAttributes","filter","getLayerStyleAttribute","dataArray","getSource","data","attributesToRemapping","attribute","needRemapping","filterData","scale","record","applyAttributeMapping","length","setEncodedData","mapping","undefined","getEncodedData","emit","p1","p2","dir","normalizeDir","arrowPoint","predata","minimumColor","getLayerConfig","arrow","enable","mappedData","map","i","preRecord","encodeRecord","id","_id","coordinates","forEach","values","name","c","Array","isArray","shape","fontService","getIconFontKey","coords","getArrowPoints","splice","adjustData2Amap2Coordinates","adjustData2SimpleCoordinates","mapService","version","Version","layerCenter","getLayerCenter","d","originCoordinates","lngLatToCoordByLayer","lngLatToCoordsByLayer","source","center","SIMPLE","simpleCoordinate","unProjectCoordinates","simpleMapCoord","unproject","coord","c1","co","push","scalers","params","field","hasOwnProperty","type","mappingResult"],"mappings":"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","sourcesContent":["import {\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n IParseDataItem,\n IStyleAttribute,\n IStyleAttributeService,\n Position,\n TYPES,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { isColor, normalize, rgb2arr, unProjectFlat } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport { cloneDeep } from 'lodash';\nimport 'reflect-metadata';\nimport { ILineLayerStyleOptions } from '../core/interface';\n\n@injectable()\nexport default class DataMappingPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n @inject(TYPES.IFontService)\n private readonly fontService: IFontService;\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('DataMappingPlugin', () => {\n // 初始化重新生成 map\n this.generateMaping(layer, { styleAttributeService });\n });\n\n layer.hooks.beforeRenderData.tap('DataMappingPlugin', () => {\n layer.dataState.dataMappingNeedUpdate = false;\n this.generateMaping(layer, { styleAttributeService });\n return true;\n });\n\n // remapping before render\n layer.hooks.beforeRender.tap('DataMappingPlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n\n const attributesToRemapping = attributes.filter(\n (attribute) => attribute.needRemapping, // 如果filter变化\n );\n let filterData = dataArray;\n\n // 数据过滤完 再执行数据映射\n if (filter?.needRemapping && filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n\n if (attributesToRemapping.length) {\n // 过滤数据\n if (filter?.needRemapping) {\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n filter.needRemapping = false;\n } else {\n layer.setEncodedData(\n this.mapping(\n layer,\n attributesToRemapping,\n filterData,\n layer.getEncodedData(),\n bottomColor,\n ),\n );\n }\n // 处理文本更新\n layer.emit('remapping', null);\n }\n });\n }\n private generateMaping(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n let filterData = dataArray;\n // 数据过滤完 再执行数据映射\n if (filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n // 对外暴露事件\n layer.emit('dataUpdate', null);\n }\n\n private getArrowPoints(p1: Position, p2: Position) {\n const dir = [p2[0] - p1[0], p2[1] - p1[1]];\n const normalizeDir = normalize(dir);\n const arrowPoint = [\n p1[0] + normalizeDir[0] * 0.0001,\n p1[1] + normalizeDir[1] * 0.0001,\n ];\n return arrowPoint;\n }\n\n private mapping(\n layer: ILayer,\n attributes: IStyleAttribute[],\n data: IParseDataItem[],\n predata?: IEncodeFeature[],\n minimumColor?: string,\n ): IEncodeFeature[] {\n const {\n arrow = {\n enable: false,\n },\n } = layer.getLayerConfig() as ILineLayerStyleOptions;\n const mappedData = data.map((record: IParseDataItem, i) => {\n const preRecord = predata ? predata[i] : {};\n const encodeRecord: IEncodeFeature = {\n id: record._id,\n coordinates: record.coordinates,\n ...preRecord,\n };\n attributes\n .filter((attribute) => attribute.scale !== undefined)\n .forEach((attribute: IStyleAttribute) => {\n // console.log('record', record)\n let values = this.applyAttributeMapping(\n attribute,\n record,\n minimumColor,\n );\n // console.log('values', values)\n attribute.needRemapping = false;\n\n // TODO: 支持每个属性配置 postprocess\n if (attribute.name === 'color') {\n // console.log('attribute', attribute)\n values = values.map((c: unknown) => {\n return rgb2arr(c as string);\n });\n }\n // @ts-ignore\n encodeRecord[attribute.name] =\n Array.isArray(values) && values.length === 1 ? values[0] : values;\n\n // 增加对 layer/text/iconfont unicode 映射的解析\n if (attribute.name === 'shape') {\n encodeRecord.shape = this.fontService.getIconFontKey(\n encodeRecord[attribute.name] as string,\n );\n }\n });\n\n if (\n arrow.enable &&\n (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')\n ) {\n // 只有在线图层且支持配置箭头的时候进行插入顶点的处理\n const coords = encodeRecord.coordinates as Position[];\n const arrowPoint = this.getArrowPoints(coords[0], coords[1]);\n encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);\n }\n return encodeRecord;\n }) as IEncodeFeature[];\n // console.log('mappedData', mappedData)\n\n // 调整数据兼容 Amap2.0\n this.adjustData2Amap2Coordinates(mappedData, layer);\n\n // 调整数据兼容 SimpleCoordinates\n this.adjustData2SimpleCoordinates(mappedData);\n\n return mappedData;\n }\n\n private adjustData2Amap2Coordinates(\n mappedData: IEncodeFeature[],\n layer: ILayer,\n ) {\n // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移\n if (\n mappedData.length > 0 &&\n this.mapService.version === Version['GAODE2.x']\n ) {\n const layerCenter = this.getLayerCenter(layer);\n if (typeof mappedData[0].coordinates[0] === 'number') {\n // 单个的点数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoord(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n } else {\n // 连续的线、面数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoords(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordsByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n }\n }\n }\n\n private getLayerCenter(layer: ILayer) {\n const source = layer.getSource();\n return source.center;\n }\n\n private adjustData2SimpleCoordinates(mappedData: IEncodeFeature[]) {\n if (mappedData.length > 0 && this.mapService.version === Version.SIMPLE) {\n mappedData.map((d) => {\n if (!d.simpleCoordinate) {\n d.coordinates = this.unProjectCoordinates(d.coordinates);\n d.simpleCoordinate = true;\n }\n });\n }\n }\n\n private unProjectCoordinates(coordinates: any) {\n if (typeof coordinates[0] === 'number') {\n return this.mapService.simpleMapCoord.unproject(\n coordinates as [number, number],\n );\n }\n\n if (coordinates[0] && coordinates[0][0] instanceof Array) {\n // @ts-ignore\n const coords = [];\n coordinates.map((coord: any) => {\n // @ts-ignore\n const c1 = [];\n coord.map((co: any) => {\n c1.push(\n this.mapService.simpleMapCoord.unproject(co as [number, number]),\n );\n });\n // @ts-ignore\n coords.push(c1);\n });\n // @ts-ignore\n return coords;\n } else {\n // @ts-ignore\n const coords = [];\n // @ts-ignore\n coordinates.map((coord) => {\n coords.push(\n this.mapService.simpleMapCoord.unproject(coord as [number, number]),\n );\n });\n // @ts-ignore\n return coords;\n }\n }\n\n private applyAttributeMapping(\n attribute: IStyleAttribute,\n record: { [key: string]: unknown },\n minimumColor?: string,\n ) {\n if (!attribute.scale) {\n return [];\n }\n const scalers = attribute?.scale?.scalers || [];\n const params: unknown[] = [];\n\n scalers.forEach(({ field }) => {\n if (\n record.hasOwnProperty(field) ||\n attribute.scale?.type === 'variable'\n ) {\n // TODO:多字段,常量\n params.push(record[field]);\n }\n });\n // console.log('params', params)\n // console.log('attribute', attribute)\n\n const mappingResult = attribute.mapping ? attribute.mapping(params) : [];\n if (attribute.name === 'color' && !isColor(mappingResult[0])) {\n return [minimumColor];\n }\n return mappingResult;\n // return attribute.mapping ? attribute.mapping(params) : [];\n }\n}\n"],"file":"DataMappingPlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/DataMappingPlugin.ts"],"names":["DataMappingPlugin","TYPES","IGlobalConfigService","IMapService","IFontService","layer","styleAttributeService","hooks","init","tap","source","getSource","inited","generateMaping","once","beforeRenderData","dataState","dataMappingNeedUpdate","beforeRender","layerModelNeedUpdate","bottomColor","getBottomColor","attributes","getLayerStyleAttributes","filter","getLayerStyleAttribute","dataArray","data","attributesToRemapping","attribute","needRemapping","filterData","scale","record","applyAttributeMapping","length","setEncodedData","mapping","undefined","getEncodedData","emit","p1","p2","dir","normalizeDir","arrowPoint","predata","minimumColor","getLayerConfig","arrow","enable","mappedData","map","i","preRecord","encodeRecord","id","_id","coordinates","forEach","values","name","c","Array","isArray","shape","fontService","getIconFontKey","coords","getArrowPoints","splice","adjustData2Amap2Coordinates","adjustData2SimpleCoordinates","mapService","version","Version","layerCenter","getLayerCenter","d","originCoordinates","lngLatToCoordByLayer","lngLatToCoordsByLayer","center","SIMPLE","simpleCoordinate","unProjectCoordinates","simpleMapCoord","unproject","coord","c1","co","push","scalers","params","field","hasOwnProperty","type","mappingResult"],"mappings":"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","sourcesContent":["import {\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n IParseDataItem,\n IStyleAttribute,\n IStyleAttributeService,\n Position,\n TYPES,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { isColor, normalize, rgb2arr, unProjectFlat } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport { cloneDeep } from 'lodash';\nimport 'reflect-metadata';\nimport { ILineLayerStyleOptions } from '../core/interface';\n\n@injectable()\nexport default class DataMappingPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n @inject(TYPES.IFontService)\n private readonly fontService: IFontService;\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('DataMappingPlugin', () => {\n // 初始化重新生成 map\n const source = layer.getSource();\n if (source.inited) {\n this.generateMaping(layer, { styleAttributeService });\n } else {\n source.once('sourceUpdate', () => {\n this.generateMaping(layer, { styleAttributeService });\n });\n }\n // this.generateMaping(layer, { styleAttributeService });\n });\n\n layer.hooks.beforeRenderData.tap('DataMappingPlugin', () => {\n layer.dataState.dataMappingNeedUpdate = false;\n const source = layer.getSource();\n if (source.inited) {\n this.generateMaping(layer, { styleAttributeService });\n } else {\n source.once('sourceUpdate', () => {\n this.generateMaping(layer, { styleAttributeService });\n });\n }\n\n // this.generateMaping(layer, { styleAttributeService });\n\n return true;\n });\n\n // remapping before render\n layer.hooks.beforeRender.tap('DataMappingPlugin', () => {\n const source = layer.getSource();\n if (layer.layerModelNeedUpdate || !source || !source.inited) {\n return;\n }\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = source.data;\n\n const attributesToRemapping = attributes.filter(\n (attribute) => attribute.needRemapping, // 如果filter变化\n );\n let filterData = dataArray;\n\n // 数据过滤完 再执行数据映射\n if (filter?.needRemapping && filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n\n if (attributesToRemapping.length) {\n // 过滤数据\n if (filter?.needRemapping) {\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n filter.needRemapping = false;\n } else {\n layer.setEncodedData(\n this.mapping(\n layer,\n attributesToRemapping,\n filterData,\n layer.getEncodedData(),\n bottomColor,\n ),\n );\n }\n // 处理文本更新\n layer.emit('remapping', null);\n }\n });\n }\n private generateMaping(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n let filterData = dataArray;\n // 数据过滤完 再执行数据映射\n if (filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n // 对外暴露事件\n layer.emit('dataUpdate', null);\n }\n\n private getArrowPoints(p1: Position, p2: Position) {\n const dir = [p2[0] - p1[0], p2[1] - p1[1]];\n const normalizeDir = normalize(dir);\n const arrowPoint = [\n p1[0] + normalizeDir[0] * 0.0001,\n p1[1] + normalizeDir[1] * 0.0001,\n ];\n return arrowPoint;\n }\n\n private mapping(\n layer: ILayer,\n attributes: IStyleAttribute[],\n data: IParseDataItem[],\n predata?: IEncodeFeature[],\n minimumColor?: string,\n ): IEncodeFeature[] {\n const {\n arrow = {\n enable: false,\n },\n } = layer.getLayerConfig() as ILineLayerStyleOptions;\n const mappedData = data.map((record: IParseDataItem, i) => {\n const preRecord = predata ? predata[i] : {};\n const encodeRecord: IEncodeFeature = {\n id: record._id,\n coordinates: record.coordinates,\n ...preRecord,\n };\n attributes\n .filter((attribute) => attribute.scale !== undefined)\n .forEach((attribute: IStyleAttribute) => {\n // console.log('record', record)\n let values = this.applyAttributeMapping(\n attribute,\n record,\n minimumColor,\n );\n // console.log('values', values)\n attribute.needRemapping = false;\n\n // TODO: 支持每个属性配置 postprocess\n if (attribute.name === 'color') {\n // console.log('attribute', attribute)\n values = values.map((c: unknown) => {\n return rgb2arr(c as string);\n });\n }\n // @ts-ignore\n encodeRecord[attribute.name] =\n Array.isArray(values) && values.length === 1 ? values[0] : values;\n\n // 增加对 layer/text/iconfont unicode 映射的解析\n if (attribute.name === 'shape') {\n encodeRecord.shape = this.fontService.getIconFontKey(\n encodeRecord[attribute.name] as string,\n );\n }\n });\n\n if (\n arrow.enable &&\n (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')\n ) {\n // 只有在线图层且支持配置箭头的时候进行插入顶点的处理\n const coords = encodeRecord.coordinates as Position[];\n const arrowPoint = this.getArrowPoints(coords[0], coords[1]);\n encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);\n }\n return encodeRecord;\n }) as IEncodeFeature[];\n // console.log('mappedData', mappedData)\n\n // 调整数据兼容 Amap2.0\n this.adjustData2Amap2Coordinates(mappedData, layer);\n\n // 调整数据兼容 SimpleCoordinates\n this.adjustData2SimpleCoordinates(mappedData);\n\n return mappedData;\n }\n\n private adjustData2Amap2Coordinates(\n mappedData: IEncodeFeature[],\n layer: ILayer,\n ) {\n // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移\n if (\n mappedData.length > 0 &&\n this.mapService.version === Version['GAODE2.x']\n ) {\n const layerCenter = this.getLayerCenter(layer);\n if (typeof mappedData[0].coordinates[0] === 'number') {\n // 单个的点数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoord(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n } else {\n // 连续的线、面数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoords(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordsByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n }\n }\n }\n\n private getLayerCenter(layer: ILayer) {\n const source = layer.getSource();\n return source.center;\n }\n\n private adjustData2SimpleCoordinates(mappedData: IEncodeFeature[]) {\n if (mappedData.length > 0 && this.mapService.version === Version.SIMPLE) {\n mappedData.map((d) => {\n if (!d.simpleCoordinate) {\n d.coordinates = this.unProjectCoordinates(d.coordinates);\n d.simpleCoordinate = true;\n }\n });\n }\n }\n\n private unProjectCoordinates(coordinates: any) {\n if (typeof coordinates[0] === 'number') {\n return this.mapService.simpleMapCoord.unproject(\n coordinates as [number, number],\n );\n }\n\n if (coordinates[0] && coordinates[0][0] instanceof Array) {\n // @ts-ignore\n const coords = [];\n coordinates.map((coord: any) => {\n // @ts-ignore\n const c1 = [];\n coord.map((co: any) => {\n c1.push(\n this.mapService.simpleMapCoord.unproject(co as [number, number]),\n );\n });\n // @ts-ignore\n coords.push(c1);\n });\n // @ts-ignore\n return coords;\n } else {\n // @ts-ignore\n const coords = [];\n // @ts-ignore\n coordinates.map((coord) => {\n coords.push(\n this.mapService.simpleMapCoord.unproject(coord as [number, number]),\n );\n });\n // @ts-ignore\n return coords;\n }\n }\n\n private applyAttributeMapping(\n attribute: IStyleAttribute,\n record: { [key: string]: unknown },\n minimumColor?: string,\n ) {\n if (!attribute.scale) {\n return [];\n }\n const scalers = attribute?.scale?.scalers || [];\n const params: unknown[] = [];\n\n scalers.forEach(({ field }) => {\n if (\n record.hasOwnProperty(field) ||\n attribute.scale?.type === 'variable'\n ) {\n // TODO:多字段,常量\n params.push(record[field]);\n }\n });\n // console.log('params', params)\n // console.log('attribute', attribute)\n\n const mappingResult = attribute.mapping ? attribute.mapping(params) : [];\n if (attribute.name === 'color' && !isColor(mappingResult[0])) {\n return [minimumColor];\n }\n return mappingResult;\n // return attribute.mapping ? attribute.mapping(params) : [];\n }\n}\n"],"file":"DataMappingPlugin.js"}
@@ -45,17 +45,26 @@ var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = funct
45
45
  var source = layer.getSource();
46
46
 
47
47
  if (!source) {
48
- var _ref = layer.sourceOption || {
48
+ var defaultSourceConfig = _l7Source.DEFAULT_SOURCE[layer.type] || {
49
49
  data: _l7Source.DEFAULT_DATA,
50
50
  options: _l7Source.DEFAULT_PARSER
51
- },
51
+ };
52
+
53
+ var _ref = layer.sourceOption || defaultSourceConfig,
52
54
  data = _ref.data,
53
55
  options = _ref.options;
54
56
 
55
- layer.setSource(new _l7Source.default(data, options));
57
+ source = new _l7Source.default(data, options);
58
+ layer.setSource(source);
56
59
  }
57
60
 
58
- _this.updateClusterData(layer);
61
+ if (source.inited) {
62
+ _this.updateClusterData(layer);
63
+ } else {
64
+ source.once('sourceUpdate', function () {
65
+ _this.updateClusterData(layer);
66
+ });
67
+ }
59
68
  });
60
69
  layer.hooks.beforeRenderData.tap('DataSourcePlugin', function () {
61
70
  var neeUpdateCluster = _this.updateClusterData(layer);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","sourceOption","data","DEFAULT_DATA","options","DEFAULT_PARSER","setSource","Source","updateClusterData","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","newZoom","getZoom","Math","floor","abs","clusterZoom"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;;;;;;;IAGqBA,gB,WADpB,4B;;;;;;;;WAGC,eAAaC,KAAb,EAA4B;AAAA;;AAC1B,WAAKC,UAAL,GAAkBD,KAAK,CAACE,YAAN,GAAqBC,GAArB,CAAsCC,cAAMC,WAA5C,CAAlB;AACAL,MAAAA,KAAK,CAACM,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7C,YAAMC,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;;AACA,YAAI,CAACD,MAAL,EAAa;AAEX,qBAA0BT,KAAK,CAACW,YAAN,IAAsB;AAC9CC,YAAAA,IAAI,EAAEC,sBADwC;AAE9CC,YAAAA,OAAO,EAAEC;AAFqC,WAAhD;AAAA,cAAQH,IAAR,QAAQA,IAAR;AAAA,cAAcE,OAAd,QAAcA,OAAd;;AAIAd,UAAAA,KAAK,CAACgB,SAAN,CAAgB,IAAIC,iBAAJ,CAAWL,IAAX,EAAiBE,OAAjB,CAAhB;AACD;;AAED,QAAA,KAAI,CAACI,iBAAL,CAAuBlB,KAAvB;AACD,OAZD;AAeAA,MAAAA,KAAK,CAACM,KAAN,CAAYa,gBAAZ,CAA6BX,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAMY,gBAAgB,GAAG,KAAI,CAACF,iBAAL,CAAuBlB,KAAvB,CAAzB;;AACA,YAAMqB,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;AACArB,QAAAA,KAAK,CAACsB,SAAN,CAAgBD,oBAAhB,GAAuC,KAAvC;AACA,eAAOD,gBAAgB,IAAIC,oBAA3B;AACD,OALD;AAMD;;;WAED,2BAA0BrB,KAA1B,EAAkD;AAChD,UAAMS,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;AACA,UAAMa,OAAO,GAAGd,MAAM,CAACc,OAAvB;AACA,kCAAqBd,MAAM,CAACe,cAA5B,CAAQC,IAAR;AAAA,UAAQA,IAAR,sCAAe,CAAf;AACA,UAAMC,OAAO,GAAG,KAAKzB,UAAL,CAAgB0B,OAAhB,KAA4B,CAA5C;AACA,UAAMN,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;;AACA,UAAIE,OAAO,IAAIF,oBAAf,EAAqC;AAEnCZ,QAAAA,MAAM,CAACS,iBAAP,CAAyBU,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AAED,UAAIH,OAAO,IAAIK,IAAI,CAACE,GAAL,CAAS9B,KAAK,CAAC+B,WAAN,GAAoBL,OAA7B,KAAyC,CAAxD,EAA2D;AACzD,YAAID,IAAI,KAAKG,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAb,EAAkC;AAChCjB,UAAAA,MAAM,CAACS,iBAAP,CAAyBU,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AACD1B,QAAAA,KAAK,CAAC+B,WAAN,GAAoBL,OAApB;AACA,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD","sourcesContent":["import {\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n TYPES,\n} from '@antv/l7-core';\nimport Source, { DEFAULT_DATA, DEFAULT_PARSER } from '@antv/l7-source';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\n@injectable()\nexport default class DataSourcePlugin implements ILayerPlugin {\n protected mapService: IMapService;\n public apply(layer: ILayer) {\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n layer.hooks.init.tap('DataSourcePlugin', () => {\n const source = layer.getSource();\n if (!source) {\n // TODO: 允许用户不使用 layer 的 source 方法,在这里传入一个默认的替换的默认数据\n const { data, options } = layer.sourceOption || {\n data: DEFAULT_DATA,\n options: DEFAULT_PARSER,\n };\n layer.setSource(new Source(data, options));\n }\n\n this.updateClusterData(layer);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const neeUpdateCluster = this.updateClusterData(layer);\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n layer.dataState.dataSourceNeedUpdate = false;\n return neeUpdateCluster || dataSourceNeedUpdate;\n });\n }\n\n private updateClusterData(layer: ILayer): boolean {\n const source = layer.getSource();\n const cluster = source.cluster;\n const { zoom = 0 } = source.clusterOptions;\n const newZoom = this.mapService.getZoom() - 1;\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n if (cluster && dataSourceNeedUpdate) {\n // 数据发生更新\n source.updateClusterData(Math.floor(newZoom));\n }\n // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次\n if (cluster && Math.abs(layer.clusterZoom - newZoom) >= 1) {\n if (zoom !== Math.floor(newZoom)) {\n source.updateClusterData(Math.floor(newZoom));\n }\n layer.clusterZoom = newZoom;\n return true;\n }\n return false;\n }\n}\n"],"file":"DataSourcePlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","defaultSourceConfig","DEFAULT_SOURCE","type","data","DEFAULT_DATA","options","DEFAULT_PARSER","sourceOption","Source","setSource","inited","updateClusterData","once","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","newZoom","getZoom","Math","floor","abs","clusterZoom"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAOA;;AAKA;;AACA;;;;;;;;IAGqBA,gB,WADpB,4B;;;;;;;;WAGC,eAAaC,KAAb,EAA4B;AAAA;;AAC1B,WAAKC,UAAL,GAAkBD,KAAK,CAACE,YAAN,GAAqBC,GAArB,CAAsCC,cAAMC,WAA5C,CAAlB;AACAL,MAAAA,KAAK,CAACM,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7C,YAAIC,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAb;;AACA,YAAI,CAACD,MAAL,EAAa;AAEX,cAAME,mBAAmB,GAAGC,yBAC1BZ,KAAK,CAACa,IADoB,KAEvB;AACHC,YAAAA,IAAI,EAAEC,sBADH;AAEHC,YAAAA,OAAO,EAAEC;AAFN,WAFL;;AAMA,qBAA0BjB,KAAK,CAACkB,YAAN,IAAsBP,mBAAhD;AAAA,cAAQG,IAAR,QAAQA,IAAR;AAAA,cAAcE,OAAd,QAAcA,OAAd;;AACAP,UAAAA,MAAM,GAAG,IAAIU,iBAAJ,CAAWL,IAAX,EAAiBE,OAAjB,CAAT;AACAhB,UAAAA,KAAK,CAACoB,SAAN,CAAgBX,MAAhB;AACD;;AACD,YAAIA,MAAM,CAACY,MAAX,EAAmB;AACjB,UAAA,KAAI,CAACC,iBAAL,CAAuBtB,KAAvB;AACD,SAFD,MAEO;AACLS,UAAAA,MAAM,CAACc,IAAP,CAAY,cAAZ,EAA4B,YAAM;AAChC,YAAA,KAAI,CAACD,iBAAL,CAAuBtB,KAAvB;AAED,WAHD;AAID;AAEF,OAvBD;AA0BAA,MAAAA,KAAK,CAACM,KAAN,CAAYkB,gBAAZ,CAA6BhB,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAMiB,gBAAgB,GAAG,KAAI,CAACH,iBAAL,CAAuBtB,KAAvB,CAAzB;;AACA,YAAM0B,oBAAoB,GAAG1B,KAAK,CAAC2B,SAAN,CAAgBD,oBAA7C;AACA1B,QAAAA,KAAK,CAAC2B,SAAN,CAAgBD,oBAAhB,GAAuC,KAAvC;AACA,eAAOD,gBAAgB,IAAIC,oBAA3B;AACD,OALD;AAMD;;;WAED,2BAA0B1B,KAA1B,EAAkD;AAChD,UAAMS,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;AACA,UAAMkB,OAAO,GAAGnB,MAAM,CAACmB,OAAvB;AACA,kCAAqBnB,MAAM,CAACoB,cAA5B,CAAQC,IAAR;AAAA,UAAQA,IAAR,sCAAe,CAAf;AACA,UAAMC,OAAO,GAAG,KAAK9B,UAAL,CAAgB+B,OAAhB,KAA4B,CAA5C;AACA,UAAMN,oBAAoB,GAAG1B,KAAK,CAAC2B,SAAN,CAAgBD,oBAA7C;;AACA,UAAIE,OAAO,IAAIF,oBAAf,EAAqC;AAEnCjB,QAAAA,MAAM,CAACa,iBAAP,CAAyBW,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AAED,UAAIH,OAAO,IAAIK,IAAI,CAACE,GAAL,CAASnC,KAAK,CAACoC,WAAN,GAAoBL,OAA7B,KAAyC,CAAxD,EAA2D;AACzD,YAAID,IAAI,KAAKG,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAb,EAAkC;AAChCtB,UAAAA,MAAM,CAACa,iBAAP,CAAyBW,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AACD/B,QAAAA,KAAK,CAACoC,WAAN,GAAoBL,OAApB;AACA,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD","sourcesContent":["import {\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n TYPES,\n} from '@antv/l7-core';\nimport Source, {\n DEFAULT_DATA,\n DEFAULT_PARSER,\n DEFAULT_SOURCE,\n} from '@antv/l7-source';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\n@injectable()\nexport default class DataSourcePlugin implements ILayerPlugin {\n protected mapService: IMapService;\n public apply(layer: ILayer) {\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n layer.hooks.init.tap('DataSourcePlugin', () => {\n let source = layer.getSource();\n if (!source) {\n // TODO: 允许用户不使用 layer 的 source 方法,在这里传入一个默认的替换的默认数据\n const defaultSourceConfig = DEFAULT_SOURCE[\n layer.type as 'PointLayer' | 'LineLayer'\n ] || {\n data: DEFAULT_DATA,\n options: DEFAULT_PARSER,\n };\n const { data, options } = layer.sourceOption || defaultSourceConfig;\n source = new Source(data, options);\n layer.setSource(source);\n }\n if (source.inited) {\n this.updateClusterData(layer);\n } else {\n source.once('sourceUpdate', () => {\n this.updateClusterData(layer);\n // TODO: layer.hooks.init.call();\n });\n }\n // this.updateClusterData(layer);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const neeUpdateCluster = this.updateClusterData(layer);\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n layer.dataState.dataSourceNeedUpdate = false;\n return neeUpdateCluster || dataSourceNeedUpdate;\n });\n }\n\n private updateClusterData(layer: ILayer): boolean {\n const source = layer.getSource();\n const cluster = source.cluster;\n const { zoom = 0 } = source.clusterOptions;\n const newZoom = this.mapService.getZoom() - 1;\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n if (cluster && dataSourceNeedUpdate) {\n // 数据发生更新\n source.updateClusterData(Math.floor(newZoom));\n }\n // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次\n if (cluster && Math.abs(layer.clusterZoom - newZoom) >= 1) {\n if (zoom !== Math.floor(newZoom)) {\n source.updateClusterData(Math.floor(newZoom));\n }\n layer.clusterZoom = newZoom;\n return true;\n }\n return false;\n }\n}\n"],"file":"DataSourcePlugin.js"}
@@ -23,18 +23,44 @@ var LayerModelPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = funct
23
23
  }
24
24
 
25
25
  (0, _createClass2.default)(LayerModelPlugin, [{
26
+ key: "initLayerModel",
27
+ value: function initLayerModel(layer) {
28
+ layer.prepareBuildModel();
29
+ layer.buildModels();
30
+ layer.styleNeedUpdate = false;
31
+ }
32
+ }, {
33
+ key: "prepareLayerModel",
34
+ value: function prepareLayerModel(layer) {
35
+ layer.prepareBuildModel();
36
+ layer.clearModels();
37
+ layer.buildModels();
38
+ layer.layerModelNeedUpdate = false;
39
+ }
40
+ }, {
26
41
  key: "apply",
27
42
  value: function apply(layer) {
43
+ var _this = this;
44
+
28
45
  layer.hooks.init.tap('LayerModelPlugin', function () {
29
- layer.prepareBuildModel();
30
- layer.buildModels();
31
- layer.styleNeedUpdate = false;
46
+ layer.inited = true;
47
+ var source = layer.getSource();
48
+
49
+ if (source.inited) {
50
+ _this.initLayerModel(layer);
51
+ }
32
52
  });
33
53
  layer.hooks.beforeRenderData.tap('DataSourcePlugin', function () {
34
- layer.prepareBuildModel();
35
- layer.clearModels();
36
- layer.buildModels();
37
- layer.layerModelNeedUpdate = false;
54
+ var source = layer.getSource();
55
+
56
+ if (source.inited) {
57
+ _this.prepareLayerModel(layer);
58
+ } else {
59
+ source.once('sourceUpdate', function () {
60
+ _this.prepareLayerModel(layer);
61
+ });
62
+ }
63
+
38
64
  return false;
39
65
  });
40
66
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/LayerModelPlugin.ts"],"names":["LayerModelPlugin","layer","hooks","init","tap","prepareBuildModel","buildModels","styleNeedUpdate","beforeRenderData","clearModels","layerModelNeedUpdate"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;;;IAKqBA,gB,WADpB,4B;;;;;;;WAEC,eAAaC,KAAb,EAA4B;AAC1BA,MAAAA,KAAK,CAACC,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAE7CH,QAAAA,KAAK,CAACI,iBAAN;AAEAJ,QAAAA,KAAK,CAACK,WAAN;AACAL,QAAAA,KAAK,CAACM,eAAN,GAAwB,KAAxB;AACD,OAND;AAQAN,MAAAA,KAAK,CAACC,KAAN,CAAYM,gBAAZ,CAA6BJ,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AAEzDH,QAAAA,KAAK,CAACI,iBAAN;AAEAJ,QAAAA,KAAK,CAACQ,WAAN;AAEAR,QAAAA,KAAK,CAACK,WAAN;AACAL,QAAAA,KAAK,CAACS,oBAAN,GAA6B,KAA7B;AACA,eAAO,KAAP;AACD,OATD;AAUD","sourcesContent":["import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n/**\n * Layer Model 初始化,更新,销毁\n */\n@injectable()\nexport default class LayerModelPlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.init.tap('LayerModelPlugin', () => {\n // 更新Model 配置项\n layer.prepareBuildModel();\n // 初始化 Model\n layer.buildModels();\n layer.styleNeedUpdate = false;\n });\n\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n // 更新Model 配置项\n layer.prepareBuildModel();\n\n layer.clearModels();\n // 初始化 Model\n layer.buildModels();\n layer.layerModelNeedUpdate = false;\n return false;\n });\n }\n}\n"],"file":"LayerModelPlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/LayerModelPlugin.ts"],"names":["LayerModelPlugin","layer","prepareBuildModel","buildModels","styleNeedUpdate","clearModels","layerModelNeedUpdate","hooks","init","tap","inited","source","getSource","initLayerModel","beforeRenderData","prepareLayerModel","once"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;;;IAKqBA,gB,WADpB,4B;;;;;;;WAEC,wBAAsBC,KAAtB,EAAqC;AAEnCA,MAAAA,KAAK,CAACC,iBAAN;AAEAD,MAAAA,KAAK,CAACE,WAAN;AACAF,MAAAA,KAAK,CAACG,eAAN,GAAwB,KAAxB;AACD;;;WAED,2BAAyBH,KAAzB,EAAwC;AAEtCA,MAAAA,KAAK,CAACC,iBAAN;AACAD,MAAAA,KAAK,CAACI,WAAN;AAEAJ,MAAAA,KAAK,CAACE,WAAN;AACAF,MAAAA,KAAK,CAACK,oBAAN,GAA6B,KAA7B;AACD;;;WAED,eAAaL,KAAb,EAA4B;AAAA;;AAC1BA,MAAAA,KAAK,CAACM,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7CR,QAAAA,KAAK,CAACS,MAAN,GAAe,IAAf;AACA,YAAMC,MAAM,GAAGV,KAAK,CAACW,SAAN,EAAf;;AACA,YAAID,MAAM,CAACD,MAAX,EAAmB;AACjB,UAAA,KAAI,CAACG,cAAL,CAAoBZ,KAApB;AACD;AACF,OAND;AAQAA,MAAAA,KAAK,CAACM,KAAN,CAAYO,gBAAZ,CAA6BL,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAME,MAAM,GAAGV,KAAK,CAACW,SAAN,EAAf;;AACA,YAAID,MAAM,CAACD,MAAX,EAAmB;AACjB,UAAA,KAAI,CAACK,iBAAL,CAAuBd,KAAvB;AACD,SAFD,MAEO;AACLU,UAAAA,MAAM,CAACK,IAAP,CAAY,cAAZ,EAA4B,YAAM;AAChC,YAAA,KAAI,CAACD,iBAAL,CAAuBd,KAAvB;AACD,WAFD;AAGD;;AACD,eAAO,KAAP;AACD,OAVD;AAWD","sourcesContent":["import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n/**\n * Layer Model 初始化,更新,销毁\n */\n@injectable()\nexport default class LayerModelPlugin implements ILayerPlugin {\n public initLayerModel(layer: ILayer) {\n // 更新Model 配置项\n layer.prepareBuildModel();\n // 初始化 Model\n layer.buildModels();\n layer.styleNeedUpdate = false;\n }\n\n public prepareLayerModel(layer: ILayer) {\n // 更新Model 配置项\n layer.prepareBuildModel();\n layer.clearModels();\n // 初始化 Model\n layer.buildModels();\n layer.layerModelNeedUpdate = false;\n }\n\n public apply(layer: ILayer) {\n layer.hooks.init.tap('LayerModelPlugin', () => {\n layer.inited = true;\n const source = layer.getSource();\n if (source.inited) {\n this.initLayerModel(layer);\n }\n });\n\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const source = layer.getSource();\n if (source.inited) {\n this.prepareLayerModel(layer);\n } else {\n source.once('sourceUpdate', () => {\n this.prepareLayerModel(layer);\n });\n }\n return false;\n });\n }\n}\n"],"file":"LayerModelPlugin.js"}
@@ -37,7 +37,10 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
37
37
  var rendererService = _ref.rendererService,
38
38
  styleAttributeService = _ref.styleAttributeService;
39
39
  layer.hooks.init.tap('PixelPickingPlugin', function () {
40
- var enablePicking = true;
40
+ var _layer$getLayerConfig = layer.getLayerConfig(),
41
+ enablePicking = _layer$getLayerConfig.enablePicking,
42
+ enableMultiPassRenderer = _layer$getLayerConfig.enableMultiPassRenderer;
43
+
41
44
  styleAttributeService.registerStyleAttribute({
42
45
  name: 'pickingColor',
43
46
  type: _l7Core.AttributeType.Attribute,
@@ -56,8 +59,8 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
56
59
  });
57
60
  });
58
61
  layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', function () {
59
- var _layer$getLayerConfig = layer.getLayerConfig(),
60
- enablePicking = _layer$getLayerConfig.enablePicking;
62
+ var _layer$getLayerConfig2 = layer.getLayerConfig(),
63
+ enablePicking = _layer$getLayerConfig2.enablePicking;
61
64
 
62
65
  if (enablePicking && layer.isVisible()) {
63
66
  layer.models.forEach(function (model) {
@@ -68,8 +71,8 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
68
71
  }
69
72
  });
70
73
  layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', function () {
71
- var _layer$getLayerConfig2 = layer.getLayerConfig(),
72
- enablePicking = _layer$getLayerConfig2.enablePicking;
74
+ var _layer$getLayerConfig3 = layer.getLayerConfig(),
75
+ enablePicking = _layer$getLayerConfig3.enablePicking;
73
76
 
74
77
  if (enablePicking && layer.isVisible()) {
75
78
  layer.models.forEach(function (model) {
@@ -80,10 +83,10 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
80
83
  }
81
84
  });
82
85
  layer.hooks.beforeHighlight.tap('PixelPickingPlugin', function (pickedColor) {
83
- var _layer$getLayerConfig3 = layer.getLayerConfig(),
84
- highlightColor = _layer$getLayerConfig3.highlightColor,
85
- _layer$getLayerConfig4 = _layer$getLayerConfig3.activeMix,
86
- activeMix = _layer$getLayerConfig4 === void 0 ? 0 : _layer$getLayerConfig4;
86
+ var _layer$getLayerConfig4 = layer.getLayerConfig(),
87
+ highlightColor = _layer$getLayerConfig4.highlightColor,
88
+ _layer$getLayerConfig5 = _layer$getLayerConfig4.activeMix,
89
+ activeMix = _layer$getLayerConfig5 === void 0 ? 0 : _layer$getLayerConfig5;
87
90
 
88
91
  var highlightColorInArray = typeof highlightColor === 'string' ? (0, _l7Utils.rgb2arr)(highlightColor) : highlightColor || [1, 0, 0, 1];
89
92
  layer.updateLayerConfig({
@@ -101,10 +104,10 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
101
104
  });
102
105
  });
103
106
  layer.hooks.beforeSelect.tap('PixelPickingPlugin', function (pickedColor) {
104
- var _layer$getLayerConfig5 = layer.getLayerConfig(),
105
- selectColor = _layer$getLayerConfig5.selectColor,
106
- _layer$getLayerConfig6 = _layer$getLayerConfig5.selectMix,
107
- selectMix = _layer$getLayerConfig6 === void 0 ? 0 : _layer$getLayerConfig6;
107
+ var _layer$getLayerConfig6 = layer.getLayerConfig(),
108
+ selectColor = _layer$getLayerConfig6.selectColor,
109
+ _layer$getLayerConfig7 = _layer$getLayerConfig6.selectMix,
110
+ selectMix = _layer$getLayerConfig7 === void 0 ? 0 : _layer$getLayerConfig7;
108
111
 
109
112
  var highlightColorInArray = typeof selectColor === 'string' ? (0, _l7Utils.rgb2arr)(selectColor) : selectColor || [1, 0, 0, 1];
110
113
  layer.updateLayerConfig({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","enablePicking","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","data","gl","FLOAT","size","update","feature","featureIdx","id","beforePickingEncode","getLayerConfig","isVisible","models","forEach","model","addUniforms","u_PickingStage","afterPickingEncode","beforeHighlight","pickedColor","highlightColor","activeMix","highlightColorInArray","updateLayerConfig","pickedFeatureID","Uint8Array","u_PickingColor","u_HighlightColor","map","c","u_activeMix","beforeSelect","selectColor","selectMix","u_CurrentSelectedId","u_SelectColor","u_EnableSelect"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayer,\n ILayerPlugin,\n IRendererService,\n IStyleAttributeService,\n} from '@antv/l7-core';\nimport {\n decodePickingColor,\n encodePickingColor,\n rgb2arr,\n} from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst PickingStage = {\n NONE: 0.0,\n ENCODE: 1.0,\n HIGHLIGHT: 2.0,\n};\n\n@injectable()\nexport default class PixelPickingPlugin implements ILayerPlugin {\n public apply(\n layer: ILayer,\n {\n rendererService,\n styleAttributeService,\n }: {\n rendererService: IRendererService;\n styleAttributeService: IStyleAttributeService;\n },\n ) {\n // TODO: 由于 Shader 目前无法根据是否开启拾取进行内容修改,因此即使不开启也需要生成 a_PickingColor\n layer.hooks.init.tap('PixelPickingPlugin', () => {\n // const { enablePicking, enableMultiPassRenderer } = layer.getLayerConfig();\n const enablePicking = true;\n styleAttributeService.registerStyleAttribute({\n name: 'pickingColor',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_PickingColor',\n buffer: {\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // TODO: 固定 feature range 范围内的 pickingColor 都是固定的,可以生成 cache\n update: (feature: IEncodeFeature, featureIdx: number) => {\n // 只有开启拾取才需要 encode\n const { id } = feature;\n return enablePicking ? encodePickingColor(id as number) : [0, 0, 0];\n },\n },\n });\n });\n // 必须要与 PixelPickingPass 结合使用,因此必须开启 multiPassRenderer\n // if (layer.multiPassRenderer) {\n layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.ENCODE,\n }),\n );\n }\n });\n\n layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n // 区分选中高亮 和滑过高亮\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n }),\n );\n }\n });\n\n layer.hooks.beforeHighlight.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { highlightColor, activeMix = 0 } = layer.getLayerConfig();\n // const {\n // highlightColor,\n // activeMix = 0,\n // enableSelect,\n // } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof highlightColor === 'string'\n ? rgb2arr(highlightColor)\n : highlightColor || [1, 0, 0, 1];\n\n // const { selectColor } = layer.getLayerConfig();\n // const selectColorInArray =\n // typeof selectColor === 'string'\n // ? rgb2arr(selectColor)\n // : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n // const currentSelectedId = layer.getCurrentSelectedId();\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n u_activeMix: activeMix,\n // u_CurrentSelectedId: currentSelectedId\n // ? encodePickingColor(layer.getCurrentSelectedId()!)\n // : [0, 0, 0],\n // u_SelectColor: selectColorInArray.map((c) => c * 255),\n // u_EnableSelect: +(enableSelect || false),\n }),\n );\n },\n );\n\n layer.hooks.beforeSelect.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { selectColor, selectMix = 0 } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof selectColor === 'string'\n ? rgb2arr(selectColor)\n : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n u_activeMix: selectMix,\n u_CurrentSelectedId: pickedColor,\n u_SelectColor: highlightColorInArray.map((c) => c * 255),\n u_EnableSelect: 1,\n }),\n );\n },\n );\n // }\n }\n}\n"],"file":"PixelPickingPlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","getLayerConfig","enablePicking","enableMultiPassRenderer","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","data","gl","FLOAT","size","update","feature","featureIdx","id","beforePickingEncode","isVisible","models","forEach","model","addUniforms","u_PickingStage","afterPickingEncode","beforeHighlight","pickedColor","highlightColor","activeMix","highlightColorInArray","updateLayerConfig","pickedFeatureID","Uint8Array","u_PickingColor","u_HighlightColor","map","c","u_activeMix","beforeSelect","selectColor","selectMix","u_CurrentSelectedId","u_SelectColor","u_EnableSelect"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayer,\n ILayerPlugin,\n IRendererService,\n IStyleAttributeService,\n} from '@antv/l7-core';\nimport {\n decodePickingColor,\n encodePickingColor,\n rgb2arr,\n} from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst PickingStage = {\n NONE: 0.0,\n ENCODE: 1.0,\n HIGHLIGHT: 2.0,\n};\n\n@injectable()\nexport default class PixelPickingPlugin implements ILayerPlugin {\n public apply(\n layer: ILayer,\n {\n rendererService,\n styleAttributeService,\n }: {\n rendererService: IRendererService;\n styleAttributeService: IStyleAttributeService;\n },\n ) {\n // TODO: 由于 Shader 目前无法根据是否开启拾取进行内容修改,因此即使不开启也需要生成 a_PickingColor\n layer.hooks.init.tap('PixelPickingPlugin', () => {\n const { enablePicking, enableMultiPassRenderer } = layer.getLayerConfig();\n // const enablePicking = true;\n styleAttributeService.registerStyleAttribute({\n name: 'pickingColor',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_PickingColor',\n buffer: {\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // TODO: 固定 feature range 范围内的 pickingColor 都是固定的,可以生成 cache\n update: (feature: IEncodeFeature, featureIdx: number) => {\n // 只有开启拾取才需要 encode\n const { id } = feature;\n return enablePicking ? encodePickingColor(id as number) : [0, 0, 0];\n },\n },\n });\n });\n // 必须要与 PixelPickingPass 结合使用,因此必须开启 multiPassRenderer\n // if (layer.multiPassRenderer) {\n layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.ENCODE,\n }),\n );\n }\n });\n\n layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n // 区分选中高亮 和滑过高亮\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n }),\n );\n }\n });\n\n layer.hooks.beforeHighlight.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { highlightColor, activeMix = 0 } = layer.getLayerConfig();\n // const {\n // highlightColor,\n // activeMix = 0,\n // enableSelect,\n // } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof highlightColor === 'string'\n ? rgb2arr(highlightColor)\n : highlightColor || [1, 0, 0, 1];\n\n // const { selectColor } = layer.getLayerConfig();\n // const selectColorInArray =\n // typeof selectColor === 'string'\n // ? rgb2arr(selectColor)\n // : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n // const currentSelectedId = layer.getCurrentSelectedId();\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n u_activeMix: activeMix,\n // u_CurrentSelectedId: currentSelectedId\n // ? encodePickingColor(layer.getCurrentSelectedId()!)\n // : [0, 0, 0],\n // u_SelectColor: selectColorInArray.map((c) => c * 255),\n // u_EnableSelect: +(enableSelect || false),\n }),\n );\n },\n );\n\n layer.hooks.beforeSelect.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { selectColor, selectMix = 0 } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof selectColor === 'string'\n ? rgb2arr(selectColor)\n : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n u_activeMix: selectMix,\n u_CurrentSelectedId: pickedColor,\n u_SelectColor: highlightColorInArray.map((c) => c * 255),\n u_EnableSelect: 1,\n }),\n );\n },\n );\n // }\n }\n}\n"],"file":"PixelPickingPlugin.js"}
@@ -57,14 +57,26 @@ var PointLayer = function (_BaseLayer) {
57
57
  (0, _createClass2.default)(PointLayer, [{
58
58
  key: "buildModels",
59
59
  value: function buildModels() {
60
+ var _this2 = this;
61
+
60
62
  var modelType = this.getModelType();
61
63
  this.layerModel = new _index.default[modelType](this);
62
- this.models = this.layerModel.initModels();
64
+ this.layerModel.initModels(function (models) {
65
+ _this2.models = models;
66
+
67
+ _this2.layerService.updateLayerRenderList();
68
+
69
+ _this2.renderLayers();
70
+ });
63
71
  }
64
72
  }, {
65
73
  key: "rebuildModels",
66
74
  value: function rebuildModels() {
67
- this.models = this.layerModel.buildModels();
75
+ var _this3 = this;
76
+
77
+ this.layerModel.buildModels(function (models) {
78
+ return _this3.models = models;
79
+ });
68
80
  }
69
81
  }, {
70
82
  key: "getModelTypeWillEmptyData",
@@ -135,7 +147,6 @@ var PointLayer = function (_BaseLayer) {
135
147
  },
136
148
  extrude: {},
137
149
  image: {},
138
- icon: {},
139
150
  text: {
140
151
  blend: 'normal'
141
152
  },
@@ -149,7 +160,7 @@ var PointLayer = function (_BaseLayer) {
149
160
  }, {
150
161
  key: "getModelType",
151
162
  value: function getModelType() {
152
- var PointTypes = ['fillImage', 'fill', 'radar', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'icon', 'vectorpoint', 'tile', 'earthFill', 'earthExtrude'];
163
+ var PointTypes = ['fillImage', 'fill', 'radar', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'vectorpoint', 'tile', 'earthFill', 'earthExtrude'];
153
164
 
154
165
  if (this.layerSource.parser.type === 'mvt') {
155
166
  return 'vectorpoint';
@@ -203,10 +214,6 @@ var PointLayer = function (_BaseLayer) {
203
214
  return 'image';
204
215
  }
205
216
 
206
- if (this.fontService.getGlyph(shape) !== '') {
207
- return 'icon';
208
- }
209
-
210
217
  return 'text';
211
218
  }
212
219
  }