@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/triangulation.ts"],"names":["GeometryCache","PointFillTriangulation","feature","coordinates","vertices","indices","size","length","GlobelPointFillTriangulation","xyz","PointExtrudeTriangulation","shape","getGeometry","positions","index","normals","PointImageTriangulation","LineTriangulation","originCoordinates","version","line","ExtrudePolyline","dash","join","path1","Array","isArray","path2","i","item1","item2","extrude_gaode2","path","forEach","item","extrude","linebuffer","complex","indexes","SimpleLineTriangulation","simpleExtrude_gaode2","simpleExtrude","polygonTriangulation","flattengeo","earcut","flatten","dimensions","holes","polygonTriangulationWithCenter","getVerticesWithCenter","verticesWithCenter","center","radius","lng","lat","push","PolygonExtrudeTriangulation","HeatmapGridTriangulation","getHeatmapGeometry","RasterImageTriangulation","indexs","LineArcTriangulation","segmentNumber","segNum","indexArray","map","v","HeatmapTriangulation","dir","addDir","dir1","dir2","dir3","needFlat","geometryShape","cylinder","geometry","computeVertexNormals","dim","Float32Array","vA","vB","vC","cb","vec3","create","ab","normal","li","p1","p2","p3","ax","ay","pA","fromValues","bx","by","pB","cx","cy","pC","sub","cross","normalizeNormals","newNormal","normalize","set","checkIsClosed","points","shape3d","circle","indexOf","dirX","dirY","x","y","earthTriangulation","earthmesh","EARTH_RADIUS","segments","EARTH_SEGMENTS","positionsArr","indicesArr","normalArr","earthOuterTriangulation","EARTH_RADIUS_OUTER"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport { aProjectFlat, lngLatToMeters } from '@antv/l7-utils';\nimport earcut from 'earcut';\n// @ts-ignore\nimport { mat4, vec3 } from 'gl-matrix';\nimport {\n EARTH_RADIUS,\n EARTH_RADIUS_OUTER,\n EARTH_SEGMENTS,\n lglt2xyz,\n primitiveSphere,\n} from '../earth/utils';\nimport ExtrudePolyline from '../utils/extrude_polyline';\nimport {\n calculateCentroid,\n calculatePointsCenterAndRadius,\n} from '../utils/geo';\nimport extrudePolygon, {\n extrude_PolygonNormal,\n fillPolygon,\n IExtrudeGeomety,\n} from './shape/extrude';\nimport {\n geometryShape,\n IPosition,\n ShapeType2D,\n ShapeType3D,\n} from './shape/Path';\ntype IShape = ShapeType2D & ShapeType3D;\ninterface IGeometryCache {\n [key: string]: IExtrudeGeomety;\n}\nconst GeometryCache: IGeometryCache = {};\n\n/**\n * 计算2D 填充点图顶点\n * @param feature 映射feature\n */\n\nexport function PointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates],\n indices: [0, 1, 2, 2, 3, 0],\n size: coordinates.length,\n };\n}\n/**\n * 计算2D 填充点图顶点 (地球模式)\n * @param feature 映射feature\n */\nexport function GlobelPointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n const xyz = lglt2xyz(coordinates as [number, number]);\n return {\n vertices: [...xyz, ...xyz, ...xyz, ...xyz],\n indices: [0, 1, 2, 2, 3, 0],\n size: xyz.length,\n };\n}\n\n/**\n * 计算3D 拉伸点图\n * @param feature 映射feature\n */\nexport function PointExtrudeTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index, normals } = getGeometry(\n shape as ShapeType3D,\n false,\n );\n return {\n vertices: positions,\n indices: index,\n normals,\n size: 5,\n };\n}\n\n/**\n * 计算图片标注\n * @param feature 映射feature\n */\nexport function PointImageTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\n/**\n * 线三角化\n * @param feature 映射feature\n */\nexport function LineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n // let path = coordinates as number[][][] | number[][];\n // if (!Array.isArray(path[0][0])) {\n // path = [coordinates] as number[][][];\n // }\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.extrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.extrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n indexes: linebuffer.indexes,\n size: 6,\n };\n}\n\nexport function SimpleLineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.simpleExtrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.simpleExtrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n size: 6,\n };\n}\n\nexport function polygonTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices,\n size: dimensions,\n };\n}\n\n// TODO:构建几何图形(带有中心点和大小)\nexport function polygonTriangulationWithCenter(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices: getVerticesWithCenter(vertices),\n size: dimensions + 4,\n };\n}\n\nfunction getVerticesWithCenter(vertices: number[]) {\n const verticesWithCenter = [];\n const { center, radius } = calculatePointsCenterAndRadius(vertices);\n for (let i = 0; i < vertices.length; i += 2) {\n const lng = vertices[i];\n const lat = vertices[i + 1];\n verticesWithCenter.push(lng, lat, 0, ...center, radius);\n }\n return verticesWithCenter;\n}\n\nexport function PolygonExtrudeTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[][];\n const { positions, index, normals } = extrude_PolygonNormal(\n coordinates,\n true,\n );\n return {\n vertices: positions, // [ x, y, z, uv.x,uv.y ]\n indices: index,\n normals,\n size: 5,\n };\n}\n\nexport function HeatmapGridTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index } = getHeatmapGeometry(shape as IShape);\n return {\n vertices: positions, // [ x, y, z ] 多边形顶点\n indices: index,\n size: 3,\n };\n}\n\n/**\n * 图片图层顶点构造\n * @param feature 数据\n */\nexport function RasterImageTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[];\n // [ x, y, z. uv.x, uv.y]\n const positions: number[] = [\n ...coordinates[0],\n 0,\n 0,\n 1,\n coordinates[1][0],\n coordinates[0][1],\n 0,\n 1,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n ...coordinates[0],\n 0,\n 0,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n coordinates[0][0],\n coordinates[1][1],\n 0,\n 0,\n 0,\n ];\n const indexs = [0, 1, 2, 3, 4, 5];\n return {\n vertices: positions,\n indices: indexs,\n size: 5,\n };\n}\n\n/**\n * 计算3D弧线顶点\n * @param feature 映射数据\n * @param segNum 弧线线段数\n */\nexport function LineArcTriangulation(\n feature: IEncodeFeature,\n segmentNumber?: number,\n) {\n const segNum = segmentNumber ? segmentNumber : 30;\n const coordinates = feature.coordinates as IPosition[];\n const positions = [];\n const indexArray = [];\n for (let i = 0; i < segNum; i++) {\n // 上线两个顶点\n // [ x, y, z, sx,sy, tx,ty]\n positions.push(\n i,\n 1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n i,\n -1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n );\n\n if (i !== segNum - 1) {\n indexArray.push(\n ...[0, 1, 2, 1, 3, 2].map((v) => {\n return i * 2 + v;\n }),\n );\n }\n }\n return {\n vertices: positions,\n indices: indexArray,\n size: 7,\n };\n}\n\n/**\n * 构建热力图密度图的顶点\n * @param feature\n * @returns\n */\nexport function HeatmapTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n if (coordinates.length === 2) {\n coordinates.push(0);\n }\n const size = feature.size as number;\n const dir = addDir(-1, 1);\n const dir1 = addDir(1, 1);\n const dir2 = addDir(-1, -1);\n const dir3 = addDir(1, -1);\n // [x,y,z, dirx ,diry, weight]\n const positions = [\n ...coordinates,\n ...dir,\n ...coordinates,\n ...dir2,\n ...coordinates,\n ...dir3,\n ...coordinates,\n ...dir1,\n ];\n const indexArray = [0, 1, 2, 3, 0, 2];\n return {\n vertices: positions,\n indices: indexArray,\n size: 5,\n };\n}\n\n/**\n * 点图层3d geomerty\n * @param shape 3D形状\n */\nfunction getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety {\n if (GeometryCache && GeometryCache[shape]) {\n return GeometryCache[shape];\n }\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.cylinder();\n const geometry = extrude_PolygonNormal([path], needFlat);\n GeometryCache[shape] = geometry;\n return geometry;\n}\n\nfunction computeVertexNormals(\n positions: number[],\n indexArray: number[],\n dim: number = 3,\n needFlat: boolean = false,\n) {\n const normals = new Float32Array((positions.length / dim) * 3);\n let vA: number;\n let vB: number;\n let vC: number;\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n for (let i = 0, li = indexArray.length; i < li; i += 3) {\n vA = indexArray[i + 0] * 3;\n vB = indexArray[i + 1] * 3;\n vC = indexArray[i + 2] * 3;\n let p1 = [positions[vA], positions[vA + 1]];\n let p2 = [positions[vB], positions[vB + 1]];\n let p3 = [positions[vC], positions[vC + 1]];\n if (needFlat) {\n p1 = lngLatToMeters(p1);\n p2 = lngLatToMeters(p2);\n p3 = lngLatToMeters(p3);\n }\n const [ax, ay] = p1;\n const pA = vec3.fromValues(ax, ay, positions[vA + 2]);\n const [bx, by] = p2;\n const pB = vec3.fromValues(bx, by, positions[vB + 2]);\n const [cx, cy] = p3;\n const pC = vec3.fromValues(cx, cy, positions[vC + 2]);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n normals[vA] += cb[0];\n normals[vA + 1] += cb[1];\n normals[vA + 2] += cb[2];\n normals[vB] += cb[0];\n normals[vB + 1] += cb[1];\n normals[vB + 2] += cb[2];\n normals[vC] += cb[0];\n normals[vC + 1] += cb[1];\n normals[vC + 2] += cb[2];\n }\n normalizeNormals(normals);\n return normals;\n}\n\nfunction normalizeNormals(normals: Float32Array) {\n for (let i = 0, li = normals.length; i < li; i += 3) {\n const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n normals.set(newNormal, i);\n }\n}\n\nfunction checkIsClosed(points: number[][][]) {\n const p1 = points[0][0];\n const p2 = points[0][points[0].length - 1];\n return p1[0] === p2[0] && p1[1] === p2[1];\n}\n\nfunction getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety {\n const shape3d = [\n 'cylinder',\n 'triangleColumn',\n 'hexagonColumn',\n 'squareColumn',\n ];\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.circle();\n const geometry =\n shape3d.indexOf(shape) === -1\n ? fillPolygon([path])\n : extrudePolygon([path]);\n // const geometry = fillPolygon([path]);\n return geometry;\n}\n// 热力图计算范围\nfunction addDir(dirX: number, dirY: number) {\n const x = (dirX + 1) / 2;\n const y = (dirY + 1) / 2;\n return [x, y];\n}\n\n/**\n * 构建地球三角网格\n * @returns\n */\nexport function earthTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS, { segments: EARTH_SEGMENTS });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n\nexport function earthOuterTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS + EARTH_RADIUS_OUTER, {\n segments: EARTH_SEGMENTS,\n });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n"],"file":"triangulation.js"}
1
+ {"version":3,"sources":["../../src/core/triangulation.ts"],"names":["GeometryCache","PointFillTriangulation","feature","coordinates","vertices","indices","size","length","GlobelPointFillTriangulation","xyz","PointExtrudeTriangulation","shape","getGeometry","positions","index","normals","PointImageTriangulation","LineTriangulation","originCoordinates","version","line","ExtrudePolyline","dash","join","path1","Array","isArray","path2","i","item1","item2","extrude_gaode2","path","forEach","item","extrude","linebuffer","complex","indexes","SimpleLineTriangulation","simpleExtrude_gaode2","simpleExtrude","polygonTriangulation","flattengeo","earcut","flatten","dimensions","holes","polygonTriangulationWithCenter","getVerticesWithCenter","verticesWithCenter","center","radius","lng","lat","push","PolygonExtrudeTriangulation","HeatmapGridTriangulation","getHeatmapGeometry","RasterImageTriangulation","indexs","LineArcTriangulation","segmentNumber","segNum","indexArray","map","v","HeatmapTriangulation","dir","addDir","dir1","dir2","dir3","needFlat","geometryShape","cylinder","geometry","computeVertexNormals","dim","Float32Array","vA","vB","vC","cb","vec3","create","ab","normal","li","p1","p2","p3","ax","ay","pA","fromValues","bx","by","pB","cx","cy","pC","sub","cross","normalizeNormals","newNormal","normalize","set","checkIsClosed","points","shape3d","circle","indexOf","dirX","dirY","x","y","earthTriangulation","earthmesh","EARTH_RADIUS","segments","EARTH_SEGMENTS","positionsArr","indicesArr","normalArr","earthOuterTriangulation","EARTH_RADIUS_OUTER"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport {\n aProjectFlat,\n calculateCentroid,\n calculatePointsCenterAndRadius,\n lngLatToMeters,\n} from '@antv/l7-utils';\nimport earcut from 'earcut';\n// @ts-ignore\nimport { mat4, vec3 } from 'gl-matrix';\nimport {\n EARTH_RADIUS,\n EARTH_RADIUS_OUTER,\n EARTH_SEGMENTS,\n lglt2xyz,\n primitiveSphere,\n} from '../earth/utils';\nimport ExtrudePolyline from '../utils/extrude_polyline';\nimport extrudePolygon, {\n extrude_PolygonNormal,\n fillPolygon,\n IExtrudeGeomety,\n} from './shape/extrude';\nimport {\n geometryShape,\n IPosition,\n ShapeType2D,\n ShapeType3D,\n} from './shape/Path';\ntype IShape = ShapeType2D & ShapeType3D;\ninterface IGeometryCache {\n [key: string]: IExtrudeGeomety;\n}\nconst GeometryCache: IGeometryCache = {};\n\n/**\n * 计算2D 填充点图顶点\n * @param feature 映射feature\n */\n\nexport function PointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates],\n indices: [0, 1, 2, 2, 3, 0],\n size: coordinates.length,\n };\n}\n/**\n * 计算2D 填充点图顶点 (地球模式)\n * @param feature 映射feature\n */\nexport function GlobelPointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n const xyz = lglt2xyz(coordinates as [number, number]);\n return {\n vertices: [...xyz, ...xyz, ...xyz, ...xyz],\n indices: [0, 1, 2, 2, 3, 0],\n size: xyz.length,\n };\n}\n\n/**\n * 计算3D 拉伸点图\n * @param feature 映射feature\n */\nexport function PointExtrudeTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index, normals } = getGeometry(\n shape as ShapeType3D,\n false,\n );\n return {\n vertices: positions,\n indices: index,\n normals,\n size: 5,\n };\n}\n\n/**\n * 计算图片标注\n * @param feature 映射feature\n */\nexport function PointImageTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\n/**\n * 线三角化\n * @param feature 映射feature\n */\nexport function LineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n // let path = coordinates as number[][][] | number[][];\n // if (!Array.isArray(path[0][0])) {\n // path = [coordinates] as number[][][];\n // }\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.extrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.extrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n indexes: linebuffer.indexes,\n size: 6,\n };\n}\n\nexport function SimpleLineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.simpleExtrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.simpleExtrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n size: 6,\n };\n}\n\nexport function polygonTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices,\n size: dimensions,\n };\n}\n\n// TODO:构建几何图形(带有中心点和大小)\nexport function polygonTriangulationWithCenter(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices: getVerticesWithCenter(vertices),\n size: dimensions + 4,\n };\n}\n\nfunction getVerticesWithCenter(vertices: number[]) {\n const verticesWithCenter = [];\n const { center, radius } = calculatePointsCenterAndRadius(vertices);\n for (let i = 0; i < vertices.length; i += 2) {\n const lng = vertices[i];\n const lat = vertices[i + 1];\n verticesWithCenter.push(lng, lat, 0, ...center, radius);\n }\n return verticesWithCenter;\n}\n\nexport function PolygonExtrudeTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[][];\n const { positions, index, normals } = extrude_PolygonNormal(\n coordinates,\n true,\n );\n return {\n vertices: positions, // [ x, y, z, uv.x,uv.y ]\n indices: index,\n normals,\n size: 5,\n };\n}\n\nexport function HeatmapGridTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index } = getHeatmapGeometry(shape as IShape);\n return {\n vertices: positions, // [ x, y, z ] 多边形顶点\n indices: index,\n size: 3,\n };\n}\n\n/**\n * 图片图层顶点构造\n * @param feature 数据\n */\nexport function RasterImageTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[];\n // [ x, y, z. uv.x, uv.y]\n const positions: number[] = [\n ...coordinates[0],\n 0,\n 0,\n 1,\n coordinates[1][0],\n coordinates[0][1],\n 0,\n 1,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n ...coordinates[0],\n 0,\n 0,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n coordinates[0][0],\n coordinates[1][1],\n 0,\n 0,\n 0,\n ];\n const indexs = [0, 1, 2, 3, 4, 5];\n return {\n vertices: positions,\n indices: indexs,\n size: 5,\n };\n}\n\n/**\n * 计算3D弧线顶点\n * @param feature 映射数据\n * @param segNum 弧线线段数\n */\nexport function LineArcTriangulation(\n feature: IEncodeFeature,\n segmentNumber?: number,\n) {\n const segNum = segmentNumber ? segmentNumber : 30;\n const coordinates = feature.coordinates as IPosition[];\n const positions = [];\n const indexArray = [];\n for (let i = 0; i < segNum; i++) {\n // 上线两个顶点\n // [ x, y, z, sx,sy, tx,ty]\n positions.push(\n i,\n 1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n i,\n -1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n );\n\n if (i !== segNum - 1) {\n indexArray.push(\n ...[0, 1, 2, 1, 3, 2].map((v) => {\n return i * 2 + v;\n }),\n );\n }\n }\n return {\n vertices: positions,\n indices: indexArray,\n size: 7,\n };\n}\n\n/**\n * 构建热力图密度图的顶点\n * @param feature\n * @returns\n */\nexport function HeatmapTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n if (coordinates.length === 2) {\n coordinates.push(0);\n }\n const size = feature.size as number;\n const dir = addDir(-1, 1);\n const dir1 = addDir(1, 1);\n const dir2 = addDir(-1, -1);\n const dir3 = addDir(1, -1);\n // [x,y,z, dirx ,diry, weight]\n const positions = [\n ...coordinates,\n ...dir,\n ...coordinates,\n ...dir2,\n ...coordinates,\n ...dir3,\n ...coordinates,\n ...dir1,\n ];\n const indexArray = [0, 1, 2, 3, 0, 2];\n return {\n vertices: positions,\n indices: indexArray,\n size: 5,\n };\n}\n\n/**\n * 点图层3d geomerty\n * @param shape 3D形状\n */\nfunction getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety {\n if (GeometryCache && GeometryCache[shape]) {\n return GeometryCache[shape];\n }\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.cylinder();\n const geometry = extrude_PolygonNormal([path], needFlat);\n GeometryCache[shape] = geometry;\n return geometry;\n}\n\nfunction computeVertexNormals(\n positions: number[],\n indexArray: number[],\n dim: number = 3,\n needFlat: boolean = false,\n) {\n const normals = new Float32Array((positions.length / dim) * 3);\n let vA: number;\n let vB: number;\n let vC: number;\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n for (let i = 0, li = indexArray.length; i < li; i += 3) {\n vA = indexArray[i + 0] * 3;\n vB = indexArray[i + 1] * 3;\n vC = indexArray[i + 2] * 3;\n let p1 = [positions[vA], positions[vA + 1]];\n let p2 = [positions[vB], positions[vB + 1]];\n let p3 = [positions[vC], positions[vC + 1]];\n if (needFlat) {\n p1 = lngLatToMeters(p1);\n p2 = lngLatToMeters(p2);\n p3 = lngLatToMeters(p3);\n }\n const [ax, ay] = p1;\n const pA = vec3.fromValues(ax, ay, positions[vA + 2]);\n const [bx, by] = p2;\n const pB = vec3.fromValues(bx, by, positions[vB + 2]);\n const [cx, cy] = p3;\n const pC = vec3.fromValues(cx, cy, positions[vC + 2]);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n normals[vA] += cb[0];\n normals[vA + 1] += cb[1];\n normals[vA + 2] += cb[2];\n normals[vB] += cb[0];\n normals[vB + 1] += cb[1];\n normals[vB + 2] += cb[2];\n normals[vC] += cb[0];\n normals[vC + 1] += cb[1];\n normals[vC + 2] += cb[2];\n }\n normalizeNormals(normals);\n return normals;\n}\n\nfunction normalizeNormals(normals: Float32Array) {\n for (let i = 0, li = normals.length; i < li; i += 3) {\n const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n normals.set(newNormal, i);\n }\n}\n\nfunction checkIsClosed(points: number[][][]) {\n const p1 = points[0][0];\n const p2 = points[0][points[0].length - 1];\n return p1[0] === p2[0] && p1[1] === p2[1];\n}\n\nfunction getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety {\n const shape3d = [\n 'cylinder',\n 'triangleColumn',\n 'hexagonColumn',\n 'squareColumn',\n ];\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.circle();\n const geometry =\n shape3d.indexOf(shape) === -1\n ? fillPolygon([path])\n : extrudePolygon([path]);\n // const geometry = fillPolygon([path]);\n return geometry;\n}\n// 热力图计算范围\nfunction addDir(dirX: number, dirY: number) {\n const x = (dirX + 1) / 2;\n const y = (dirY + 1) / 2;\n return [x, y];\n}\n\n/**\n * 构建地球三角网格\n * @returns\n */\nexport function earthTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS, { segments: EARTH_SEGMENTS });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n\nexport function earthOuterTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS + EARTH_RADIUS_OUTER, {\n segments: EARTH_SEGMENTS,\n });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n"],"file":"triangulation.js"}
@@ -62,9 +62,15 @@ var EarthLayer = function (_BaseLayer) {
62
62
  (0, _createClass2.default)(EarthLayer, [{
63
63
  key: "buildModels",
64
64
  value: function buildModels() {
65
+ var _this2 = this;
66
+
65
67
  var shape = this.getModelType();
66
68
  this.layerModel = new EarthModels[shape](this);
67
- this.models = this.layerModel.initModels();
69
+ this.layerModel.initModels(function (models) {
70
+ _this2.models = models;
71
+
72
+ _this2.renderLayers();
73
+ });
68
74
  }
69
75
  }, {
70
76
  key: "setEarthTime",
@@ -72,7 +78,7 @@ var EarthLayer = function (_BaseLayer) {
72
78
  if (this.layerModel && this.layerModel.setEarthTime) {
73
79
  this.layerModel.setEarthTime(time);
74
80
  } else {
75
- console.error('请在 scene loaded 之后执行该方法!');
81
+ console.warn('请在 scene loaded 之后执行该方法!');
76
82
  }
77
83
  }
78
84
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/earth/index.ts"],"names":["EarthModels","base","BaseEarthModel","atomSphere","EarthAtomSphereModel","bloomSphere","EarthBloomSphereModel","earthLayerTypes","EarthLayer","shape","getModelType","layerModel","models","initModels","time","setEarthTime","console","error","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","indexOf","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AASA,IAAMA,WAA6C,GAAG;AACpDC,EAAAA,IAAI,EAAEC,aAD8C;AAEpDC,EAAAA,UAAU,EAAEC,mBAFwC;AAGpDC,EAAAA,WAAW,EAAEC;AAHuC,CAAtD;AAMA,IAAMC,eAAe,GAAG,CAAC,MAAD,EAAS,YAAT,EAAuB,aAAvB,CAAxB;;IAEqBC,U;;;;;;;;;;;;;;;uFACG,Y;;;;;;WAEtB,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIX,WAAW,CAACS,KAAD,CAAf,CAAuB,IAAvB,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WAMD,sBAAoBC,IAApB,EAAkC;AAChC,UAAI,KAAKH,UAAL,IAAmB,KAAKA,UAAL,CAAgBI,YAAvC,EAAqD;AACnD,aAAKJ,UAAL,CAAgBI,YAAhB,CAA6BD,IAA7B;AACD,OAFD,MAEO;AACLE,QAAAA,OAAO,CAACC,KAAR,CAAc,0BAAd;AACD;AACF;;;WAED,wBAAyC;AAAA;;AACvC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAIX,KAAK,GAAI,CAAAS,cAAc,SAAd,IAAAA,cAAc,WAAd,qCAAAA,cAAc,CAAEG,KAAhB,gFAAuBC,KAAvB,KAAgC,MAA7C;;AACA,UAAIf,eAAe,CAACgB,OAAhB,CAAwBd,KAAxB,IAAiC,CAArC,EAAwC;AACtCA,QAAAA,KAAK,GAAG,MAAR;AACD;;AACD,aAAOA,KAAP;AACD;;;EA9BqCe,mB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport EarthAtomSphereModel from './models/atmosphere';\nimport BaseEarthModel from './models/base';\nimport EarthBloomSphereModel from './models/bloomsphere';\n\ninterface IEarthLayerStyleOptions {\n opacity: number;\n setEarthTime(time: number): void;\n}\n\nexport type EarthModelType = 'base' | 'atomSphere' | 'bloomSphere';\n\nconst EarthModels: { [key in EarthModelType]: any } = {\n base: BaseEarthModel,\n atomSphere: EarthAtomSphereModel,\n bloomSphere: EarthBloomSphereModel,\n};\n\nconst earthLayerTypes = ['base', 'atomSphere', 'bloomSphere'];\n\nexport default class EarthLayer extends BaseLayer<IEarthLayerStyleOptions> {\n public type: string = 'EarthLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new EarthModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n\n /**\n * 设置当前地球时间\n * @param time\n */\n public setEarthTime(time: number) {\n if (this.layerModel && this.layerModel.setEarthTime) {\n this.layerModel.setEarthTime(time);\n } else {\n console.error('请在 scene loaded 之后执行该方法!');\n }\n }\n\n protected getModelType(): EarthModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n let shape = (shapeAttribute?.scale?.field || 'base') as string;\n if (earthLayerTypes.indexOf(shape) < 0) {\n shape = 'base';\n }\n return shape as EarthModelType;\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/earth/index.ts"],"names":["EarthModels","base","BaseEarthModel","atomSphere","EarthAtomSphereModel","bloomSphere","EarthBloomSphereModel","earthLayerTypes","EarthLayer","shape","getModelType","layerModel","initModels","models","renderLayers","time","setEarthTime","console","warn","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","indexOf","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AASA,IAAMA,WAA6C,GAAG;AACpDC,EAAAA,IAAI,EAAEC,aAD8C;AAEpDC,EAAAA,UAAU,EAAEC,mBAFwC;AAGpDC,EAAAA,WAAW,EAAEC;AAHuC,CAAtD;AAMA,IAAMC,eAAe,GAAG,CAAC,MAAD,EAAS,YAAT,EAAuB,aAAvB,CAAxB;;IAEqBC,U;;;;;;;;;;;;;;;uFACG,Y;;;;;;WAEtB,uBAAqB;AAAA;;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIX,WAAW,CAACS,KAAD,CAAf,CAAuB,IAAvB,CAAlB;AACA,WAAKE,UAAL,CAAgBC,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAHD;AAID;;;WAMD,sBAAoBC,IAApB,EAAkC;AAChC,UAAI,KAAKJ,UAAL,IAAmB,KAAKA,UAAL,CAAgBK,YAAvC,EAAqD;AACnD,aAAKL,UAAL,CAAgBK,YAAhB,CAA6BD,IAA7B;AACD,OAFD,MAEO;AACLE,QAAAA,OAAO,CAACC,IAAR,CAAa,0BAAb;AACD;AACF;;;WAED,wBAAyC;AAAA;;AACvC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAIZ,KAAK,GAAI,CAAAU,cAAc,SAAd,IAAAA,cAAc,WAAd,qCAAAA,cAAc,CAAEG,KAAhB,gFAAuBC,KAAvB,KAAgC,MAA7C;;AACA,UAAIhB,eAAe,CAACiB,OAAhB,CAAwBf,KAAxB,IAAiC,CAArC,EAAwC;AACtCA,QAAAA,KAAK,GAAG,MAAR;AACD;;AACD,aAAOA,KAAP;AACD;;;EAjCqCgB,mB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport EarthAtomSphereModel from './models/atmosphere';\nimport BaseEarthModel from './models/base';\nimport EarthBloomSphereModel from './models/bloomsphere';\n\ninterface IEarthLayerStyleOptions {\n opacity: number;\n setEarthTime(time: number): void;\n}\n\nexport type EarthModelType = 'base' | 'atomSphere' | 'bloomSphere';\n\nconst EarthModels: { [key in EarthModelType]: any } = {\n base: BaseEarthModel,\n atomSphere: EarthAtomSphereModel,\n bloomSphere: EarthBloomSphereModel,\n};\n\nconst earthLayerTypes = ['base', 'atomSphere', 'bloomSphere'];\n\nexport default class EarthLayer extends BaseLayer<IEarthLayerStyleOptions> {\n public type: string = 'EarthLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new EarthModels[shape](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n\n /**\n * 设置当前地球时间\n * @param time\n */\n public setEarthTime(time: number) {\n if (this.layerModel && this.layerModel.setEarthTime) {\n this.layerModel.setEarthTime(time);\n } else {\n console.warn('请在 scene loaded 之后执行该方法!');\n }\n }\n\n protected getModelType(): EarthModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n let shape = (shapeAttribute?.scale?.field || 'base') as string;\n if (earthLayerTypes.indexOf(shape) < 0) {\n shape = 'base';\n }\n return shape as EarthModelType;\n }\n}\n"],"file":"index.js"}
@@ -55,8 +55,8 @@ var EarthAtomSphereModel = function (_BaseModel) {
55
55
  }
56
56
  }, {
57
57
  key: "initModels",
58
- value: function initModels() {
59
- return this.buildModels();
58
+ value: function initModels(callbackModel) {
59
+ this.buildModels(callbackModel);
60
60
  }
61
61
  }, {
62
62
  key: "clearModels",
@@ -65,10 +65,10 @@ var EarthAtomSphereModel = function (_BaseModel) {
65
65
  }
66
66
  }, {
67
67
  key: "buildModels",
68
- value: function buildModels() {
68
+ value: function buildModels(callbackModel) {
69
69
  this.layer.zIndex = -997;
70
- return [this.layer.buildLayerModel({
71
- moduleName: 'earthAtmoSphere',
70
+ this.layer.buildLayerModel({
71
+ moduleName: 'earthAtmo',
72
72
  vertexShader: atmoSphereVert,
73
73
  fragmentShader: atmoSphereFrag,
74
74
  triangulation: _triangulation.earthTriangulation,
@@ -76,7 +76,12 @@ var EarthAtomSphereModel = function (_BaseModel) {
76
76
  enable: false
77
77
  },
78
78
  blend: this.getBlend()
79
- })];
79
+ }).then(function (model) {
80
+ callbackModel([model]);
81
+ }).catch(function (err) {
82
+ console.warn(err);
83
+ callbackModel([]);
84
+ });
80
85
  }
81
86
  }, {
82
87
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/earth/models/atmosphere.ts"],"names":["EarthAtomSphereModel","layer","getLayerConfig","opacity","u_opacity","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","atmoSphereVert","fragmentShader","atmoSphereFrag","triangulation","earthTriangulation","depth","enable","blend","getBlend","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","gl","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AACA;;;;;;;;;IAOqBA,oB;;;;;;;;;;;;WACnB,wBAAqC;AACnC,iBAEI,KAAKC,KAAL,CAAWC,cAAX,EAFJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;;AAGA,aAAO;AACLC,QAAAA,SAAS,EAAE,wBAASD,OAAT,IAAoBA,OAApB,GAA8B;AADpC,OAAP;AAGD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKE,WAAL,EAAP;AACD;;;WAED,uBAAqB;AACnB,aAAO,EAAP;AACD;;;WAED,uBAA+B;AAE7B,WAAKJ,KAAL,CAAWK,MAAX,GAAoB,CAAC,GAArB;AACA,aAAO,CACL,KAAKL,KAAL,CAAWM,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,iBADa;AAEzBC,QAAAA,YAAY,EAAEC,cAFW;AAGzBC,QAAAA,cAAc,EAAEC,cAHS;AAIzBC,QAAAA,aAAa,EAAEC,iCAJU;AAKzBC,QAAAA,KAAK,EAAE;AACLC,UAAAA,MAAM,EAAE;AADH,SALkB;AAQzBC,QAAAA,KAAK,EAAE,KAAKC,QAAL;AARkB,OAA3B,CADK,CAAP;AAYD;;;WAED,qCAAsC;AAEpC,WAAKC,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,QADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEC,WAAGC,YAFJ;AAGNC,YAAAA,IAAI,EAAE,EAHA;AAINR,YAAAA,IAAI,EAAEM,WAAGG;AAJH,WAFE;AAQVC,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,mBAAOM,KAAK,CAACC,OAAN,CAAcP,IAAd,IAAsB,CAACA,IAAI,CAAC,CAAD,CAAL,CAAtB,GAAkC,CAACA,IAAD,CAAzC;AACD;AAjBS;AAHoC,OAAlD;AAwBA,WAAKb,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,QAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,UADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEC,WAAGY,WAFJ;AAGNV,YAAAA,IAAI,EAAE,EAHA;AAINR,YAAAA,IAAI,EAAEM,WAAGG;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKNI,MALM,EAMH;AACH,mBAAOA,MAAP;AACD;AAjBS;AAHoC,OAAlD;AAwBA,WAAKtB,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,IAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,MADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEC,WAAGC,YAFJ;AAGNC,YAAAA,IAAI,EAAE,EAHA;AAINR,YAAAA,IAAI,EAAEM,WAAGG;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,mBAAO,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,CAAP;AACD;AAhBS;AAHoC,OAAlD;AAsBD;;;EA3G+CM,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\nimport atmoSphereFrag from '../shaders/atmosphere_frag.glsl';\nimport atmoSphereVert from '../shaders/atmosphere_vert.glsl';\ninterface IAtmoLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthAtomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IAtmoLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(): IModel[] {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -997;\n return [\n this.layer.buildLayerModel({\n moduleName: 'earthAtmoSphere',\n vertexShader: atmoSphereVert,\n fragmentShader: atmoSphereFrag,\n triangulation: earthTriangulation,\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n }),\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 = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\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\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 return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"atmosphere.js"}
1
+ {"version":3,"sources":["../../../src/earth/models/atmosphere.ts"],"names":["EarthAtomSphereModel","layer","getLayerConfig","opacity","u_opacity","callbackModel","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","atmoSphereVert","fragmentShader","atmoSphereFrag","triangulation","earthTriangulation","depth","enable","blend","getBlend","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","gl","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\nimport atmoSphereFrag from '../shaders/atmosphere_frag.glsl';\nimport atmoSphereVert from '../shaders/atmosphere_vert.glsl';\ninterface IAtmoLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthAtomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IAtmoLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -997;\n this.layer\n .buildLayerModel({\n moduleName: 'earthAtmo',\n vertexShader: atmoSphereVert,\n fragmentShader: atmoSphereFrag,\n triangulation: earthTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\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 = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\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\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 return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"atmosphere.js"}
@@ -94,7 +94,7 @@ var BaseEarthModel = function (_BaseModel) {
94
94
  }
95
95
  }, {
96
96
  key: "initModels",
97
- value: function initModels() {
97
+ value: function initModels(callbackModel) {
98
98
  var _this2 = this;
99
99
 
100
100
  var _this$layer$getLayerC2 = this.layer.getLayerConfig(),
@@ -121,7 +121,7 @@ var BaseEarthModel = function (_BaseModel) {
121
121
 
122
122
  _this2.layerService.renderLayers();
123
123
  });
124
- return this.buildModels();
124
+ this.buildModels(callbackModel);
125
125
  }
126
126
  }, {
127
127
  key: "clearModels",
@@ -130,10 +130,10 @@ var BaseEarthModel = function (_BaseModel) {
130
130
  }
131
131
  }, {
132
132
  key: "buildModels",
133
- value: function buildModels() {
133
+ value: function buildModels(callbackModel) {
134
134
  this.layer.zIndex = -998;
135
- return [this.layer.buildLayerModel({
136
- moduleName: 'baseEarth',
135
+ this.layer.buildLayerModel({
136
+ moduleName: 'earthBase',
137
137
  vertexShader: baseVert,
138
138
  fragmentShader: baseFrag,
139
139
  triangulation: _triangulation.earthTriangulation,
@@ -141,7 +141,12 @@ var BaseEarthModel = function (_BaseModel) {
141
141
  enable: true
142
142
  },
143
143
  blend: this.getBlend()
144
- })];
144
+ }).then(function (model) {
145
+ callbackModel([model]);
146
+ }).catch(function (err) {
147
+ console.warn(err);
148
+ callbackModel([]);
149
+ });
145
150
  }
146
151
  }, {
147
152
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/earth/models/base.ts"],"names":["BaseEarthModel","Math","sqrt","sunX","sunY","sunZ","layer","getLayerConfig","animateOption","globelOtions","enable","mapService","rotateY","reg","earthTime","cos","sunRadius","sin","u_ambientRatio","ambientRatio","u_diffuseRatio","diffuseRatio","u_specularRatio","specularRatio","u_sunLight","u_texture","texture","time","layerService","renderLayers","undefined","setEarthTime","source","getSource","createTexture2D","rendererService","height","width","data","images","then","imageData","updateLayerRenderList","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","baseVert","fragmentShader","baseFrag","triangulation","earthTriangulation","depth","blend","getBlend","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","gl","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport BaseModel, { styleOffset, styleSingle } from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\n\nimport baseFrag from '../shaders/base_frag.glsl';\nimport baseVert from '../shaders/base_vert.glsl';\n\nexport default class BaseEarthModel extends BaseModel {\n protected texture: ITexture2D;\n // T: 当前的地球时间 - 控制太阳的方位\n private earthTime: number = 3.4;\n private sunX = 1000;\n private sunY = 1000;\n private sunZ = 1000;\n private sunRadius = Math.sqrt(\n this.sunX * this.sunX + this.sunY * this.sunY + this.sunZ * this.sunZ,\n );\n\n public getUninforms(): IModelUniform {\n const { animateOption, globelOtions } = this.layer.getLayerConfig();\n if (animateOption?.enable) {\n // @ts-ignore\n // T: rotateY 方法只有在地球模式下存在\n this.mapService.rotateY({\n reg: 0.002,\n });\n this.earthTime += 0.02;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n }\n\n return {\n u_ambientRatio: globelOtions?.ambientRatio || 0.6, // 环境光\n u_diffuseRatio: globelOtions?.diffuseRatio || 0.4, // 漫反射\n u_specularRatio: globelOtions?.specularRatio || 0.1, // 高光反射\n // u_sunLight: [120, 120, 120],\n u_sunLight: [this.sunX, this.sunY, this.sunZ],\n\n u_texture: this.texture,\n };\n }\n\n public setEarthTime(time: number) {\n this.earthTime = time;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n\n this.layerService.renderLayers();\n }\n\n public initModels(): IModel[] {\n const { globelOtions } = this.layer.getLayerConfig();\n if (globelOtions?.earthTime !== undefined) {\n this.setEarthTime(globelOtions.earthTime);\n }\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n source.data.images.then((imageData: HTMLImageElement[]) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n return this.buildModels();\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(): IModel[] {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -998;\n return [\n this.layer.buildLayerModel({\n moduleName: 'baseEarth',\n vertexShader: baseVert,\n fragmentShader: baseFrag,\n triangulation: earthTriangulation,\n depth: { enable: true },\n blend: this.getBlend(),\n }),\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 = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\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\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 return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"base.js"}
1
+ {"version":3,"sources":["../../../src/earth/models/base.ts"],"names":["BaseEarthModel","Math","sqrt","sunX","sunY","sunZ","layer","getLayerConfig","animateOption","globelOtions","enable","mapService","rotateY","reg","earthTime","cos","sunRadius","sin","u_ambientRatio","ambientRatio","u_diffuseRatio","diffuseRatio","u_specularRatio","specularRatio","u_sunLight","u_texture","texture","time","layerService","renderLayers","callbackModel","undefined","setEarthTime","source","getSource","createTexture2D","rendererService","height","width","data","images","then","imageData","updateLayerRenderList","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","baseVert","fragmentShader","baseFrag","triangulation","earthTriangulation","depth","blend","getBlend","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","gl","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport BaseModel, { styleOffset, styleSingle } from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\n\nimport baseFrag from '../shaders/base_frag.glsl';\nimport baseVert from '../shaders/base_vert.glsl';\n\nexport default class BaseEarthModel extends BaseModel {\n protected texture: ITexture2D;\n // T: 当前的地球时间 - 控制太阳的方位\n private earthTime: number = 3.4;\n private sunX = 1000;\n private sunY = 1000;\n private sunZ = 1000;\n private sunRadius = Math.sqrt(\n this.sunX * this.sunX + this.sunY * this.sunY + this.sunZ * this.sunZ,\n );\n\n public getUninforms(): IModelUniform {\n const { animateOption, globelOtions } = this.layer.getLayerConfig();\n if (animateOption?.enable) {\n // @ts-ignore\n // T: rotateY 方法只有在地球模式下存在\n this.mapService.rotateY({\n reg: 0.002,\n });\n this.earthTime += 0.02;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n }\n\n return {\n u_ambientRatio: globelOtions?.ambientRatio || 0.6, // 环境光\n u_diffuseRatio: globelOtions?.diffuseRatio || 0.4, // 漫反射\n u_specularRatio: globelOtions?.specularRatio || 0.1, // 高光反射\n // u_sunLight: [120, 120, 120],\n u_sunLight: [this.sunX, this.sunY, this.sunZ],\n\n u_texture: this.texture,\n };\n }\n\n public setEarthTime(time: number) {\n this.earthTime = time;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n\n this.layerService.renderLayers();\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const { globelOtions } = this.layer.getLayerConfig();\n if (globelOtions?.earthTime !== undefined) {\n this.setEarthTime(globelOtions.earthTime);\n }\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n source.data.images.then((imageData: HTMLImageElement[]) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -998;\n\n this.layer\n .buildLayerModel({\n moduleName: 'earthBase',\n vertexShader: baseVert,\n fragmentShader: baseFrag,\n triangulation: earthTriangulation,\n depth: { enable: true },\n blend: this.getBlend(),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\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 = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\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\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 return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"base.js"}
@@ -55,8 +55,8 @@ var EarthBloomSphereModel = function (_BaseModel) {
55
55
  }
56
56
  }, {
57
57
  key: "initModels",
58
- value: function initModels() {
59
- return this.buildModels();
58
+ value: function initModels(callbackModel) {
59
+ this.buildModels(callbackModel);
60
60
  }
61
61
  }, {
62
62
  key: "clearModels",
@@ -65,10 +65,10 @@ var EarthBloomSphereModel = function (_BaseModel) {
65
65
  }
66
66
  }, {
67
67
  key: "buildModels",
68
- value: function buildModels() {
68
+ value: function buildModels(callbackModel) {
69
69
  this.layer.zIndex = -999;
70
- return [this.layer.buildLayerModel({
71
- moduleName: 'earthBloomSphere',
70
+ this.layer.buildLayerModel({
71
+ moduleName: 'earthBloom',
72
72
  vertexShader: bloomSphereVert,
73
73
  fragmentShader: bloomSphereFrag,
74
74
  triangulation: _triangulation.earthOuterTriangulation,
@@ -76,7 +76,12 @@ var EarthBloomSphereModel = function (_BaseModel) {
76
76
  enable: false
77
77
  },
78
78
  blend: this.getBlend()
79
- })];
79
+ }).then(function (model) {
80
+ callbackModel([model]);
81
+ }).catch(function (err) {
82
+ console.warn(err);
83
+ callbackModel([]);
84
+ });
80
85
  }
81
86
  }, {
82
87
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/earth/models/bloomsphere.ts"],"names":["EarthBloomSphereModel","layer","getLayerConfig","opacity","u_opacity","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","bloomSphereVert","fragmentShader","bloomSphereFrag","triangulation","earthOuterTriangulation","depth","enable","blend","getBlend","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","gl","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthOuterTriangulation } from '../../core/triangulation';\nimport bloomSphereFrag from '../shaders/bloomsphere_frag.glsl';\nimport bloomSphereVert from '../shaders/bloomsphere_vert.glsl';\ninterface IBloomLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthBloomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IBloomLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(): IModel[] {\n // TODO: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)\n this.layer.zIndex = -999;\n return [\n this.layer.buildLayerModel({\n moduleName: 'earthBloomSphere',\n vertexShader: bloomSphereVert,\n fragmentShader: bloomSphereFrag,\n triangulation: earthOuterTriangulation,\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n }),\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 = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\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\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 return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"bloomsphere.js"}
1
+ {"version":3,"sources":["../../../src/earth/models/bloomsphere.ts"],"names":["EarthBloomSphereModel","layer","getLayerConfig","opacity","u_opacity","callbackModel","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","bloomSphereVert","fragmentShader","bloomSphereFrag","triangulation","earthOuterTriangulation","depth","enable","blend","getBlend","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","gl","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthOuterTriangulation } from '../../core/triangulation';\nimport bloomSphereFrag from '../shaders/bloomsphere_frag.glsl';\nimport bloomSphereVert from '../shaders/bloomsphere_vert.glsl';\ninterface IBloomLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthBloomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IBloomLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n // TODO: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)\n this.layer.zIndex = -999;\n this.layer\n .buildLayerModel({\n moduleName: 'earthBloom',\n vertexShader: bloomSphereVert,\n fragmentShader: bloomSphereFrag,\n triangulation: earthOuterTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\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 = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\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\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 return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"bloomsphere.js"}
@@ -51,19 +51,29 @@ var HeatMapLayer = function (_BaseLayer) {
51
51
  (0, _createClass2.default)(HeatMapLayer, [{
52
52
  key: "buildModels",
53
53
  value: function buildModels() {
54
+ var _this2 = this;
55
+
54
56
  var shape = this.getModelType();
55
57
  this.layerModel = new _models.default[shape](this);
56
- this.models = this.layerModel.initModels();
58
+ this.layerModel.initModels(function (models) {
59
+ _this2.models = models;
60
+
61
+ _this2.renderLayers();
62
+ });
57
63
  }
58
64
  }, {
59
65
  key: "rebuildModels",
60
66
  value: function rebuildModels() {
61
- this.models = this.layerModel.buildModels();
67
+ var _this3 = this;
68
+
69
+ this.layerModel.buildModels(function (models) {
70
+ return _this3.models = models;
71
+ });
62
72
  }
63
73
  }, {
64
74
  key: "renderModels",
65
75
  value: function renderModels() {
66
- var _this2 = this;
76
+ var _this4 = this;
67
77
 
68
78
  var shape = this.getModelType();
69
79
 
@@ -76,13 +86,15 @@ var HeatMapLayer = function (_BaseLayer) {
76
86
  }
77
87
 
78
88
  if (this.layerModelNeedUpdate) {
79
- this.models = this.layerModel.buildModels();
89
+ this.layerModel.buildModels(function (models) {
90
+ return _this4.models = models;
91
+ });
80
92
  this.layerModelNeedUpdate = false;
81
93
  }
82
94
 
83
95
  this.models.forEach(function (model) {
84
96
  return model.draw({
85
- uniforms: _this2.layerModel.getUninforms()
97
+ uniforms: _this4.layerModel.getUninforms()
86
98
  });
87
99
  });
88
100
  return this;
@@ -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":"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","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"}