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

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 (367) hide show
  1. package/es/Geometry/index.js +2 -12
  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 +6 -11
  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 +7 -12
  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 +6 -11
  11. package/es/Geometry/models/sprite.js.map +1 -1
  12. package/es/canvas/index.js +2 -12
  13. package/es/canvas/index.js.map +1 -1
  14. package/es/citybuliding/building.js +2 -12
  15. package/es/citybuliding/building.js.map +1 -1
  16. package/es/citybuliding/models/build.d.ts +1 -2
  17. package/es/citybuliding/models/build.js +3 -16
  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 +58 -97
  21. package/es/core/BaseLayer.js.map +1 -1
  22. package/es/core/BaseModel.d.ts +2 -2
  23. package/es/core/BaseModel.js +2 -2
  24. package/es/core/BaseModel.js.map +1 -1
  25. package/es/core/interface.d.ts +13 -2
  26. package/es/core/interface.js.map +1 -1
  27. package/es/core/triangulation.d.ts +0 -1
  28. package/es/core/triangulation.js +11 -37
  29. package/es/core/triangulation.js.map +1 -1
  30. package/es/earth/index.js +2 -8
  31. package/es/earth/index.js.map +1 -1
  32. package/es/earth/models/atmosphere.d.ts +2 -2
  33. package/es/earth/models/atmosphere.js +6 -11
  34. package/es/earth/models/atmosphere.js.map +1 -1
  35. package/es/earth/models/base.d.ts +2 -2
  36. package/es/earth/models/base.js +6 -11
  37. package/es/earth/models/base.js.map +1 -1
  38. package/es/earth/models/bloomsphere.d.ts +2 -2
  39. package/es/earth/models/bloomsphere.js +6 -11
  40. package/es/earth/models/bloomsphere.js.map +1 -1
  41. package/es/heatmap/index.js +5 -17
  42. package/es/heatmap/index.js.map +1 -1
  43. package/es/heatmap/models/grid.d.ts +2 -2
  44. package/es/heatmap/models/grid.js +8 -12
  45. package/es/heatmap/models/grid.js.map +1 -1
  46. package/es/heatmap/models/grid3d.d.ts +2 -2
  47. package/es/heatmap/models/grid3d.js +6 -12
  48. package/es/heatmap/models/grid3d.js.map +1 -1
  49. package/es/heatmap/models/heatmap.d.ts +2 -2
  50. package/es/heatmap/models/heatmap.js +62 -112
  51. package/es/heatmap/models/heatmap.js.map +1 -1
  52. package/es/heatmap/models/hexagon.d.ts +2 -2
  53. package/es/heatmap/models/hexagon.js +6 -11
  54. package/es/heatmap/models/hexagon.js.map +1 -1
  55. package/es/image/index.d.ts +1 -1
  56. package/es/image/index.js +16 -14
  57. package/es/image/index.js.map +1 -1
  58. package/es/image/models/dataImage.d.ts +22 -0
  59. package/es/image/models/dataImage.js +230 -0
  60. package/es/image/models/dataImage.js.map +1 -0
  61. package/es/image/models/image.d.ts +4 -3
  62. package/es/image/models/image.js +14 -11
  63. package/es/image/models/image.js.map +1 -1
  64. package/es/image/models/index.d.ts +1 -1
  65. package/es/image/models/index.js +3 -1
  66. package/es/image/models/index.js.map +1 -1
  67. package/es/line/index.d.ts +2 -0
  68. package/es/line/index.js +5 -12
  69. package/es/line/index.js.map +1 -1
  70. package/es/line/models/arc.d.ts +2 -2
  71. package/es/line/models/arc.js +10 -15
  72. package/es/line/models/arc.js.map +1 -1
  73. package/es/line/models/arc_3d.d.ts +2 -2
  74. package/es/line/models/arc_3d.js +8 -13
  75. package/es/line/models/arc_3d.js.map +1 -1
  76. package/es/line/models/arcmini.d.ts +9 -0
  77. package/es/line/models/arcmini.js +145 -0
  78. package/es/line/models/arcmini.js.map +1 -0
  79. package/es/line/models/earthArc_3d.d.ts +2 -2
  80. package/es/line/models/earthArc_3d.js +9 -17
  81. package/es/line/models/earthArc_3d.js.map +1 -1
  82. package/es/line/models/great_circle.d.ts +2 -2
  83. package/es/line/models/great_circle.js +8 -13
  84. package/es/line/models/great_circle.js.map +1 -1
  85. package/es/line/models/half.d.ts +2 -2
  86. package/es/line/models/half.js +29 -46
  87. package/es/line/models/half.js.map +1 -1
  88. package/es/line/models/index.d.ts +1 -1
  89. package/es/line/models/index.js +2 -0
  90. package/es/line/models/index.js.map +1 -1
  91. package/es/line/models/line.d.ts +2 -2
  92. package/es/line/models/line.js +16 -28
  93. package/es/line/models/line.js.map +1 -1
  94. package/es/line/models/linearline.d.ts +11 -2
  95. package/es/line/models/linearline.js +24 -14
  96. package/es/line/models/linearline.js.map +1 -1
  97. package/es/line/models/simpleLine.d.ts +2 -3
  98. package/es/line/models/simpleLine.js +18 -66
  99. package/es/line/models/simpleLine.js.map +1 -1
  100. package/es/line/models/tile.d.ts +11 -2
  101. package/es/line/models/tile.js +39 -45
  102. package/es/line/models/tile.js.map +1 -1
  103. package/es/line/models/wall.d.ts +2 -2
  104. package/es/line/models/wall.js +9 -13
  105. package/es/line/models/wall.js.map +1 -1
  106. package/es/mask/index.js +2 -12
  107. package/es/mask/index.js.map +1 -1
  108. package/es/mask/models/fill.d.ts +2 -2
  109. package/es/mask/models/fill.js +27 -53
  110. package/es/mask/models/fill.js.map +1 -1
  111. package/es/plugins/DataMappingPlugin.js +8 -29
  112. package/es/plugins/DataMappingPlugin.js.map +1 -1
  113. package/es/plugins/DataSourcePlugin.js +5 -14
  114. package/es/plugins/DataSourcePlugin.js.map +1 -1
  115. package/es/plugins/LayerModelPlugin.d.ts +0 -2
  116. package/es/plugins/LayerModelPlugin.js +7 -33
  117. package/es/plugins/LayerModelPlugin.js.map +1 -1
  118. package/es/plugins/PixelPickingPlugin.js +13 -16
  119. package/es/plugins/PixelPickingPlugin.js.map +1 -1
  120. package/es/point/index.d.ts +1 -1
  121. package/es/point/index.js +8 -15
  122. package/es/point/index.js.map +1 -1
  123. package/es/point/models/earthExtrude.d.ts +2 -2
  124. package/es/point/models/earthExtrude.js +14 -16
  125. package/es/point/models/earthExtrude.js.map +1 -1
  126. package/es/point/models/earthFill.d.ts +11 -2
  127. package/es/point/models/earthFill.js +22 -13
  128. package/es/point/models/earthFill.js.map +1 -1
  129. package/es/point/models/extrude.d.ts +2 -2
  130. package/es/point/models/extrude.js +27 -49
  131. package/es/point/models/extrude.js.map +1 -1
  132. package/es/point/models/fill.d.ts +2 -2
  133. package/es/point/models/fill.js +41 -59
  134. package/es/point/models/fill.js.map +1 -1
  135. package/es/point/models/fillmage.d.ts +7 -2
  136. package/es/point/models/fillmage.js +22 -13
  137. package/es/point/models/fillmage.js.map +1 -1
  138. package/es/point/models/icon-font.d.ts +11 -0
  139. package/es/point/models/icon-font.js +181 -0
  140. package/es/point/models/icon-font.js.map +1 -0
  141. package/es/point/models/image.d.ts +2 -2
  142. package/es/point/models/image.js +6 -11
  143. package/es/point/models/image.js.map +1 -1
  144. package/es/point/models/index.d.ts +1 -1
  145. package/es/point/models/index.js +2 -0
  146. package/es/point/models/index.js.map +1 -1
  147. package/es/point/models/normal.d.ts +2 -2
  148. package/es/point/models/normal.js +6 -11
  149. package/es/point/models/normal.js.map +1 -1
  150. package/es/point/models/radar.d.ts +11 -2
  151. package/es/point/models/radar.js +22 -13
  152. package/es/point/models/radar.js.map +1 -1
  153. package/es/point/models/simplePoint.d.ts +2 -2
  154. package/es/point/models/simplePoint.js +6 -11
  155. package/es/point/models/simplePoint.js.map +1 -1
  156. package/es/point/models/text.d.ts +2 -3
  157. package/es/point/models/text.js +75 -108
  158. package/es/point/models/text.js.map +1 -1
  159. package/es/point/models/tile.d.ts +11 -2
  160. package/es/point/models/tile.js +25 -22
  161. package/es/point/models/tile.js.map +1 -1
  162. package/es/polygon/index.js +2 -12
  163. package/es/polygon/index.js.map +1 -1
  164. package/es/polygon/models/extrude.d.ts +2 -2
  165. package/es/polygon/models/extrude.js +5 -10
  166. package/es/polygon/models/extrude.js.map +1 -1
  167. package/es/polygon/models/fill.d.ts +2 -2
  168. package/es/polygon/models/fill.js +13 -27
  169. package/es/polygon/models/fill.js.map +1 -1
  170. package/es/polygon/models/ocean.d.ts +2 -2
  171. package/es/polygon/models/ocean.js +6 -12
  172. package/es/polygon/models/ocean.js.map +1 -1
  173. package/es/polygon/models/tile.d.ts +3 -2
  174. package/es/polygon/models/tile.js +27 -17
  175. package/es/polygon/models/tile.js.map +1 -1
  176. package/es/polygon/models/water.d.ts +2 -2
  177. package/es/polygon/models/water.js +6 -12
  178. package/es/polygon/models/water.js.map +1 -1
  179. package/es/raster/image.d.ts +0 -0
  180. package/es/raster/image.js +2 -0
  181. package/es/raster/image.js.map +1 -0
  182. package/es/raster/index.js +2 -12
  183. package/es/raster/index.js.map +1 -1
  184. package/es/raster/models/raster.d.ts +3 -3
  185. package/es/raster/models/raster.js +7 -11
  186. package/es/raster/models/raster.js.map +1 -1
  187. package/es/raster/raster2d.d.ts +27 -0
  188. package/es/raster/raster2d.js +158 -0
  189. package/es/raster/raster2d.js.map +1 -0
  190. package/es/tile/manager/tileLayerManager.js +21 -4
  191. package/es/tile/manager/tileLayerManager.js.map +1 -1
  192. package/es/tile/manager/tilePickerManager.js +0 -1
  193. package/es/tile/manager/tilePickerManager.js.map +1 -1
  194. package/es/tile/tileFactory/base.js.map +1 -1
  195. package/es/tile/tileFactory/point.js.map +1 -1
  196. package/es/tile/tileFactory/rasterDataLayer.js +2 -12
  197. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -1
  198. package/es/tile/tileFactory/vectorLayer.js +2 -12
  199. package/es/tile/tileFactory/vectorLayer.js.map +1 -1
  200. package/es/utils/extrude_polyline.d.ts +0 -15
  201. package/es/utils/extrude_polyline.js +6 -138
  202. package/es/utils/extrude_polyline.js.map +1 -1
  203. package/es/utils/geo.d.ts +12 -0
  204. package/es/utils/geo.js +53 -0
  205. package/es/utils/geo.js.map +1 -0
  206. package/es/utils/simpleLine.d.ts +23 -0
  207. package/es/utils/simpleLine.js +105 -0
  208. package/es/utils/simpleLine.js.map +1 -0
  209. package/es/wind/index.js +2 -12
  210. package/es/wind/index.js.map +1 -1
  211. package/es/wind/models/wind.d.ts +2 -2
  212. package/es/wind/models/wind.js +33 -36
  213. package/es/wind/models/wind.js.map +1 -1
  214. package/lib/Geometry/index.js +2 -12
  215. package/lib/Geometry/index.js.map +1 -1
  216. package/lib/Geometry/models/billboard.js +6 -11
  217. package/lib/Geometry/models/billboard.js.map +1 -1
  218. package/lib/Geometry/models/plane.js +7 -12
  219. package/lib/Geometry/models/plane.js.map +1 -1
  220. package/lib/Geometry/models/sprite.js +6 -11
  221. package/lib/Geometry/models/sprite.js.map +1 -1
  222. package/lib/canvas/index.js +2 -12
  223. package/lib/canvas/index.js.map +1 -1
  224. package/lib/citybuliding/building.js +2 -12
  225. package/lib/citybuliding/building.js.map +1 -1
  226. package/lib/citybuliding/models/build.js +3 -16
  227. package/lib/citybuliding/models/build.js.map +1 -1
  228. package/lib/core/BaseLayer.js +57 -96
  229. package/lib/core/BaseLayer.js.map +1 -1
  230. package/lib/core/BaseModel.js +2 -2
  231. package/lib/core/BaseModel.js.map +1 -1
  232. package/lib/core/interface.js.map +1 -1
  233. package/lib/core/triangulation.js +16 -40
  234. package/lib/core/triangulation.js.map +1 -1
  235. package/lib/earth/index.js +2 -8
  236. package/lib/earth/index.js.map +1 -1
  237. package/lib/earth/models/atmosphere.js +6 -11
  238. package/lib/earth/models/atmosphere.js.map +1 -1
  239. package/lib/earth/models/base.js +6 -11
  240. package/lib/earth/models/base.js.map +1 -1
  241. package/lib/earth/models/bloomsphere.js +6 -11
  242. package/lib/earth/models/bloomsphere.js.map +1 -1
  243. package/lib/heatmap/index.js +5 -17
  244. package/lib/heatmap/index.js.map +1 -1
  245. package/lib/heatmap/models/grid.js +8 -12
  246. package/lib/heatmap/models/grid.js.map +1 -1
  247. package/lib/heatmap/models/grid3d.js +6 -12
  248. package/lib/heatmap/models/grid3d.js.map +1 -1
  249. package/lib/heatmap/models/heatmap.js +62 -113
  250. package/lib/heatmap/models/heatmap.js.map +1 -1
  251. package/lib/heatmap/models/hexagon.js +6 -11
  252. package/lib/heatmap/models/hexagon.js.map +1 -1
  253. package/lib/image/index.js +16 -14
  254. package/lib/image/index.js.map +1 -1
  255. package/lib/image/models/dataImage.js +245 -0
  256. package/lib/image/models/dataImage.js.map +1 -0
  257. package/lib/image/models/image.js +14 -11
  258. package/lib/image/models/image.js.map +1 -1
  259. package/lib/image/models/index.js +4 -1
  260. package/lib/image/models/index.js.map +1 -1
  261. package/lib/line/index.js +5 -12
  262. package/lib/line/index.js.map +1 -1
  263. package/lib/line/models/arc.js +10 -15
  264. package/lib/line/models/arc.js.map +1 -1
  265. package/lib/line/models/arc_3d.js +8 -13
  266. package/lib/line/models/arc_3d.js.map +1 -1
  267. package/lib/line/models/arcmini.js +161 -0
  268. package/lib/line/models/arcmini.js.map +1 -0
  269. package/lib/line/models/earthArc_3d.js +9 -17
  270. package/lib/line/models/earthArc_3d.js.map +1 -1
  271. package/lib/line/models/great_circle.js +8 -13
  272. package/lib/line/models/great_circle.js.map +1 -1
  273. package/lib/line/models/half.js +29 -48
  274. package/lib/line/models/half.js.map +1 -1
  275. package/lib/line/models/index.js +3 -0
  276. package/lib/line/models/index.js.map +1 -1
  277. package/lib/line/models/line.js +18 -29
  278. package/lib/line/models/line.js.map +1 -1
  279. package/lib/line/models/linearline.js +24 -14
  280. package/lib/line/models/linearline.js.map +1 -1
  281. package/lib/line/models/simpleLine.js +18 -66
  282. package/lib/line/models/simpleLine.js.map +1 -1
  283. package/lib/line/models/tile.js +39 -47
  284. package/lib/line/models/tile.js.map +1 -1
  285. package/lib/line/models/wall.js +9 -13
  286. package/lib/line/models/wall.js.map +1 -1
  287. package/lib/mask/index.js +2 -12
  288. package/lib/mask/index.js.map +1 -1
  289. package/lib/mask/models/fill.js +27 -55
  290. package/lib/mask/models/fill.js.map +1 -1
  291. package/lib/plugins/DataMappingPlugin.js +8 -29
  292. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  293. package/lib/plugins/DataSourcePlugin.js +4 -13
  294. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  295. package/lib/plugins/LayerModelPlugin.js +7 -33
  296. package/lib/plugins/LayerModelPlugin.js.map +1 -1
  297. package/lib/plugins/PixelPickingPlugin.js +13 -16
  298. package/lib/plugins/PixelPickingPlugin.js.map +1 -1
  299. package/lib/point/index.js +8 -15
  300. package/lib/point/index.js.map +1 -1
  301. package/lib/point/models/earthExtrude.js +15 -16
  302. package/lib/point/models/earthExtrude.js.map +1 -1
  303. package/lib/point/models/earthFill.js +22 -13
  304. package/lib/point/models/earthFill.js.map +1 -1
  305. package/lib/point/models/extrude.js +28 -51
  306. package/lib/point/models/extrude.js.map +1 -1
  307. package/lib/point/models/fill.js +42 -61
  308. package/lib/point/models/fill.js.map +1 -1
  309. package/lib/point/models/fillmage.js +22 -13
  310. package/lib/point/models/fillmage.js.map +1 -1
  311. package/lib/point/models/icon-font.js +196 -0
  312. package/lib/point/models/icon-font.js.map +1 -0
  313. package/lib/point/models/image.js +6 -11
  314. package/lib/point/models/image.js.map +1 -1
  315. package/lib/point/models/index.js +3 -0
  316. package/lib/point/models/index.js.map +1 -1
  317. package/lib/point/models/normal.js +6 -11
  318. package/lib/point/models/normal.js.map +1 -1
  319. package/lib/point/models/radar.js +22 -13
  320. package/lib/point/models/radar.js.map +1 -1
  321. package/lib/point/models/simplePoint.js +6 -11
  322. package/lib/point/models/simplePoint.js.map +1 -1
  323. package/lib/point/models/text.js +78 -110
  324. package/lib/point/models/text.js.map +1 -1
  325. package/lib/point/models/tile.js +25 -22
  326. package/lib/point/models/tile.js.map +1 -1
  327. package/lib/polygon/index.js +2 -12
  328. package/lib/polygon/index.js.map +1 -1
  329. package/lib/polygon/models/extrude.js +5 -10
  330. package/lib/polygon/models/extrude.js.map +1 -1
  331. package/lib/polygon/models/fill.js +11 -25
  332. package/lib/polygon/models/fill.js.map +1 -1
  333. package/lib/polygon/models/ocean.js +6 -12
  334. package/lib/polygon/models/ocean.js.map +1 -1
  335. package/lib/polygon/models/tile.js +27 -17
  336. package/lib/polygon/models/tile.js.map +1 -1
  337. package/lib/polygon/models/water.js +6 -12
  338. package/lib/polygon/models/water.js.map +1 -1
  339. package/lib/raster/image.js +2 -0
  340. package/lib/raster/image.js.map +1 -0
  341. package/lib/raster/index.js +2 -12
  342. package/lib/raster/index.js.map +1 -1
  343. package/lib/raster/models/raster.js +7 -11
  344. package/lib/raster/models/raster.js.map +1 -1
  345. package/lib/raster/raster2d.js +172 -0
  346. package/lib/raster/raster2d.js.map +1 -0
  347. package/lib/tile/manager/tileLayerManager.js +21 -4
  348. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  349. package/lib/tile/manager/tilePickerManager.js +0 -1
  350. package/lib/tile/manager/tilePickerManager.js.map +1 -1
  351. package/lib/tile/tileFactory/base.js.map +1 -1
  352. package/lib/tile/tileFactory/point.js.map +1 -1
  353. package/lib/tile/tileFactory/rasterDataLayer.js +2 -12
  354. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -1
  355. package/lib/tile/tileFactory/vectorLayer.js +2 -12
  356. package/lib/tile/tileFactory/vectorLayer.js.map +1 -1
  357. package/lib/utils/extrude_polyline.js +6 -140
  358. package/lib/utils/extrude_polyline.js.map +1 -1
  359. package/lib/utils/geo.js +65 -0
  360. package/lib/utils/geo.js.map +1 -0
  361. package/lib/utils/simpleLine.js +117 -0
  362. package/lib/utils/simpleLine.js.map +1 -0
  363. package/lib/wind/index.js +2 -12
  364. package/lib/wind/index.js.map +1 -1
  365. package/lib/wind/models/wind.js +33 -36
  366. package/lib/wind/models/wind.js.map +1 -1
  367. package/package.json +8 -9
@@ -37,24 +37,14 @@ var GeometryLayer = function (_BaseLayer) {
37
37
  _createClass(GeometryLayer, [{
38
38
  key: "buildModels",
39
39
  value: function buildModels() {
40
- var _this2 = this;
41
-
42
40
  var modelType = this.getModelType();
43
41
  this.layerModel = new GeometryModels[modelType](this);
44
- this.layerModel.initModels(function (models) {
45
- _this2.models = models;
46
-
47
- _this2.renderLayers();
48
- });
42
+ this.models = this.layerModel.initModels();
49
43
  }
50
44
  }, {
51
45
  key: "rebuildModels",
52
46
  value: function rebuildModels() {
53
- var _this3 = this;
54
-
55
- this.layerModel.buildModels(function (models) {
56
- return _this3.models = models;
57
- });
47
+ this.models = this.layerModel.buildModels();
58
48
  }
59
49
  }, {
60
50
  key: "getConfigSchema",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Geometry/index.ts"],"names":["BaseLayer","GeometryModels","GeometryLayer","modelType","getModelType","layerModel","initModels","models","renderLayers","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","plane","sprite","billboard","shapeAttribute","styleAttributeService","getLayerStyleAttribute","shape","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,cAAP,MAAkD,UAAlD;;IAEqBC,a;;;;;;;;;;;;;;;;2DAGG,e;;;;;;;WACtB,uBAAqB;AAAA;;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,cAAc,CAACE,SAAD,CAAlB,CAA8B,IAA9B,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;;;WACD,yBAAuB;AAAA;;AACrB,WAAKH,UAAL,CAAgBI,WAAhB,CAA4B,UAACF,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WAED,2BAA4B;AAC1B,aAAO;AACLG,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;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKR,YAAL,EAAb;AACA,UAAMW,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE,EADa;AAEpBC,QAAAA,MAAM,EAAE,EAFY;AAGpBC,QAAAA,SAAS,EAAE;AAHS,OAAtB;AAKA,aAAOH,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA4C;AAAA;;AAC1C,UAAMO,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAMC,KAAK,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,KAAnB,0DAAG,sBAAuBC,KAArC;;AACA,UAAIF,KAAK,KAAK,OAAd,EAAuB;AACrB,eAAO,OAAP;AACD,OAFD,MAEO,IAAIA,KAAK,KAAK,QAAd,EAAwB;AAC7B,eAAO,QAAP;AACD,OAFM,MAEA,IAAIA,KAAK,KAAK,WAAd,EAA2B;AAChC,eAAO,WAAP;AACD,OAFM,MAEA;AACL,eAAO,OAAP;AACD;AACF;;;;EAnDwCtB,S;;SAAtBE,a","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IGeometryLayerStyleOptions } from '../core/interface';\nimport GeometryModels, { GeometryModelType } from './models';\n\nexport default class GeometryLayer extends BaseLayer<\n IGeometryLayerStyleOptions\n> {\n public type: string = 'GeometryLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new GeometryModels[modelType](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\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n plane: {},\n sprite: {},\n billboard: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): GeometryModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as GeometryModelType;\n if (shape === 'plane') {\n return 'plane';\n } else if (shape === 'sprite') {\n return 'sprite';\n } else if (shape === 'billboard') {\n return 'billboard';\n } else {\n return 'plane';\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/Geometry/index.ts"],"names":["BaseLayer","GeometryModels","GeometryLayer","modelType","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","plane","sprite","billboard","shapeAttribute","styleAttributeService","getLayerStyleAttribute","shape","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,cAAP,MAAkD,UAAlD;;IAEqBC,a;;;;;;;;;;;;;;;;2DAGG,e;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,cAAc,CAACE,SAAD,CAAlB,CAA8B,IAA9B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;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;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE,EADa;AAEpBC,QAAAA,MAAM,EAAE,EAFY;AAGpBC,QAAAA,SAAS,EAAE;AAHS,OAAtB;AAKA,aAAOH,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA4C;AAAA;;AAC1C,UAAMO,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAMC,KAAK,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,KAAnB,0DAAG,sBAAuBC,KAArC;;AACA,UAAIF,KAAK,KAAK,OAAd,EAAuB;AACrB,eAAO,OAAP;AACD,OAFD,MAEO,IAAIA,KAAK,KAAK,QAAd,EAAwB;AAC7B,eAAO,QAAP;AACD,OAFM,MAEA,IAAIA,KAAK,KAAK,WAAd,EAA2B;AAChC,eAAO,WAAP;AACD,OAFM,MAEA;AACL,eAAO,OAAP;AACD;AACF;;;;EAhDwCrB,S;;SAAtBE,a","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IGeometryLayerStyleOptions } from '../core/interface';\nimport GeometryModels, { GeometryModelType } from './models';\n\nexport default class GeometryLayer extends BaseLayer<\n IGeometryLayerStyleOptions\n> {\n public type: string = 'GeometryLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new GeometryModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\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 protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n plane: {},\n sprite: {},\n billboard: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): GeometryModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as GeometryModelType;\n if (shape === 'plane') {\n return 'plane';\n } else if (shape === 'sprite') {\n return 'sprite';\n } else if (shape === 'billboard') {\n return 'billboard';\n } else {\n return 'plane';\n }\n }\n}\n"],"file":"index.js"}
@@ -1,4 +1,4 @@
1
- import { IModel, IModelUniform, ITexture2D } from '@antv/l7-core';
1
+ import { IModelUniform, ITexture2D } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class BillBoardModel extends BaseModel {
4
4
  protected texture: ITexture2D;
@@ -10,8 +10,8 @@ export default class BillBoardModel extends BaseModel {
10
10
  };
11
11
  getUninforms(): IModelUniform;
12
12
  clearModels(): void;
13
- initModels(callbackModel: (models: IModel[]) => void): void;
14
- buildModels(callbackModel: (models: IModel[]) => void): void;
13
+ initModels(): import("@antv/l7-core").IModel[];
14
+ buildModels(): import("@antv/l7-core").IModel[];
15
15
  updateTexture(drawCanvas: (canvas: HTMLCanvasElement) => void): void;
16
16
  protected getConfigSchema(): {
17
17
  properties: {
@@ -88,7 +88,7 @@ var BillBoardModel = function (_BaseModel) {
88
88
  }
89
89
  }, {
90
90
  key: "initModels",
91
- value: function initModels(callbackModel) {
91
+ value: function initModels() {
92
92
  var _ref3 = this.layer.getLayerConfig(),
93
93
  _ref3$mask = _ref3.mask,
94
94
  mask = _ref3$mask === void 0 ? false : _ref3$mask,
@@ -106,8 +106,8 @@ var BillBoardModel = function (_BaseModel) {
106
106
  this.updateTexture(drawCanvas);
107
107
  }
108
108
 
109
- this.layer.buildLayerModel({
110
- moduleName: 'geometryBillboard',
109
+ return [this.layer.buildLayerModel({
110
+ moduleName: 'geometry_billboard',
111
111
  vertexShader: planeVert,
112
112
  fragmentShader: planeFrag,
113
113
  triangulation: this.planeGeometryTriangulation,
@@ -117,17 +117,12 @@ var BillBoardModel = function (_BaseModel) {
117
117
  },
118
118
  blend: this.getBlend(),
119
119
  stencil: getMask(mask, maskInside)
120
- }).then(function (model) {
121
- callbackModel([model]);
122
- }).catch(function (err) {
123
- console.warn(err);
124
- callbackModel([]);
125
- });
120
+ })];
126
121
  }
127
122
  }, {
128
123
  key: "buildModels",
129
- value: function buildModels(callbackModel) {
130
- this.initModels(callbackModel);
124
+ value: function buildModels() {
125
+ return this.initModels();
131
126
  }
132
127
  }, {
133
128
  key: "updateTexture",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Geometry/models/billboard.ts"],"names":["AttributeType","gl","getMask","BaseModel","BillBoardModel","layer","getLayerConfig","center","size","indices","vertices","opacity","width","height","raisingHeight","rotateFlag","mapService","version","radian","Math","PI","getRotation","u_raisingHeight","Number","u_RotateMatrix","Float32Array","cos","sin","u_opacity","u_texture","texture","u_size","destroy","callbackModel","mask","maskInside","drawCanvas","createTexture2D","rendererService","updateTexture","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","initModels","canvasWidth","canvasHeight","canvas","document","createElement","ctx","getContext","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","update","feature","featureIdx","vertex","attributeIdx","extrude","extrudeIndex"],"mappings":";;;;;;;;;;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAQO,eARP;AASA,SAASC,OAAT,QAAwB,gBAAxB;AACA,OAAOC,SAAP,MAAsB,sBAAtB;;;;IAKqBC,c;;;;;;;;;;;;;;;;;;6DAEM,C;;iFAEW,YAAM;AACxC,iBAEI,MAAKC,KAAL,CAAWC,cAAX,EAFJ;AAAA,6BACEC,MADF;AAAA,UACEA,MADF,4BACW,CAAC,GAAD,EAAM,EAAN,CADX;;AAGA,aAAO;AACLC,QAAAA,IAAI,EAAE,CADD;AAELC,QAAAA,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAFJ;AAGLC,QAAAA,QAAQ,+BACHH,MADG,GAEH,CAAC,CAAD,EAAI,CAAJ,CAFG,qBAGHA,MAHG,GAIH,CAAC,CAAD,EAAI,CAAJ,CAJG,qBAKHA,MALG,GAMH,CAAC,CAAD,EAAI,CAAJ,CANG,qBAOHA,MAPG,GAQH,CAAC,CAAD,EAAI,CAAJ,CARG;AAHH,OAAP;AAcD,K;;;;;;;WAED,wBAAqC;AACnC,kBAKI,KAAKF,KAAL,CAAWC,cAAX,EALJ;AAAA,UACEK,OADF,SACEA,OADF;AAAA,8BAEEC,KAFF;AAAA,UAEEA,KAFF,4BAEU,CAFV;AAAA,+BAGEC,MAHF;AAAA,UAGEA,MAHF,6BAGW,CAHX;AAAA,sCAIEC,aAJF;AAAA,UAIEA,aAJF,oCAIkB,CAJlB;;AAcA,UAAIC,UAAU,GAAG,CAAjB;;AACA,UACE,KAAKC,UAAL,CAAgBC,OAAhB,KAA4B,UAA5B,IACA,KAAKD,UAAL,CAAgBC,OAAhB,KAA4B,UAF9B,EAGE;AACAF,QAAAA,UAAU,GAAG,CAAC,CAAd;AACD;;AAED,WAAKG,MAAL,GACGH,UAAU,GAAGI,IAAI,CAACC,EAAlB,IAAwB,KAAKJ,UAAL,CAAgBK,WAAhB,KAAgC,GAAxD,CAAD,GAAiE,GADnE;AAGA,aAAO;AACLC,QAAAA,eAAe,EAAEC,MAAM,CAACT,aAAD,CADlB;AAELU,QAAAA,cAAc,EAAE,IAAIC,YAAJ,CAAiB,CAE/BN,IAAI,CAACO,GAAL,CAAS,KAAKR,MAAd,CAF+B,EAG/BC,IAAI,CAACQ,GAAL,CAAS,KAAKT,MAAd,CAH+B,EAI/B,CAACC,IAAI,CAACQ,GAAL,CAAS,KAAKT,MAAd,CAJ8B,EAK/BC,IAAI,CAACO,GAAL,CAAS,KAAKR,MAAd,CAL+B,CAAjB,CAFX;AASLU,QAAAA,SAAS,EAAEjB,OAAO,IAAI,CATjB;AAULkB,QAAAA,SAAS,EAAE,KAAKC,OAVX;AAWLC,QAAAA,MAAM,EAAE,CAACnB,KAAD,EAAQC,MAAR;AAXH,OAAP;AAaD;;;WAED,uBAA2B;AAAA;;AACzB,4BAAKiB,OAAL,gEAAcE,OAAd;AACD;;;WAED,oBAAkBC,aAAlB,EAA6D;AAC3D,kBAII,KAAK5B,KAAL,CAAWC,cAAX,EAJJ;AAAA,6BACE4B,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;AAAA,UAGEC,UAHF,SAGEA,UAHF;;AAMA,UAAQC,eAAR,GAA4B,KAAKC,eAAjC,CAAQD,eAAR;AACA,WAAKP,OAAL,GAAeO,eAAe,CAAC;AAC7BxB,QAAAA,MAAM,EAAE,CADqB;AAE7BD,QAAAA,KAAK,EAAE;AAFsB,OAAD,CAA9B;;AAKA,UAAIwB,UAAJ,EAAgB;AACd,aAAKG,aAAL,CAAmBH,UAAnB;AACD;;AAED,WAAK/B,KAAL,CACGmC,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,mBADG;AAEfC,QAAAA,YAAY,EAAEC,SAFC;AAGfC,QAAAA,cAAc,EAAEC,SAHD;AAIfC,QAAAA,aAAa,EAAE,KAAKC,0BAJL;AAKfC,QAAAA,SAAS,EAAE/C,EAAE,CAACgD,SALC;AAMfC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SANQ;AAOfC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EAPQ;AAQfC,QAAAA,OAAO,EAAEpD,OAAO,CAACgC,IAAD,EAAOC,UAAP;AARD,OADnB,EAWGoB,IAXH,CAWQ,UAACC,KAAD,EAAW;AACfvB,QAAAA,aAAa,CAAC,CAACuB,KAAD,CAAD,CAAb;AACD,OAbH,EAcGC,KAdH,CAcS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACAzB,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OAjBH;AAkBD;;;WAED,qBAAmBA,aAAnB,EAA8D;AAC5D,WAAK4B,UAAL,CAAgB5B,aAAhB;AACD;;;WAED,uBAAqBG,UAArB,EAA4E;AAC1E,UAAQC,eAAR,GAA4B,KAAKC,eAAjC,CAAQD,eAAR;;AAEA,kBAGI,KAAKhC,KAAL,CAAWC,cAAX,EAHJ;AAAA,oCACEwD,WADF;AAAA,UACEA,WADF,kCACgB,CADhB;AAAA,qCAEEC,YAFF;AAAA,UAEEA,YAFF,mCAEiB,CAFjB;;AAIA,UAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACAF,MAAAA,MAAM,CAACpD,KAAP,GAAekD,WAAf;AACAE,MAAAA,MAAM,CAACnD,MAAP,GAAgBkD,YAAhB;AACA,UAAMI,GAAG,GAAGH,MAAM,CAACI,UAAP,CAAkB,IAAlB,CAAZ;;AACA,UAAID,GAAJ,EAAS;AACP/B,QAAAA,UAAU,CAAC4B,MAAD,CAAV;AACA,aAAKlC,OAAL,GAAeO,eAAe,CAAC;AAC7BgC,UAAAA,IAAI,EAAEL,MADuB;AAE7BpD,UAAAA,KAAK,EAAEoD,MAAM,CAACpD,KAFe;AAG7BC,UAAAA,MAAM,EAAEmD,MAAM,CAACnD,MAHc;AAI7ByD,UAAAA,KAAK,EAAErE,EAAE,CAACsE,aAJmB;AAK7BC,UAAAA,KAAK,EAAEvE,EAAE,CAACsE;AALmB,SAAD,CAA9B;AAOA,aAAKE,YAAL,CAAkBC,qBAAlB;AACA,aAAKD,YAAL,CAAkBE,YAAlB;AACD;AACF;;;WAED,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVjE,UAAAA,OAAO,EAAE;AACPkE,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,qCAAsC;AACpC,WAAKC,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,SAD0C;AAEhDL,QAAAA,IAAI,EAAE7E,aAAa,CAACmF,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,WADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAErF,EAAE,CAACsF,YAFJ;AAGNlB,YAAAA,IAAI,EAAE,EAHA;AAINQ,YAAAA,IAAI,EAAE5E,EAAE,CAACuF;AAJH,WAFE;AAQVhF,UAAAA,IAAI,EAAE,CARI;AASViF,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gBAAMC,OAAO,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAC,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAAC,CAArB,EAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC,CAAC,CAAnC,EAAsC,CAAtC,CAAhB;AACA,gBAAMC,YAAY,GAAIF,YAAY,GAAG,CAAhB,GAAqB,CAA1C;AACA,mBAAO,CACLC,OAAO,CAACC,YAAD,CADF,EAELD,OAAO,CAACC,YAAY,GAAG,CAAhB,CAFF,EAGLD,OAAO,CAACC,YAAY,GAAG,CAAhB,CAHF,CAAP;AAKD;AAtBS;AAHoC,OAAlD;AA6BA,WAAKf,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,IAD0C;AAEhDL,QAAAA,IAAI,EAAE7E,aAAa,CAACmF,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,MADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAErF,EAAE,CAACsF,YAFJ;AAGNlB,YAAAA,IAAI,EAAE,EAHA;AAINQ,YAAAA,IAAI,EAAE5E,EAAE,CAACuF;AAJH,WAFE;AAQVhF,UAAAA,IAAI,EAAE,CARI;AASViF,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;;;;EAvMyCzF,S;;SAAvBC,c","sourcesContent":["import {\n AttributeType,\n gl,\n IAttrubuteAndElements,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/billboard_frag.glsl';\nimport planeVert from '../shaders/billboard_vert.glsl';\n\nexport default class BillBoardModel extends BaseModel {\n protected texture: ITexture2D;\n private radian: number = 0; // 旋转的弧度\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n return {\n size: 4,\n indices: [0, 1, 2, 2, 3, 0],\n vertices: [\n ...center,\n ...[1, 1],\n ...center,\n ...[0, 1],\n ...center,\n ...[0, 0],\n ...center,\n ...[1, 0],\n ],\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n width = 1,\n height = 1,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n /**\n * rotateFlag\n * L7MAP 1\n * MAPBOX 1\n * GAODE2.x -1\n * GAODE1.x -1\n */\n let rotateFlag = 1;\n if (\n this.mapService.version === 'GAODE2.x' ||\n this.mapService.version === 'GAODE1.x'\n ) {\n rotateFlag = -1;\n }\n // 控制图标的旋转角度(绕 Z 轴旋转)\n this.radian =\n (rotateFlag * Math.PI * (this.mapService.getRotation() % 360)) / 180;\n\n return {\n u_raisingHeight: Number(raisingHeight),\n u_RotateMatrix: new Float32Array([\n // z\n Math.cos(this.radian),\n Math.sin(this.radian),\n -Math.sin(this.radian),\n Math.cos(this.radian),\n ]),\n u_opacity: opacity || 1,\n u_texture: this.texture,\n u_size: [width, height],\n };\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n drawCanvas,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n if (drawCanvas) {\n this.updateTexture(drawCanvas);\n }\n\n this.layer\n .buildLayerModel({\n moduleName: 'geometryBillboard',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: true },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n public updateTexture(drawCanvas: (canvas: HTMLCanvasElement) => void): void {\n const { createTexture2D } = this.rendererService;\n\n const {\n canvasWidth = 1,\n canvasHeight = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const canvas = document.createElement('canvas');\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n drawCanvas(canvas);\n this.texture = createTexture2D({\n data: canvas,\n width: canvas.width,\n height: canvas.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\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 registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[2], vertex[3]];\n },\n },\n });\n }\n}\n"],"file":"billboard.js"}
1
+ {"version":3,"sources":["../../../src/Geometry/models/billboard.ts"],"names":["AttributeType","gl","getMask","BaseModel","BillBoardModel","layer","getLayerConfig","center","size","indices","vertices","opacity","width","height","raisingHeight","rotateFlag","mapService","version","radian","Math","PI","getRotation","u_raisingHeight","Number","u_RotateMatrix","Float32Array","cos","sin","u_opacity","u_texture","texture","u_size","destroy","mask","maskInside","drawCanvas","createTexture2D","rendererService","updateTexture","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","canvasWidth","canvasHeight","canvas","document","createElement","ctx","getContext","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","update","feature","featureIdx","vertex","attributeIdx","extrude","extrudeIndex"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttrubuteAndElements,\n IEncodeFeature,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, isMini } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/billboard_frag.glsl';\nimport planeVert from '../shaders/billboard_vert.glsl';\n\nexport default class BillBoardModel extends BaseModel {\n protected texture: ITexture2D;\n private radian: number = 0; // 旋转的弧度\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n return {\n size: 4,\n indices: [0, 1, 2, 2, 3, 0],\n vertices: [\n ...center,\n ...[1, 1],\n ...center,\n ...[0, 1],\n ...center,\n ...[0, 0],\n ...center,\n ...[1, 0],\n ],\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n width = 1,\n height = 1,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n /**\n * rotateFlag\n * L7MAP 1\n * MAPBOX 1\n * GAODE2.x -1\n * GAODE1.x -1\n */\n let rotateFlag = 1;\n if (\n this.mapService.version === 'GAODE2.x' ||\n this.mapService.version === 'GAODE1.x'\n ) {\n rotateFlag = -1;\n }\n // 控制图标的旋转角度(绕 Z 轴旋转)\n this.radian =\n (rotateFlag * Math.PI * (this.mapService.getRotation() % 360)) / 180;\n\n return {\n u_raisingHeight: Number(raisingHeight),\n u_RotateMatrix: new Float32Array([\n // z\n Math.cos(this.radian),\n Math.sin(this.radian),\n -Math.sin(this.radian),\n Math.cos(this.radian),\n ]),\n u_opacity: opacity || 1,\n u_texture: this.texture,\n u_size: [width, height],\n };\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n }\n\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n drawCanvas,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n if (drawCanvas) {\n this.updateTexture(drawCanvas);\n }\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_billboard',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: true },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public updateTexture(drawCanvas: (canvas: HTMLCanvasElement) => void): void {\n const { createTexture2D } = this.rendererService;\n\n const {\n canvasWidth = 1,\n canvasHeight = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const canvas = document.createElement('canvas');\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n drawCanvas(canvas);\n this.texture = createTexture2D({\n data: canvas,\n width: canvas.width,\n height: canvas.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\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 registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[2], vertex[3]];\n },\n },\n });\n }\n}\n"],"file":"billboard.js"}
@@ -1,4 +1,4 @@
1
- import { IModel, IModelUniform, ITexture2D } from '@antv/l7-core';
1
+ import { IModelUniform, ITexture2D } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class PlaneModel extends BaseModel {
4
4
  protected texture: ITexture2D;
@@ -16,8 +16,8 @@ export default class PlaneModel extends BaseModel {
16
16
  };
17
17
  getUninforms(): IModelUniform;
18
18
  clearModels(): void;
19
- initModels(callbackModel: (models: IModel[]) => void): void;
20
- buildModels(callbackModel: (models: IModel[]) => void): void;
19
+ initModels(): import("@antv/l7-core").IModel[];
20
+ buildModels(): import("@antv/l7-core").IModel[];
21
21
  createModelData(options?: any): {
22
22
  attributes: {
23
23
  [attributeName: string]: import("@antv/l7-core").IAttribute;
@@ -172,7 +172,7 @@ var PlaneModel = function (_BaseModel) {
172
172
  }
173
173
  }, {
174
174
  key: "initModels",
175
- value: function initModels(callbackModel) {
175
+ value: function initModels() {
176
176
  var _ref5 = this.layer.getLayerConfig(),
177
177
  _ref5$mask = _ref5.mask,
178
178
  mask = _ref5$mask === void 0 ? false : _ref5$mask,
@@ -187,8 +187,8 @@ var PlaneModel = function (_BaseModel) {
187
187
  width: 0
188
188
  });
189
189
  this.updateTexture(mapTexture);
190
- this.layer.buildLayerModel({
191
- moduleName: 'geometryPlane',
190
+ return [this.layer.buildLayerModel({
191
+ moduleName: 'geometry_plane',
192
192
  vertexShader: planeVert,
193
193
  fragmentShader: planeFrag,
194
194
  triangulation: this.planeGeometryTriangulation,
@@ -196,23 +196,18 @@ var PlaneModel = function (_BaseModel) {
196
196
  depth: {
197
197
  enable: true
198
198
  },
199
- stencil: getMask(mask, maskInside),
200
199
  blend: this.getBlend(),
200
+ stencil: getMask(mask, maskInside),
201
201
  cull: {
202
202
  enable: true,
203
203
  face: gl.BACK
204
204
  }
205
- }).then(function (model) {
206
- callbackModel([model]);
207
- }).catch(function (err) {
208
- console.warn(err);
209
- callbackModel([]);
210
- });
205
+ })];
211
206
  }
212
207
  }, {
213
208
  key: "buildModels",
214
- value: function buildModels(callbackModel) {
215
- this.initModels(callbackModel);
209
+ value: function buildModels() {
210
+ return this.initModels();
216
211
  }
217
212
  }, {
218
213
  key: "createModelData",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Geometry/models/plane.ts"],"names":["AttributeType","gl","Version","getMask","BaseModel","PlaneModel","layer","getLayerConfig","width","height","widthSegments","heightSegments","center","terrainTexture","initPlane","indices","positions","loadTerrainTexture","vertices","size","lng","lat","widthHalf","heightHalf","gridX","Math","floor","gridY","gridX1","gridY1","segmentWidth","segmentHeight","iy","y","ix","x","mapService","version","lngLatToCoord","a","b","push","c","d","opacity","mapTexture","terrainClipHeight","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_terrainClipHeight","u_texture","terrainImage","callbackModel","mask","maskInside","createTexture2D","rendererService","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","TRIANGLES","depth","enable","stencil","blend","getBlend","cull","face","BACK","then","model","catch","err","console","warn","initModels","options","oldwidthSegments","oldheightSegments","oldwidth","oldheight","style","undefined","oldFeatures","getEncodedData","res","styleAttributeService","createAttributesAndIndices","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","src","canvas","document","createElement","ctx","getContext","drawImage","imageData","getImageData","image","rgb2height","imgWidth","imgHeight","widthStep","heihgtStep","imgIndexY","imgLen","imgIndexX","imgDataIndex","r","g","z","modelData","updateModelData","terrainImageLoaded","translateVertex","setTimeout","emit","properties","type","minimum","maximum","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttrubuteAndElements,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { getMask } from '@antv/l7-utils';\n// import { mat4, vec3 } from 'gl-matrix';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/plane_frag.glsl';\nimport planeVert from '../shaders/plane_vert.glsl';\n\nexport default class PlaneModel extends BaseModel {\n protected texture: ITexture2D;\n protected terrainImage: HTMLImageElement;\n protected terrainImageLoaded: boolean = false;\n protected mapTexture: string | undefined;\n\n public initPlane(\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n lng = 120,\n lat = 30,\n ) {\n // https://github.com/mrdoob/three.js/blob/dev/src/geometries/PlaneGeometry.js\n const widthHalf = width / 2;\n const heightHalf = height / 2;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const segmentWidth = width / gridX;\n const segmentHeight = height / gridY;\n\n const indices = [];\n const positions = [];\n\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy * segmentHeight - heightHalf;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix * segmentWidth - widthHalf;\n if (this.mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = this.mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n positions.push(a, b, 0);\n } else {\n positions.push(x + lng, -y + lat, 0);\n }\n\n positions.push(ix / gridX);\n positions.push(1 - iy / gridY);\n }\n }\n\n for (let iy = 0; iy < gridY; iy++) {\n for (let ix = 0; ix < gridX; ix++) {\n const a = ix + gridX1 * iy;\n const b = ix + gridX1 * (iy + 1);\n const c = ix + 1 + gridX1 * (iy + 1);\n const d = ix + 1 + gridX1 * iy;\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryTriangulation = () => {\n const {\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n center = [120, 30],\n terrainTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const { indices, positions } = this.initPlane(\n width,\n height,\n widthSegments,\n heightSegments,\n ...center,\n );\n if (terrainTexture) {\n // 存在地形贴图的时候会根据地形贴图对顶点进行偏移\n this.loadTerrainTexture(positions, indices);\n }\n\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n terrainClipHeight = 0,\n terrainTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_terrainClipHeight: terrainTexture ? terrainClipHeight : -1,\n u_texture: this.texture,\n };\n }\n\n public clearModels(): void {\n // @ts-ignore\n this.terrainImage = null;\n this.texture?.destroy();\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n mapTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n this.layer\n .buildLayerModel({\n moduleName: 'geometryPlane',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: true },\n stencil: getMask(mask, maskInside),\n blend: this.getBlend(),\n cull: {\n enable: true,\n face: gl.BACK, // gl.FRONT | gl.BACK;\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n public createModelData(options?: any) {\n if (options) {\n const {\n widthSegments: oldwidthSegments,\n heightSegments: oldheightSegments,\n width: oldwidth,\n height: oldheight,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const {\n widthSegments,\n heightSegments,\n width,\n height,\n } = options as IGeometryLayerStyleOptions;\n this.layer.style({\n widthSegments:\n widthSegments !== undefined ? widthSegments : oldwidthSegments,\n heightSegments:\n heightSegments !== undefined ? heightSegments : oldheightSegments,\n width: width !== undefined ? width : oldwidth,\n height: height !== undefined ? height : oldheight,\n });\n }\n const oldFeatures = this.layer.getEncodedData();\n const res = this.styleAttributeService.createAttributesAndIndices(\n oldFeatures,\n this.planeGeometryTriangulation,\n );\n return res;\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\n }\n }\n\n protected getImageData(img: HTMLImageElement) {\n const canvas: HTMLCanvasElement = document.createElement('canvas');\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n const { width, height } = img;\n canvas.width = width;\n canvas.height = height;\n\n ctx.drawImage(img, 0, 0, width, height);\n const imageData = ctx.getImageData(0, 0, width, height);\n\n return imageData;\n }\n\n protected translateVertex(\n positions: number[],\n indices: number[],\n image: HTMLImageElement,\n widthSegments: number,\n heightSegments: number,\n rgb2height: (r: number, g: number, b: number) => number,\n ) {\n const imgWidth = image.width;\n const imgHeight = image.height;\n const imageData = this.getImageData(image).data;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const widthStep = imgWidth / gridX;\n const heihgtStep = imgHeight / gridY;\n\n for (let iy = 0; iy < gridY1; iy++) {\n const imgIndexY = Math.floor(iy * heihgtStep);\n const imgLen = imgIndexY * imgWidth;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const imgIndexX = Math.floor(ix * widthStep);\n const imgDataIndex = (imgLen + imgIndexX) * 4;\n\n const r = imageData[imgDataIndex];\n const g = imageData[imgDataIndex + 1];\n const b = imageData[imgDataIndex + 2];\n\n const z = (iy * gridX1 + ix) * 5 + 2;\n positions[z] = rgb2height(r, g, b);\n }\n }\n\n const oldFeatures = this.layer.getEncodedData();\n const modelData = this.styleAttributeService.createAttributesAndIndices(\n oldFeatures,\n () => {\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n },\n );\n this.layer.updateModelData(modelData as IAttrubuteAndElements);\n this.layerService.renderLayers();\n }\n\n /**\n * load terrain texture & offset attribute z\n */\n protected loadTerrainTexture(positions: number[], indices: number[]) {\n const {\n widthSegments = 1,\n heightSegments = 1,\n terrainTexture,\n rgb2height = (r: number, g: number, b: number) => r + g + b,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.terrainImage) {\n // 若当前已经存在 image,直接进行偏移计算(LOD)\n if (this.terrainImageLoaded) {\n this.translateVertex(\n positions,\n indices,\n this.terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n } else {\n this.terrainImage.onload = () => {\n this.translateVertex(\n positions,\n indices,\n this.terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n };\n }\n } else {\n // 加载地形贴图、根据地形贴图对 planeGeometry 进行偏移\n const terrainImage = new Image();\n this.terrainImage = terrainImage;\n terrainImage.crossOrigin = 'anonymous';\n terrainImage.onload = () => {\n this.terrainImageLoaded = true;\n // 图片加载完,触发事件,可以进行地形图的顶点计算存储\n setTimeout(() => this.layer.emit('terrainImageLoaded', null));\n this.translateVertex(\n positions,\n indices,\n terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n };\n terrainImage.src = terrainTexture as string;\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 registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"plane.js"}
1
+ {"version":3,"sources":["../../../src/Geometry/models/plane.ts"],"names":["AttributeType","gl","Version","getMask","BaseModel","PlaneModel","layer","getLayerConfig","width","height","widthSegments","heightSegments","center","terrainTexture","initPlane","indices","positions","loadTerrainTexture","vertices","size","lng","lat","widthHalf","heightHalf","gridX","Math","floor","gridY","gridX1","gridY1","segmentWidth","segmentHeight","iy","y","ix","x","mapService","version","lngLatToCoord","a","b","push","c","d","opacity","mapTexture","terrainClipHeight","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_terrainClipHeight","u_texture","terrainImage","mask","maskInside","createTexture2D","rendererService","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","cull","face","BACK","initModels","options","oldwidthSegments","oldheightSegments","oldwidth","oldheight","style","undefined","oldFeatures","getEncodedData","res","styleAttributeService","createAttributesAndIndices","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","src","canvas","document","createElement","ctx","getContext","drawImage","imageData","getImageData","image","rgb2height","imgWidth","imgHeight","widthStep","heihgtStep","imgIndexY","imgLen","imgIndexX","imgDataIndex","r","g","z","modelData","updateModelData","terrainImageLoaded","translateVertex","setTimeout","emit","properties","type","minimum","maximum","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttrubuteAndElements,\n IEncodeFeature,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { getMask, isMini } from '@antv/l7-utils';\n// import { mat4, vec3 } from 'gl-matrix';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/plane_frag.glsl';\nimport planeVert from '../shaders/plane_vert.glsl';\n\nexport default class PlaneModel extends BaseModel {\n protected texture: ITexture2D;\n protected terrainImage: HTMLImageElement;\n protected terrainImageLoaded: boolean = false;\n protected mapTexture: string | undefined;\n\n public initPlane(\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n lng = 120,\n lat = 30,\n ) {\n // https://github.com/mrdoob/three.js/blob/dev/src/geometries/PlaneGeometry.js\n const widthHalf = width / 2;\n const heightHalf = height / 2;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const segmentWidth = width / gridX;\n const segmentHeight = height / gridY;\n\n const indices = [];\n const positions = [];\n\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy * segmentHeight - heightHalf;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix * segmentWidth - widthHalf;\n if (this.mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = this.mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n positions.push(a, b, 0);\n } else {\n positions.push(x + lng, -y + lat, 0);\n }\n\n positions.push(ix / gridX);\n positions.push(1 - iy / gridY);\n }\n }\n\n for (let iy = 0; iy < gridY; iy++) {\n for (let ix = 0; ix < gridX; ix++) {\n const a = ix + gridX1 * iy;\n const b = ix + gridX1 * (iy + 1);\n const c = ix + 1 + gridX1 * (iy + 1);\n const d = ix + 1 + gridX1 * iy;\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryTriangulation = () => {\n const {\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n center = [120, 30],\n terrainTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const { indices, positions } = this.initPlane(\n width,\n height,\n widthSegments,\n heightSegments,\n ...center,\n );\n if (terrainTexture) {\n // 存在地形贴图的时候会根据地形贴图对顶点进行偏移\n this.loadTerrainTexture(positions, indices);\n }\n\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n terrainClipHeight = 0,\n terrainTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_terrainClipHeight: terrainTexture ? terrainClipHeight : -1,\n u_texture: this.texture,\n };\n }\n\n public clearModels(): void {\n // @ts-ignore\n this.terrainImage = null;\n this.texture?.destroy();\n }\n\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n mapTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_plane',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n // primitive: gl.LINES,\n depth: { enable: true },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n cull: {\n enable: true,\n face: gl.BACK, // gl.FRONT | gl.BACK;\n },\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public createModelData(options?: any) {\n if (options) {\n const {\n widthSegments: oldwidthSegments,\n heightSegments: oldheightSegments,\n width: oldwidth,\n height: oldheight,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const {\n widthSegments,\n heightSegments,\n width,\n height,\n } = options as IGeometryLayerStyleOptions;\n this.layer.style({\n widthSegments:\n widthSegments !== undefined ? widthSegments : oldwidthSegments,\n heightSegments:\n heightSegments !== undefined ? heightSegments : oldheightSegments,\n width: width !== undefined ? width : oldwidth,\n height: height !== undefined ? height : oldheight,\n });\n }\n const oldFeatures = this.layer.getEncodedData();\n const res = this.styleAttributeService.createAttributesAndIndices(\n oldFeatures,\n this.planeGeometryTriangulation,\n );\n return res;\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\n }\n }\n\n protected getImageData(img: HTMLImageElement) {\n const canvas: HTMLCanvasElement = document.createElement('canvas');\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n const { width, height } = img;\n canvas.width = width;\n canvas.height = height;\n\n ctx.drawImage(img, 0, 0, width, height);\n const imageData = ctx.getImageData(0, 0, width, height);\n\n return imageData;\n }\n\n protected translateVertex(\n positions: number[],\n indices: number[],\n image: HTMLImageElement,\n widthSegments: number,\n heightSegments: number,\n rgb2height: (r: number, g: number, b: number) => number,\n ) {\n const imgWidth = image.width;\n const imgHeight = image.height;\n const imageData = this.getImageData(image).data;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const widthStep = imgWidth / gridX;\n const heihgtStep = imgHeight / gridY;\n\n for (let iy = 0; iy < gridY1; iy++) {\n const imgIndexY = Math.floor(iy * heihgtStep);\n const imgLen = imgIndexY * imgWidth;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const imgIndexX = Math.floor(ix * widthStep);\n const imgDataIndex = (imgLen + imgIndexX) * 4;\n\n const r = imageData[imgDataIndex];\n const g = imageData[imgDataIndex + 1];\n const b = imageData[imgDataIndex + 2];\n\n const z = (iy * gridX1 + ix) * 5 + 2;\n positions[z] = rgb2height(r, g, b);\n }\n }\n\n const oldFeatures = this.layer.getEncodedData();\n const modelData = this.styleAttributeService.createAttributesAndIndices(\n oldFeatures,\n () => {\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n },\n );\n this.layer.updateModelData(modelData as IAttrubuteAndElements);\n this.layerService.renderLayers();\n }\n\n /**\n * load terrain texture & offset attribute z\n */\n protected loadTerrainTexture(positions: number[], indices: number[]) {\n const {\n widthSegments = 1,\n heightSegments = 1,\n terrainTexture,\n rgb2height = (r: number, g: number, b: number) => r + g + b,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.terrainImage) {\n // 若当前已经存在 image,直接进行偏移计算(LOD)\n if (this.terrainImageLoaded) {\n this.translateVertex(\n positions,\n indices,\n this.terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n } else {\n this.terrainImage.onload = () => {\n this.translateVertex(\n positions,\n indices,\n this.terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n };\n }\n } else {\n // 加载地形贴图、根据地形贴图对 planeGeometry 进行偏移\n const terrainImage = new Image();\n this.terrainImage = terrainImage;\n terrainImage.crossOrigin = 'anonymous';\n terrainImage.onload = () => {\n this.terrainImageLoaded = true;\n // 图片加载完,触发事件,可以进行地形图的顶点计算存储\n setTimeout(() => this.layer.emit('terrainImageLoaded', null));\n this.translateVertex(\n positions,\n indices,\n terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n };\n terrainImage.src = terrainTexture as string;\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 registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"plane.js"}
@@ -1,4 +1,4 @@
1
- import { IModel, IModelUniform, ITexture2D } from '@antv/l7-core';
1
+ import { IModelUniform, ITexture2D } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  declare enum SPRITE_ANIMATE_DIR {
4
4
  'UP' = "up",
@@ -30,8 +30,8 @@ export default class SpriteModel extends BaseModel {
30
30
  };
31
31
  getUninforms(): IModelUniform;
32
32
  clearModels(): void;
33
- initModels(callbackModel: (models: IModel[]) => void): void;
34
- buildModels(callbackModel: (models: IModel[]) => void): void;
33
+ initModels(): import("@antv/l7-core").IModel[];
34
+ buildModels(): import("@antv/l7-core").IModel[];
35
35
  updateTexture(mapTexture: string | undefined): void;
36
36
  protected getConfigSchema(): {
37
37
  properties: {
@@ -207,7 +207,7 @@ var SpriteModel = function (_BaseModel) {
207
207
  }
208
208
  }, {
209
209
  key: "initModels",
210
- value: function initModels(callbackModel) {
210
+ value: function initModels() {
211
211
  var _this3 = this;
212
212
 
213
213
  var _ref6 = this.layer.getLayerConfig(),
@@ -232,8 +232,8 @@ var SpriteModel = function (_BaseModel) {
232
232
  setTimeout(function () {
233
233
  _this3.updateModel();
234
234
  }, 100);
235
- this.layer.buildLayerModel({
236
- moduleName: 'geometrySprite',
235
+ return [this.layer.buildLayerModel({
236
+ moduleName: 'geometry_sprite',
237
237
  vertexShader: spriteVert,
238
238
  fragmentShader: spriteFrag,
239
239
  triangulation: this.planeGeometryTriangulation,
@@ -242,17 +242,12 @@ var SpriteModel = function (_BaseModel) {
242
242
  enable: false
243
243
  },
244
244
  blend: this.getBlend()
245
- }).then(function (model) {
246
- callbackModel([model]);
247
- }).catch(function (err) {
248
- console.warn(err);
249
- callbackModel([]);
250
- });
245
+ })];
251
246
  }
252
247
  }, {
253
248
  key: "buildModels",
254
- value: function buildModels(callbackModel) {
255
- this.initModels(callbackModel);
249
+ value: function buildModels() {
250
+ return this.initModels();
256
251
  }
257
252
  }, {
258
253
  key: "updateTexture",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Geometry/models/sprite.ts"],"names":["gl","Version","BaseModel","SPRITE_ANIMATE_DIR","SpriteModel","layer","getLayerConfig","spriteBottom","updateZ","spriteUpdate","bottomZ","topZ","spriteTop","i","positions","length","spriteAnimate","UP","vertices","indices","size","attributes","createAttrubutes","triangulation","planeGeometryUpdateTriangulation","models","map","m","updateAttributes","renderLayers","timer","requestAnimationFrame","updateModel","center","spriteCount","spriteRadius","initSprite","radius","lng","lat","mapService","heightLimit","height","Math","random","push","getPos","z","randomX","randomY","x","y","version","lngLatToCoord","a","b","opacity","mapTexture","spriteScale","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_texture","u_Scale","cancelAnimationFrame","callbackModel","DOWN","createTexture2D","rendererService","width","setTimeout","buildLayerModel","moduleName","vertexShader","spriteVert","fragmentShader","spriteFrag","planeGeometryTriangulation","primitive","POINTS","depth","enable","blend","getBlend","then","model","catch","err","console","warn","initModels","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","src","properties","type","minimum","maximum"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\n\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport spriteFrag from '../shaders/sprite_frag.glsl';\nimport spriteVert from '../shaders/sprite_vert.glsl';\n\nenum SPRITE_ANIMATE_DIR {\n 'UP' = 'up',\n 'DOWN' = 'down',\n}\n\nexport default class SpriteModel extends BaseModel {\n protected texture: ITexture2D;\n protected mapTexture: string | undefined;\n protected positions: number[];\n protected indices: number[];\n protected timer: number;\n protected spriteTop: number;\n protected spriteUpdate: number;\n protected spriteAnimate: SPRITE_ANIMATE_DIR;\n\n public initSprite(radius = 10, spriteCount = 100, lng = 120, lat = 30) {\n const indices = [];\n const positions = [];\n const mapService = this.mapService;\n const heightLimit =\n this.spriteAnimate === SPRITE_ANIMATE_DIR.UP\n ? -this.spriteTop\n : this.spriteTop;\n for (let i = 0; i < spriteCount; i++) {\n const height = Math.random() * heightLimit;\n positions.push(...getPos(height));\n }\n for (let i = 0; i < spriteCount; i++) {\n indices.push(i);\n }\n\n function getPos(z: number) {\n const randomX = radius * Math.random();\n const randomY = radius * Math.random();\n const x = -radius / 2 + randomX;\n const y = -radius / 2 + randomY;\n if (mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n return [a, b, z, 0, 0];\n } else {\n return [x + lng, -y + lat, z, 0, 0];\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryUpdateTriangulation = () => {\n const {\n spriteBottom = -100000,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const updateZ = this.spriteUpdate;\n // const bottomZ = -100000;\n const bottomZ = spriteBottom;\n const topZ = this.spriteTop;\n\n for (let i = 0; i < this.positions.length; i += 5) {\n if (this.spriteAnimate === SPRITE_ANIMATE_DIR.UP) {\n this.positions[i + 2] += updateZ;\n if (this.positions[i + 2] > topZ) {\n this.positions[i + 2] = bottomZ;\n }\n } else {\n this.positions[i + 2] -= updateZ;\n if (this.positions[i + 2] < bottomZ) {\n this.positions[i + 2] = topZ;\n }\n }\n }\n\n return {\n vertices: this.positions,\n indices: this.indices,\n size: 5,\n };\n };\n\n public updateModel = () => {\n // @ts-ignore\n const attributes = this.layer.createAttrubutes({\n triangulation: this.planeGeometryUpdateTriangulation,\n });\n this.layer.models.map((m) => {\n m.updateAttributes(attributes);\n });\n this.layer.renderLayers();\n\n this.timer = requestAnimationFrame(this.updateModel);\n };\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n spriteCount = 100,\n spriteRadius = 10,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { indices, positions } = this.initSprite(\n spriteRadius,\n spriteCount,\n ...center,\n );\n this.positions = positions;\n this.indices = indices;\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n spriteScale = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_texture: this.texture,\n u_Scale: spriteScale,\n };\n }\n\n public clearModels(): void {\n cancelAnimationFrame(this.timer);\n this.texture?.destroy();\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n mapTexture,\n spriteTop = 5000000,\n spriteUpdate = 10000,\n spriteAnimate = SPRITE_ANIMATE_DIR.DOWN,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n this.spriteTop = spriteTop;\n this.spriteUpdate = spriteUpdate;\n spriteAnimate === 'up'\n ? (this.spriteAnimate = SPRITE_ANIMATE_DIR.UP)\n : (this.spriteAnimate = SPRITE_ANIMATE_DIR.DOWN);\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n setTimeout(() => {\n this.updateModel();\n }, 100);\n\n this.layer\n .buildLayerModel({\n moduleName: 'geometrySprite',\n vertexShader: spriteVert,\n fragmentShader: spriteFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.POINTS,\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 public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\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 registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"sprite.js"}
1
+ {"version":3,"sources":["../../../src/Geometry/models/sprite.ts"],"names":["gl","Version","BaseModel","SPRITE_ANIMATE_DIR","SpriteModel","layer","getLayerConfig","spriteBottom","updateZ","spriteUpdate","bottomZ","topZ","spriteTop","i","positions","length","spriteAnimate","UP","vertices","indices","size","attributes","createAttrubutes","triangulation","planeGeometryUpdateTriangulation","models","map","m","updateAttributes","renderLayers","timer","requestAnimationFrame","updateModel","center","spriteCount","spriteRadius","initSprite","radius","lng","lat","mapService","heightLimit","height","Math","random","push","getPos","z","randomX","randomY","x","y","version","lngLatToCoord","a","b","opacity","mapTexture","spriteScale","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_texture","u_Scale","cancelAnimationFrame","DOWN","createTexture2D","rendererService","width","setTimeout","buildLayerModel","moduleName","vertexShader","spriteVert","fragmentShader","spriteFrag","planeGeometryTriangulation","primitive","POINTS","depth","enable","blend","getBlend","initModels","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","src","properties","type","minimum","maximum"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\n\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport spriteFrag from '../shaders/sprite_frag.glsl';\nimport spriteVert from '../shaders/sprite_vert.glsl';\n\nenum SPRITE_ANIMATE_DIR {\n 'UP' = 'up',\n 'DOWN' = 'down',\n}\n\nexport default class SpriteModel extends BaseModel {\n protected texture: ITexture2D;\n protected mapTexture: string | undefined;\n protected positions: number[];\n protected indices: number[];\n protected timer: number;\n protected spriteTop: number;\n protected spriteUpdate: number;\n protected spriteAnimate: SPRITE_ANIMATE_DIR;\n\n public initSprite(radius = 10, spriteCount = 100, lng = 120, lat = 30) {\n const indices = [];\n const positions = [];\n const mapService = this.mapService;\n const heightLimit =\n this.spriteAnimate === SPRITE_ANIMATE_DIR.UP\n ? -this.spriteTop\n : this.spriteTop;\n for (let i = 0; i < spriteCount; i++) {\n const height = Math.random() * heightLimit;\n positions.push(...getPos(height));\n }\n for (let i = 0; i < spriteCount; i++) {\n indices.push(i);\n }\n\n function getPos(z: number) {\n const randomX = radius * Math.random();\n const randomY = radius * Math.random();\n const x = -radius / 2 + randomX;\n const y = -radius / 2 + randomY;\n if (mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n return [a, b, z, 0, 0];\n } else {\n return [x + lng, -y + lat, z, 0, 0];\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryUpdateTriangulation = () => {\n const {\n spriteBottom = -100000,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const updateZ = this.spriteUpdate;\n // const bottomZ = -100000;\n const bottomZ = spriteBottom;\n const topZ = this.spriteTop;\n\n for (let i = 0; i < this.positions.length; i += 5) {\n if (this.spriteAnimate === SPRITE_ANIMATE_DIR.UP) {\n this.positions[i + 2] += updateZ;\n if (this.positions[i + 2] > topZ) {\n this.positions[i + 2] = bottomZ;\n }\n } else {\n this.positions[i + 2] -= updateZ;\n if (this.positions[i + 2] < bottomZ) {\n this.positions[i + 2] = topZ;\n }\n }\n }\n\n return {\n vertices: this.positions,\n indices: this.indices,\n size: 5,\n };\n };\n\n public updateModel = () => {\n // @ts-ignore\n const attributes = this.layer.createAttrubutes({\n triangulation: this.planeGeometryUpdateTriangulation,\n });\n this.layer.models.map((m) => {\n m.updateAttributes(attributes);\n });\n this.layer.renderLayers();\n\n this.timer = requestAnimationFrame(this.updateModel);\n };\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n spriteCount = 100,\n spriteRadius = 10,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { indices, positions } = this.initSprite(\n spriteRadius,\n spriteCount,\n ...center,\n );\n this.positions = positions;\n this.indices = indices;\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n spriteScale = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_texture: this.texture,\n u_Scale: spriteScale,\n };\n }\n\n public clearModels(): void {\n cancelAnimationFrame(this.timer);\n this.texture?.destroy();\n }\n\n public initModels() {\n const {\n mapTexture,\n spriteTop = 5000000,\n spriteUpdate = 10000,\n spriteAnimate = SPRITE_ANIMATE_DIR.DOWN,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n this.spriteTop = spriteTop;\n this.spriteUpdate = spriteUpdate;\n spriteAnimate === 'up'\n ? (this.spriteAnimate = SPRITE_ANIMATE_DIR.UP)\n : (this.spriteAnimate = SPRITE_ANIMATE_DIR.DOWN);\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n setTimeout(() => {\n this.updateModel();\n }, 100);\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_sprite',\n vertexShader: spriteVert,\n fragmentShader: spriteFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.POINTS,\n depth: { enable: false },\n blend: this.getBlend(),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\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 registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"sprite.js"}
@@ -37,24 +37,14 @@ var CanvasLayer = function (_BaseLayer) {
37
37
  _createClass(CanvasLayer, [{
38
38
  key: "buildModels",
39
39
  value: function buildModels() {
40
- var _this2 = this;
41
-
42
40
  var modelType = this.getModelType();
43
41
  this.layerModel = new CanvasModels[modelType](this);
44
- this.layerModel.initModels(function (models) {
45
- _this2.models = models;
46
-
47
- _this2.renderLayers();
48
- });
42
+ this.models = this.layerModel.initModels();
49
43
  }
50
44
  }, {
51
45
  key: "rebuildModels",
52
46
  value: function rebuildModels() {
53
- var _this3 = this;
54
-
55
- this.layerModel.buildModels(function (models) {
56
- return _this3.models = models;
57
- });
47
+ this.models = this.layerModel.buildModels();
58
48
  }
59
49
  }, {
60
50
  key: "getConfigSchema",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/index.ts"],"names":["BaseLayer","CanvasModels","CanvasLayer","modelType","getModelType","layerModel","initModels","models","renderLayers","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","canvas"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,YAAP,MAA8C,gBAA9C;;IACqBC,W;;;;;;;;;;;;;;;;2DACG,a;;;;;;;WACtB,uBAAqB;AAAA;;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,YAAY,CAACE,SAAD,CAAhB,CAA4B,IAA5B,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;;;WACD,yBAAuB;AAAA;;AACrB,WAAKH,UAAL,CAAgBI,WAAhB,CAA4B,UAACF,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLG,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;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKR,YAAL,EAAb;AACA,UAAMW,aAAa,GAAG;AACpBC,QAAAA,MAAM,EAAE;AADY,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA0C;AACxC,aAAO,QAAP;AACD;;;;EAlCsCZ,S;;SAApBE,W","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ICanvasLayerStyleOptions } from '../core/interface';\nimport CanvasModels, { CanvasModelType } from './models/index';\nexport default class CanvasLayer extends BaseLayer<ICanvasLayerStyleOptions> {\n public type: string = 'CanvasLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new CanvasModels[modelType](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 protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n canvas: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): CanvasModelType {\n return 'canvas';\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/canvas/index.ts"],"names":["BaseLayer","CanvasModels","CanvasLayer","modelType","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","canvas"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,YAAP,MAA8C,gBAA9C;;IACqBC,W;;;;;;;;;;;;;;;;2DACG,a;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,YAAY,CAACE,SAAD,CAAhB,CAA4B,IAA5B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WACD,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;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,MAAM,EAAE;AADY,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA0C;AACxC,aAAO,QAAP;AACD;;;;EA/BsCX,S;;SAApBE,W","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ICanvasLayerStyleOptions } from '../core/interface';\nimport CanvasModels, { CanvasModelType } from './models/index';\nexport default class CanvasLayer extends BaseLayer<ICanvasLayerStyleOptions> {\n public type: string = 'CanvasLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new CanvasModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n canvas: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): CanvasModelType {\n return 'canvas';\n }\n}\n"],"file":"index.js"}
@@ -37,23 +37,13 @@ var CityBuildingLayer = function (_BaseLayer) {
37
37
  _createClass(CityBuildingLayer, [{
38
38
  key: "buildModels",
39
39
  value: function buildModels() {
40
- var _this2 = this;
41
-
42
40
  this.layerModel = new CityBuildModel(this);
43
- this.layerModel.initModels(function (models) {
44
- _this2.models = models;
45
-
46
- _this2.renderLayers();
47
- });
41
+ this.models = this.layerModel.initModels();
48
42
  }
49
43
  }, {
50
44
  key: "rebuildModels",
51
45
  value: function rebuildModels() {
52
- var _this3 = this;
53
-
54
- this.layerModel.buildModels(function (models) {
55
- return _this3.models = models;
56
- });
46
+ this.models = this.layerModel.buildModels();
57
47
  }
58
48
  }, {
59
49
  key: "setLight",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/citybuliding/building.ts"],"names":["BaseLayer","CityBuildModel","CityBuildingLayer","layerModel","initModels","models","renderLayers","buildModels","t","updateLayerConfig","time","properties","opacity","type","minimum","maximum"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AACA,OAAOC,cAAP,MAA2B,gBAA3B;;IAEqBC,iB;;;;;;;;;;;;;;;;2DACG,c;;;;;;;WACtB,uBAAqB;AAAA;;AACnB,WAAKC,UAAL,GAAkB,IAAIF,cAAJ,CAAmB,IAAnB,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;;;WACD,yBAAuB;AAAA;;AACrB,WAAKH,UAAL,CAAgBI,WAAhB,CAA4B,UAACF,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WACD,kBAAgBG,CAAhB,EAA2B;AACzB,WAAKC,iBAAL,CAAuB;AACrBC,QAAAA,IAAI,EAAEF;AADe,OAAvB;AAGD;;;WACD,2BAA4B;AAC1B,aAAO;AACLG,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,wBAAiC;AAC/B,aAAO,cAAP;AACD;;;;EA/B4Cf,S;;SAA1BE,iB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport CityBuildModel from './models/build';\n\nexport default class CityBuildingLayer extends BaseLayer {\n public type: string = 'PolygonLayer';\n public buildModels() {\n this.layerModel = new CityBuildModel(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 setLight(t: number) {\n this.updateLayerConfig({\n time: t,\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(): string {\n return 'citybuilding';\n }\n}\n"],"file":"building.js"}
1
+ {"version":3,"sources":["../../src/citybuliding/building.ts"],"names":["BaseLayer","CityBuildModel","CityBuildingLayer","layerModel","models","initModels","buildModels","t","updateLayerConfig","time","properties","opacity","type","minimum","maximum"],"mappings":";;;;;;;;;;;;AACA,OAAOA,SAAP,MAAsB,mBAAtB;AACA,OAAOC,cAAP,MAA2B,gBAA3B;;IAEqBC,iB;;;;;;;;;;;;;;;;2DACG,c;;;;;;;WACtB,uBAAqB;AACnB,WAAKC,UAAL,GAAkB,IAAIF,cAAJ,CAAmB,IAAnB,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WACD,kBAAgBC,CAAhB,EAA2B;AACzB,WAAKC,iBAAL,CAAuB;AACrBC,QAAAA,IAAI,EAAEF;AADe,OAAvB;AAGD;;;WACD,2BAA4B;AAC1B,aAAO;AACLG,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,wBAAiC;AAC/B,aAAO,cAAP;AACD;;;;EA5B4Cd,S;;SAA1BE,iB","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport CityBuildModel from './models/build';\n\nexport default class CityBuildingLayer extends BaseLayer {\n public type: string = 'PolygonLayer';\n public buildModels() {\n this.layerModel = new CityBuildModel(this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n public setLight(t: number) {\n this.updateLayerConfig({\n time: t,\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(): string {\n return 'citybuilding';\n }\n}\n"],"file":"building.js"}
@@ -16,7 +16,6 @@ export default class CityBuildModel extends BaseModel {
16
16
  u_time: number;
17
17
  };
18
18
  calCityGeo(): void;
19
- initModels(callbackModel: (models: IModel[]) => void): void;
20
- buildModels(callbackModel: (models: IModel[]) => void): void;
19
+ initModels(): IModel[];
21
20
  protected registerBuiltinAttributes(): void;
22
21
  }
@@ -100,32 +100,19 @@ var CityBuildModel = function (_BaseModel) {
100
100
  }
101
101
  }, {
102
102
  key: "initModels",
103
- value: function initModels(callbackModel) {
103
+ value: function initModels() {
104
104
  this.calCityGeo();
105
105
  this.startModelAnimate();
106
- this.buildModels(callbackModel);
107
- }
108
- }, {
109
- key: "buildModels",
110
- value: function buildModels(callbackModel) {
111
- this.layer.buildLayerModel({
106
+ return [this.layer.buildLayerModel({
112
107
  moduleName: 'cityBuilding',
113
108
  vertexShader: buildVert,
114
109
  fragmentShader: buildFrag,
115
110
  triangulation: PolygonExtrudeTriangulation,
116
- depth: {
117
- enable: true
118
- },
119
111
  cull: {
120
112
  enable: true,
121
113
  face: gl.BACK
122
114
  }
123
- }).then(function (model) {
124
- callbackModel([model]);
125
- }).catch(function (err) {
126
- console.warn(err);
127
- callbackModel([]);
128
- });
115
+ })];
129
116
  }
130
117
  }, {
131
118
  key: "registerBuiltinAttributes",