@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
@@ -0,0 +1,181 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+
11
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
+
13
+ import { AttributeType, gl } from '@antv/l7-core';
14
+ import BaseModel from '../../core/BaseModel';
15
+ import { PointImageTriangulation } from '../../core/triangulation';
16
+ var pointImageFrag = "\nuniform sampler2D u_texture;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform vec2 u_textSize;\nuniform float u_opacity : 1;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n#pragma include \"picking\"\n\nvoid main(){\n float opacity = styleMappingMat[0][0];\n float size = styleMappingMat[1][0];\n vec2 pos = v_uv / u_textSize + gl_PointCoord / u_textSize * 64.;\n vec4 textureColor;\n\n // Y = 0.299R + 0.587G + 0.114B // \u4EAE\u5EA6\u63D0\u53D6\n \n textureColor = texture2D(u_texture, pos);\n\n // Tip: \u53BB\u9664\u8FB9\u7F18\u90E8\u5206 mipmap \u5BFC\u81F4\u7684\u6DF7\u5408\u53D8\u6697\n float fragmengTocenter = distance(vec2(0.5), gl_PointCoord);\n if(fragmengTocenter >= 0.5) {\n float luma = 0.299 * textureColor.r + 0.587 * textureColor.g + 0.114 * textureColor.b;\n textureColor.a *= luma;\n }\n \n \n\n if(all(lessThan(v_color, vec4(1.0+0.00001))) && all(greaterThan(v_color, vec4(1.0-0.00001))) || v_color==vec4(1.0)){\n gl_FragColor= textureColor;\n }else {\n gl_FragColor= step(0.01, textureColor.z) * v_color;\n }\n\n gl_FragColor.a = gl_FragColor.a * opacity;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
17
+ var pointImageVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec4 a_Color;\nattribute vec2 a_Uv;\nattribute float a_Size;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform vec2 u_offsets;\n\nuniform float u_opacity : 1;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n styleMappingMat[1][0] = a_Size;\n\n vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n v_color = a_Color;\n v_uv = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n \n // vec2 offset = project_pixel(u_offsets);\n vec2 offset = project_pixel(textrueOffsets);\n\n // gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy + offset),project_pos.z, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(vec2(project_pos.xy + offset),project_pos.z, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy + offset),project_pos.z, 1.0));\n }\n gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n\n setPickingColor(a_PickingColor);\n}\n";
18
+
19
+ var IconeModel = function (_BaseModel) {
20
+ _inherits(IconeModel, _BaseModel);
21
+
22
+ var _super = _createSuper(IconeModel);
23
+
24
+ function IconeModel() {
25
+ var _this;
26
+
27
+ _classCallCheck(this, IconeModel);
28
+
29
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ args[_key] = arguments[_key];
31
+ }
32
+
33
+ _this = _super.call.apply(_super, [this].concat(args));
34
+
35
+ _defineProperty(_assertThisInitialized(_this), "texture", void 0);
36
+
37
+ return _this;
38
+ }
39
+
40
+ _createClass(IconeModel, [{
41
+ key: "getUninforms",
42
+ value: function getUninforms() {
43
+ var _ref = this.layer.getLayerConfig(),
44
+ opacity = _ref.opacity;
45
+
46
+ return {
47
+ u_opacity: opacity || 1.0,
48
+ u_texture: this.texture,
49
+ u_textSize: [1024, this.iconService.canvasHeight || 128]
50
+ };
51
+ }
52
+ }, {
53
+ key: "initModels",
54
+ value: function initModels() {
55
+ var _this2 = this;
56
+
57
+ this.initIconFontGlyphs();
58
+ this.registerBuiltinAttributes();
59
+ this.updateTexture();
60
+ this.iconService.on('imageUpdate', function () {
61
+ _this2.updateTexture();
62
+
63
+ _this2.layer.render();
64
+ });
65
+ return [this.layer.buildLayerModel({
66
+ moduleName: 'pointiconImage',
67
+ vertexShader: pointImageVert,
68
+ fragmentShader: pointImageFrag,
69
+ triangulation: PointImageTriangulation,
70
+ primitive: gl.POINTS,
71
+ depth: {
72
+ enable: false
73
+ },
74
+ blend: this.getBlend()
75
+ })];
76
+ }
77
+ }, {
78
+ key: "clearModels",
79
+ value: function clearModels() {
80
+ var _this$dataTexture;
81
+
82
+ (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
83
+ }
84
+ }, {
85
+ key: "registerBuiltinAttributes",
86
+ value: function registerBuiltinAttributes() {
87
+ var _this3 = this;
88
+
89
+ this.styleAttributeService.registerStyleAttribute({
90
+ name: 'size',
91
+ type: AttributeType.Attribute,
92
+ descriptor: {
93
+ name: 'a_Size',
94
+ buffer: {
95
+ usage: gl.DYNAMIC_DRAW,
96
+ data: [],
97
+ type: gl.FLOAT
98
+ },
99
+ size: 1,
100
+ update: function update(feature, featureIdx, vertex, attributeIdx) {
101
+ var size = feature.size;
102
+ return Array.isArray(size) ? [size[0]] : [size];
103
+ }
104
+ }
105
+ });
106
+ this.styleAttributeService.registerStyleAttribute({
107
+ name: 'uv',
108
+ type: AttributeType.Attribute,
109
+ descriptor: {
110
+ name: 'a_Uv',
111
+ buffer: {
112
+ usage: gl.DYNAMIC_DRAW,
113
+ data: [],
114
+ type: gl.FLOAT
115
+ },
116
+ size: 2,
117
+ update: function update(feature, featureIdx, vertex, attributeIdx) {
118
+ var mapping = _this3.fontService.mapping;
119
+ var shape = feature.shape;
120
+
121
+ var icon = _this3.fontService.getGlyph(shape);
122
+
123
+ var _mapping$icon = mapping[icon],
124
+ x = _mapping$icon.x,
125
+ y = _mapping$icon.y;
126
+ return [x, y];
127
+ }
128
+ }
129
+ });
130
+ }
131
+ }, {
132
+ key: "updateTexture",
133
+ value: function updateTexture() {
134
+ var createTexture2D = this.rendererService.createTexture2D;
135
+ var canvas = this.fontService.canvas;
136
+ this.texture = createTexture2D({
137
+ data: canvas,
138
+ mag: gl.LINEAR,
139
+ min: gl.LINEAR,
140
+ width: canvas.width,
141
+ height: canvas.height
142
+ });
143
+ }
144
+ }, {
145
+ key: "initIconFontGlyphs",
146
+ value: function initIconFontGlyphs() {
147
+ var _this4 = this;
148
+
149
+ var _ref2 = this.layer.getLayerConfig(),
150
+ _ref2$fontWeight = _ref2.fontWeight,
151
+ fontWeight = _ref2$fontWeight === void 0 ? 'normal' : _ref2$fontWeight,
152
+ _ref2$fontFamily = _ref2.fontFamily,
153
+ fontFamily = _ref2$fontFamily === void 0 ? 'sans-serif' : _ref2$fontFamily;
154
+
155
+ var data = this.layer.getEncodedData();
156
+ var characterSet = [];
157
+ data.forEach(function (item) {
158
+ var _item$shape = item.shape,
159
+ shape = _item$shape === void 0 ? '' : _item$shape;
160
+ shape = shape.toString();
161
+
162
+ var icon = _this4.fontService.getGlyph(shape);
163
+
164
+ if (characterSet.indexOf(icon) === -1) {
165
+ characterSet.push(icon);
166
+ }
167
+ });
168
+ this.fontService.setFontOptions({
169
+ characterSet: characterSet,
170
+ fontWeight: fontWeight,
171
+ fontFamily: fontFamily,
172
+ fontSize: 48
173
+ });
174
+ }
175
+ }]);
176
+
177
+ return IconeModel;
178
+ }(BaseModel);
179
+
180
+ export { IconeModel as default };
181
+ //# sourceMappingURL=icon-font.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/point/models/icon-font.ts"],"names":["AttributeType","gl","BaseModel","PointImageTriangulation","IconeModel","layer","getLayerConfig","opacity","u_opacity","u_texture","texture","u_textSize","iconService","canvasHeight","initIconFontGlyphs","registerBuiltinAttributes","updateTexture","on","render","buildLayerModel","moduleName","vertexShader","pointImageVert","fragmentShader","pointImageFrag","triangulation","primitive","POINTS","depth","enable","blend","getBlend","dataTexture","destroy","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","mapping","fontService","shape","icon","getGlyph","x","y","createTexture2D","rendererService","canvas","mag","LINEAR","min","width","height","fontWeight","fontFamily","getEncodedData","characterSet","forEach","item","toString","indexOf","push","setFontOptions","fontSize"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport BaseModel from '../../core/BaseModel';\nimport { PointImageTriangulation } from '../../core/triangulation';\nimport pointImageFrag from '../shaders/image_frag.glsl';\nimport pointImageVert from '../shaders/image_vert.glsl';\ninterface IIconIFontStyleOptions {\n opacity: number;\n fontWeight: string;\n fontFamily: string;\n}\n\nexport default class IconeModel extends BaseModel {\n private texture: ITexture2D;\n\n public getUninforms(): IModelUniform {\n const { opacity } = this.layer.getLayerConfig() as IIconIFontStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n };\n }\n\n public initModels(): IModel[] {\n this.initIconFontGlyphs();\n this.registerBuiltinAttributes();\n this.updateTexture();\n this.iconService.on('imageUpdate', () => {\n this.updateTexture();\n this.layer.render(); // TODO 调用全局render\n });\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointiconImage',\n vertexShader: pointImageVert,\n fragmentShader: pointImageFrag,\n triangulation: PointImageTriangulation,\n primitive: gl.POINTS,\n depth: { enable: false },\n blend: this.getBlend(),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { mapping } = this.fontService;\n const { shape } = feature;\n const icon = this.fontService.getGlyph(shape as string);\n const { x, y } = mapping[icon];\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture() {\n const { createTexture2D } = this.rendererService;\n const { canvas } = this.fontService;\n this.texture = createTexture2D({\n data: canvas,\n mag: gl.LINEAR,\n min: gl.LINEAR,\n width: canvas.width,\n height: canvas.height,\n });\n }\n\n private initIconFontGlyphs() {\n const {\n fontWeight = 'normal',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IIconIFontStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = shape.toString();\n const icon = this.fontService.getGlyph(shape);\n if (characterSet.indexOf(icon) === -1) {\n characterSet.push(icon);\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n fontSize: 48,\n });\n }\n}\n"],"file":"icon-font.js"}
@@ -3,9 +3,9 @@ import BaseModel from '../../core/BaseModel';
3
3
  export default class ImageModel extends BaseModel {
4
4
  private texture;
5
5
  getUninforms(): IModelUniform;
6
- initModels(callbackModel: (models: IModel[]) => void): void;
6
+ initModels(): IModel[];
7
7
  clearModels(): void;
8
- buildModels(callbackModel: (models: IModel[]) => void): void;
8
+ buildModels(): IModel[];
9
9
  protected registerBuiltinAttributes(): void;
10
10
  private updateTexture;
11
11
  }
@@ -123,11 +123,11 @@ var ImageModel = function (_BaseModel) {
123
123
  }
124
124
  }, {
125
125
  key: "initModels",
126
- value: function initModels(callbackModel) {
126
+ value: function initModels() {
127
127
  this.registerBuiltinAttributes();
128
128
  this.updateTexture();
129
129
  this.iconService.on('imageUpdate', this.updateTexture);
130
- this.buildModels(callbackModel);
130
+ return this.buildModels();
131
131
  }
132
132
  }, {
133
133
  key: "clearModels",
@@ -140,30 +140,25 @@ var ImageModel = function (_BaseModel) {
140
140
  }
141
141
  }, {
142
142
  key: "buildModels",
143
- value: function buildModels(callbackModel) {
143
+ value: function buildModels() {
144
144
  var _ref2 = this.layer.getLayerConfig(),
145
145
  _ref2$mask = _ref2.mask,
146
146
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
147
147
  _ref2$maskInside = _ref2.maskInside,
148
148
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
149
149
 
150
- this.layer.buildLayerModel({
150
+ return [this.layer.buildLayerModel({
151
151
  moduleName: 'pointImage',
152
152
  vertexShader: pointImageVert,
153
153
  fragmentShader: pointImageFrag,
154
154
  triangulation: PointImageTriangulation,
155
+ primitive: gl.POINTS,
155
156
  depth: {
156
157
  enable: false
157
158
  },
158
- primitive: gl.POINTS,
159
159
  blend: this.getBlend(),
160
160
  stencil: getMask(mask, maskInside)
161
- }).then(function (model) {
162
- callbackModel([model]);
163
- }).catch(function (err) {
164
- console.warn(err);
165
- callbackModel([]);
166
- });
161
+ })];
167
162
  }
168
163
  }, {
169
164
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/image.ts"],"names":["AttributeType","gl","getMask","BaseModel","PointImageTriangulation","ImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","offsets","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","callbackModel","registerBuiltinAttributes","updateTexture","on","buildModels","destroy","off","mask","maskInside","buildLayerModel","moduleName","vertexShader","pointImageVert","fragmentShader","pointImageFrag","triangulation","depth","enable","primitive","POINTS","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","iconMap","getIconMap","shape","x","y"],"mappings":";;;;;;;;;;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAOO,eAPP;AAQA,SAASC,OAAT,QAAwB,gBAAxB;AAEA,OAAOC,SAAP,MAAsB,sBAAtB;AAEA,SAASC,uBAAT,QAAwC,0BAAxC;;;;IAGqBC,U;;;;;;;;;;;;;;;;;;oEA2JK,YAAM;AAC5B,UAAQC,eAAR,GAA4B,MAAKC,eAAjC,CAAQD,eAAR;;AACA,UAAI,MAAKE,OAAT,EAAkB;AAChB,cAAKA,OAAL,CAAaC,MAAb,CAAoB;AAClBC,UAAAA,IAAI,EAAE,MAAKC,WAAL,CAAiBC,SAAjB,EADY;AAElBC,UAAAA,GAAG,EAAE,QAFa;AAGlBC,UAAAA,GAAG,EAAE,uBAHa;AAIlBC,UAAAA,MAAM,EAAE;AAJU,SAApB;;AAOA,cAAKC,KAAL,CAAWC,YAAX;;AACA;AACD;;AACD,YAAKT,OAAL,GAAeF,eAAe,CAAC;AAC7BI,QAAAA,IAAI,EAAE,MAAKC,WAAL,CAAiBC,SAAjB,EADuB;AAE7BC,QAAAA,GAAG,EAAEZ,EAAE,CAACiB,MAFqB;AAG7BJ,QAAAA,GAAG,EAAEb,EAAE,CAACkB,oBAHqB;AAI7BC,QAAAA,gBAAgB,EAAE,KAJW;AAK7BC,QAAAA,KAAK,EAAE,IALsB;AAM7BC,QAAAA,MAAM,EAAE,MAAKX,WAAL,CAAiBY,YAAjB,IAAiC,GANZ;AAO7BR,QAAAA,MAAM,EAAE;AAPqB,OAAD,CAA9B;AASD,K;;;;;;;WA9KD,wBAAqC;AACnC,iBAGI,KAAKC,KAAL,CAAWQ,cAAX,EAHJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;AAAA,8BAEEC,OAFF;AAAA,UAEEA,OAFF,6BAEY,CAAC,CAAD,EAAI,CAAJ,CAFZ;;AAIA,UAAI,KAAKnB,eAAL,CAAqBoB,QAArB,EAAJ,EAAqC;AACnC,aAAKnB,OAAL,CAAaoB,IAAb;AACD;;AAED,UACE,KAAKC,eAAL,IACA,KAAKC,qBAAL,CAA2B;AACzBL,QAAAA,OAAO,EAAPA,OADyB;AAEzBC,QAAAA,OAAO,EAAPA;AAFyB,OAA3B,CAFF,EAME;AACA,aAAKK,oBAAL,CAA0B;AACxBN,UAAAA,OAAO,EAAPA,OADwB;AAExBC,UAAAA,OAAO,EAAPA;AAFwB,SAA1B;AAIA,YAAMM,UAAU,GAAG,KAAKhB,KAAL,CAAWiB,cAAX,EAAnB;;AACA,iCAAgC,KAAKC,YAAL,CAC9B,KAAKC,UADyB,EAE9BH,UAF8B,EAG9B,KAAKI,cAHyB,CAAhC;AAAA,YAAQ1B,IAAR,sBAAQA,IAAR;AAAA,YAAcW,KAAd,sBAAcA,KAAd;AAAA,YAAqBC,MAArB,sBAAqBA,MAArB;;AAKA,aAAKe,QAAL,GAAgBf,MAAhB;AAEA,aAAKgB,WAAL,GACE,KAAKH,UAAL,GAAkB,CAAlB,IAAuBzB,IAAI,CAAC6B,MAAL,GAAc,CAArC,GACI,KAAKjC,eAAL,CAAqB;AACnBkC,UAAAA,KAAK,EAAE,IADY;AAEnB9B,UAAAA,IAAI,EAAJA,IAFmB;AAGnB+B,UAAAA,MAAM,EAAExC,EAAE,CAACyC,SAHQ;AAInBC,UAAAA,IAAI,EAAE1C,EAAE,CAAC2C,KAJU;AAKnBvB,UAAAA,KAAK,EAALA,KALmB;AAMnBC,UAAAA,MAAM,EAANA;AANmB,SAArB,CADJ,GASI,KAAKhB,eAAL,CAAqB;AACnBkC,UAAAA,KAAK,EAAE,IADY;AAEnB9B,UAAAA,IAAI,EAAE,CAAC,CAAD,CAFa;AAGnB+B,UAAAA,MAAM,EAAExC,EAAE,CAACyC,SAHQ;AAInBC,UAAAA,IAAI,EAAE1C,EAAE,CAAC2C,KAJU;AAKnBvB,UAAAA,KAAK,EAAE,CALY;AAMnBC,UAAAA,MAAM,EAAE;AANW,SAArB,CAVN;AAkBD;;AACD,aAAO;AACLuB,QAAAA,aAAa,EAAE,KAAKP,WADf;AAELQ,QAAAA,gBAAgB,EAAE,KAAKC,iBAAL,EAFb;AAILC,QAAAA,SAAS,EAAE,KAAKxC,OAJX;AAKLyC,QAAAA,UAAU,EAAE,CAAC,IAAD,EAAO,KAAKtC,WAAL,CAAiBY,YAAjB,IAAiC,GAAxC,CALP;AAML2B,QAAAA,SAAS,EAAE,UAASzB,OAAT,IAAoBA,OAApB,GAA8B,GANpC;AAOL0B,QAAAA,SAAS,EAAE,KAAKC,cAAL,CAAoB1B,OAApB,IACNA,OADM,GAEP,CAAC,CAAD,EAAI,CAAJ;AATC,OAAP;AAWD;;;WAED,oBAAkB2B,aAAlB,EAA6D;AAC3D,WAAKC,yBAAL;AACA,WAAKC,aAAL;AACA,WAAK5C,WAAL,CAAiB6C,EAAjB,CAAoB,aAApB,EAAmC,KAAKD,aAAxC;AACA,WAAKE,WAAL,CAAiBJ,aAAjB;AACD;;;WAED,uBAAqB;AAAA;;AACnB,4BAAK7C,OAAL,gEAAckD,OAAd;AACA,gCAAKpB,WAAL,wEAAkBoB,OAAlB;AACA,WAAK/C,WAAL,CAAiBgD,GAAjB,CAAqB,aAArB,EAAoC,KAAKJ,aAAzC;AACD;;;WAED,qBAAmBF,aAAnB,EAA8D;AAC5D,kBAGI,KAAKrC,KAAL,CAAWQ,cAAX,EAHJ;AAAA,6BACEoC,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAKA,WAAK7C,KAAL,CACG8C,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,YADG;AAEfC,QAAAA,YAAY,EAAEC,cAFC;AAGfC,QAAAA,cAAc,EAAEC,cAHD;AAIfC,QAAAA,aAAa,EAAEhE,uBAJA;AAKfiE,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALQ;AAMfC,QAAAA,SAAS,EAAEtE,EAAE,CAACuE,MANC;AAOfC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EAPQ;AAQfC,QAAAA,OAAO,EAAEzE,OAAO,CAAC0D,IAAD,EAAOC,UAAP;AARD,OADnB,EAWGe,IAXH,CAWQ,UAACC,KAAD,EAAW;AACfxB,QAAAA,aAAa,CAAC,CAACwB,KAAD,CAAD,CAAb;AACD,OAbH,EAcGC,KAdH,CAcS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACA1B,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OAjBH;AAkBD;;;WACD,qCAAsC;AAAA;;AAEpC,WAAK6B,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDzC,QAAAA,IAAI,EAAE3C,aAAa,CAACqF,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,QADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEvF,EAAE,CAACwF,YAFJ;AAGN/E,YAAAA,IAAI,EAAE,EAHA;AAINiC,YAAAA,IAAI,EAAE1C,EAAE,CAAC2C;AAJH,WAFE;AAQV8C,UAAAA,IAAI,EAAE,CARI;AASVjF,UAAAA,MAAM,EAAE,gBACNkF,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqBH,OAArB,CAAQD,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAOK,KAAK,CAACC,OAAN,CAAcN,IAAd,IAAsB,CAACA,IAAI,CAAC,CAAD,CAAL,CAAtB,GAAkC,CAACA,IAAD,CAAzC;AACD;AAjBS;AAHoC,OAAlD;AAyBA,WAAKR,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,IAD0C;AAEhDzC,QAAAA,IAAI,EAAE3C,aAAa,CAACqF,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,MADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEvF,EAAE,CAACwF,YAFJ;AAGN/E,YAAAA,IAAI,EAAE,EAHA;AAINiC,YAAAA,IAAI,EAAE1C,EAAE,CAAC2C;AAJH,WAFE;AAQV8C,UAAAA,IAAI,EAAE,CARI;AASVjF,UAAAA,MAAM,EAAE,gBACNkF,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gBAAMG,OAAO,GAAG,MAAI,CAACtF,WAAL,CAAiBuF,UAAjB,EAAhB;;AACA,gBAAQC,KAAR,GAAkBR,OAAlB,CAAQQ,KAAR;;AACA,wBAAiBF,OAAO,CAACE,KAAD,CAAP,IAA4B;AAAEC,cAAAA,CAAC,EAAE,CAAL;AAAQC,cAAAA,CAAC,EAAE;AAAX,aAA7C;AAAA,gBAAQD,CAAR,SAAQA,CAAR;AAAA,gBAAWC,CAAX,SAAWA,CAAX;;AACA,mBAAO,CAACD,CAAD,EAAIC,CAAJ,CAAP;AACD;AAnBS;AAHoC,OAAlD;AAyBD;;;;EAzJqClG,S;;SAAnBE,U","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointImageTriangulation } from '../../core/triangulation';\nimport pointImageFrag from '../shaders/image_frag.glsl';\nimport pointImageVert from '../shaders/image_vert.glsl';\nexport default class ImageModel extends BaseModel {\n private texture: ITexture2D;\n\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.registerBuiltinAttributes();\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n this.layer\n .buildLayerModel({\n moduleName: 'pointImage',\n vertexShader: pointImageVert,\n fragmentShader: pointImageFrag,\n triangulation: PointImageTriangulation,\n depth: { enable: false },\n primitive: gl.POINTS,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"image.js"}
1
+ {"version":3,"sources":["../../../src/point/models/image.ts"],"names":["AttributeType","gl","getMask","BaseModel","PointImageTriangulation","ImageModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","mag","min","mipmap","layer","renderLayers","LINEAR","LINEAR_MIPMAP_LINEAR","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","offsets","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_texture","u_textSize","u_opacity","u_offsets","isOffsetStatic","registerBuiltinAttributes","updateTexture","on","buildModels","destroy","off","mask","maskInside","buildLayerModel","moduleName","vertexShader","pointImageVert","fragmentShader","pointImageFrag","triangulation","primitive","POINTS","depth","enable","blend","getBlend","stencil","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","iconMap","getIconMap","shape","x","y"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointImageTriangulation } from '../../core/triangulation';\nimport pointImageFrag from '../shaders/image_frag.glsl';\nimport pointImageVert from '../shaders/image_vert.glsl';\nexport default class ImageModel extends BaseModel {\n private texture: ITexture2D;\n\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_texture: this.texture,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public initModels(): IModel[] {\n this.registerBuiltinAttributes();\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n return this.buildModels();\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointImage',\n vertexShader: pointImageVert,\n fragmentShader: pointImageFrag,\n triangulation: PointImageTriangulation,\n primitive: gl.POINTS,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { shape } = feature;\n const { x, y } = iconMap[shape as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n mag: 'linear',\n min: 'linear mipmap nearest',\n mipmap: true,\n });\n // TODO: 更新完纹理后在更新的图层的时候需要更新所有的图层\n this.layer.renderLayers();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.LINEAR,\n min: gl.LINEAR_MIPMAP_LINEAR,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n mipmap: true,\n });\n };\n}\n"],"file":"image.js"}
@@ -1,4 +1,4 @@
1
- export declare type PointType = 'fillImage' | 'fill' | 'radar' | 'image' | 'normal' | 'simplePoint' | 'extrude' | 'text' | 'vectorpoint' | 'tile' | 'earthFill' | 'earthExtrude';
1
+ export declare type PointType = 'fillImage' | 'fill' | 'radar' | 'image' | 'normal' | 'simplePoint' | 'extrude' | 'text' | 'icon' | 'vectorpoint' | 'tile' | 'earthFill' | 'earthExtrude';
2
2
  declare const PointModels: {
3
3
  [key in PointType]: any;
4
4
  };
@@ -4,6 +4,7 @@ import EarthFillModel from './earthFill';
4
4
  import ExtrudeModel from './extrude';
5
5
  import FillModel from './fill';
6
6
  import FillImageModel from './fillmage';
7
+ import IconModel from './icon-font';
7
8
  import IMageModel from './image';
8
9
  import NormalModel from './normal';
9
10
  import Radar from './radar';
@@ -19,6 +20,7 @@ var PointModels = {
19
20
  simplePoint: SimplePopint,
20
21
  extrude: ExtrudeModel,
21
22
  text: TextModel,
23
+ icon: IconModel,
22
24
  vectorpoint: PointTileModel,
23
25
  tile: TileFillModel,
24
26
  earthFill: EarthFillModel,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/index.ts"],"names":["PointTileModel","EarthExtrudeModel","EarthFillModel","ExtrudeModel","FillModel","FillImageModel","IMageModel","NormalModel","Radar","SimplePopint","TextModel","TileFillModel","PointModels","fillImage","fill","radar","image","normal","simplePoint","extrude","text","vectorpoint","tile","earthFill","earthExtrude"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,6BAA3B;AACA,OAAOC,iBAAP,MAA8B,gBAA9B;AAEA,OAAOC,cAAP,MAA2B,aAA3B;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,cAAP,MAA2B,YAA3B;AACA,OAAOC,UAAP,MAAuB,SAAvB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,OAAOC,YAAP,MAAyB,eAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,aAAP,MAA0B,QAA1B;AAgBA,IAAMC,WAAwC,GAAG;AAC/CC,EAAAA,SAAS,EAAER,cADoC;AAE/CS,EAAAA,IAAI,EAAEV,SAFyC;AAG/CW,EAAAA,KAAK,EAAEP,KAHwC;AAI/CQ,EAAAA,KAAK,EAAEV,UAJwC;AAK/CW,EAAAA,MAAM,EAAEV,WALuC;AAM/CW,EAAAA,WAAW,EAAET,YANkC;AAO/CU,EAAAA,OAAO,EAAEhB,YAPsC;AAQ/CiB,EAAAA,IAAI,EAAEV,SARyC;AAS/CW,EAAAA,WAAW,EAAErB,cATkC;AAU/CsB,EAAAA,IAAI,EAAEX,aAVyC;AAW/CY,EAAAA,SAAS,EAAErB,cAXoC;AAY/CsB,EAAAA,YAAY,EAAEvB;AAZiC,CAAjD;AAeA,eAAeW,WAAf","sourcesContent":["import PointTileModel from '../../tile/models/tileModel';\nimport EarthExtrudeModel from './earthExtrude';\n// earth\nimport EarthFillModel from './earthFill';\nimport ExtrudeModel from './extrude';\nimport FillModel from './fill';\nimport FillImageModel from './fillmage';\nimport IMageModel from './image';\nimport NormalModel from './normal';\nimport Radar from './radar';\nimport SimplePopint from './simplePoint';\nimport TextModel from './text';\nimport TileFillModel from './tile';\n\nexport type PointType =\n | 'fillImage'\n | 'fill'\n | 'radar'\n | 'image'\n | 'normal'\n | 'simplePoint'\n | 'extrude'\n | 'text'\n | 'vectorpoint'\n | 'tile'\n | 'earthFill'\n | 'earthExtrude';\n\nconst PointModels: { [key in PointType]: any } = {\n fillImage: FillImageModel,\n fill: FillModel,\n radar: Radar,\n image: IMageModel,\n normal: NormalModel,\n simplePoint: SimplePopint,\n extrude: ExtrudeModel,\n text: TextModel,\n vectorpoint: PointTileModel,\n tile: TileFillModel,\n earthFill: EarthFillModel,\n earthExtrude: EarthExtrudeModel,\n};\n\nexport default PointModels;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/point/models/index.ts"],"names":["PointTileModel","EarthExtrudeModel","EarthFillModel","ExtrudeModel","FillModel","FillImageModel","IconModel","IMageModel","NormalModel","Radar","SimplePopint","TextModel","TileFillModel","PointModels","fillImage","fill","radar","image","normal","simplePoint","extrude","text","icon","vectorpoint","tile","earthFill","earthExtrude"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,6BAA3B;AACA,OAAOC,iBAAP,MAA8B,gBAA9B;AAEA,OAAOC,cAAP,MAA2B,aAA3B;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,cAAP,MAA2B,YAA3B;AACA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,UAAP,MAAuB,SAAvB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,OAAOC,YAAP,MAAyB,eAAzB;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,aAAP,MAA0B,QAA1B;AAiBA,IAAMC,WAAwC,GAAG;AAC/CC,EAAAA,SAAS,EAAET,cADoC;AAE/CU,EAAAA,IAAI,EAAEX,SAFyC;AAG/CY,EAAAA,KAAK,EAAEP,KAHwC;AAI/CQ,EAAAA,KAAK,EAAEV,UAJwC;AAK/CW,EAAAA,MAAM,EAAEV,WALuC;AAM/CW,EAAAA,WAAW,EAAET,YANkC;AAO/CU,EAAAA,OAAO,EAAEjB,YAPsC;AAQ/CkB,EAAAA,IAAI,EAAEV,SARyC;AAS/CW,EAAAA,IAAI,EAAEhB,SATyC;AAU/CiB,EAAAA,WAAW,EAAEvB,cAVkC;AAW/CwB,EAAAA,IAAI,EAAEZ,aAXyC;AAY/Ca,EAAAA,SAAS,EAAEvB,cAZoC;AAa/CwB,EAAAA,YAAY,EAAEzB;AAbiC,CAAjD;AAgBA,eAAeY,WAAf","sourcesContent":["import PointTileModel from '../../tile/models/tileModel';\nimport EarthExtrudeModel from './earthExtrude';\n// earth\nimport EarthFillModel from './earthFill';\nimport ExtrudeModel from './extrude';\nimport FillModel from './fill';\nimport FillImageModel from './fillmage';\nimport IconModel from './icon-font';\nimport IMageModel from './image';\nimport NormalModel from './normal';\nimport Radar from './radar';\nimport SimplePopint from './simplePoint';\nimport TextModel from './text';\nimport TileFillModel from './tile';\n\nexport type PointType =\n | 'fillImage'\n | 'fill'\n | 'radar'\n | 'image'\n | 'normal'\n | 'simplePoint'\n | 'extrude'\n | 'text'\n | 'icon'\n | 'vectorpoint'\n | 'tile'\n | 'earthFill'\n | 'earthExtrude';\n\nconst PointModels: { [key in PointType]: any } = {\n fillImage: FillImageModel,\n fill: FillModel,\n radar: Radar,\n image: IMageModel,\n normal: NormalModel,\n simplePoint: SimplePopint,\n extrude: ExtrudeModel,\n text: TextModel,\n icon: IconModel,\n vectorpoint: PointTileModel,\n tile: TileFillModel,\n earthFill: EarthFillModel,\n earthExtrude: EarthExtrudeModel,\n};\n\nexport default PointModels;\n"],"file":"index.js"}
@@ -9,8 +9,8 @@ export declare function PointTriangulation(feature: IEncodeFeature): {
9
9
  export default class NormalModel extends BaseModel {
10
10
  getDefaultStyle(): Partial<IPointLayerStyleOptions>;
11
11
  getUninforms(): IModelUniform;
12
- initModels(callbackModel: (models: IModel[]) => void): void;
13
- buildModels(callbackModel: (models: IModel[]) => void): void;
12
+ initModels(): IModel[];
13
+ buildModels(): IModel[];
14
14
  clearModels(): void;
15
15
  protected registerBuiltinAttributes(): void;
16
16
  private defaultStyleOptions;
@@ -93,12 +93,12 @@ var NormalModel = function (_BaseModel) {
93
93
  }
94
94
  }, {
95
95
  key: "initModels",
96
- value: function initModels(callbackModel) {
97
- this.buildModels(callbackModel);
96
+ value: function initModels() {
97
+ return this.buildModels();
98
98
  }
99
99
  }, {
100
100
  key: "buildModels",
101
- value: function buildModels(callbackModel) {
101
+ value: function buildModels() {
102
102
  var _ref2 = this.layer.getLayerConfig(),
103
103
  _ref2$mask = _ref2.mask,
104
104
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
@@ -106,8 +106,8 @@ var NormalModel = function (_BaseModel) {
106
106
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
107
107
 
108
108
  this.layer.triangulation = PointTriangulation;
109
- this.layer.buildLayerModel({
110
- moduleName: 'pointNormal',
109
+ return [this.layer.buildLayerModel({
110
+ moduleName: 'normalpoint',
111
111
  vertexShader: normalVert,
112
112
  fragmentShader: normalFrag,
113
113
  triangulation: PointTriangulation,
@@ -117,12 +117,7 @@ var NormalModel = function (_BaseModel) {
117
117
  primitive: gl.POINTS,
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: "clearModels",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/normal.ts"],"names":["AttributeType","BlendType","gl","getMask","BaseModel","PointTriangulation","feature","coordinates","vertices","indices","size","length","NormalModel","blend","layer","getLayerConfig","opacity","offsets","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_offsets","isOffsetStatic","callbackModel","buildModels","mask","maskInside","triangulation","buildLayerModel","moduleName","vertexShader","normalVert","fragmentShader","normalFrag","depth","enable","primitive","POINTS","getBlend","stencil","then","model","catch","err","console","warn","destroy","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","Array","isArray","additive"],"mappings":";;;;;;;;;;;;AAAA,SACEA,aADF,EAEEC,SAFF,EAGEC,EAHF,QAOO,eAPP;AAQA,SAASC,OAAT,QAAwB,gBAAxB;AAEA,OAAOC,SAAP,MAAsB,sBAAtB;;;AAKA,OAAO,SAASC,kBAAT,CAA4BC,OAA5B,EAAqD;AAC1D,MAAMC,WAAW,GAAGD,OAAO,CAACC,WAA5B;AACA,SAAO;AACLC,IAAAA,QAAQ,qBAAMD,WAAN,CADH;AAELE,IAAAA,OAAO,EAAE,CAAC,CAAD,CAFJ;AAGLC,IAAAA,IAAI,EAAEH,WAAW,CAACI;AAHb,GAAP;AAKD;;IAEoBC,W;;;;;;;;;;;;;WACnB,2BAA2D;AACzD,aAAO;AACLC,QAAAA,KAAK,EAAE;AADF,OAAP;AAGD;;;WACD,wBAAqC;AACnC,iBAGI,KAAKC,KAAL,CAAWC,cAAX,EAHJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;AAAA,8BAEEC,OAFF;AAAA,UAEEA,OAFF,6BAEY,CAAC,CAAD,EAAI,CAAJ,CAFZ;;AAKA,UACE,KAAKC,eAAL,IACA,KAAKC,qBAAL,CAA2B;AACzBH,QAAAA,OAAO,EAAPA,OADyB;AAEzBC,QAAAA,OAAO,EAAPA;AAFyB,OAA3B,CAFF,EAME;AAEA,aAAKG,oBAAL,CAA0B;AACxBJ,UAAAA,OAAO,EAAPA,OADwB;AAExBC,UAAAA,OAAO,EAAPA;AAFwB,SAA1B;AAIA,YAAMI,UAAU,GAAG,KAAKP,KAAL,CAAWQ,cAAX,EAAnB;;AACA,iCAAgC,KAAKC,YAAL,CAC9B,KAAKC,UADyB,EAE9BH,UAF8B,EAG9B,KAAKI,cAHyB,CAAhC;AAAA,YAAQC,IAAR,sBAAQA,IAAR;AAAA,YAAcC,KAAd,sBAAcA,KAAd;AAAA,YAAqBC,MAArB,sBAAqBA,MAArB;;AAKA,aAAKC,QAAL,GAAgBD,MAAhB;AAEA,aAAKE,WAAL,GACE,KAAKN,UAAL,GAAkB,CAAlB,IAAuBE,IAAI,CAACf,MAAL,GAAc,CAArC,GACI,KAAKoB,eAAL,CAAqB;AACnBC,UAAAA,KAAK,EAAE,IADY;AAEnBN,UAAAA,IAAI,EAAJA,IAFmB;AAGnBO,UAAAA,MAAM,EAAE/B,EAAE,CAACgC,SAHQ;AAInBC,UAAAA,IAAI,EAAEjC,EAAE,CAACkC,KAJU;AAKnBT,UAAAA,KAAK,EAALA,KALmB;AAMnBC,UAAAA,MAAM,EAANA;AANmB,SAArB,CADJ,GASI,KAAKG,eAAL,CAAqB;AACnBC,UAAAA,KAAK,EAAE,IADY;AAEnBN,UAAAA,IAAI,EAAE,CAAC,CAAD,CAFa;AAGnBO,UAAAA,MAAM,EAAE/B,EAAE,CAACgC,SAHQ;AAInBC,UAAAA,IAAI,EAAEjC,EAAE,CAACkC,KAJU;AAKnBT,UAAAA,KAAK,EAAE,CALY;AAMnBC,UAAAA,MAAM,EAAE;AANW,SAArB,CAVN;AAkBD;;AACD,aAAO;AACLS,QAAAA,aAAa,EAAE,KAAKP,WADf;AAELQ,QAAAA,gBAAgB,EAAE,KAAKC,iBAAL,EAFb;AAGLC,QAAAA,SAAS,EAAE,UAASxB,OAAT,IAAoBA,OAApB,GAA8B,GAHpC;AAILyB,QAAAA,SAAS,EAAE,KAAKC,cAAL,CAAoBzB,OAApB,IACNA,OADM,GAEP,CAAC,CAAD,EAAI,CAAJ;AANC,OAAP;AAQD;;;WAED,oBAAkB0B,aAAlB,EAA6D;AAC3D,WAAKC,WAAL,CAAiBD,aAAjB;AACD;;;WAED,qBAAmBA,aAAnB,EAA8D;AAC5D,kBAGI,KAAK7B,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACE8B,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,WAAKhC,KAAL,CAAWiC,aAAX,GAA2B1C,kBAA3B;AAEA,WAAKS,KAAL,CACGkC,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,aADG;AAEfC,QAAAA,YAAY,EAAEC,UAFC;AAGfC,QAAAA,cAAc,EAAEC,UAHD;AAIfN,QAAAA,aAAa,EAAE1C,kBAJA;AAKfiD,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALQ;AAMfC,QAAAA,SAAS,EAAEtD,EAAE,CAACuD,MANC;AAOf5C,QAAAA,KAAK,EAAE,KAAK6C,QAAL,EAPQ;AAQfC,QAAAA,OAAO,EAAExD,OAAO,CAAC0C,IAAD,EAAOC,UAAP;AARD,OADnB,EAWGc,IAXH,CAWQ,UAACC,KAAD,EAAW;AACflB,QAAAA,aAAa,CAAC,CAACkB,KAAD,CAAD,CAAb;AACD,OAbH,EAcGC,KAdH,CAcS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACApB,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OAjBH;AAkBD;;;WAED,uBAAqB;AAAA;;AACnB,gCAAKb,WAAL,wEAAkBoC,OAAlB;AACD;;;WAED,qCAAsC;AAEpC,WAAKC,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDlC,QAAAA,IAAI,EAAEnC,aAAa,CAACsE,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,QADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEvE,EAAE,CAACwE,YAFJ;AAGNhD,YAAAA,IAAI,EAAE,EAHA;AAINS,YAAAA,IAAI,EAAEjC,EAAE,CAACkC;AAJH,WAFE;AAQV1B,UAAAA,IAAI,EAAE,CARI;AASViE,UAAAA,MAAM,EAAE,gBACNrE,OADM,EAENsE,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqBxE,OAArB,CAAQI,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAOqE,KAAK,CAACC,OAAN,CAActE,IAAd,IAAsB,CAACA,IAAI,CAAC,CAAD,CAAL,CAAtB,GAAkC,CAACA,IAAD,CAAzC;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;WAED,+BAAgE;AAC9D,aAAO;AACLG,QAAAA,KAAK,EAAEZ,SAAS,CAACgF;AADZ,OAAP;AAGD;;;;EA/HsC7E,S;;SAApBQ,W","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport normalFrag from '../shaders/normal_frag.glsl';\nimport normalVert from '../shaders/normal_vert.glsl';\n\nexport function PointTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\nexport default class NormalModel extends BaseModel {\n public getDefaultStyle(): Partial<IPointLayerStyleOptions> {\n return {\n blend: 'additive',\n };\n }\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.layer.triangulation = PointTriangulation;\n\n this.layer\n .buildLayerModel({\n moduleName: 'pointNormal',\n vertexShader: normalVert,\n fragmentShader: normalFrag,\n triangulation: PointTriangulation,\n depth: { enable: false },\n primitive: gl.POINTS,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n\n private defaultStyleOptions(): Partial<IPointLayerStyleOptions> {\n return {\n blend: BlendType.additive,\n };\n }\n}\n"],"file":"normal.js"}
1
+ {"version":3,"sources":["../../../src/point/models/normal.ts"],"names":["AttributeType","BlendType","gl","getMask","BaseModel","PointTriangulation","feature","coordinates","vertices","indices","size","length","NormalModel","blend","layer","getLayerConfig","opacity","offsets","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_offsets","isOffsetStatic","buildModels","mask","maskInside","triangulation","buildLayerModel","moduleName","vertexShader","normalVert","fragmentShader","normalFrag","depth","enable","primitive","POINTS","getBlend","stencil","destroy","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","Array","isArray","additive"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport normalFrag from '../shaders/normal_frag.glsl';\nimport normalVert from '../shaders/normal_vert.glsl';\n\nexport function PointTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\nexport default class NormalModel extends BaseModel {\n public getDefaultStyle(): Partial<IPointLayerStyleOptions> {\n return {\n blend: 'additive',\n };\n }\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.layer.triangulation = PointTriangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: 'normalpoint',\n vertexShader: normalVert,\n fragmentShader: normalFrag,\n triangulation: PointTriangulation,\n depth: { enable: false },\n primitive: gl.POINTS,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n\n private defaultStyleOptions(): Partial<IPointLayerStyleOptions> {\n return {\n blend: BlendType.additive,\n };\n }\n}\n"],"file":"normal.js"}
@@ -11,13 +11,22 @@ export default class RadarModel extends BaseModel {
11
11
  };
12
12
  elements: IElements;
13
13
  };
14
- initModels(callbackModel: (models: IModel[]) => void): void;
14
+ initModels(): IModel[];
15
15
  /**
16
16
  * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例
17
17
  * @returns
18
18
  */
19
19
  calMeter2Coord(): void;
20
- buildModels(callbackModel: (models: IModel[]) => void): void;
20
+ buildModels(): IModel[];
21
+ /**
22
+ * 根据 animateOption 的值返回对应的 shader 代码
23
+ * @returns
24
+ */
25
+ getShaders(): {
26
+ frag: string;
27
+ vert: string;
28
+ type: string;
29
+ };
21
30
  clearModels(): void;
22
31
  protected animateOption2Array(option: Partial<IAnimateOption>): number[];
23
32
  protected registerBuiltinAttributes(): void;
@@ -119,7 +119,7 @@ var RadarModel = function (_BaseModel) {
119
119
  }
120
120
  }, {
121
121
  key: "initModels",
122
- value: function initModels(callbackModel) {
122
+ value: function initModels() {
123
123
  var _ref3 = this.layer.getLayerConfig(),
124
124
  _ref3$unit = _ref3.unit,
125
125
  unit = _ref3$unit === void 0 ? 'l7size' : _ref3$unit;
@@ -131,7 +131,7 @@ var RadarModel = function (_BaseModel) {
131
131
  this.calMeter2Coord();
132
132
  }
133
133
 
134
- this.buildModels(callbackModel);
134
+ return this.buildModels();
135
135
  }
136
136
  }, {
137
137
  key: "calMeter2Coord",
@@ -168,29 +168,38 @@ var RadarModel = function (_BaseModel) {
168
168
  }
169
169
  }, {
170
170
  key: "buildModels",
171
- value: function buildModels(callbackModel) {
171
+ value: function buildModels() {
172
172
  var _ref4 = this.layer.getLayerConfig(),
173
173
  _ref4$mask = _ref4.mask,
174
174
  mask = _ref4$mask === void 0 ? false : _ref4$mask,
175
175
  _ref4$maskInside = _ref4.maskInside,
176
176
  maskInside = _ref4$maskInside === void 0 ? true : _ref4$maskInside;
177
177
 
178
- this.layer.buildLayerModel({
179
- moduleName: 'pointRadar',
180
- vertexShader: pointFillVert,
181
- fragmentShader: pointFillFrag,
178
+ var _this$getShaders = this.getShaders(),
179
+ frag = _this$getShaders.frag,
180
+ vert = _this$getShaders.vert,
181
+ type = _this$getShaders.type;
182
+
183
+ return [this.layer.buildLayerModel({
184
+ moduleName: type,
185
+ vertexShader: vert,
186
+ fragmentShader: frag,
182
187
  triangulation: PointFillTriangulation,
183
188
  depth: {
184
189
  enable: false
185
190
  },
186
191
  blend: this.getBlend(),
187
192
  stencil: getMask(mask, maskInside)
188
- }).then(function (model) {
189
- callbackModel([model]);
190
- }).catch(function (err) {
191
- console.warn(err);
192
- callbackModel([]);
193
- });
193
+ })];
194
+ }
195
+ }, {
196
+ key: "getShaders",
197
+ value: function getShaders() {
198
+ return {
199
+ frag: pointFillFrag,
200
+ vert: pointFillVert,
201
+ type: 'point_radar'
202
+ };
194
203
  }
195
204
  }, {
196
205
  key: "clearModels",