@antv/l7-layers 2.9.18 → 2.9.21

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 (362) 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 +105 -62
  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 +13 -1
  26. package/es/core/interface.js +14 -0
  27. package/es/core/interface.js.map +1 -1
  28. package/es/core/triangulation.d.ts +1 -0
  29. package/es/core/triangulation.js +37 -11
  30. package/es/core/triangulation.js.map +1 -1
  31. package/es/earth/index.js +8 -2
  32. package/es/earth/index.js.map +1 -1
  33. package/es/earth/models/atmosphere.d.ts +2 -2
  34. package/es/earth/models/atmosphere.js +11 -6
  35. package/es/earth/models/atmosphere.js.map +1 -1
  36. package/es/earth/models/base.d.ts +2 -2
  37. package/es/earth/models/base.js +11 -6
  38. package/es/earth/models/base.js.map +1 -1
  39. package/es/earth/models/bloomsphere.d.ts +2 -2
  40. package/es/earth/models/bloomsphere.js +11 -6
  41. package/es/earth/models/bloomsphere.js.map +1 -1
  42. package/es/heatmap/index.js +17 -5
  43. package/es/heatmap/index.js.map +1 -1
  44. package/es/heatmap/models/grid.d.ts +2 -2
  45. package/es/heatmap/models/grid.js +12 -8
  46. package/es/heatmap/models/grid.js.map +1 -1
  47. package/es/heatmap/models/grid3d.d.ts +2 -2
  48. package/es/heatmap/models/grid3d.js +12 -6
  49. package/es/heatmap/models/grid3d.js.map +1 -1
  50. package/es/heatmap/models/heatmap.d.ts +2 -2
  51. package/es/heatmap/models/heatmap.js +112 -62
  52. package/es/heatmap/models/heatmap.js.map +1 -1
  53. package/es/heatmap/models/hexagon.d.ts +2 -2
  54. package/es/heatmap/models/hexagon.js +11 -6
  55. package/es/heatmap/models/hexagon.js.map +1 -1
  56. package/es/image/index.js +12 -2
  57. package/es/image/index.js.map +1 -1
  58. package/es/image/models/dataImage.d.ts +3 -3
  59. package/es/image/models/dataImage.js +10 -5
  60. package/es/image/models/dataImage.js.map +1 -1
  61. package/es/image/models/image.d.ts +3 -3
  62. package/es/image/models/image.js +11 -7
  63. package/es/image/models/image.js.map +1 -1
  64. package/es/line/index.d.ts +0 -2
  65. package/es/line/index.js +12 -5
  66. package/es/line/index.js.map +1 -1
  67. package/es/line/models/arc.d.ts +2 -2
  68. package/es/line/models/arc.js +14 -9
  69. package/es/line/models/arc.js.map +1 -1
  70. package/es/line/models/arc_3d.d.ts +2 -2
  71. package/es/line/models/arc_3d.js +13 -8
  72. package/es/line/models/arc_3d.js.map +1 -1
  73. package/es/line/models/earthArc_3d.d.ts +2 -2
  74. package/es/line/models/earthArc_3d.js +17 -9
  75. package/es/line/models/earthArc_3d.js.map +1 -1
  76. package/es/line/models/great_circle.d.ts +2 -2
  77. package/es/line/models/great_circle.js +11 -6
  78. package/es/line/models/great_circle.js.map +1 -1
  79. package/es/line/models/half.d.ts +2 -2
  80. package/es/line/models/half.js +46 -29
  81. package/es/line/models/half.js.map +1 -1
  82. package/es/line/models/index.d.ts +1 -1
  83. package/es/line/models/index.js +0 -2
  84. package/es/line/models/index.js.map +1 -1
  85. package/es/line/models/line.d.ts +2 -2
  86. package/es/line/models/line.js +37 -18
  87. package/es/line/models/line.js.map +1 -1
  88. package/es/line/models/linearline.d.ts +2 -11
  89. package/es/line/models/linearline.js +21 -27
  90. package/es/line/models/linearline.js.map +1 -1
  91. package/es/line/models/simpleLine.d.ts +2 -2
  92. package/es/line/models/simpleLine.js +13 -8
  93. package/es/line/models/simpleLine.js.map +1 -1
  94. package/es/line/models/tile.d.ts +2 -11
  95. package/es/line/models/tile.js +45 -39
  96. package/es/line/models/tile.js.map +1 -1
  97. package/es/line/models/wall.d.ts +2 -2
  98. package/es/line/models/wall.js +13 -9
  99. package/es/line/models/wall.js.map +1 -1
  100. package/es/mask/index.js +12 -2
  101. package/es/mask/index.js.map +1 -1
  102. package/es/mask/models/fill.d.ts +2 -2
  103. package/es/mask/models/fill.js +53 -27
  104. package/es/mask/models/fill.js.map +1 -1
  105. package/es/plugins/DataMappingPlugin.js +29 -8
  106. package/es/plugins/DataMappingPlugin.js.map +1 -1
  107. package/es/plugins/DataSourcePlugin.js +14 -5
  108. package/es/plugins/DataSourcePlugin.js.map +1 -1
  109. package/es/plugins/LayerModelPlugin.d.ts +2 -0
  110. package/es/plugins/LayerModelPlugin.js +35 -7
  111. package/es/plugins/LayerModelPlugin.js.map +1 -1
  112. package/es/plugins/PixelPickingPlugin.js +16 -13
  113. package/es/plugins/PixelPickingPlugin.js.map +1 -1
  114. package/es/point/index.d.ts +1 -1
  115. package/es/point/index.js +26 -15
  116. package/es/point/index.js.map +1 -1
  117. package/es/point/models/earthExtrude.d.ts +2 -2
  118. package/es/point/models/earthExtrude.js +16 -14
  119. package/es/point/models/earthExtrude.js.map +1 -1
  120. package/es/point/models/earthFill.d.ts +2 -11
  121. package/es/point/models/earthFill.js +13 -22
  122. package/es/point/models/earthFill.js.map +1 -1
  123. package/es/point/models/extrude.d.ts +2 -2
  124. package/es/point/models/extrude.js +49 -27
  125. package/es/point/models/extrude.js.map +1 -1
  126. package/es/point/models/fill.d.ts +2 -2
  127. package/es/point/models/fill.js +59 -41
  128. package/es/point/models/fill.js.map +1 -1
  129. package/es/point/models/fillmage.d.ts +2 -7
  130. package/es/point/models/fillmage.js +13 -22
  131. package/es/point/models/fillmage.js.map +1 -1
  132. package/es/point/models/image.d.ts +2 -2
  133. package/es/point/models/image.js +11 -6
  134. package/es/point/models/image.js.map +1 -1
  135. package/es/point/models/index.d.ts +1 -1
  136. package/es/point/models/index.js +0 -2
  137. package/es/point/models/index.js.map +1 -1
  138. package/es/point/models/normal.d.ts +2 -2
  139. package/es/point/models/normal.js +11 -6
  140. package/es/point/models/normal.js.map +1 -1
  141. package/es/point/models/radar.d.ts +2 -11
  142. package/es/point/models/radar.js +13 -22
  143. package/es/point/models/radar.js.map +1 -1
  144. package/es/point/models/simplePoint.d.ts +2 -2
  145. package/es/point/models/simplePoint.js +11 -6
  146. package/es/point/models/simplePoint.js.map +1 -1
  147. package/es/point/models/text.d.ts +3 -2
  148. package/es/point/models/text.js +110 -75
  149. package/es/point/models/text.js.map +1 -1
  150. package/es/point/models/tile.d.ts +2 -11
  151. package/es/point/models/tile.js +22 -25
  152. package/es/point/models/tile.js.map +1 -1
  153. package/es/polygon/index.js +12 -2
  154. package/es/polygon/index.js.map +1 -1
  155. package/es/polygon/models/extrude.d.ts +2 -2
  156. package/es/polygon/models/extrude.js +10 -5
  157. package/es/polygon/models/extrude.js.map +1 -1
  158. package/es/polygon/models/fill.d.ts +2 -2
  159. package/es/polygon/models/fill.js +27 -13
  160. package/es/polygon/models/fill.js.map +1 -1
  161. package/es/polygon/models/ocean.d.ts +2 -2
  162. package/es/polygon/models/ocean.js +12 -6
  163. package/es/polygon/models/ocean.js.map +1 -1
  164. package/es/polygon/models/tile.d.ts +2 -3
  165. package/es/polygon/models/tile.js +17 -27
  166. package/es/polygon/models/tile.js.map +1 -1
  167. package/es/polygon/models/water.d.ts +2 -2
  168. package/es/polygon/models/water.js +12 -6
  169. package/es/polygon/models/water.js.map +1 -1
  170. package/es/raster/index.js +12 -2
  171. package/es/raster/index.js.map +1 -1
  172. package/es/raster/models/raster.d.ts +3 -3
  173. package/es/raster/models/raster.js +11 -7
  174. package/es/raster/models/raster.js.map +1 -1
  175. package/es/tile/manager/tileLayerManager.js +3 -0
  176. package/es/tile/manager/tileLayerManager.js.map +1 -1
  177. package/es/tile/manager/tilePickerManager.js +1 -0
  178. package/es/tile/manager/tilePickerManager.js.map +1 -1
  179. package/es/tile/tileFactory/base.js.map +1 -1
  180. package/es/tile/tileFactory/point.js.map +1 -1
  181. package/es/tile/tileFactory/rasterDataLayer.js +12 -2
  182. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -1
  183. package/es/tile/tileFactory/vectorLayer.js +12 -2
  184. package/es/tile/tileFactory/vectorLayer.js.map +1 -1
  185. package/es/utils/extrude_polyline.d.ts +15 -0
  186. package/es/utils/extrude_polyline.js +146 -14
  187. package/es/utils/extrude_polyline.js.map +1 -1
  188. package/es/wind/index.js +12 -2
  189. package/es/wind/index.js.map +1 -1
  190. package/es/wind/models/wind.d.ts +4 -2
  191. package/es/wind/models/wind.js +50 -18
  192. package/es/wind/models/wind.js.map +1 -1
  193. package/es/wind/models/windRender.js +1 -1
  194. package/es/wind/models/windRender.js.map +1 -1
  195. package/lib/Geometry/index.js +12 -2
  196. package/lib/Geometry/index.js.map +1 -1
  197. package/lib/Geometry/models/billboard.js +11 -6
  198. package/lib/Geometry/models/billboard.js.map +1 -1
  199. package/lib/Geometry/models/plane.js +12 -7
  200. package/lib/Geometry/models/plane.js.map +1 -1
  201. package/lib/Geometry/models/sprite.js +11 -6
  202. package/lib/Geometry/models/sprite.js.map +1 -1
  203. package/lib/canvas/index.js +12 -2
  204. package/lib/canvas/index.js.map +1 -1
  205. package/lib/citybuliding/building.js +12 -2
  206. package/lib/citybuliding/building.js.map +1 -1
  207. package/lib/citybuliding/models/build.js +16 -3
  208. package/lib/citybuliding/models/build.js.map +1 -1
  209. package/lib/core/BaseLayer.js +104 -61
  210. package/lib/core/BaseLayer.js.map +1 -1
  211. package/lib/core/BaseModel.js +2 -2
  212. package/lib/core/BaseModel.js.map +1 -1
  213. package/lib/core/interface.js +17 -1
  214. package/lib/core/interface.js.map +1 -1
  215. package/lib/core/triangulation.js +40 -16
  216. package/lib/core/triangulation.js.map +1 -1
  217. package/lib/earth/index.js +8 -2
  218. package/lib/earth/index.js.map +1 -1
  219. package/lib/earth/models/atmosphere.js +11 -6
  220. package/lib/earth/models/atmosphere.js.map +1 -1
  221. package/lib/earth/models/base.js +11 -6
  222. package/lib/earth/models/base.js.map +1 -1
  223. package/lib/earth/models/bloomsphere.js +11 -6
  224. package/lib/earth/models/bloomsphere.js.map +1 -1
  225. package/lib/heatmap/index.js +17 -5
  226. package/lib/heatmap/index.js.map +1 -1
  227. package/lib/heatmap/models/grid.js +12 -8
  228. package/lib/heatmap/models/grid.js.map +1 -1
  229. package/lib/heatmap/models/grid3d.js +12 -6
  230. package/lib/heatmap/models/grid3d.js.map +1 -1
  231. package/lib/heatmap/models/heatmap.js +113 -62
  232. package/lib/heatmap/models/heatmap.js.map +1 -1
  233. package/lib/heatmap/models/hexagon.js +11 -6
  234. package/lib/heatmap/models/hexagon.js.map +1 -1
  235. package/lib/image/index.js +12 -2
  236. package/lib/image/index.js.map +1 -1
  237. package/lib/image/models/dataImage.js +10 -5
  238. package/lib/image/models/dataImage.js.map +1 -1
  239. package/lib/image/models/image.js +11 -7
  240. package/lib/image/models/image.js.map +1 -1
  241. package/lib/line/index.js +12 -5
  242. package/lib/line/index.js.map +1 -1
  243. package/lib/line/models/arc.js +14 -9
  244. package/lib/line/models/arc.js.map +1 -1
  245. package/lib/line/models/arc_3d.js +13 -8
  246. package/lib/line/models/arc_3d.js.map +1 -1
  247. package/lib/line/models/earthArc_3d.js +17 -9
  248. package/lib/line/models/earthArc_3d.js.map +1 -1
  249. package/lib/line/models/great_circle.js +11 -6
  250. package/lib/line/models/great_circle.js.map +1 -1
  251. package/lib/line/models/half.js +48 -29
  252. package/lib/line/models/half.js.map +1 -1
  253. package/lib/line/models/index.js +0 -3
  254. package/lib/line/models/index.js.map +1 -1
  255. package/lib/line/models/line.js +38 -19
  256. package/lib/line/models/line.js.map +1 -1
  257. package/lib/line/models/linearline.js +22 -27
  258. package/lib/line/models/linearline.js.map +1 -1
  259. package/lib/line/models/simpleLine.js +13 -8
  260. package/lib/line/models/simpleLine.js.map +1 -1
  261. package/lib/line/models/tile.js +47 -39
  262. package/lib/line/models/tile.js.map +1 -1
  263. package/lib/line/models/wall.js +13 -9
  264. package/lib/line/models/wall.js.map +1 -1
  265. package/lib/mask/index.js +12 -2
  266. package/lib/mask/index.js.map +1 -1
  267. package/lib/mask/models/fill.js +55 -27
  268. package/lib/mask/models/fill.js.map +1 -1
  269. package/lib/plugins/DataMappingPlugin.js +29 -8
  270. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  271. package/lib/plugins/DataSourcePlugin.js +13 -4
  272. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  273. package/lib/plugins/LayerModelPlugin.js +35 -7
  274. package/lib/plugins/LayerModelPlugin.js.map +1 -1
  275. package/lib/plugins/PixelPickingPlugin.js +16 -13
  276. package/lib/plugins/PixelPickingPlugin.js.map +1 -1
  277. package/lib/point/index.js +26 -15
  278. package/lib/point/index.js.map +1 -1
  279. package/lib/point/models/earthExtrude.js +16 -15
  280. package/lib/point/models/earthExtrude.js.map +1 -1
  281. package/lib/point/models/earthFill.js +13 -22
  282. package/lib/point/models/earthFill.js.map +1 -1
  283. package/lib/point/models/extrude.js +51 -28
  284. package/lib/point/models/extrude.js.map +1 -1
  285. package/lib/point/models/fill.js +61 -42
  286. package/lib/point/models/fill.js.map +1 -1
  287. package/lib/point/models/fillmage.js +13 -22
  288. package/lib/point/models/fillmage.js.map +1 -1
  289. package/lib/point/models/image.js +11 -6
  290. package/lib/point/models/image.js.map +1 -1
  291. package/lib/point/models/index.js +0 -3
  292. package/lib/point/models/index.js.map +1 -1
  293. package/lib/point/models/normal.js +11 -6
  294. package/lib/point/models/normal.js.map +1 -1
  295. package/lib/point/models/radar.js +13 -22
  296. package/lib/point/models/radar.js.map +1 -1
  297. package/lib/point/models/simplePoint.js +11 -6
  298. package/lib/point/models/simplePoint.js.map +1 -1
  299. package/lib/point/models/text.js +112 -78
  300. package/lib/point/models/text.js.map +1 -1
  301. package/lib/point/models/tile.js +22 -25
  302. package/lib/point/models/tile.js.map +1 -1
  303. package/lib/polygon/index.js +12 -2
  304. package/lib/polygon/index.js.map +1 -1
  305. package/lib/polygon/models/extrude.js +10 -5
  306. package/lib/polygon/models/extrude.js.map +1 -1
  307. package/lib/polygon/models/fill.js +25 -11
  308. package/lib/polygon/models/fill.js.map +1 -1
  309. package/lib/polygon/models/ocean.js +12 -6
  310. package/lib/polygon/models/ocean.js.map +1 -1
  311. package/lib/polygon/models/tile.js +17 -27
  312. package/lib/polygon/models/tile.js.map +1 -1
  313. package/lib/polygon/models/water.js +12 -6
  314. package/lib/polygon/models/water.js.map +1 -1
  315. package/lib/raster/index.js +12 -2
  316. package/lib/raster/index.js.map +1 -1
  317. package/lib/raster/models/raster.js +11 -7
  318. package/lib/raster/models/raster.js.map +1 -1
  319. package/lib/tile/manager/tileLayerManager.js +3 -0
  320. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  321. package/lib/tile/manager/tilePickerManager.js +1 -0
  322. package/lib/tile/manager/tilePickerManager.js.map +1 -1
  323. package/lib/tile/tileFactory/base.js.map +1 -1
  324. package/lib/tile/tileFactory/point.js.map +1 -1
  325. package/lib/tile/tileFactory/rasterDataLayer.js +12 -2
  326. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -1
  327. package/lib/tile/tileFactory/vectorLayer.js +12 -2
  328. package/lib/tile/tileFactory/vectorLayer.js.map +1 -1
  329. package/lib/utils/extrude_polyline.js +148 -14
  330. package/lib/utils/extrude_polyline.js.map +1 -1
  331. package/lib/wind/index.js +12 -2
  332. package/lib/wind/index.js.map +1 -1
  333. package/lib/wind/models/wind.js +49 -18
  334. package/lib/wind/models/wind.js.map +1 -1
  335. package/lib/wind/models/windRender.js +1 -1
  336. package/lib/wind/models/windRender.js.map +1 -1
  337. package/package.json +9 -8
  338. package/es/line/models/arcmini.d.ts +0 -9
  339. package/es/line/models/arcmini.js +0 -145
  340. package/es/line/models/arcmini.js.map +0 -1
  341. package/es/point/models/icon-font.d.ts +0 -11
  342. package/es/point/models/icon-font.js +0 -181
  343. package/es/point/models/icon-font.js.map +0 -1
  344. package/es/raster/image.d.ts +0 -0
  345. package/es/raster/image.js +0 -2
  346. package/es/raster/image.js.map +0 -1
  347. package/es/raster/raster2d.d.ts +0 -27
  348. package/es/raster/raster2d.js +0 -158
  349. package/es/raster/raster2d.js.map +0 -1
  350. package/es/utils/geo.d.ts +0 -12
  351. package/es/utils/geo.js +0 -53
  352. package/es/utils/geo.js.map +0 -1
  353. package/lib/line/models/arcmini.js +0 -161
  354. package/lib/line/models/arcmini.js.map +0 -1
  355. package/lib/point/models/icon-font.js +0 -196
  356. package/lib/point/models/icon-font.js.map +0 -1
  357. package/lib/raster/image.js +0 -2
  358. package/lib/raster/image.js.map +0 -1
  359. package/lib/raster/raster2d.js +0 -172
  360. package/lib/raster/raster2d.js.map +0 -1
  361. package/lib/utils/geo.js +0 -65
  362. package/lib/utils/geo.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/heatmap/index.ts"],"names":["HeatMapLayer","shape","getModelType","layerModel","HeatMapModels","models","initModels","buildModels","render","layerModelNeedUpdate","forEach","model","draw","uniforms","getUninforms","data","attributes","elements","updateAttributesAndElements","console","warn","properties","opacity","type","minimum","maximum","shapeAttribute","styleAttributeService","getLayerStyleAttribute","getLayerConfig","shape3d","source","getSource","sourceType","scale","field","indexOf","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;;;;;IACqBA,Y;;;;;;;;;;;;;;;uFACG,c;;;;;;WAEtB,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIC,gBAAcH,KAAd,CAAJ,CAAyB,IAAzB,CAAlB;AACA,WAAKI,MAAL,GAAc,KAAKF,UAAL,CAAgBG,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKF,UAAL,CAAgBI,WAAhB,EAAd;AACD;;;WACD,wBAAsB;AAAA;;AACpB,UAAMN,KAAK,GAAG,KAAKC,YAAL,EAAd;;AACA,UAAID,KAAK,KAAK,SAAd,EAAyB;AACvB,YAAI,KAAKE,UAAT,EAAqB;AACnB,eAAKA,UAAL,CAAgBK,MAAhB;AACD;;AAED,eAAO,IAAP;AACD;;AACD,UAAI,KAAKC,oBAAT,EAA+B;AAC7B,aAAKJ,MAAL,GAAc,KAAKF,UAAL,CAAgBI,WAAhB,EAAd;AACA,aAAKE,oBAAL,GAA4B,KAA5B;AACD;;AACD,WAAKJ,MAAL,CAAYK,OAAZ,CAAoB,UAACC,KAAD;AAAA,eAClBA,KAAK,CAACC,IAAN,CAAW;AACTC,UAAAA,QAAQ,EAAE,MAAI,CAACV,UAAL,CAAgBW,YAAhB;AADD,SAAX,CADkB;AAAA,OAApB;AAKA,aAAO,IAAP;AACD;;;WAED,yBAAuBC,IAAvB,EAAoD;AAClD,UAAIA,IAAI,CAACC,UAAL,IAAmBD,IAAI,CAACE,QAA5B,EAAsC;AACpC,aAAKZ,MAAL,CAAY,CAAZ,EAAea,2BAAf,CACEH,IAAI,CAACC,UADP,EAEED,IAAI,CAACE,QAFP;AAID,OALD,MAKO;AACLE,QAAAA,OAAO,CAACC,IAAR,CAAa,YAAb;AACD;AACF;;;WAED,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,wBAA2C;AAAA;;AACzC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;;AAGA,iCAAoB,KAAKC,cAAL,EAApB;AAAA,UAAQC,OAAR,wBAAQA,OAAR;;AACA,UAAMC,MAAM,GAAG,KAAKC,SAAL,EAAf;AACA,UAAMC,UAAU,GAAGF,MAAM,CAAChB,IAAP,CAAYQ,IAA/B;AACA,UAAMtB,KAAK,GACT,CAACyB,cAAD,aAACA,cAAD,gDAACA,cAAc,CAAEQ,KAAjB,0DAAC,sBAAuBC,KAAxB,KAAsD,SADxD;;AAEA,UAAIlC,KAAK,KAAK,SAAV,IAAuBA,KAAK,KAAK,WAArC,EAAkD;AAChD,eAAO,SAAP;AACD;;AACD,UAAIgC,UAAU,KAAK,SAAnB,EAA8B;AAC5B,eAAO,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,OAAT,CAAiBnC,KAAjB,OAA4B,CAAC,CAA7B,GAAiC,SAAjC,GAA6C,QAApD;AACD;;AACD,UAAIgC,UAAU,KAAK,MAAnB,EAA2B;AACzB,eAAO,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,OAAT,CAAiBnC,KAAjB,OAA4B,CAAC,CAA7B,GAAiC,MAAjC,GAA0C,QAAjD;AACD;;AACD,aAAO,SAAP;AACD;;;EA1EuCoC,mB","sourcesContent":["import { IAttrubuteAndElements } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IHeatMapLayerStyleOptions } from '../core/interface';\nimport HeatMapModels, { HeatMapModelType } from './models';\nexport default class HeatMapLayer extends BaseLayer<IHeatMapLayerStyleOptions> {\n public type: string = 'HeatMapLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new HeatMapModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n public renderModels() {\n const shape = this.getModelType();\n if (shape === 'heatmap') {\n if (this.layerModel) {\n this.layerModel.render(); // 独立的渲染流程\n }\n\n return this;\n }\n if (this.layerModelNeedUpdate) {\n this.models = this.layerModel.buildModels();\n this.layerModelNeedUpdate = false;\n }\n this.models.forEach((model) =>\n model.draw({\n uniforms: this.layerModel.getUninforms(),\n }),\n );\n return this;\n }\n\n public updateModelData(data: IAttrubuteAndElements) {\n if (data.attributes && data.elements) {\n this.models[0].updateAttributesAndElements(\n data.attributes,\n data.elements,\n );\n } else {\n console.warn('data error');\n }\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected getModelType(): HeatMapModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const { shape3d } = this.getLayerConfig();\n const source = this.getSource();\n const sourceType = source.data.type;\n const shape =\n (shapeAttribute?.scale?.field as HeatMapModelType) || 'heatmap';\n if (shape === 'heatmap' || shape === 'heatmap3d') {\n return 'heatmap';\n }\n if (sourceType === 'hexagon') {\n return shape3d?.indexOf(shape) === -1 ? 'hexagon' : 'grid3d';\n }\n if (sourceType === 'grid') {\n return shape3d?.indexOf(shape) === -1 ? 'grid' : 'grid3d';\n }\n return 'heatmap';\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/heatmap/index.ts"],"names":["HeatMapLayer","shape","getModelType","layerModel","HeatMapModels","initModels","models","renderLayers","buildModels","render","layerModelNeedUpdate","forEach","model","draw","uniforms","getUninforms","data","attributes","elements","updateAttributesAndElements","console","warn","properties","opacity","type","minimum","maximum","shapeAttribute","styleAttributeService","getLayerStyleAttribute","getLayerConfig","shape3d","source","getSource","sourceType","scale","field","indexOf","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;;;;;IACqBA,Y;;;;;;;;;;;;;;;uFACG,c;;;;;;WAEtB,uBAAqB;AAAA;;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIC,gBAAcH,KAAd,CAAJ,CAAyB,IAAzB,CAAlB;AACA,WAAKE,UAAL,CAAgBE,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAHD;AAID;;;WACD,yBAAuB;AAAA;;AACrB,WAAKJ,UAAL,CAAgBK,WAAhB,CAA4B,UAACF,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WACD,wBAAsB;AAAA;;AACpB,UAAML,KAAK,GAAG,KAAKC,YAAL,EAAd;;AACA,UAAID,KAAK,KAAK,SAAd,EAAyB;AACvB,YAAI,KAAKE,UAAT,EAAqB;AACnB,eAAKA,UAAL,CAAgBM,MAAhB;AACD;;AAED,eAAO,IAAP;AACD;;AACD,UAAI,KAAKC,oBAAT,EAA+B;AAC7B,aAAKP,UAAL,CAAgBK,WAAhB,CAA4B,UAACF,MAAD;AAAA,iBAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,SAA5B;AAGA,aAAKI,oBAAL,GAA4B,KAA5B;AACD;;AACD,WAAKJ,MAAL,CAAYK,OAAZ,CAAoB,UAACC,KAAD;AAAA,eAClBA,KAAK,CAACC,IAAN,CAAW;AACTC,UAAAA,QAAQ,EAAE,MAAI,CAACX,UAAL,CAAgBY,YAAhB;AADD,SAAX,CADkB;AAAA,OAApB;AAKA,aAAO,IAAP;AACD;;;WAED,yBAAuBC,IAAvB,EAAoD;AAClD,UAAIA,IAAI,CAACC,UAAL,IAAmBD,IAAI,CAACE,QAA5B,EAAsC;AACpC,aAAKZ,MAAL,CAAY,CAAZ,EAAea,2BAAf,CACEH,IAAI,CAACC,UADP,EAEED,IAAI,CAACE,QAFP;AAID,OALD,MAKO;AACLE,QAAAA,OAAO,CAACC,IAAR,CAAa,YAAb;AACD;AACF;;;WAED,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,wBAA2C;AAAA;;AACzC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;;AAGA,iCAAoB,KAAKC,cAAL,EAApB;AAAA,UAAQC,OAAR,wBAAQA,OAAR;;AACA,UAAMC,MAAM,GAAG,KAAKC,SAAL,EAAf;AACA,UAAMC,UAAU,GAAGF,MAAM,CAAChB,IAAP,CAAYQ,IAA/B;AACA,UAAMvB,KAAK,GACT,CAAC0B,cAAD,aAACA,cAAD,gDAACA,cAAc,CAAEQ,KAAjB,0DAAC,sBAAuBC,KAAxB,KAAsD,SADxD;;AAEA,UAAInC,KAAK,KAAK,SAAV,IAAuBA,KAAK,KAAK,WAArC,EAAkD;AAChD,eAAO,SAAP;AACD;;AACD,UAAIiC,UAAU,KAAK,SAAnB,EAA8B;AAC5B,eAAO,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,OAAT,CAAiBpC,KAAjB,OAA4B,CAAC,CAA7B,GAAiC,SAAjC,GAA6C,QAApD;AACD;;AACD,UAAIiC,UAAU,KAAK,MAAnB,EAA2B;AACzB,eAAO,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,OAAT,CAAiBpC,KAAjB,OAA4B,CAAC,CAA7B,GAAiC,MAAjC,GAA0C,QAAjD;AACD;;AACD,aAAO,SAAP;AACD;;;EA/EuCqC,mB","sourcesContent":["import { IAttrubuteAndElements } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IHeatMapLayerStyleOptions } from '../core/interface';\nimport HeatMapModels, { HeatMapModelType } from './models';\nexport default class HeatMapLayer extends BaseLayer<IHeatMapLayerStyleOptions> {\n public type: string = 'HeatMapLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new HeatMapModels[shape](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\n }\n public renderModels() {\n const shape = this.getModelType();\n if (shape === 'heatmap') {\n if (this.layerModel) {\n this.layerModel.render(); // 独立的渲染流程\n }\n\n return this;\n }\n if (this.layerModelNeedUpdate) {\n this.layerModel.buildModels((models) => (this.models = models));\n // @ts-ignore\n // this.models = this.layerModel.buildModels();\n this.layerModelNeedUpdate = false;\n }\n this.models.forEach((model) =>\n model.draw({\n uniforms: this.layerModel.getUninforms(),\n }),\n );\n return this;\n }\n\n public updateModelData(data: IAttrubuteAndElements) {\n if (data.attributes && data.elements) {\n this.models[0].updateAttributesAndElements(\n data.attributes,\n data.elements,\n );\n } else {\n console.warn('data error');\n }\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected getModelType(): HeatMapModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const { shape3d } = this.getLayerConfig();\n const source = this.getSource();\n const sourceType = source.data.type;\n const shape =\n (shapeAttribute?.scale?.field as HeatMapModelType) || 'heatmap';\n if (shape === 'heatmap' || shape === 'heatmap3d') {\n return 'heatmap';\n }\n if (sourceType === 'hexagon') {\n return shape3d?.indexOf(shape) === -1 ? 'hexagon' : 'grid3d';\n }\n if (sourceType === 'grid') {\n return shape3d?.indexOf(shape) === -1 ? 'grid' : 'grid3d';\n }\n return 'heatmap';\n }\n}\n"],"file":"index.js"}
@@ -59,30 +59,34 @@ var GridModel = function (_BaseModel) {
59
59
  }
60
60
  }, {
61
61
  key: "initModels",
62
- value: function initModels() {
63
- return this.buildModels();
62
+ value: function initModels(callbackModel) {
63
+ this.buildModels(callbackModel);
64
64
  }
65
65
  }, {
66
66
  key: "buildModels",
67
- value: function buildModels() {
67
+ value: function buildModels(callbackModel) {
68
68
  var _ref2 = this.layer.getLayerConfig(),
69
69
  _ref2$mask = _ref2.mask,
70
70
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
71
71
  _ref2$maskInside = _ref2.maskInside,
72
72
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
73
73
 
74
- return [this.layer.buildLayerModel({
75
- moduleName: 'gridheatmap',
74
+ this.layer.buildLayerModel({
75
+ moduleName: 'heatmapGrid',
76
76
  vertexShader: heatmapGridVert,
77
77
  fragmentShader: heatmapGridFrag,
78
78
  triangulation: _triangulation.HeatmapGridTriangulation,
79
+ primitive: _l7Core.gl.TRIANGLES,
79
80
  depth: {
80
81
  enable: false
81
82
  },
82
- primitive: _l7Core.gl.TRIANGLES,
83
- blend: this.getBlend(),
84
83
  stencil: (0, _l7Utils.getMask)(mask, maskInside)
85
- })];
84
+ }).then(function (model) {
85
+ callbackModel([model]);
86
+ }).catch(function (err) {
87
+ console.warn(err);
88
+ callbackModel([]);
89
+ });
86
90
  }
87
91
  }, {
88
92
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/grid.ts"],"names":["GridModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","heatmapGridVert","fragmentShader","heatmapGridFrag","triangulation","HeatmapGridTriangulation","depth","enable","primitive","gl","TRIANGLES","blend","getBlend","stencil","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","coordinates","version","originCoordinates","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AAEA;;;;;;;;;IAGqBA,S;;;;;;;;;;;;WACnB,wBAAqC;AACnC,iBAII,KAAKC,KAAL,CAAWC,cAAX,EAJJ;AAAA,UACEC,OADF,QACEA,OADF;AAAA,UAEEC,QAFF,QAEEA,QAFF;AAAA,UAGEC,KAHF,QAGEA,KAHF;;AAKA,aAAO;AACLC,QAAAA,SAAS,EAAEH,OAAO,IAAI,GADjB;AAELI,QAAAA,UAAU,EAAEH,QAAQ,IAAI,GAFnB;AAGLI,QAAAA,OAAO,EAAEH,KAAK,IAAI,CAHb;AAILI,QAAAA,QAAQ,EAAE,CACR,KAAKR,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BC,OADpB,EAER,KAAKX,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BE,OAFpB;AAJL,OAAP;AASD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKC,WAAL,EAAP;AACD;;;WAED,uBAA+B;AAC7B,kBAGI,KAAKb,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEa,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,aAAO,CACL,KAAKf,KAAL,CAAWgB,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,aADa;AAEzBC,QAAAA,YAAY,EAAEC,eAFW;AAGzBC,QAAAA,cAAc,EAAEC,eAHS;AAIzBC,QAAAA,aAAa,EAAEC,uCAJU;AAKzBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALkB;AAMzBC,QAAAA,SAAS,EAAEC,WAAGC,SANW;AAOzBC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EAPkB;AAQzBC,QAAAA,OAAO,EAAE,sBAAQjB,IAAR,EAAcC,UAAd;AARgB,OAA3B,CADK,CAAP;AAYD;;;WACD,qCAAsC;AACpC,WAAKiB,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,OADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEb,WAAGc,YAFJ;AAGN/B,YAAAA,IAAI,EAAE,EAHA;AAINyB,YAAAA,IAAI,EAAER,WAAGe;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AAEvD,gBAAMC,WAAW,GAAIF,OAAO,CAACG,OAAR,KAAoB,UAApB,GACjBH,OAAO,CAACI,iBADS,GAEjBJ,OAAO,CAACE,WAFZ;AAGA,mBAAO,CAACA,WAAW,CAAC,CAAD,CAAZ,EAAiBA,WAAW,CAAC,CAAD,CAA5B,EAAiC,CAAjC,CAAP;AACD;AAfS;AAHoC,OAAlD;AAqBD;;;EA9DoCG,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapGridTriangulation } from '../../core/triangulation';\nimport heatmapGridVert from '../shaders/grid_vert.glsl';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nexport default class GridModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 0.9,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'gridheatmap',\n vertexShader: heatmapGridVert,\n fragmentShader: heatmapGridFrag,\n triangulation: HeatmapGridTriangulation,\n depth: { enable: false },\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\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: (feature: IEncodeFeature, featureIdx: number) => {\n // const coordinates = feature.coordinates as number[];\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"grid.js"}
1
+ {"version":3,"sources":["../../../src/heatmap/models/grid.ts"],"names":["GridModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","callbackModel","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","heatmapGridVert","fragmentShader","heatmapGridFrag","triangulation","HeatmapGridTriangulation","primitive","gl","TRIANGLES","depth","enable","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","coordinates","version","originCoordinates","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AAEA;;;;;;;;;IAGqBA,S;;;;;;;;;;;;WACnB,wBAAqC;AACnC,iBAII,KAAKC,KAAL,CAAWC,cAAX,EAJJ;AAAA,UACEC,OADF,QACEA,OADF;AAAA,UAEEC,QAFF,QAEEA,QAFF;AAAA,UAGEC,KAHF,QAGEA,KAHF;;AAKA,aAAO;AACLC,QAAAA,SAAS,EAAEH,OAAO,IAAI,GADjB;AAELI,QAAAA,UAAU,EAAEH,QAAQ,IAAI,GAFnB;AAGLI,QAAAA,OAAO,EAAEH,KAAK,IAAI,CAHb;AAILI,QAAAA,QAAQ,EAAE,CACR,KAAKR,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BC,OADpB,EAER,KAAKX,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BE,OAFpB;AAJL,OAAP;AASD;;;WAED,oBAAkBC,aAAlB,EAA6D;AAC3D,WAAKC,WAAL,CAAiBD,aAAjB;AACD;;;WAED,qBAAmBA,aAAnB,EAA8D;AAC5D,kBAGI,KAAKb,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEc,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,WAAKhB,KAAL,CACGiB,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,aADG;AAEfC,QAAAA,YAAY,EAAEC,eAFC;AAGfC,QAAAA,cAAc,EAAEC,eAHD;AAIfC,QAAAA,aAAa,EAAEC,uCAJA;AAKfC,QAAAA,SAAS,EAAEC,WAAGC,SALC;AAMfC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SANQ;AAOfC,QAAAA,OAAO,EAAE,sBAAQf,IAAR,EAAcC,UAAd;AAPM,OADnB,EAUGe,IAVH,CAUQ,UAACC,KAAD,EAAW;AACfnB,QAAAA,aAAa,CAAC,CAACmB,KAAD,CAAD,CAAb;AACD,OAZH,EAaGC,KAbH,CAaS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACArB,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OAhBH;AAiBD;;;WACD,qCAAsC;AACpC,WAAKwB,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,OADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEnB,WAAGoB,YAFJ;AAGNpC,YAAAA,IAAI,EAAE,EAHA;AAIN8B,YAAAA,IAAI,EAAEd,WAAGqB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AAEvD,gBAAMC,WAAW,GAAIF,OAAO,CAACG,OAAR,KAAoB,UAApB,GACjBH,OAAO,CAACI,iBADS,GAEjBJ,OAAO,CAACE,WAFZ;AAGA,mBAAO,CAACA,WAAW,CAAC,CAAD,CAAZ,EAAiBA,WAAW,CAAC,CAAD,CAA5B,EAAiC,CAAjC,CAAP;AACD;AAfS;AAHoC,OAAlD;AAqBD;;;EAnEoCG,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapGridTriangulation } from '../../core/triangulation';\nimport heatmapGridVert from '../shaders/grid_vert.glsl';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nexport default class GridModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 0.9,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.layer\n .buildLayerModel({\n moduleName: 'heatmapGrid',\n vertexShader: heatmapGridVert,\n fragmentShader: heatmapGridFrag,\n triangulation: HeatmapGridTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\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 this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\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: (feature: IEncodeFeature, featureIdx: number) => {\n // const coordinates = feature.coordinates as number[];\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"grid.js"}
@@ -59,29 +59,35 @@ var Grid3DModel = function (_BaseModel) {
59
59
  }
60
60
  }, {
61
61
  key: "initModels",
62
- value: function initModels() {
63
- return this.buildModels();
62
+ value: function initModels(callbackModel) {
63
+ this.buildModels(callbackModel);
64
64
  }
65
65
  }, {
66
66
  key: "buildModels",
67
- value: function buildModels() {
67
+ value: function buildModels(callbackModel) {
68
68
  var _ref2 = this.layer.getLayerConfig(),
69
69
  _ref2$mask = _ref2.mask,
70
70
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
71
71
  _ref2$maskInside = _ref2.maskInside,
72
72
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
73
73
 
74
- return [this.layer.buildLayerModel({
75
- moduleName: 'grid3dheatmap',
74
+ this.layer.buildLayerModel({
75
+ moduleName: 'heatmapGrid3d',
76
76
  vertexShader: heatmapGrid3dVert,
77
77
  fragmentShader: heatmapGridFrag,
78
78
  triangulation: _triangulation.PointExtrudeTriangulation,
79
+ primitive: _l7Core.gl.TRIANGLES,
79
80
  depth: {
80
81
  enable: true
81
82
  },
82
83
  blend: this.getBlend(),
83
84
  stencil: (0, _l7Utils.getMask)(mask, maskInside)
84
- })];
85
+ }).then(function (model) {
86
+ callbackModel([model]);
87
+ }).catch(function (err) {
88
+ console.warn(err);
89
+ callbackModel([]);
90
+ });
85
91
  }
86
92
  }, {
87
93
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/grid3d.ts"],"names":["Grid3DModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","heatmapGrid3dVert","fragmentShader","heatmapGridFrag","triangulation","PointExtrudeTriangulation","depth","enable","blend","getBlend","stencil","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","gl","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","coordinates","version","originCoordinates","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { PointExtrudeTriangulation } from '../../core/triangulation';\nimport heatmapGrid3dVert from '../shaders/hexagon_3d_vert.glsl';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nexport default class Grid3DModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 1.0,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'grid3dheatmap',\n vertexShader: heatmapGrid3dVert,\n fragmentShader: heatmapGridFrag,\n triangulation: PointExtrudeTriangulation,\n depth: { enable: true },\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 } = 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: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_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 normal: number[],\n ) => {\n return normal;\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\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: (feature: IEncodeFeature, featureIdx: number) => {\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n // const coordinates = feature.coordinates as number[];\n // const coordinates = feature.originCoordinates as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"grid3d.js"}
1
+ {"version":3,"sources":["../../../src/heatmap/models/grid3d.ts"],"names":["Grid3DModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","callbackModel","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","heatmapGrid3dVert","fragmentShader","heatmapGridFrag","triangulation","PointExtrudeTriangulation","primitive","gl","TRIANGLES","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","coordinates","version","originCoordinates","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { PointExtrudeTriangulation } from '../../core/triangulation';\nimport heatmapGrid3dVert from '../shaders/hexagon_3d_vert.glsl';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nexport default class Grid3DModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 1.0,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.layer\n .buildLayerModel({\n moduleName: 'heatmapGrid3d',\n vertexShader: heatmapGrid3dVert,\n fragmentShader: heatmapGridFrag,\n triangulation: PointExtrudeTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: true },\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 } = 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: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_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 normal: number[],\n ) => {\n return normal;\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\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: (feature: IEncodeFeature, featureIdx: number) => {\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n // const coordinates = feature.coordinates as number[];\n // const coordinates = feature.originCoordinates as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"grid3d.js"}
@@ -7,8 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
10
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
13
 
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
12
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
17
 
14
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -111,43 +115,59 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
111
115
  }
112
116
  }, {
113
117
  key: "initModels",
114
- value: function initModels() {
115
- var _shapeAttr$scale;
116
-
117
- var _this$rendererService2 = this.rendererService,
118
- createFramebuffer = _this$rendererService2.createFramebuffer,
119
- clear = _this$rendererService2.clear,
120
- getViewportSize = _this$rendererService2.getViewportSize,
121
- createTexture2D = _this$rendererService2.createTexture2D,
122
- useFramebuffer = _this$rendererService2.useFramebuffer;
123
- var shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
124
- var shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
125
- this.shapeType = shapeType;
126
- this.intensityModel = this.buildHeatMapIntensity();
127
- this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() : this.build3dHeatMap();
128
-
129
- var _getViewportSize = getViewportSize(),
130
- width = _getViewportSize.width,
131
- height = _getViewportSize.height;
132
-
133
- this.heatmapFramerBuffer = createFramebuffer({
134
- color: createTexture2D({
135
- width: Math.floor(width / 4),
136
- height: Math.floor(height / 4),
137
- wrapS: _l7Core.gl.CLAMP_TO_EDGE,
138
- wrapT: _l7Core.gl.CLAMP_TO_EDGE,
139
- min: _l7Core.gl.LINEAR,
140
- mag: _l7Core.gl.LINEAR
141
- }),
142
- depth: false
143
- });
144
- this.updateColorTexture();
145
- return [this.intensityModel, this.colorModel];
146
- }
118
+ value: function () {
119
+ var _initModels = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(callbackModel) {
120
+ var _shapeAttr$scale;
121
+
122
+ var _this$rendererService2, createFramebuffer, clear, getViewportSize, createTexture2D, useFramebuffer, shapeAttr, shapeType, _getViewportSize, width, height;
123
+
124
+ return _regenerator.default.wrap(function _callee$(_context) {
125
+ while (1) {
126
+ switch (_context.prev = _context.next) {
127
+ case 0:
128
+ _this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, clear = _this$rendererService2.clear, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D, useFramebuffer = _this$rendererService2.useFramebuffer;
129
+ shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
130
+ shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
131
+ this.shapeType = shapeType;
132
+ _context.next = 6;
133
+ return this.buildHeatMapIntensity();
134
+
135
+ case 6:
136
+ this.intensityModel = _context.sent;
137
+ this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() : this.build3dHeatMap();
138
+ _getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height;
139
+ this.heatmapFramerBuffer = createFramebuffer({
140
+ color: createTexture2D({
141
+ width: Math.floor(width / 4),
142
+ height: Math.floor(height / 4),
143
+ wrapS: _l7Core.gl.CLAMP_TO_EDGE,
144
+ wrapT: _l7Core.gl.CLAMP_TO_EDGE,
145
+ min: _l7Core.gl.LINEAR,
146
+ mag: _l7Core.gl.LINEAR
147
+ }),
148
+ depth: false
149
+ });
150
+ this.updateColorTexture();
151
+ callbackModel([this.intensityModel, this.colorModel]);
152
+
153
+ case 12:
154
+ case "end":
155
+ return _context.stop();
156
+ }
157
+ }
158
+ }, _callee, this);
159
+ }));
160
+
161
+ function initModels(_x) {
162
+ return _initModels.apply(this, arguments);
163
+ }
164
+
165
+ return initModels;
166
+ }()
147
167
  }, {
148
168
  key: "buildModels",
149
- value: function buildModels() {
150
- return this.initModels();
169
+ value: function buildModels(callbackModel) {
170
+ this.initModels(callbackModel);
151
171
  }
152
172
  }, {
153
173
  key: "registerBuiltinAttributes",
@@ -189,31 +209,56 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
189
209
  }
190
210
  }, {
191
211
  key: "buildHeatMapIntensity",
192
- value: function buildHeatMapIntensity() {
193
- this.layer.triangulation = _triangulation.HeatmapTriangulation;
194
- return this.layer.buildLayerModel({
195
- moduleName: 'heatmapintensity',
196
- vertexShader: heatmapFramebufferVert,
197
- fragmentShader: heatmapFramebufferFrag,
198
- triangulation: _triangulation.HeatmapTriangulation,
199
- depth: {
200
- enable: false
201
- },
202
- cull: {
203
- enable: true,
204
- face: (0, _l7Utils.getCullFace)(this.mapService.version)
205
- },
206
- blend: {
207
- enable: true,
208
- func: {
209
- srcRGB: _l7Core.gl.ONE,
210
- srcAlpha: 1,
211
- dstRGB: _l7Core.gl.ONE,
212
- dstAlpha: 1
212
+ value: function () {
213
+ var _buildHeatMapIntensity = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
214
+ var model;
215
+ return _regenerator.default.wrap(function _callee2$(_context2) {
216
+ while (1) {
217
+ switch (_context2.prev = _context2.next) {
218
+ case 0:
219
+ this.layer.triangulation = _triangulation.HeatmapTriangulation;
220
+ _context2.next = 3;
221
+ return this.layer.buildLayerModel({
222
+ moduleName: 'heatmapIntensity',
223
+ vertexShader: heatmapFramebufferVert,
224
+ fragmentShader: heatmapFramebufferFrag,
225
+ triangulation: _triangulation.HeatmapTriangulation,
226
+ depth: {
227
+ enable: false
228
+ },
229
+ cull: {
230
+ enable: true,
231
+ face: (0, _l7Utils.getCullFace)(this.mapService.version)
232
+ },
233
+ blend: {
234
+ enable: true,
235
+ func: {
236
+ srcRGB: _l7Core.gl.ONE,
237
+ srcAlpha: 1,
238
+ dstRGB: _l7Core.gl.ONE,
239
+ dstAlpha: 1
240
+ }
241
+ }
242
+ });
243
+
244
+ case 3:
245
+ model = _context2.sent;
246
+ return _context2.abrupt("return", model);
247
+
248
+ case 5:
249
+ case "end":
250
+ return _context2.stop();
251
+ }
213
252
  }
214
- }
215
- });
216
- }
253
+ }, _callee2, this);
254
+ }));
255
+
256
+ function buildHeatMapIntensity() {
257
+ return _buildHeatMapIntensity.apply(this, arguments);
258
+ }
259
+
260
+ return buildHeatMapIntensity;
261
+ }()
217
262
  }, {
218
263
  key: "buildHeatmapColor",
219
264
  value: function buildHeatmapColor() {
@@ -274,6 +319,8 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
274
319
  }, {
275
320
  key: "drawIntensityMode",
276
321
  value: function drawIntensityMode() {
322
+ var _this$intensityModel;
323
+
277
324
  var _ref2 = this.layer.getLayerConfig(),
278
325
  opacity = _ref2.opacity,
279
326
  _ref2$intensity = _ref2.intensity,
@@ -281,7 +328,7 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
281
328
  _ref2$radius = _ref2.radius,
282
329
  radius = _ref2$radius === void 0 ? 5 : _ref2$radius;
283
330
 
284
- this.intensityModel.draw({
331
+ (_this$intensityModel = this.intensityModel) === null || _this$intensityModel === void 0 ? void 0 : _this$intensityModel.draw({
285
332
  uniforms: {
286
333
  u_opacity: opacity || 1.0,
287
334
  u_radius: radius,
@@ -292,10 +339,12 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
292
339
  }, {
293
340
  key: "drawColorMode",
294
341
  value: function drawColorMode() {
342
+ var _this$colorModel;
343
+
295
344
  var _ref3 = this.layer.getLayerConfig(),
296
345
  opacity = _ref3.opacity;
297
346
 
298
- this.colorModel.draw({
347
+ (_this$colorModel = this.colorModel) === null || _this$colorModel === void 0 ? void 0 : _this$colorModel.draw({
299
348
  uniforms: {
300
349
  u_opacity: opacity || 1.0,
301
350
  u_colorTexture: this.colorTexture,
@@ -306,6 +355,8 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
306
355
  }, {
307
356
  key: "draw3DHeatMap",
308
357
  value: function draw3DHeatMap() {
358
+ var _this$colorModel2;
359
+
309
360
  var _ref4 = this.layer.getLayerConfig(),
310
361
  opacity = _ref4.opacity;
311
362
 
@@ -313,7 +364,7 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
313
364
 
314
365
  _glMatrix.mat4.invert(invert, this.cameraService.getViewProjectionMatrixUncentered());
315
366
 
316
- this.colorModel.draw({
367
+ (_this$colorModel2 = this.colorModel) === null || _this$colorModel2 === void 0 ? void 0 : _this$colorModel2.draw({
317
368
  uniforms: {
318
369
  u_opacity: opacity || 1.0,
319
370
  u_colorTexture: this.colorTexture,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/heatmap.ts"],"names":["HeatMapModel","rendererService","clear","useFramebuffer","heatmapFramerBuffer","color","depth","stencil","framebuffer","drawIntensityMode","layer","styleNeedUpdate","updateColorTexture","shapeType","drawColorMode","draw3DHeatMap","Error","createFramebuffer","getViewportSize","createTexture2D","shapeAttr","styleAttributeService","getLayerStyleAttribute","scale","field","intensityModel","buildHeatMapIntensity","colorModel","buildHeatmapColor","build3dHeatMap","width","height","Math","floor","wrapS","gl","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","initModels","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","triangulation","HeatmapTriangulation","buildLayerModel","moduleName","vertexShader","heatmapFramebufferVert","fragmentShader","heatmapFramebufferFrag","enable","cull","face","mapService","version","blend","func","srcRGB","ONE","srcAlpha","dstRGB","dstAlpha","getLayerConfig","mask","maskInside","shaderModuleService","registerModule","vs","heatmapColorVert","fs","heatmapColorFrag","getModule","uniforms","createAttribute","createElements","createBuffer","createModel","attributes","a_Position","a_Uv","getBlend","count","elements","UNSIGNED_INT","opacity","intensity","radius","draw","u_opacity","u_radius","u_intensity","u_colorTexture","colorTexture","u_texture","invert","mat4","create","cameraService","getViewProjectionMatrixUncentered","u_ViewProjectionMatrixUncentered","u_InverseViewProjectionMatrix","heatmap3DVert","heatmap3DFrag","vertices","uvs","primitive","TRIANGLES","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","indices","length","texture","destroy","rampColors","imageData","Uint8Array","NEAREST","flipY","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IFramebuffer,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n generateColorRamp,\n getCullFace,\n getMask,\n IColorRamp,\n} from '@antv/l7-utils';\nimport { mat4 } from 'gl-matrix';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapTriangulation } from '../../core/triangulation';\nimport heatmap3DFrag from '../shaders/heatmap_3d_frag.glsl';\nimport heatmap3DVert from '../shaders/heatmap_3d_vert.glsl';\n\n// 绘制平面热力的 shader\nimport heatmapColorFrag from '../shaders/heatmap_frag.glsl';\nimport heatmapColorVert from '../shaders/heatmap_vert.glsl';\n\nimport heatmapFramebufferFrag from '../shaders/heatmap_framebuffer_frag.glsl';\nimport heatmapFramebufferVert from '../shaders/heatmap_framebuffer_vert.glsl';\n\nimport { heatMap3DTriangulation } from '../triangulation';\n@injectable()\nexport default class HeatMapModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n protected heatmapFramerBuffer: IFramebuffer;\n private intensityModel: IModel;\n private colorModel: IModel;\n private shapeType: string;\n\n public render() {\n const { clear, useFramebuffer } = this.rendererService;\n useFramebuffer(this.heatmapFramerBuffer, () => {\n clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0,\n framebuffer: this.heatmapFramerBuffer,\n });\n this.drawIntensityMode();\n });\n if (this.layer.styleNeedUpdate) {\n this.updateColorTexture();\n }\n this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public initModels(): IModel[] {\n const {\n createFramebuffer,\n clear,\n getViewportSize,\n createTexture2D,\n useFramebuffer,\n } = this.rendererService;\n const shapeAttr = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shapeType = shapeAttr?.scale?.field || 'heatmap';\n this.shapeType = shapeType as string;\n // 生成热力图密度图\n this.intensityModel = this.buildHeatMapIntensity();\n // 渲染到屏幕\n this.colorModel =\n shapeType === 'heatmap'\n ? this.buildHeatmapColor() // 2D\n : this.build3dHeatMap(); // 3D\n\n const { width, height } = getViewportSize();\n\n // 初始化密度图纹理\n this.heatmapFramerBuffer = createFramebuffer({\n color: createTexture2D({\n width: Math.floor(width / 4),\n height: Math.floor(height / 4),\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n }),\n depth: false,\n });\n\n this.updateColorTexture();\n\n return [this.intensityModel, this.colorModel];\n }\n\n public buildModels(): IModel[] {\n return this.initModels();\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'dir',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Dir',\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 return [vertex[3], vertex[4]];\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 = 1 } = feature;\n return [size as number];\n },\n },\n });\n }\n private buildHeatMapIntensity(): IModel {\n this.layer.triangulation = HeatmapTriangulation;\n return this.layer.buildLayerModel({\n moduleName: 'heatmapintensity',\n vertexShader: heatmapFramebufferVert,\n fragmentShader: heatmapFramebufferFrag,\n triangulation: HeatmapTriangulation,\n depth: {\n enable: false,\n },\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n srcAlpha: 1,\n dstRGB: gl.ONE,\n dstAlpha: 1,\n },\n },\n });\n }\n\n private buildHeatmapColor(): IModel {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.shaderModuleService.registerModule('heatmapColor', {\n vs: heatmapColorVert,\n fs: heatmapColorFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmapColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: [0, 1, 1, 1, 0, 0, 1, 0],\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n count: 6,\n elements: createElements({\n data: [0, 2, 1, 2, 3, 1],\n type: gl.UNSIGNED_INT,\n count: 6,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n\n private drawIntensityMode() {\n const {\n opacity,\n intensity = 10,\n radius = 5,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.intensityModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_radius: radius,\n u_intensity: intensity,\n },\n });\n }\n\n private drawColorMode() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n },\n });\n }\n\n private draw3DHeatMap() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n\n // const invert = mat4.invert(\n // mat4.create(),\n // mat4.fromValues(\n // // @ts-ignore\n // ...this.cameraService.getViewProjectionMatrixUncentered(),\n // ),\n // ) as mat4;\n const invert = mat4.create();\n mat4.invert(\n invert,\n this.cameraService.getViewProjectionMatrixUncentered() as mat4,\n );\n\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n u_ViewProjectionMatrixUncentered: this.cameraService.getViewProjectionMatrixUncentered(),\n u_InverseViewProjectionMatrix: [...invert],\n },\n });\n }\n private build3dHeatMap() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const { getViewportSize } = this.rendererService;\n const { width, height } = getViewportSize();\n const triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);\n this.shaderModuleService.registerModule('heatmap3dColor', {\n vs: heatmap3DVert,\n fs: heatmap3DFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmap3dColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: triangulation.vertices,\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: triangulation.uvs,\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n primitive: gl.TRIANGLES,\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: true,\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n elements: createElements({\n data: triangulation.indices,\n type: gl.UNSIGNED_INT,\n count: triangulation.indices.length,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n private updateStyle() {\n this.updateColorTexture();\n }\n\n private updateColorTexture() {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.destroy();\n }\n\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n }\n}\n"],"file":"heatmap.js"}
1
+ {"version":3,"sources":["../../../src/heatmap/models/heatmap.ts"],"names":["HeatMapModel","rendererService","clear","useFramebuffer","heatmapFramerBuffer","color","depth","stencil","framebuffer","drawIntensityMode","layer","styleNeedUpdate","updateColorTexture","shapeType","drawColorMode","draw3DHeatMap","Error","callbackModel","createFramebuffer","getViewportSize","createTexture2D","shapeAttr","styleAttributeService","getLayerStyleAttribute","scale","field","buildHeatMapIntensity","intensityModel","colorModel","buildHeatmapColor","build3dHeatMap","width","height","Math","floor","wrapS","gl","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","initModels","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","triangulation","HeatmapTriangulation","buildLayerModel","moduleName","vertexShader","heatmapFramebufferVert","fragmentShader","heatmapFramebufferFrag","enable","cull","face","mapService","version","blend","func","srcRGB","ONE","srcAlpha","dstRGB","dstAlpha","model","getLayerConfig","mask","maskInside","shaderModuleService","registerModule","vs","heatmapColorVert","fs","heatmapColorFrag","getModule","uniforms","createAttribute","createElements","createBuffer","createModel","attributes","a_Position","a_Uv","getBlend","count","elements","UNSIGNED_INT","opacity","intensity","radius","draw","u_opacity","u_radius","u_intensity","u_colorTexture","colorTexture","u_texture","invert","mat4","create","cameraService","getViewProjectionMatrixUncentered","u_ViewProjectionMatrixUncentered","u_InverseViewProjectionMatrix","heatmap3DVert","heatmap3DFrag","vertices","uvs","primitive","TRIANGLES","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","indices","length","texture","destroy","rampColors","imageData","Uint8Array","NEAREST","flipY","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IFramebuffer,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n generateColorRamp,\n getCullFace,\n getMask,\n IColorRamp,\n} from '@antv/l7-utils';\nimport { mat4 } from 'gl-matrix';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapTriangulation } from '../../core/triangulation';\nimport heatmap3DFrag from '../shaders/heatmap_3d_frag.glsl';\nimport heatmap3DVert from '../shaders/heatmap_3d_vert.glsl';\n\n// 绘制平面热力的 shader\nimport heatmapColorFrag from '../shaders/heatmap_frag.glsl';\nimport heatmapColorVert from '../shaders/heatmap_vert.glsl';\n\nimport heatmapFramebufferFrag from '../shaders/heatmap_framebuffer_frag.glsl';\nimport heatmapFramebufferVert from '../shaders/heatmap_framebuffer_vert.glsl';\n\nimport { heatMap3DTriangulation } from '../triangulation';\n@injectable()\nexport default class HeatMapModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n protected heatmapFramerBuffer: IFramebuffer;\n private intensityModel: IModel;\n private colorModel: IModel;\n private shapeType: string;\n\n public render() {\n const { clear, useFramebuffer } = this.rendererService;\n useFramebuffer(this.heatmapFramerBuffer, () => {\n clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0,\n framebuffer: this.heatmapFramerBuffer,\n });\n this.drawIntensityMode();\n });\n if (this.layer.styleNeedUpdate) {\n this.updateColorTexture();\n }\n this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public async initModels(callbackModel: (models: IModel[]) => void) {\n const {\n createFramebuffer,\n clear,\n getViewportSize,\n createTexture2D,\n useFramebuffer,\n } = this.rendererService;\n const shapeAttr = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shapeType = shapeAttr?.scale?.field || 'heatmap';\n this.shapeType = shapeType as string;\n // 生成热力图密度图\n this.intensityModel = await this.buildHeatMapIntensity();\n // 渲染到屏幕\n this.colorModel =\n shapeType === 'heatmap'\n ? this.buildHeatmapColor() // 2D\n : this.build3dHeatMap(); // 3D\n\n const { width, height } = getViewportSize();\n\n // 初始化密度图纹理\n this.heatmapFramerBuffer = createFramebuffer({\n color: createTexture2D({\n width: Math.floor(width / 4),\n height: Math.floor(height / 4),\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n }),\n depth: false,\n });\n\n this.updateColorTexture();\n\n callbackModel([this.intensityModel, this.colorModel]);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'dir',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Dir',\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 return [vertex[3], vertex[4]];\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 = 1 } = feature;\n return [size as number];\n },\n },\n });\n }\n private async buildHeatMapIntensity() {\n this.layer.triangulation = HeatmapTriangulation;\n const model = await this.layer.buildLayerModel({\n moduleName: 'heatmapIntensity',\n vertexShader: heatmapFramebufferVert,\n fragmentShader: heatmapFramebufferFrag,\n triangulation: HeatmapTriangulation,\n depth: {\n enable: false,\n },\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n srcAlpha: 1,\n dstRGB: gl.ONE,\n dstAlpha: 1,\n },\n },\n });\n return model;\n }\n\n private buildHeatmapColor(): IModel {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.shaderModuleService.registerModule('heatmapColor', {\n vs: heatmapColorVert,\n fs: heatmapColorFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmapColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: [0, 1, 1, 1, 0, 0, 1, 0],\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n count: 6,\n elements: createElements({\n data: [0, 2, 1, 2, 3, 1],\n type: gl.UNSIGNED_INT,\n count: 6,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n\n private drawIntensityMode() {\n const {\n opacity,\n intensity = 10,\n radius = 5,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.intensityModel?.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_radius: radius,\n u_intensity: intensity,\n },\n });\n }\n\n private drawColorMode() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.colorModel?.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n },\n });\n }\n\n private draw3DHeatMap() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n\n // const invert = mat4.invert(\n // mat4.create(),\n // mat4.fromValues(\n // // @ts-ignore\n // ...this.cameraService.getViewProjectionMatrixUncentered(),\n // ),\n // ) as mat4;\n const invert = mat4.create();\n mat4.invert(\n invert,\n this.cameraService.getViewProjectionMatrixUncentered() as mat4,\n );\n\n this.colorModel?.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n u_ViewProjectionMatrixUncentered: this.cameraService.getViewProjectionMatrixUncentered(),\n u_InverseViewProjectionMatrix: [...invert],\n },\n });\n }\n private build3dHeatMap() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const { getViewportSize } = this.rendererService;\n const { width, height } = getViewportSize();\n const triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);\n this.shaderModuleService.registerModule('heatmap3dColor', {\n vs: heatmap3DVert,\n fs: heatmap3DFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmap3dColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: triangulation.vertices,\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: triangulation.uvs,\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n primitive: gl.TRIANGLES,\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: true,\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n elements: createElements({\n data: triangulation.indices,\n type: gl.UNSIGNED_INT,\n count: triangulation.indices.length,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n private updateStyle() {\n this.updateColorTexture();\n }\n\n private updateColorTexture() {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.destroy();\n }\n\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n }\n}\n"],"file":"heatmap.js"}
@@ -59,20 +59,20 @@ var HexagonModel = function (_BaseModel) {
59
59
  }
60
60
  }, {
61
61
  key: "initModels",
62
- value: function initModels() {
63
- return this.buildModels();
62
+ value: function initModels(callbackModel) {
63
+ this.buildModels(callbackModel);
64
64
  }
65
65
  }, {
66
66
  key: "buildModels",
67
- value: function buildModels() {
67
+ value: function buildModels(callbackModel) {
68
68
  var _ref2 = this.layer.getLayerConfig(),
69
69
  _ref2$mask = _ref2.mask,
70
70
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
71
71
  _ref2$maskInside = _ref2.maskInside,
72
72
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
73
73
 
74
- return [this.layer.buildLayerModel({
75
- moduleName: 'hexagonheatmap',
74
+ this.layer.buildLayerModel({
75
+ moduleName: 'heatmapHexagon',
76
76
  vertexShader: heatmapGridVert,
77
77
  fragmentShader: heatmapGridFrag,
78
78
  triangulation: _triangulation.HeatmapGridTriangulation,
@@ -82,7 +82,12 @@ var HexagonModel = function (_BaseModel) {
82
82
  primitive: _l7Core.gl.TRIANGLES,
83
83
  blend: this.getBlend(),
84
84
  stencil: (0, _l7Utils.getMask)(mask, maskInside)
85
- })];
85
+ }).then(function (model) {
86
+ callbackModel([model]);
87
+ }).catch(function (err) {
88
+ console.warn(err);
89
+ callbackModel([]);
90
+ });
86
91
  }
87
92
  }, {
88
93
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/hexagon.ts"],"names":["HexagonModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","heatmapGridVert","fragmentShader","heatmapGridFrag","triangulation","HeatmapGridTriangulation","depth","enable","primitive","gl","TRIANGLES","blend","getBlend","stencil","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","coordinates","version","originCoordinates","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AAEA;;;;;;;;;IAIqBA,Y;;;;;;;;;;;;WACnB,wBAAqC;AACnC,iBAII,KAAKC,KAAL,CAAWC,cAAX,EAJJ;AAAA,UACEC,OADF,QACEA,OADF;AAAA,UAEEC,QAFF,QAEEA,QAFF;AAAA,UAGEC,KAHF,QAGEA,KAHF;;AAKA,aAAO;AACLC,QAAAA,SAAS,EAAEH,OAAO,IAAI,GADjB;AAELI,QAAAA,UAAU,EAAEH,QAAQ,IAAI,GAFnB;AAGLI,QAAAA,OAAO,EAAEH,KAAK,IAAI,CAHb;AAILI,QAAAA,QAAQ,EAAE,CACR,KAAKR,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BC,OADpB,EAER,KAAKX,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BE,OAFpB;AAJL,OAAP;AASD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKC,WAAL,EAAP;AACD;;;WAED,uBAA+B;AAC7B,kBAGI,KAAKb,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEa,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,aAAO,CACL,KAAKf,KAAL,CAAWgB,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,gBADa;AAEzBC,QAAAA,YAAY,EAAEC,eAFW;AAGzBC,QAAAA,cAAc,EAAEC,eAHS;AAIzBC,QAAAA,aAAa,EAAEC,uCAJU;AAKzBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALkB;AAMzBC,QAAAA,SAAS,EAAEC,WAAGC,SANW;AAOzBC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EAPkB;AAQzBC,QAAAA,OAAO,EAAE,sBAAQjB,IAAR,EAAcC,UAAd;AARgB,OAA3B,CADK,CAAP;AAYD;;;WACD,qCAAsC;AACpC,WAAKiB,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,OADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEb,WAAGc,YAFJ;AAGN/B,YAAAA,IAAI,EAAE,EAHA;AAINyB,YAAAA,IAAI,EAAER,WAAGe;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AAEvD,gBAAMC,WAAW,GAAIF,OAAO,CAACG,OAAR,KAAoB,UAApB,GACjBH,OAAO,CAACI,iBADS,GAEjBJ,OAAO,CAACE,WAFZ;AAKA,mBAAO,CAACA,WAAW,CAAC,CAAD,CAAZ,EAAiBA,WAAW,CAAC,CAAD,CAA5B,EAAiC,CAAjC,CAAP;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;EAhEuCG,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapGridTriangulation } from '../../core/triangulation';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nimport heatmapGridVert from '../shaders/hexagon_vert.glsl';\n\nexport default class HexagonModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 0.9,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'hexagonheatmap',\n vertexShader: heatmapGridVert,\n fragmentShader: heatmapGridFrag,\n triangulation: HeatmapGridTriangulation,\n depth: { enable: false },\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\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: (feature: IEncodeFeature, featureIdx: number) => {\n // const coordinates = (feature.verison==='GAODE2.x'?feature.originoordinates:feature.coordinates) as number[];\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n // const coordinates = feature.coordinates as number[];\n // const coordinates = feature.originCoordinates as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"hexagon.js"}
1
+ {"version":3,"sources":["../../../src/heatmap/models/hexagon.ts"],"names":["HexagonModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","callbackModel","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","heatmapGridVert","fragmentShader","heatmapGridFrag","triangulation","HeatmapGridTriangulation","depth","enable","primitive","gl","TRIANGLES","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","coordinates","version","originCoordinates","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AAEA;;;;;;;;;IAIqBA,Y;;;;;;;;;;;;WACnB,wBAAqC;AACnC,iBAII,KAAKC,KAAL,CAAWC,cAAX,EAJJ;AAAA,UACEC,OADF,QACEA,OADF;AAAA,UAEEC,QAFF,QAEEA,QAFF;AAAA,UAGEC,KAHF,QAGEA,KAHF;;AAKA,aAAO;AACLC,QAAAA,SAAS,EAAEH,OAAO,IAAI,GADjB;AAELI,QAAAA,UAAU,EAAEH,QAAQ,IAAI,GAFnB;AAGLI,QAAAA,OAAO,EAAEH,KAAK,IAAI,CAHb;AAILI,QAAAA,QAAQ,EAAE,CACR,KAAKR,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BC,OADpB,EAER,KAAKX,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BE,OAFpB;AAJL,OAAP;AASD;;;WAED,oBAAkBC,aAAlB,EAA6D;AAC3D,WAAKC,WAAL,CAAiBD,aAAjB;AACD;;;WAED,qBAAmBA,aAAnB,EAA8D;AAC5D,kBAGI,KAAKb,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEc,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,WAAKhB,KAAL,CACGiB,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,gBADG;AAEfC,QAAAA,YAAY,EAAEC,eAFC;AAGfC,QAAAA,cAAc,EAAEC,eAHD;AAIfC,QAAAA,aAAa,EAAEC,uCAJA;AAKfC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALQ;AAMfC,QAAAA,SAAS,EAAEC,WAAGC,SANC;AAOfC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EAPQ;AAQfC,QAAAA,OAAO,EAAE,sBAAQjB,IAAR,EAAcC,UAAd;AARM,OADnB,EAWGiB,IAXH,CAWQ,UAACC,KAAD,EAAW;AACfrB,QAAAA,aAAa,CAAC,CAACqB,KAAD,CAAD,CAAb;AACD,OAbH,EAcGC,KAdH,CAcS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACAvB,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OAjBH;AAkBD;;;WACD,qCAAsC;AACpC,WAAK0B,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,OADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEnB,WAAGoB,YAFJ;AAGNtC,YAAAA,IAAI,EAAE,EAHA;AAINgC,YAAAA,IAAI,EAAEd,WAAGqB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AAEvD,gBAAMC,WAAW,GAAIF,OAAO,CAACG,OAAR,KAAoB,UAApB,GACjBH,OAAO,CAACI,iBADS,GAEjBJ,OAAO,CAACE,WAFZ;AAKA,mBAAO,CAACA,WAAW,CAAC,CAAD,CAAZ,EAAiBA,WAAW,CAAC,CAAD,CAA5B,EAAiC,CAAjC,CAAP;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;EAtEuCG,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapGridTriangulation } from '../../core/triangulation';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nimport heatmapGridVert from '../shaders/hexagon_vert.glsl';\n\nexport default class HexagonModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 0.9,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.layer\n .buildLayerModel({\n moduleName: 'heatmapHexagon',\n vertexShader: heatmapGridVert,\n fragmentShader: heatmapGridFrag,\n triangulation: HeatmapGridTriangulation,\n depth: { enable: false },\n primitive: gl.TRIANGLES,\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 this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\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: (feature: IEncodeFeature, featureIdx: number) => {\n // const coordinates = (feature.verison==='GAODE2.x'?feature.originoordinates:feature.coordinates) as number[];\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n // const coordinates = feature.coordinates as number[];\n // const coordinates = feature.originCoordinates as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"hexagon.js"}