@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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
15
 
12
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -31,8 +35,6 @@ var _l7Utils = require("@antv/l7-utils");
31
35
 
32
36
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
33
37
 
34
- var _triangulation = require("../../core/triangulation");
35
-
36
38
  var _l7Maps = require("@antv/l7-maps");
37
39
 
38
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
@@ -161,13 +163,13 @@ var FillModel = function (_BaseModel) {
161
163
  }, {
162
164
  key: "getAttribute",
163
165
  value: function getAttribute() {
164
- return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(), _triangulation.PointFillTriangulation);
166
+ return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(), _l7Utils.PointFillTriangulation);
165
167
  }
166
168
  }, {
167
169
  key: "initModels",
168
- value: function initModels() {
170
+ value: function initModels(callbackModel) {
169
171
  this.updateUnit('l7size');
170
- return this.buildModels();
172
+ this.buildModels(callbackModel);
171
173
  }
172
174
  }, {
173
175
  key: "calMeter2Coord",
@@ -207,35 +209,56 @@ var FillModel = function (_BaseModel) {
207
209
  }
208
210
  }, {
209
211
  key: "buildModels",
210
- value: function buildModels() {
211
- var _ref3 = this.layer.getLayerConfig(),
212
- _ref3$mask = _ref3.mask,
213
- mask = _ref3$mask === void 0 ? false : _ref3$mask,
214
- _ref3$maskInside = _ref3.maskInside,
215
- maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside,
216
- _ref3$animateOption = _ref3.animateOption,
217
- animateOption = _ref3$animateOption === void 0 ? {
218
- enable: false
219
- } : _ref3$animateOption;
220
-
221
- var _this$getShaders = this.getShaders(animateOption),
222
- frag = _this$getShaders.frag,
223
- vert = _this$getShaders.vert,
224
- type = _this$getShaders.type;
225
-
226
- this.layer.triangulation = _triangulation.PointFillTriangulation;
227
- return [this.layer.buildLayerModel({
228
- moduleName: 'pointfill_' + type,
229
- vertexShader: vert,
230
- fragmentShader: frag,
231
- triangulation: _triangulation.PointFillTriangulation,
232
- depth: {
233
- enable: false
234
- },
235
- blend: this.getBlend(),
236
- stencil: (0, _l7Utils.getMask)(mask, maskInside)
237
- })];
238
- }
212
+ value: function () {
213
+ var _buildModels = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(callbackModel) {
214
+ var _ref3, _ref3$mask, mask, _ref3$maskInside, maskInside, _ref3$animateOption, animateOption, _ref3$workerEnabled, workerEnabled, enablePicking, shape2d, _this$getShaders, frag, vert, type;
215
+
216
+ return _regenerator.default.wrap(function _callee$(_context) {
217
+ while (1) {
218
+ switch (_context.prev = _context.next) {
219
+ case 0:
220
+ _ref3 = this.layer.getLayerConfig(), _ref3$mask = _ref3.mask, mask = _ref3$mask === void 0 ? false : _ref3$mask, _ref3$maskInside = _ref3.maskInside, maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside, _ref3$animateOption = _ref3.animateOption, animateOption = _ref3$animateOption === void 0 ? {
221
+ enable: false
222
+ } : _ref3$animateOption, _ref3$workerEnabled = _ref3.workerEnabled, workerEnabled = _ref3$workerEnabled === void 0 ? false : _ref3$workerEnabled, enablePicking = _ref3.enablePicking, shape2d = _ref3.shape2d;
223
+ _this$getShaders = this.getShaders(animateOption), frag = _this$getShaders.frag, vert = _this$getShaders.vert, type = _this$getShaders.type;
224
+ this.layer.triangulation = _l7Utils.PointFillTriangulation;
225
+ this.layer.buildLayerModel({
226
+ moduleName: type,
227
+ vertexShader: vert,
228
+ fragmentShader: frag,
229
+ triangulation: _l7Utils.PointFillTriangulation,
230
+ depth: {
231
+ enable: false
232
+ },
233
+ blend: this.getBlend(),
234
+ stencil: (0, _l7Utils.getMask)(mask, maskInside),
235
+ workerEnabled: workerEnabled,
236
+ workerOptions: {
237
+ modelType: type,
238
+ enablePicking: enablePicking,
239
+ shape2d: shape2d
240
+ }
241
+ }).then(function (model) {
242
+ callbackModel([model]);
243
+ }).catch(function (err) {
244
+ console.warn(err);
245
+ callbackModel([]);
246
+ });
247
+
248
+ case 4:
249
+ case "end":
250
+ return _context.stop();
251
+ }
252
+ }
253
+ }, _callee, this);
254
+ }));
255
+
256
+ function buildModels(_x) {
257
+ return _buildModels.apply(this, arguments);
258
+ }
259
+
260
+ return buildModels;
261
+ }()
239
262
  }, {
240
263
  key: "getShaders",
241
264
  value: function getShaders(animateOption) {
@@ -245,21 +268,21 @@ var FillModel = function (_BaseModel) {
245
268
  return {
246
269
  frag: waveFillFrag,
247
270
  vert: pointFillVert,
248
- type: 'wave'
271
+ type: 'pointWave'
249
272
  };
250
273
 
251
274
  default:
252
275
  return {
253
276
  frag: waveFillFrag,
254
277
  vert: pointFillVert,
255
- type: 'wave'
278
+ type: 'pointWave'
256
279
  };
257
280
  }
258
281
  } else {
259
282
  return {
260
283
  frag: pointFillFrag,
261
284
  vert: pointFillVert,
262
- type: 'normal'
285
+ type: 'pointFill'
263
286
  };
264
287
  }
265
288
  }
@@ -278,8 +301,7 @@ var FillModel = function (_BaseModel) {
278
301
  }, {
279
302
  key: "registerBuiltinAttributes",
280
303
  value: function registerBuiltinAttributes() {
281
- var _this2 = this;
282
-
304
+ var shape2d = this.layer.getLayerConfig().shape2d;
283
305
  this.styleAttributeService.registerStyleAttribute({
284
306
  name: 'extrude',
285
307
  type: _l7Core.AttributeType.Attribute,
@@ -330,9 +352,6 @@ var FillModel = function (_BaseModel) {
330
352
  update: function update(feature, featureIdx, vertex, attributeIdx) {
331
353
  var _feature$shape = feature.shape,
332
354
  shape = _feature$shape === void 0 ? 2 : _feature$shape;
333
-
334
- var shape2d = _this2.layer.getLayerConfig().shape2d;
335
-
336
355
  var shapeIndex = shape2d.indexOf(shape);
337
356
  return [shapeIndex];
338
357
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/fill.ts"],"names":["FillModel","layer","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","blur","raisingHeight","unit","updateUnit","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_raisingHeight","Number","u_meter2coord","meter2coord","u_meteryScale","meteryScale","u_isMeter","isMeter","u_blur","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_offsets","isOffsetStatic","animateOption","enable","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","styleAttributeService","createAttributesAndIndices","PointFillTriangulation","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","version","mapService","mapboxContext","$window","mapboxgl","Version","MAPBOX","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","southCoord","southLnglat","m1","meterToCoord","m2","Boolean","mask","maskInside","getShaders","frag","vert","triangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","depth","getBlend","stencil","waveFillFrag","pointFillVert","pointFillFrag","destroy","option","speed","rings","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","extrude","extrudeIndex","Array","isArray","shape","shape2d","shapeIndex","indexOf","L7MAP","GLOBEL","calMeter2Coord","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAWA;;AAEA;;AAEA;;AAOA;;;;;;;;;;IACqBA,S;;;;;;;;;;;;;;;8FACW,C;8FACA,C;0FACH,K;uFAEJ,Q;;;;;;WACvB,wBAAqC;AACnC,iBAUI,KAAKC,KAAL,CAAWC,cAAX,EAVJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;AAAA,oCAEEC,aAFF;AAAA,UAEEA,aAFF,mCAEkB,CAFlB;AAAA,kCAGEC,WAHF;AAAA,UAGEA,WAHF,iCAGgB,CAHhB;AAAA,6BAIEC,MAJF;AAAA,UAIEA,MAJF,4BAIW,eAJX;AAAA,8BAKEC,OALF;AAAA,UAKEA,OALF,6BAKY,CAAC,CAAD,EAAI,CAAJ,CALZ;AAAA,UAMEC,KANF,QAMEA,KANF;AAAA,2BAOEC,IAPF;AAAA,UAOEA,IAPF,0BAOS,CAPT;AAAA,oCAQEC,aARF;AAAA,UAQEA,aARF,mCAQkB,CARlB;AAAA,2BASEC,IATF;AAAA,UASEA,IATF,0BASS,QATT;;AAWA,WAAKC,UAAL,CAAgBD,IAAhB;;AAEA,UACE,KAAKE,eAAL,IACA,KAAKC,qBAAL,CAA2B;AACzBX,QAAAA,OAAO,EAAPA,OADyB;AAEzBC,QAAAA,aAAa,EAAbA,aAFyB;AAGzBC,QAAAA,WAAW,EAAXA,WAHyB;AAIzBC,QAAAA,MAAM,EAANA,MAJyB;AAKzBC,QAAAA,OAAO,EAAPA;AALyB,OAA3B,CAFF,EASE;AAEA,aAAKQ,oBAAL,CAA0B;AACxBZ,UAAAA,OAAO,EAAPA,OADwB;AAExBC,UAAAA,aAAa,EAAbA,aAFwB;AAGxBC,UAAAA,WAAW,EAAXA,WAHwB;AAIxBC,UAAAA,MAAM,EAANA,MAJwB;AAKxBC,UAAAA,OAAO,EAAPA;AALwB,SAA1B;AAQA,YAAMS,UAAU,GAAG,KAAKf,KAAL,CAAWgB,cAAX,EAAnB;;AACA,iCAAgC,KAAKC,YAAL,CAC9B,KAAKC,UADyB,EAE9BH,UAF8B,EAG9B,KAAKI,cAHyB,CAAhC;AAAA,YAAQC,IAAR,sBAAQA,IAAR;AAAA,YAAcC,KAAd,sBAAcA,KAAd;AAAA,YAAqBC,MAArB,sBAAqBA,MAArB;;AAKA,aAAKC,QAAL,GAAgBD,MAAhB;AAEA,aAAKE,WAAL,GACE,KAAKN,UAAL,GAAkB,CAAlB,IAAuBE,IAAI,CAACK,MAAL,GAAc,CAArC,GACI,KAAKC,eAAL,CAAqB;AACnBC,UAAAA,KAAK,EAAE,IADY;AAEnBP,UAAAA,IAAI,EAAJA,IAFmB;AAGnBQ,UAAAA,MAAM,EAAEC,WAAGC,SAHQ;AAInBC,UAAAA,IAAI,EAAEF,WAAGG,KAJU;AAKnBX,UAAAA,KAAK,EAALA,KALmB;AAMnBC,UAAAA,MAAM,EAANA;AANmB,SAArB,CADJ,GASI,KAAKI,eAAL,CAAqB;AACnBC,UAAAA,KAAK,EAAE,IADY;AAEnBP,UAAAA,IAAI,EAAE,CAAC,CAAD,CAFa;AAGnBQ,UAAAA,MAAM,EAAEC,WAAGC,SAHQ;AAInBC,UAAAA,IAAI,EAAEF,WAAGG,KAJU;AAKnBX,UAAAA,KAAK,EAAE,CALY;AAMnBC,UAAAA,MAAM,EAAE;AANW,SAArB,CAVN;AAkBD;;AACD,aAAO;AACLW,QAAAA,eAAe,EAAEC,MAAM,CAACzB,aAAD,CADlB;AAGL0B,QAAAA,aAAa,EAAE,KAAKC,WAHf;AAILC,QAAAA,aAAa,EAAE,KAAKC,WAJf;AAKLC,QAAAA,SAAS,EAAEL,MAAM,CAAC,KAAKM,OAAN,CALZ;AAMLC,QAAAA,MAAM,EAAEjC,IANH;AAQLkC,QAAAA,UAAU,EAAEnC,KAAK,KAAK,UAAV,GAAuB,GAAvB,GAA6B,GARpC;AASLoC,QAAAA,aAAa,EAAE,KAAKnB,WATf;AAULoB,QAAAA,gBAAgB,EAAE,KAAKC,iBAAL,EAVb;AAYLC,QAAAA,SAAS,EAAE,wBAAS5C,OAAT,IAAoBA,OAApB,GAA8B,GAZpC;AAaL6C,QAAAA,gBAAgB,EAAE,wBAAS5C,aAAT,IAA0BA,aAA1B,GAA0C,GAbvD;AAcL6C,QAAAA,cAAc,EAAE,wBAAS5C,WAAT,IAAwBA,WAAxB,GAAsC,GAdjD;AAeL6C,QAAAA,cAAc,EAAE,KAAKC,cAAL,CAAoB7C,MAApB,CAfX;AAgBL8C,QAAAA,SAAS,EAAE,KAAKC,cAAL,CAAoB9C,OAApB,IACNA,OADM,GAEP,CAAC,CAAD,EAAI,CAAJ;AAlBC,OAAP;AAoBD;;;WACD,8BAA2C;AACzC,kBAEI,KAAKN,KAAL,CAAWC,cAAX,EAFJ;AAAA,sCACEoD,aADF;AAAA,UACEA,aADF,oCACkB;AAAEC,QAAAA,MAAM,EAAE;AAAV,OADlB;;AAGA,aAAO;AACLC,QAAAA,QAAQ,EAAE,KAAKC,mBAAL,CAAyBH,aAAzB,CADL;AAELI,QAAAA,MAAM,EAAE,KAAKzD,KAAL,CAAW0D,mBAAX;AAFH,OAAP;AAID;;;WAED,wBAKE;AACA,aAAO,KAAKC,qBAAL,CAA2BC,0BAA3B,CACL,KAAK5D,KAAL,CAAWgB,cAAX,EADK,EAEL6C,qCAFK,CAAP;AAID;;;WAED,sBAA8B;AAC5B,WAAKlD,UAAL,CAAgB,QAAhB;AAEA,aAAO,KAAKmD,WAAL,EAAP;AACD;;;WAMD,0BAAwB;AACtB,+DAAyC,KAAK9D,KAAL,CAAW+D,SAAX,GAAuBC,MAAhE;AAAA,UAAOC,MAAP;AAAA,UAAeC,MAAf;AAAA,UAAuBC,MAAvB;AAAA,UAA+BC,MAA/B;;AACA,UAAMC,MAAM,GAAG,CAAC,CAACJ,MAAM,GAAGE,MAAV,IAAoB,CAArB,EAAwB,CAACD,MAAM,GAAGE,MAAV,IAAoB,CAA5C,CAAf;AAEA,UAAQE,OAAR,GAAoB,KAAKC,UAAzB,CAAQD,OAAR;AACA,UAAME,aAAa,GAAGC,gBAAH,aAAGA,gBAAH,uBAAGA,iBAASC,QAA/B;;AACA,UAAIJ,OAAO,KAAKK,gBAAQC,MAApB,IAA8BJ,aAA9B,aAA8BA,aAA9B,eAA8BA,aAAa,CAAEK,kBAAjD,EAAqE;AAGnE,YAAMC,KAAK,GAAGN,aAAa,CAACK,kBAAd,CAAiCE,UAAjC,CACZ;AAAEC,UAAAA,GAAG,EAAEX,MAAM,CAAC,CAAD,CAAb;AAAkBY,UAAAA,GAAG,EAAEZ,MAAM,CAAC,CAAD;AAA7B,SADY,EAEZ,CAFY,CAAd;AAIA,YAAMa,+BAA+B,GAAGJ,KAAK,CAACK,8BAAN,EAAxC;AACA,YAAMC,SAAS,GAAG,IAAIZ,aAAa,CAACK,kBAAlB,CAChBC,KAAK,CAACO,CAAN,GAAUH,+BADM,EAEhBJ,KAAK,CAACQ,CAFU,EAGhBR,KAAK,CAACS,CAHU,CAAlB;AAKA,YAAMC,UAAU,GAAGJ,SAAS,CAACK,QAAV,EAAnB;AAEA,YAAMC,UAAU,GAAG,IAAIlB,aAAa,CAACK,kBAAlB,CACjBC,KAAK,CAACO,CADW,EAEjBP,KAAK,CAACQ,CAAN,GAAUJ,+BAFO,EAGjBJ,KAAK,CAACS,CAHW,CAAnB;AAKA,YAAMI,WAAW,GAAGD,UAAU,CAACD,QAAX,EAApB;AAEA,aAAKrD,WAAL,GAAmBiC,MAAM,CAAC,CAAD,CAAN,GAAYmB,UAAU,CAACR,GAA1C;AAEA,aAAK1C,WAAL,GAAmB,CAACqD,WAAW,CAACV,GAAZ,GAAkBZ,MAAM,CAAC,CAAD,CAAzB,IAAgC,KAAKjC,WAAxD;AACA;AACD;;AAED,UAAMwD,EAAE,GAAG,KAAKrB,UAAL,CAAgBsB,YAAhB,CAA6BxB,MAA7B,EAAqC,CAACJ,MAAD,EAASC,MAAT,CAArC,CAAX;AACA,UAAM4B,EAAE,GAAG,KAAKvB,UAAL,CAAgBsB,YAAhB,CAA6BxB,MAA7B,EAAqC,CAC9CF,MAAM,KAAKF,MAAX,GAAoBE,MAAM,GAAG,GAA7B,GAAmCA,MADW,EAE9CC,MAAM,KAAKF,MAAX,GAAoBA,MAAM,GAAG,GAA7B,GAAmCE,MAFW,CAArC,CAAX;AAIA,WAAKhC,WAAL,GAAmB,CAACwD,EAAE,GAAGE,EAAN,IAAY,CAA/B;;AACA,UAAI,CAACC,OAAO,CAAC,KAAK3D,WAAN,CAAZ,EAAgC;AAE9B,aAAKA,WAAL,GAAmB,gBAAnB;AACD;AACF;;;WAED,uBAA+B;AAC7B,kBAII,KAAKpC,KAAL,CAAWC,cAAX,EAJJ;AAAA,6BACE+F,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;AAAA,sCAGE5C,aAHF;AAAA,UAGEA,aAHF,oCAGkB;AAAEC,QAAAA,MAAM,EAAE;AAAV,OAHlB;;AAOA,6BAA6B,KAAK4C,UAAL,CAAgB7C,aAAhB,CAA7B;AAAA,UAAQ8C,IAAR,oBAAQA,IAAR;AAAA,UAAcC,IAAd,oBAAcA,IAAd;AAAA,UAAoBrE,IAApB,oBAAoBA,IAApB;;AAEA,WAAK/B,KAAL,CAAWqG,aAAX,GAA2BxC,qCAA3B;AACA,aAAO,CACL,KAAK7D,KAAL,CAAWsG,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,eAAexE,IADF;AAEzByE,QAAAA,YAAY,EAAEJ,IAFW;AAGzBK,QAAAA,cAAc,EAAEN,IAHS;AAIzBE,QAAAA,aAAa,EAAExC,qCAJU;AAKzB6C,QAAAA,KAAK,EAAE;AAAEpD,UAAAA,MAAM,EAAE;AAAV,SALkB;AAMzB/C,QAAAA,KAAK,EAAE,KAAKoG,QAAL,EANkB;AAOzBC,QAAAA,OAAO,EAAE,sBAAQZ,IAAR,EAAcC,UAAd;AAPgB,OAA3B,CADK,CAAP;AAWD;;;WAMD,oBACE5C,aADF,EAEgD;AAC9C,UAAIA,aAAa,CAACC,MAAlB,EAA0B;AACxB,gBAAQD,aAAa,CAACtB,IAAtB;AACE,eAAK,MAAL;AACE,mBAAO;AACLoE,cAAAA,IAAI,EAAEU,YADD;AAELT,cAAAA,IAAI,EAAEU,aAFD;AAGL/E,cAAAA,IAAI,EAAE;AAHD,aAAP;;AAKF;AACE,mBAAO;AACLoE,cAAAA,IAAI,EAAEU,YADD;AAELT,cAAAA,IAAI,EAAEU,aAFD;AAGL/E,cAAAA,IAAI,EAAE;AAHD,aAAP;AARJ;AAcD,OAfD,MAeO;AACL,eAAO;AACLoE,UAAAA,IAAI,EAAEY,aADD;AAELX,UAAAA,IAAI,EAAEU,aAFD;AAGL/E,UAAAA,IAAI,EAAE;AAHD,SAAP;AAKD;AACF;;;WAED,uBAAqB;AAAA;;AACnB,gCAAKP,WAAL,wEAAkBwF,OAAlB;AACD;;;WAGD,6BAA8BC,MAA9B,EAAyE;AACvE,aAAO,CAACA,MAAM,CAAC3D,MAAP,GAAgB,CAAhB,GAAoB,GAArB,EAA0B2D,MAAM,CAACC,KAAP,IAAgB,CAA1C,EAA6CD,MAAM,CAACE,KAAP,IAAgB,CAA7D,EAAgE,CAAhE,CAAP;AACD;;;WACD,qCAAsC;AAAA;;AACpC,WAAKxD,qBAAL,CAA2ByD,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,SAD0C;AAEhDtF,QAAAA,IAAI,EAAEuF,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,WADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE7F,WAAG8F,YAFJ;AAGNvG,YAAAA,IAAI,EAAE,EAHA;AAINW,YAAAA,IAAI,EAAEF,WAAGG;AAJH,WAFE;AAQV4F,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gBAAMC,OAAO,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAC,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAAC,CAArB,EAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC,CAAC,CAAnC,EAAsC,CAAtC,CAAhB;AACA,gBAAMC,YAAY,GAAIF,YAAY,GAAG,CAAhB,GAAqB,CAA1C;AACA,mBAAO,CACLC,OAAO,CAACC,YAAD,CADF,EAELD,OAAO,CAACC,YAAY,GAAG,CAAhB,CAFF,EAGLD,OAAO,CAACC,YAAY,GAAG,CAAhB,CAHF,CAAP;AAKD;AAtBS;AAHoC,OAAlD;AA8BA,WAAKxE,qBAAL,CAA2ByD,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDtF,QAAAA,IAAI,EAAEuF,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,QADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE7F,WAAG8F,YAFJ;AAGNvG,YAAAA,IAAI,EAAE,EAHA;AAINW,YAAAA,IAAI,EAAEF,WAAGG;AAJH,WAFE;AAQV4F,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqBH,OAArB,CAAQF,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAOQ,KAAK,CAACC,OAAN,CAAcT,IAAd,IAAsB,CAACA,IAAI,CAAC,CAAD,CAAL,CAAtB,GAAkC,CAACA,IAAD,CAAzC;AACD;AAjBS;AAHoC,OAAlD;AAyBA,WAAKjE,qBAAL,CAA2ByD,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,OAD0C;AAEhDtF,QAAAA,IAAI,EAAEuF,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,SADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE7F,WAAG8F,YAFJ;AAGNvG,YAAAA,IAAI,EAAE,EAHA;AAINW,YAAAA,IAAI,EAAEF,WAAGG;AAJH,WAFE;AAQV4F,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,iCAAsBH,OAAtB,CAAQQ,KAAR;AAAA,gBAAQA,KAAR,+BAAgB,CAAhB;;AACA,gBAAMC,OAAO,GAAG,MAAI,CAACvI,KAAL,CAAWC,cAAX,GAA4BsI,OAA5C;;AACA,gBAAMC,UAAU,GAAGD,OAAO,CAACE,OAAR,CAAgBH,KAAhB,CAAnB;AACA,mBAAO,CAACE,UAAD,CAAP;AACD;AAnBS;AAHoC,OAAlD;AAyBD;;;WAMD,oBAAmB9H,IAAnB,EAAiC;AAC/B,UAAQ4D,OAAR,GAAoB,KAAKC,UAAzB,CAAQD,OAAR;;AACA,UAAI,KAAK5D,IAAL,KAAcA,IAAlB,EAAwB;AAEtB,YACE,KAAKA,IAAL,KAAc,OAAd,IACAA,IAAI,KAAK,OADT,IAEA4D,OAAO,KAAKK,gBAAQ+D,KAFpB,IAGApE,OAAO,KAAKK,gBAAQgE,MAJtB,EAKE;AACA,eAAKnG,OAAL,GAAe,IAAf;AACA,eAAKoG,cAAL;AAED,SATD,MASO,IAAI,KAAKlI,IAAL,KAAc,OAAd,IAAyBA,IAAI,KAAK,OAAtC,EAA+C;AACpD,eAAK8B,OAAL,GAAe,KAAf;AACA,eAAKJ,WAAL,GAAmB,CAAnB;AACD;;AACD,aAAK1B,IAAL,GAAYA,IAAZ;AACD;AACF;;;EA9UoCmI,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IAttribute,\n IElements,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { $window, getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointFillTriangulation } from '../../core/triangulation';\n// animate pointLayer shader - support animate\nimport waveFillFrag from '../shaders/animate/wave_frag.glsl';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/fill_frag.glsl';\nimport pointFillVert from '../shaders/fill_vert.glsl';\n\nimport { Version } from '@antv/l7-maps';\nexport default class FillModel extends BaseModel {\n private meter2coord: number = 1;\n private meteryScale: number = 1; // 兼容 mapbox\n private isMeter: boolean = false;\n\n private unit: string = 'l7size';\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n blur = 0,\n raisingHeight = 0,\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.updateUnit(unit);\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_raisingHeight: Number(raisingHeight),\n\n u_meter2coord: this.meter2coord,\n u_meteryScale: this.meteryScale,\n u_isMeter: Number(this.isMeter),\n u_blur: blur,\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,\n u_stroke_color: this.getStrokeColor(stroke),\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const {\n animateOption = { enable: false },\n } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(): IModel[] {\n this.updateUnit('l7size');\n\n return this.buildModels();\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n const mapboxContext = $window?.mapboxgl;\n if (version === Version.MAPBOX && mapboxContext?.MercatorCoordinate) {\n // 参考:\n // https://docs.mapbox.com/mapbox-gl-js/api/geography/#mercatorcoordinate#meterinmercatorcoordinateunits\n const coord = mapboxContext.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMercatorCoordinateUnits = coord.meterInMercatorCoordinateUnits();\n const westCoord = new mapboxContext.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n const southCoord = new mapboxContext.MercatorCoordinate(\n coord.x,\n coord.y - offsetInMercatorCoordinateUnits,\n coord.z,\n );\n const southLnglat = southCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n\n this.meteryScale = (southLnglat.lat - center[1]) / this.meter2coord;\n return;\n }\n\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n animateOption = { enable: false },\n } = this.layer.getLayerConfig() as Partial<\n ILayerConfig & IPointLayerStyleOptions\n >;\n const { frag, vert, type } = this.getShaders(animateOption);\n\n this.layer.triangulation = PointFillTriangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointfill_' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n /**\n * 根据 animateOption 的值返回对应的 shader 代码\n * @returns\n */\n public getShaders(\n animateOption: Partial<IAnimateOption>,\n ): { frag: string; vert: string; type: string } {\n if (animateOption.enable) {\n switch (animateOption.type) {\n case 'wave':\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'wave',\n };\n default:\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'wave',\n };\n }\n } else {\n return {\n frag: pointFillFrag,\n vert: pointFillVert,\n type: 'normal',\n };\n }\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected animateOption2Array(option: Partial<IAnimateOption>): number[] {\n return [option.enable ? 0 : 1.0, option.speed || 1, option.rings || 3, 0];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'shape',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Shape',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { shape = 2 } = feature;\n const shape2d = this.layer.getLayerConfig().shape2d as string[];\n const shapeIndex = shape2d.indexOf(shape as string);\n return [shapeIndex];\n },\n },\n });\n }\n\n /**\n * 判断是否更新点图层的计量单位\n * @param unit\n */\n private updateUnit(unit: string) {\n const { version } = this.mapService;\n if (this.unit !== unit) {\n // l7size => meter\n if (\n this.unit !== 'meter' &&\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n // meter => l7size\n } else if (this.unit === 'meter' && unit !== 'meter') {\n this.isMeter = false;\n this.meter2coord = 1;\n }\n this.unit = unit;\n }\n }\n}\n"],"file":"fill.js"}
1
+ {"version":3,"sources":["../../../src/point/models/fill.ts"],"names":["FillModel","layer","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","blur","raisingHeight","unit","updateUnit","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_raisingHeight","Number","u_meter2coord","meter2coord","u_meteryScale","meteryScale","u_isMeter","isMeter","u_blur","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_offsets","isOffsetStatic","animateOption","enable","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","styleAttributeService","createAttributesAndIndices","PointFillTriangulation","callbackModel","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","version","mapService","mapboxContext","$window","mapboxgl","Version","MAPBOX","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","southCoord","southLnglat","m1","meterToCoord","m2","Boolean","mask","maskInside","workerEnabled","enablePicking","shape2d","getShaders","frag","vert","triangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","depth","getBlend","stencil","workerOptions","modelType","then","model","catch","err","console","warn","waveFillFrag","pointFillVert","pointFillFrag","destroy","option","speed","rings","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","extrude","extrudeIndex","Array","isArray","shape","shapeIndex","indexOf","L7MAP","GLOBEL","calMeter2Coord","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IAttribute,\n IElements,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { $window, getMask, PointFillTriangulation } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\n// import { PointFillTriangulation } from '../../core/triangulation';\n// animate pointLayer shader - support animate\nimport waveFillFrag from '../shaders/animate/wave_frag.glsl';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/fill_frag.glsl';\nimport pointFillVert from '../shaders/fill_vert.glsl';\n\nimport { Version } from '@antv/l7-maps';\n\nexport default class FillModel extends BaseModel {\n private meter2coord: number = 1;\n private meteryScale: number = 1; // 兼容 mapbox\n private isMeter: boolean = false;\n\n private unit: string = 'l7size';\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n blur = 0,\n raisingHeight = 0,\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.updateUnit(unit);\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_raisingHeight: Number(raisingHeight),\n\n u_meter2coord: this.meter2coord,\n u_meteryScale: this.meteryScale,\n u_isMeter: Number(this.isMeter),\n u_blur: blur,\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,\n u_stroke_color: this.getStrokeColor(stroke),\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const {\n animateOption = { enable: false },\n } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateUnit('l7size');\n this.buildModels(callbackModel);\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n const mapboxContext = $window?.mapboxgl;\n if (version === Version.MAPBOX && mapboxContext?.MercatorCoordinate) {\n // 参考:\n // https://docs.mapbox.com/mapbox-gl-js/api/geography/#mercatorcoordinate#meterinmercatorcoordinateunits\n const coord = mapboxContext.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMercatorCoordinateUnits = coord.meterInMercatorCoordinateUnits();\n const westCoord = new mapboxContext.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n const southCoord = new mapboxContext.MercatorCoordinate(\n coord.x,\n coord.y - offsetInMercatorCoordinateUnits,\n coord.z,\n );\n const southLnglat = southCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n\n this.meteryScale = (southLnglat.lat - center[1]) / this.meter2coord;\n return;\n }\n\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public async buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n animateOption = { enable: false },\n workerEnabled = false,\n enablePicking,\n shape2d,\n } = this.layer.getLayerConfig() as Partial<\n ILayerConfig & IPointLayerStyleOptions\n >;\n const { frag, vert, type } = this.getShaders(animateOption);\n\n this.layer.triangulation = PointFillTriangulation;\n\n this.layer\n .buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n workerEnabled,\n workerOptions: {\n modelType: type,\n enablePicking,\n shape2d,\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n /**\n * 根据 animateOption 的值返回对应的 shader 代码\n * @returns\n */\n public getShaders(\n animateOption: Partial<IAnimateOption>,\n ): { frag: string; vert: string; type: string } {\n if (animateOption.enable) {\n switch (animateOption.type) {\n case 'wave':\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'pointWave',\n };\n default:\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'pointWave',\n };\n }\n } else {\n return {\n frag: pointFillFrag,\n vert: pointFillVert,\n type: 'pointFill',\n };\n }\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected animateOption2Array(option: Partial<IAnimateOption>): number[] {\n return [option.enable ? 0 : 1.0, option.speed || 1, option.rings || 3, 0];\n }\n protected registerBuiltinAttributes() {\n const shape2d = this.layer.getLayerConfig().shape2d as string[];\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size) ? [size[0]] : [size];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'shape',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Shape',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { shape = 2 } = feature;\n const shapeIndex = shape2d.indexOf(shape as string);\n return [shapeIndex];\n },\n },\n });\n }\n\n /**\n * 判断是否更新点图层的计量单位\n * @param unit\n */\n private updateUnit(unit: string) {\n const { version } = this.mapService;\n if (this.unit !== unit) {\n // l7size => meter\n if (\n this.unit !== 'meter' &&\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n // meter => l7size\n } else if (this.unit === 'meter' && unit !== 'meter') {\n this.isMeter = false;\n this.meter2coord = 1;\n }\n this.unit = unit;\n }\n }\n}\n"],"file":"fill.js"}
@@ -163,7 +163,7 @@ var FillImageModel = function (_BaseModel) {
163
163
  }
164
164
  }, {
165
165
  key: "initModels",
166
- value: function initModels() {
166
+ value: function initModels(callbackModel) {
167
167
  this.updateTexture();
168
168
  this.iconService.on('imageUpdate', this.updateTexture);
169
169
 
@@ -178,7 +178,7 @@ var FillImageModel = function (_BaseModel) {
178
178
  this.calMeter2Coord();
179
179
  }
180
180
 
181
- return this.buildModels();
181
+ this.buildModels(callbackModel);
182
182
  }
183
183
  }, {
184
184
  key: "calMeter2Coord",
@@ -215,22 +215,17 @@ var FillImageModel = function (_BaseModel) {
215
215
  }
216
216
  }, {
217
217
  key: "buildModels",
218
- value: function buildModels() {
218
+ value: function buildModels(callbackModel) {
219
219
  var _ref3 = this.layer.getLayerConfig(),
220
220
  _ref3$mask = _ref3.mask,
221
221
  mask = _ref3$mask === void 0 ? false : _ref3$mask,
222
222
  _ref3$maskInside = _ref3.maskInside,
223
223
  maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside;
224
224
 
225
- var _this$getShaders = this.getShaders(),
226
- frag = _this$getShaders.frag,
227
- vert = _this$getShaders.vert,
228
- type = _this$getShaders.type;
229
-
230
- return [this.layer.buildLayerModel({
231
- moduleName: type,
232
- vertexShader: vert,
233
- fragmentShader: frag,
225
+ this.layer.buildLayerModel({
226
+ moduleName: 'pointFillImage',
227
+ vertexShader: pointFillVert,
228
+ fragmentShader: pointFillFrag,
234
229
  triangulation: _triangulation.PointFillTriangulation,
235
230
  depth: {
236
231
  enable: false
@@ -241,16 +236,12 @@ var FillImageModel = function (_BaseModel) {
241
236
  enable: true,
242
237
  face: (0, _l7Utils.getCullFace)(this.mapService.version)
243
238
  }
244
- })];
245
- }
246
- }, {
247
- key: "getShaders",
248
- value: function getShaders() {
249
- return {
250
- frag: pointFillFrag,
251
- vert: pointFillVert,
252
- type: 'point_fillImage'
253
- };
239
+ }).then(function (model) {
240
+ callbackModel([model]);
241
+ }).catch(function (err) {
242
+ console.warn(err);
243
+ callbackModel([]);
244
+ });
254
245
  }
255
246
  }, {
256
247
  key: "clearModels",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/fillmage.ts"],"names":["FillImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","gl","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","offsets","rotation","getDirty","bind","rotateFlag","mapService","version","radian","undefined","Math","PI","getRotation","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_isMeter","Number","isMeter","u_RotateMatrix","Float32Array","cos","sin","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","styleAttributeService","createAttributesAndIndices","PointFillTriangulation","updateTexture","on","unit","Version","L7MAP","GLOBEL","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","getShaders","frag","vert","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","depth","enable","blend","getBlend","stencil","cull","face","pointFillFrag","pointFillVert","off","destroy","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","rotate","Array","isArray","iconMap","getIconMap","shape","extrude","extrudeIndex","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttribute,\n IElements,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { getCullFace, getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointFillTriangulation } from '../../core/triangulation';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/image/fillImage_frag.glsl';\nimport pointFillVert from '../shaders/image/fillImage_vert.glsl';\n\nexport default class FillImageModel extends BaseModel {\n private meter2coord: number = 1;\n private texture: ITexture2D;\n private isMeter: boolean = false;\n private radian: number = 0; // 旋转的弧度\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n rotation,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n /**\n * rotateFlag\n * L7MAP 1\n * MAPBOX 1\n * GAODE2.x -1\n * GAODE1.x -1\n */\n let rotateFlag = 1;\n if (\n this.mapService.version === 'GAODE2.x' ||\n this.mapService.version === 'GAODE1.x'\n ) {\n rotateFlag = -1;\n }\n // 控制图标的旋转角度(绕 Z 轴旋转)\n this.radian =\n rotation !== undefined\n ? (rotateFlag * Math.PI * rotation) / 180\n : (rotateFlag * Math.PI * (this.mapService.getRotation() % 360)) / 180;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_isMeter: Number(this.isMeter),\n u_RotateMatrix: new Float32Array([\n Math.cos(this.radian),\n Math.sin(this.radian),\n -Math.sin(this.radian),\n Math.cos(this.radian),\n ]),\n\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n return this.buildModels();\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n return [\n this.layer.buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n }),\n ];\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n return {\n frag: pointFillFrag,\n vert: pointFillVert,\n type: 'point_fillImage',\n };\n }\n\n public clearModels() {\n this.iconService.off('imageUpdate', this.updateTexture);\n this.texture?.destroy();\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'rotate',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Rotate',\n buffer: {\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { rotate = 0 } = feature;\n return Array.isArray(rotate) ? [rotate[0]] : [rotate as number];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // this.layer.render();\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"fillmage.js"}
1
+ {"version":3,"sources":["../../../src/point/models/fillmage.ts"],"names":["FillImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","gl","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","offsets","rotation","getDirty","bind","rotateFlag","mapService","version","radian","undefined","Math","PI","getRotation","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_isMeter","Number","isMeter","u_RotateMatrix","Float32Array","cos","sin","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","styleAttributeService","createAttributesAndIndices","PointFillTriangulation","callbackModel","updateTexture","on","unit","Version","L7MAP","GLOBEL","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","buildLayerModel","moduleName","vertexShader","pointFillVert","fragmentShader","pointFillFrag","triangulation","depth","enable","blend","getBlend","stencil","cull","face","then","model","catch","err","console","warn","off","destroy","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","rotate","Array","isArray","iconMap","getIconMap","shape","extrude","extrudeIndex","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAUA;;AACA;;AAEA;;AAEA;;;;;;;;;IAKqBA,c;;;;;;;;;;;;;;;8FACW,C;;0FAEH,K;yFACF,C;gGAsTD,YAAM;AAC5B,UAAQC,eAAR,GAA4B,MAAKC,eAAjC,CAAQD,eAAR;;AACA,UAAI,MAAKE,OAAT,EAAkB;AAChB,cAAKA,OAAL,CAAaC,MAAb,CAAoB;AAClBC,UAAAA,IAAI,EAAE,MAAKC,WAAL,CAAiBC,SAAjB,EADY;AAElBC,UAAAA,GAAG,EAAE,QAFa;AAGlBC,UAAAA,GAAG,EAAE,uBAHa;AAIlBC,UAAAA,MAAM,EAAE;AAJU,SAApB;;AAQA,cAAKC,KAAL,CAAWC,YAAX;;AACA;AACD;;AACD,YAAKT,OAAL,GAAeF,eAAe,CAAC;AAC7BI,QAAAA,IAAI,EAAE,MAAKC,WAAL,CAAiBC,SAAjB,EADuB;AAE7BC,QAAAA,GAAG,EAAEK,WAAGC,MAFqB;AAG7BL,QAAAA,GAAG,EAAEI,WAAGE,oBAHqB;AAI7BC,QAAAA,gBAAgB,EAAE,KAJW;AAK7BC,QAAAA,KAAK,EAAE,IALsB;AAM7BC,QAAAA,MAAM,EAAE,MAAKZ,WAAL,CAAiBa,YAAjB,IAAiC,GANZ;AAO7BT,QAAAA,MAAM,EAAE;AAPqB,OAAD,CAA9B;AASD,K;;;;;;WA5UD,wBAAqC;AACnC,iBAII,KAAKC,KAAL,CAAWS,cAAX,EAJJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;AAAA,8BAEEC,OAFF;AAAA,UAEEA,OAFF,6BAEY,CAAC,CAAD,EAAI,CAAJ,CAFZ;AAAA,UAGEC,QAHF,QAGEA,QAHF;;AAMA,UAAI,KAAKrB,eAAL,CAAqBsB,QAArB,EAAJ,EAAqC;AACnC,aAAKrB,OAAL,CAAasB,IAAb;AACD;;AAQD,UAAIC,UAAU,GAAG,CAAjB;;AACA,UACE,KAAKC,UAAL,CAAgBC,OAAhB,KAA4B,UAA5B,IACA,KAAKD,UAAL,CAAgBC,OAAhB,KAA4B,UAF9B,EAGE;AACAF,QAAAA,UAAU,GAAG,CAAC,CAAd;AACD;;AAED,WAAKG,MAAL,GACEN,QAAQ,KAAKO,SAAb,GACKJ,UAAU,GAAGK,IAAI,CAACC,EAAlB,GAAuBT,QAAxB,GAAoC,GADxC,GAEKG,UAAU,GAAGK,IAAI,CAACC,EAAlB,IAAwB,KAAKL,UAAL,CAAgBM,WAAhB,KAAgC,GAAxD,CAAD,GAAiE,GAHvE;;AAKA,UACE,KAAKC,eAAL,IACA,KAAKC,qBAAL,CAA2B;AACzBd,QAAAA,OAAO,EAAPA,OADyB;AAEzBC,QAAAA,OAAO,EAAPA;AAFyB,OAA3B,CAFF,EAME;AAEA,aAAKc,oBAAL,CAA0B;AACxBf,UAAAA,OAAO,EAAPA,OADwB;AAExBC,UAAAA,OAAO,EAAPA;AAFwB,SAA1B;AAKA,YAAMe,UAAU,GAAG,KAAK1B,KAAL,CAAW2B,cAAX,EAAnB;;AACA,iCAAgC,KAAKC,YAAL,CAC9B,KAAKC,UADyB,EAE9BH,UAF8B,EAG9B,KAAKI,cAHyB,CAAhC;AAAA,YAAQpC,IAAR,sBAAQA,IAAR;AAAA,YAAcY,KAAd,sBAAcA,KAAd;AAAA,YAAqBC,MAArB,sBAAqBA,MAArB;;AAKA,aAAKwB,QAAL,GAAgBxB,MAAhB;AAEA,aAAKyB,WAAL,GACE,KAAKH,UAAL,GAAkB,CAAlB,IAAuBnC,IAAI,CAACuC,MAAL,GAAc,CAArC,GACI,KAAK3C,eAAL,CAAqB;AACnB4C,UAAAA,KAAK,EAAE,IADY;AAEnBxC,UAAAA,IAAI,EAAJA,IAFmB;AAGnByC,UAAAA,MAAM,EAAEjC,WAAGkC,SAHQ;AAInBC,UAAAA,IAAI,EAAEnC,WAAGoC,KAJU;AAKnBhC,UAAAA,KAAK,EAALA,KALmB;AAMnBC,UAAAA,MAAM,EAANA;AANmB,SAArB,CADJ,GASI,KAAKjB,eAAL,CAAqB;AACnB4C,UAAAA,KAAK,EAAE,IADY;AAEnBxC,UAAAA,IAAI,EAAE,CAAC,CAAD,CAFa;AAGnByC,UAAAA,MAAM,EAAEjC,WAAGkC,SAHQ;AAInBC,UAAAA,IAAI,EAAEnC,WAAGoC,KAJU;AAKnBhC,UAAAA,KAAK,EAAE,CALY;AAMnBC,UAAAA,MAAM,EAAE;AANW,SAArB,CAVN;AAkBD;;AACD,aAAO;AACLgC,QAAAA,SAAS,EAAEC,MAAM,CAAC,KAAKC,OAAN,CADZ;AAELC,QAAAA,cAAc,EAAE,IAAIC,YAAJ,CAAiB,CAC/BvB,IAAI,CAACwB,GAAL,CAAS,KAAK1B,MAAd,CAD+B,EAE/BE,IAAI,CAACyB,GAAL,CAAS,KAAK3B,MAAd,CAF+B,EAG/B,CAACE,IAAI,CAACyB,GAAL,CAAS,KAAK3B,MAAd,CAH8B,EAI/BE,IAAI,CAACwB,GAAL,CAAS,KAAK1B,MAAd,CAJ+B,CAAjB,CAFX;AASL4B,QAAAA,aAAa,EAAE,KAAKd,WATf;AAULe,QAAAA,gBAAgB,EAAE,KAAKC,iBAAL,EAVb;AAYLC,QAAAA,SAAS,EAAE,KAAKzD,OAZX;AAaL0D,QAAAA,UAAU,EAAE,CAAC,IAAD,EAAO,KAAKvD,WAAL,CAAiBa,YAAjB,IAAiC,GAAxC,CAbP;AAeL2C,QAAAA,SAAS,EAAE,wBAASzC,OAAT,IAAoBA,OAApB,GAA8B,GAfpC;AAgBL0C,QAAAA,SAAS,EAAE,KAAKC,cAAL,CAAoB1C,OAApB,IACNA,OADM,GAEP,CAAC,CAAD,EAAI,CAAJ;AAlBC,OAAP;AAoBD;;;WAED,wBAKE;AACA,aAAO,KAAK2C,qBAAL,CAA2BC,0BAA3B,CACL,KAAKvD,KAAL,CAAW2B,cAAX,EADK,EAEL6B,qCAFK,CAAP;AAID;;;WAED,oBAAkBC,aAAlB,EAA6D;AAC3D,WAAKC,aAAL;AACA,WAAK/D,WAAL,CAAiBgE,EAAjB,CAAoB,aAApB,EAAmC,KAAKD,aAAxC;;AAEA,kBAEI,KAAK1D,KAAL,CAAWS,cAAX,EAFJ;AAAA,6BACEmD,IADF;AAAA,UACEA,IADF,2BACS,QADT;;AAGA,UAAQ3C,OAAR,GAAoB,KAAKD,UAAzB,CAAQC,OAAR;;AACA,UACE2C,IAAI,KAAK,OAAT,IACA3C,OAAO,KAAK4C,gBAAQC,KADpB,IAEA7C,OAAO,KAAK4C,gBAAQE,MAHtB,EAIE;AACA,aAAKtB,OAAL,GAAe,IAAf;AACA,aAAKuB,cAAL;AACD;;AAED,WAAKC,WAAL,CAAiBR,aAAjB;AACD;;;WAMD,0BAAwB;AACtB,+DAAyC,KAAKzD,KAAL,CAAWkE,SAAX,GAAuBC,MAAhE;AAAA,UAAOC,MAAP;AAAA,UAAeC,MAAf;AAAA,UAAuBC,MAAvB;AAAA,UAA+BC,MAA/B;;AACA,UAAMC,MAAM,GAAG,CAAC,CAACJ,MAAM,GAAGE,MAAV,IAAoB,CAArB,EAAwB,CAACD,MAAM,GAAGE,MAAV,IAAoB,CAA5C,CAAf;AAEA,UAAQtD,OAAR,GAAoB,KAAKD,UAAzB,CAAQC,OAAR;;AACA,UAAIA,OAAO,KAAK4C,gBAAQY,MAApB,IAA8BC,MAAM,CAACC,QAAP,CAAgBC,kBAAlD,EAAsE;AACpE,YAAMC,KAAK,GAAGH,MAAM,CAACC,QAAP,CAAgBC,kBAAhB,CAAmCE,UAAnC,CACZ;AAAEC,UAAAA,GAAG,EAAEP,MAAM,CAAC,CAAD,CAAb;AAAkBQ,UAAAA,GAAG,EAAER,MAAM,CAAC,CAAD;AAA7B,SADY,EAEZ,CAFY,CAAd;AAIA,YAAMS,cAAc,GAAG,CAAvB;AACA,YAAMC,+BAA+B,GACnCD,cAAc,GAAGJ,KAAK,CAACM,8BAAN,EADnB;AAEA,YAAMC,SAAS,GAAG,IAAIV,MAAM,CAACC,QAAP,CAAgBC,kBAApB,CAChBC,KAAK,CAACQ,CAAN,GAAUH,+BADM,EAEhBL,KAAK,CAACS,CAFU,EAGhBT,KAAK,CAACU,CAHU,CAAlB;AAKA,YAAMC,UAAU,GAAGJ,SAAS,CAACK,QAAV,EAAnB;AAEA,aAAKC,WAAL,GAAmBlB,MAAM,CAAC,CAAD,CAAN,GAAYgB,UAAU,CAACT,GAA1C;AACA;AACD;;AAGD,UAAMY,EAAE,GAAG,KAAK3E,UAAL,CAAgB4E,YAAhB,CAA6BpB,MAA7B,EAAqC,CAACJ,MAAD,EAASC,MAAT,CAArC,CAAX;AAEA,UAAMwB,EAAE,GAAG,KAAK7E,UAAL,CAAgB4E,YAAhB,CAA6BpB,MAA7B,EAAqC,CAC9CF,MAAM,KAAKF,MAAX,GAAoBE,MAAM,GAAG,GAA7B,GAAmCA,MADW,EAE9CC,MAAM,KAAKF,MAAX,GAAoBA,MAAM,GAAG,GAA7B,GAAmCE,MAFW,CAArC,CAAX;AAIA,WAAKmB,WAAL,GAAmB,CAACC,EAAE,GAAGE,EAAN,IAAY,CAA/B;;AACA,UAAI,CAACC,OAAO,CAAC,KAAKJ,WAAN,CAAZ,EAAgC;AAE9B,aAAKA,WAAL,GAAmB,gBAAnB;AACD;AACF;;;WAED,qBAAmBjC,aAAnB,EAA8D;AAC5D,kBAGI,KAAKzD,KAAL,CAAWS,cAAX,EAHJ;AAAA,6BACEsF,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAKA,WAAKhG,KAAL,CACGiG,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,gBADG;AAEfC,QAAAA,YAAY,EAAEC,aAFC;AAGfC,QAAAA,cAAc,EAAEC,aAHD;AAIfC,QAAAA,aAAa,EAAE/C,qCAJA;AAKfgD,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALQ;AAMfC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EANQ;AAOfC,QAAAA,OAAO,EAAE,sBAAQb,IAAR,EAAcC,UAAd,CAPM;AAQfa,QAAAA,IAAI,EAAE;AACJJ,UAAAA,MAAM,EAAE,IADJ;AAEJK,UAAAA,IAAI,EAAE,0BAAY,KAAK9F,UAAL,CAAgBC,OAA5B;AAFF;AARS,OADnB,EAcG8F,IAdH,CAcQ,UAACC,KAAD,EAAW;AACfvD,QAAAA,aAAa,CAAC,CAACuD,KAAD,CAAD,CAAb;AACD,OAhBH,EAiBGC,KAjBH,CAiBS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACAzD,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OApBH;AAqBD;;;WAED,uBAAqB;AAAA;;AACnB,WAAK9D,WAAL,CAAiB0H,GAAjB,CAAqB,aAArB,EAAoC,KAAK3D,aAAzC;AACA,4BAAKlE,OAAL,gEAAc8H,OAAd;AACA,gCAAKtF,WAAL,wEAAkBsF,OAAlB;AACD;;;WAGD,qCAAsC;AAAA;;AACpC,WAAKhE,qBAAL,CAA2BiE,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,QAD0C;AAEhDnF,QAAAA,IAAI,EAAEoF,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,UADI;AAEVI,UAAAA,MAAM,EAAE;AACNC,YAAAA,KAAK,EAAE3H,WAAG4H,YADJ;AAENpI,YAAAA,IAAI,EAAE,EAFA;AAGN2C,YAAAA,IAAI,EAAEnC,WAAGoC;AAHH,WAFE;AAOVyF,UAAAA,IAAI,EAAE,CAPI;AAQVtI,UAAAA,MAAM,EAAE,gBACNuI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,kCAAuBH,OAAvB,CAAQI,MAAR;AAAA,gBAAQA,MAAR,gCAAiB,CAAjB;AACA,mBAAOC,KAAK,CAACC,OAAN,CAAcF,MAAd,IAAwB,CAACA,MAAM,CAAC,CAAD,CAAP,CAAxB,GAAsC,CAACA,MAAD,CAA7C;AACD;AAhBS;AAHoC,OAAlD;AAsBA,WAAK9E,qBAAL,CAA2BiE,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,IAD0C;AAEhDnF,QAAAA,IAAI,EAAEoF,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,MADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3H,WAAG4H,YAFJ;AAGNpI,YAAAA,IAAI,EAAE,EAHA;AAIN2C,YAAAA,IAAI,EAAEnC,WAAGoC;AAJH,WAFE;AAQVyF,UAAAA,IAAI,EAAE,CARI;AASVtI,UAAAA,MAAM,EAAE,gBACNuI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gBAAMI,OAAO,GAAG,MAAI,CAAC5I,WAAL,CAAiB6I,UAAjB,EAAhB;;AACA,gBAAQC,KAAR,GAAkBT,OAAlB,CAAQS,KAAR;;AACA,wBAAiBF,OAAO,CAACE,KAAD,CAAP,IAA4B;AAAEpD,cAAAA,CAAC,EAAE,CAAL;AAAQC,cAAAA,CAAC,EAAE;AAAX,aAA7C;AAAA,gBAAQD,CAAR,SAAQA,CAAR;AAAA,gBAAWC,CAAX,SAAWA,CAAX;;AACA,mBAAO,CAACD,CAAD,EAAIC,CAAJ,CAAP;AACD;AAnBS;AAHoC,OAAlD;AA0BA,WAAKhC,qBAAL,CAA2BiE,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,SAD0C;AAEhDnF,QAAAA,IAAI,EAAEoF,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,WADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3H,WAAG4H,YAFJ;AAGNpI,YAAAA,IAAI,EAAE,EAHA;AAIN2C,YAAAA,IAAI,EAAEnC,WAAGoC;AAJH,WAFE;AAQVyF,UAAAA,IAAI,EAAE,CARI;AASVtI,UAAAA,MAAM,EAAE,gBACNuI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gBAAMO,OAAO,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAC,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAAC,CAArB,EAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC,CAAC,CAAnC,EAAsC,CAAtC,CAAhB;AAEA,gBAAMC,YAAY,GAAIR,YAAY,GAAG,CAAhB,GAAqB,CAA1C;AACA,mBAAO,CACLO,OAAO,CAACC,YAAD,CADF,EAELD,OAAO,CAACC,YAAY,GAAG,CAAhB,CAFF,EAGLD,OAAO,CAACC,YAAY,GAAG,CAAhB,CAHF,CAAP;AAKD;AAvBS;AAHoC,OAAlD;AA+BA,WAAKrF,qBAAL,CAA2BiE,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDnF,QAAAA,IAAI,EAAEoF,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,QADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3H,WAAG4H,YAFJ;AAGNpI,YAAAA,IAAI,EAAE,EAHA;AAIN2C,YAAAA,IAAI,EAAEnC,WAAGoC;AAJH,WAFE;AAQVyF,UAAAA,IAAI,EAAE,CARI;AASVtI,UAAAA,MAAM,EAAE,gBACNuI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqBH,OAArB,CAAQD,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAOM,KAAK,CAACC,OAAN,CAAcP,IAAd,IACH,CAACA,IAAI,CAAC,CAAD,CAAJ,GAAU,MAAI,CAACrC,WAAhB,CADG,GAEH,CAAEqC,IAAD,GAAmB,MAAI,CAACrC,WAAzB,CAFJ;AAGD;AAnBS;AAHoC,OAAlD;AAyBD;;;EAxTyCkD,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IAttribute,\n IElements,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { getCullFace, getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointFillTriangulation } from '../../core/triangulation';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/image/fillImage_frag.glsl';\nimport pointFillVert from '../shaders/image/fillImage_vert.glsl';\n\nexport default class FillImageModel extends BaseModel {\n private meter2coord: number = 1;\n private texture: ITexture2D;\n private isMeter: boolean = false;\n private radian: number = 0; // 旋转的弧度\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n rotation,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n /**\n * rotateFlag\n * L7MAP 1\n * MAPBOX 1\n * GAODE2.x -1\n * GAODE1.x -1\n */\n let rotateFlag = 1;\n if (\n this.mapService.version === 'GAODE2.x' ||\n this.mapService.version === 'GAODE1.x'\n ) {\n rotateFlag = -1;\n }\n // 控制图标的旋转角度(绕 Z 轴旋转)\n this.radian =\n rotation !== undefined\n ? (rotateFlag * Math.PI * rotation) / 180\n : (rotateFlag * Math.PI * (this.mapService.getRotation() % 360)) / 180;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_isMeter: Number(this.isMeter),\n u_RotateMatrix: new Float32Array([\n Math.cos(this.radian),\n Math.sin(this.radian),\n -Math.sin(this.radian),\n Math.cos(this.radian),\n ]),\n\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n this.buildModels(callbackModel);\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n this.layer\n .buildLayerModel({\n moduleName: 'pointFillImage',\n vertexShader: pointFillVert,\n fragmentShader: pointFillFrag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\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.iconService.off('imageUpdate', this.updateTexture);\n this.texture?.destroy();\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'rotate',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Rotate',\n buffer: {\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { rotate = 0 } = feature;\n return Array.isArray(rotate) ? [rotate[0]] : [rotate as number];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // this.layer.render();\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"fillmage.js"}
@@ -140,11 +140,11 @@ var ImageModel = function (_BaseModel) {
140
140
  }
141
141
  }, {
142
142
  key: "initModels",
143
- value: function initModels() {
143
+ value: function initModels(callbackModel) {
144
144
  this.registerBuiltinAttributes();
145
145
  this.updateTexture();
146
146
  this.iconService.on('imageUpdate', this.updateTexture);
147
- return this.buildModels();
147
+ this.buildModels(callbackModel);
148
148
  }
149
149
  }, {
150
150
  key: "clearModels",
@@ -157,25 +157,30 @@ var ImageModel = function (_BaseModel) {
157
157
  }
158
158
  }, {
159
159
  key: "buildModels",
160
- value: function buildModels() {
160
+ value: function buildModels(callbackModel) {
161
161
  var _ref2 = this.layer.getLayerConfig(),
162
162
  _ref2$mask = _ref2.mask,
163
163
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
164
164
  _ref2$maskInside = _ref2.maskInside,
165
165
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
166
166
 
167
- return [this.layer.buildLayerModel({
167
+ this.layer.buildLayerModel({
168
168
  moduleName: 'pointImage',
169
169
  vertexShader: pointImageVert,
170
170
  fragmentShader: pointImageFrag,
171
171
  triangulation: _triangulation.PointImageTriangulation,
172
- primitive: _l7Core.gl.POINTS,
173
172
  depth: {
174
173
  enable: false
175
174
  },
175
+ primitive: _l7Core.gl.POINTS,
176
176
  blend: this.getBlend(),
177
177
  stencil: (0, _l7Utils.getMask)(mask, maskInside)
178
- })];
178
+ }).then(function (model) {
179
+ callbackModel([model]);
180
+ }).catch(function (err) {
181
+ console.warn(err);
182
+ callbackModel([]);
183
+ });
179
184
  }
180
185
  }, {
181
186
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/image.ts"],"names":["ImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","gl","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","offsets","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","registerBuiltinAttributes","updateTexture","on","buildModels","destroy","off","mask","maskInside","buildLayerModel","moduleName","vertexShader","pointImageVert","fragmentShader","pointImageFrag","triangulation","PointImageTriangulation","primitive","POINTS","depth","enable","blend","getBlend","stencil","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","iconMap","getIconMap","shape","x","y","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointImageTriangulation } from '../../core/triangulation';\nimport pointImageFrag from '../shaders/image_frag.glsl';\nimport pointImageVert from '../shaders/image_vert.glsl';\nexport default class ImageModel extends BaseModel {\n private texture: ITexture2D;\n\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public initModels(): IModel[] {\n this.registerBuiltinAttributes();\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n return this.buildModels();\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointImage',\n vertexShader: pointImageVert,\n fragmentShader: pointImageFrag,\n triangulation: PointImageTriangulation,\n primitive: gl.POINTS,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"image.js"}
1
+ {"version":3,"sources":["../../../src/point/models/image.ts"],"names":["ImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","gl","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","offsets","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","callbackModel","registerBuiltinAttributes","updateTexture","on","buildModels","destroy","off","mask","maskInside","buildLayerModel","moduleName","vertexShader","pointImageVert","fragmentShader","pointImageFrag","triangulation","PointImageTriangulation","depth","enable","primitive","POINTS","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","iconMap","getIconMap","shape","x","y","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointImageTriangulation } from '../../core/triangulation';\nimport pointImageFrag from '../shaders/image_frag.glsl';\nimport pointImageVert from '../shaders/image_vert.glsl';\nexport default class ImageModel extends BaseModel {\n private texture: ITexture2D;\n\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.registerBuiltinAttributes();\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n this.layer\n .buildLayerModel({\n moduleName: 'pointImage',\n vertexShader: pointImageVert,\n fragmentShader: pointImageFrag,\n triangulation: PointImageTriangulation,\n depth: { enable: false },\n primitive: gl.POINTS,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"image.js"}
@@ -19,8 +19,6 @@ var _fill = _interopRequireDefault(require("./fill"));
19
19
 
20
20
  var _fillmage = _interopRequireDefault(require("./fillmage"));
21
21
 
22
- var _iconFont = _interopRequireDefault(require("./icon-font"));
23
-
24
22
  var _image = _interopRequireDefault(require("./image"));
25
23
 
26
24
  var _normal = _interopRequireDefault(require("./normal"));
@@ -42,7 +40,6 @@ var PointModels = {
42
40
  simplePoint: _simplePoint.default,
43
41
  extrude: _extrude.default,
44
42
  text: _text.default,
45
- icon: _iconFont.default,
46
43
  vectorpoint: _tileModel.default,
47
44
  tile: _tile.default,
48
45
  earthFill: _earthFill.default,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/index.ts"],"names":["PointModels","fillImage","FillImageModel","fill","FillModel","radar","Radar","image","IMageModel","normal","NormalModel","simplePoint","SimplePopint","extrude","ExtrudeModel","text","TextModel","icon","IconModel","vectorpoint","PointTileModel","tile","TileFillModel","earthFill","EarthFillModel","earthExtrude","EarthExtrudeModel"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAiBA,IAAMA,WAAwC,GAAG;AAC/CC,EAAAA,SAAS,EAAEC,iBADoC;AAE/CC,EAAAA,IAAI,EAAEC,aAFyC;AAG/CC,EAAAA,KAAK,EAAEC,cAHwC;AAI/CC,EAAAA,KAAK,EAAEC,cAJwC;AAK/CC,EAAAA,MAAM,EAAEC,eALuC;AAM/CC,EAAAA,WAAW,EAAEC,oBANkC;AAO/CC,EAAAA,OAAO,EAAEC,gBAPsC;AAQ/CC,EAAAA,IAAI,EAAEC,aARyC;AAS/CC,EAAAA,IAAI,EAAEC,iBATyC;AAU/CC,EAAAA,WAAW,EAAEC,kBAVkC;AAW/CC,EAAAA,IAAI,EAAEC,aAXyC;AAY/CC,EAAAA,SAAS,EAAEC,kBAZoC;AAa/CC,EAAAA,YAAY,EAAEC;AAbiC,CAAjD;eAgBe1B,W","sourcesContent":["import PointTileModel from '../../tile/models/tileModel';\nimport EarthExtrudeModel from './earthExtrude';\n// earth\nimport EarthFillModel from './earthFill';\nimport ExtrudeModel from './extrude';\nimport FillModel from './fill';\nimport FillImageModel from './fillmage';\nimport IconModel from './icon-font';\nimport IMageModel from './image';\nimport NormalModel from './normal';\nimport Radar from './radar';\nimport SimplePopint from './simplePoint';\nimport TextModel from './text';\nimport TileFillModel from './tile';\n\nexport type PointType =\n | 'fillImage'\n | 'fill'\n | 'radar'\n | 'image'\n | 'normal'\n | 'simplePoint'\n | 'extrude'\n | 'text'\n | 'icon'\n | 'vectorpoint'\n | 'tile'\n | 'earthFill'\n | 'earthExtrude';\n\nconst PointModels: { [key in PointType]: any } = {\n fillImage: FillImageModel,\n fill: FillModel,\n radar: Radar,\n image: IMageModel,\n normal: NormalModel,\n simplePoint: SimplePopint,\n extrude: ExtrudeModel,\n text: TextModel,\n icon: IconModel,\n vectorpoint: PointTileModel,\n tile: TileFillModel,\n earthFill: EarthFillModel,\n earthExtrude: EarthExtrudeModel,\n};\n\nexport default PointModels;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/point/models/index.ts"],"names":["PointModels","fillImage","FillImageModel","fill","FillModel","radar","Radar","image","IMageModel","normal","NormalModel","simplePoint","SimplePopint","extrude","ExtrudeModel","text","TextModel","vectorpoint","PointTileModel","tile","TileFillModel","earthFill","EarthFillModel","earthExtrude","EarthExtrudeModel"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAgBA,IAAMA,WAAwC,GAAG;AAC/CC,EAAAA,SAAS,EAAEC,iBADoC;AAE/CC,EAAAA,IAAI,EAAEC,aAFyC;AAG/CC,EAAAA,KAAK,EAAEC,cAHwC;AAI/CC,EAAAA,KAAK,EAAEC,cAJwC;AAK/CC,EAAAA,MAAM,EAAEC,eALuC;AAM/CC,EAAAA,WAAW,EAAEC,oBANkC;AAO/CC,EAAAA,OAAO,EAAEC,gBAPsC;AAQ/CC,EAAAA,IAAI,EAAEC,aARyC;AAS/CC,EAAAA,WAAW,EAAEC,kBATkC;AAU/CC,EAAAA,IAAI,EAAEC,aAVyC;AAW/CC,EAAAA,SAAS,EAAEC,kBAXoC;AAY/CC,EAAAA,YAAY,EAAEC;AAZiC,CAAjD;eAeexB,W","sourcesContent":["import PointTileModel from '../../tile/models/tileModel';\nimport EarthExtrudeModel from './earthExtrude';\n// earth\nimport EarthFillModel from './earthFill';\nimport ExtrudeModel from './extrude';\nimport FillModel from './fill';\nimport FillImageModel from './fillmage';\nimport IMageModel from './image';\nimport NormalModel from './normal';\nimport Radar from './radar';\nimport SimplePopint from './simplePoint';\nimport TextModel from './text';\nimport TileFillModel from './tile';\n\nexport type PointType =\n | 'fillImage'\n | 'fill'\n | 'radar'\n | 'image'\n | 'normal'\n | 'simplePoint'\n | 'extrude'\n | 'text'\n | 'vectorpoint'\n | 'tile'\n | 'earthFill'\n | 'earthExtrude';\n\nconst PointModels: { [key in PointType]: any } = {\n fillImage: FillImageModel,\n fill: FillModel,\n radar: Radar,\n image: IMageModel,\n normal: NormalModel,\n simplePoint: SimplePopint,\n extrude: ExtrudeModel,\n text: TextModel,\n vectorpoint: PointTileModel,\n tile: TileFillModel,\n earthFill: EarthFillModel,\n earthExtrude: EarthExtrudeModel,\n};\n\nexport default PointModels;\n"],"file":"index.js"}