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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/es/Geometry/index.js +12 -2
  2. package/es/Geometry/index.js.map +1 -1
  3. package/es/Geometry/models/billboard.d.ts +3 -3
  4. package/es/Geometry/models/billboard.js +11 -6
  5. package/es/Geometry/models/billboard.js.map +1 -1
  6. package/es/Geometry/models/plane.d.ts +3 -3
  7. package/es/Geometry/models/plane.js +12 -7
  8. package/es/Geometry/models/plane.js.map +1 -1
  9. package/es/Geometry/models/sprite.d.ts +3 -3
  10. package/es/Geometry/models/sprite.js +11 -6
  11. package/es/Geometry/models/sprite.js.map +1 -1
  12. package/es/canvas/index.js +12 -2
  13. package/es/canvas/index.js.map +1 -1
  14. package/es/citybuliding/building.js +12 -2
  15. package/es/citybuliding/building.js.map +1 -1
  16. package/es/citybuliding/models/build.d.ts +2 -1
  17. package/es/citybuliding/models/build.js +16 -3
  18. package/es/citybuliding/models/build.js.map +1 -1
  19. package/es/core/BaseLayer.d.ts +1 -1
  20. package/es/core/BaseLayer.js +97 -58
  21. package/es/core/BaseLayer.js.map +1 -1
  22. package/es/core/BaseModel.d.ts +2 -2
  23. package/es/core/BaseModel.js +2 -2
  24. package/es/core/BaseModel.js.map +1 -1
  25. package/es/core/interface.d.ts +2 -0
  26. package/es/core/interface.js.map +1 -1
  27. package/es/core/triangulation.js +1 -2
  28. package/es/core/triangulation.js.map +1 -1
  29. package/es/earth/index.js +8 -2
  30. package/es/earth/index.js.map +1 -1
  31. package/es/earth/models/atmosphere.d.ts +2 -2
  32. package/es/earth/models/atmosphere.js +11 -6
  33. package/es/earth/models/atmosphere.js.map +1 -1
  34. package/es/earth/models/base.d.ts +2 -2
  35. package/es/earth/models/base.js +11 -6
  36. package/es/earth/models/base.js.map +1 -1
  37. package/es/earth/models/bloomsphere.d.ts +2 -2
  38. package/es/earth/models/bloomsphere.js +11 -6
  39. package/es/earth/models/bloomsphere.js.map +1 -1
  40. package/es/heatmap/index.js +17 -5
  41. package/es/heatmap/index.js.map +1 -1
  42. package/es/heatmap/models/grid.d.ts +2 -2
  43. package/es/heatmap/models/grid.js +12 -8
  44. package/es/heatmap/models/grid.js.map +1 -1
  45. package/es/heatmap/models/grid3d.d.ts +2 -2
  46. package/es/heatmap/models/grid3d.js +12 -6
  47. package/es/heatmap/models/grid3d.js.map +1 -1
  48. package/es/heatmap/models/heatmap.d.ts +2 -2
  49. package/es/heatmap/models/heatmap.js +112 -62
  50. package/es/heatmap/models/heatmap.js.map +1 -1
  51. package/es/heatmap/models/hexagon.d.ts +2 -2
  52. package/es/heatmap/models/hexagon.js +11 -6
  53. package/es/heatmap/models/hexagon.js.map +1 -1
  54. package/es/image/index.js +12 -2
  55. package/es/image/index.js.map +1 -1
  56. package/es/image/models/image.d.ts +3 -3
  57. package/es/image/models/image.js +11 -7
  58. package/es/image/models/image.js.map +1 -1
  59. package/es/line/index.d.ts +0 -2
  60. package/es/line/index.js +12 -5
  61. package/es/line/index.js.map +1 -1
  62. package/es/line/models/arc.d.ts +2 -2
  63. package/es/line/models/arc.js +14 -9
  64. package/es/line/models/arc.js.map +1 -1
  65. package/es/line/models/arc_3d.d.ts +2 -2
  66. package/es/line/models/arc_3d.js +13 -8
  67. package/es/line/models/arc_3d.js.map +1 -1
  68. package/es/line/models/earthArc_3d.d.ts +2 -2
  69. package/es/line/models/earthArc_3d.js +17 -9
  70. package/es/line/models/earthArc_3d.js.map +1 -1
  71. package/es/line/models/great_circle.d.ts +2 -2
  72. package/es/line/models/great_circle.js +11 -6
  73. package/es/line/models/great_circle.js.map +1 -1
  74. package/es/line/models/half.d.ts +2 -2
  75. package/es/line/models/half.js +46 -29
  76. package/es/line/models/half.js.map +1 -1
  77. package/es/line/models/index.d.ts +1 -1
  78. package/es/line/models/index.js +0 -2
  79. package/es/line/models/index.js.map +1 -1
  80. package/es/line/models/line.d.ts +2 -2
  81. package/es/line/models/line.js +27 -15
  82. package/es/line/models/line.js.map +1 -1
  83. package/es/line/models/linearline.d.ts +2 -11
  84. package/es/line/models/linearline.js +14 -24
  85. package/es/line/models/linearline.js.map +1 -1
  86. package/es/line/models/simpleLine.d.ts +2 -2
  87. package/es/line/models/simpleLine.js +13 -8
  88. package/es/line/models/simpleLine.js.map +1 -1
  89. package/es/line/models/tile.d.ts +2 -11
  90. package/es/line/models/tile.js +45 -39
  91. package/es/line/models/tile.js.map +1 -1
  92. package/es/line/models/wall.d.ts +2 -2
  93. package/es/line/models/wall.js +13 -9
  94. package/es/line/models/wall.js.map +1 -1
  95. package/es/mask/index.js +12 -2
  96. package/es/mask/index.js.map +1 -1
  97. package/es/mask/models/fill.d.ts +2 -2
  98. package/es/mask/models/fill.js +53 -27
  99. package/es/mask/models/fill.js.map +1 -1
  100. package/es/plugins/DataMappingPlugin.js +29 -8
  101. package/es/plugins/DataMappingPlugin.js.map +1 -1
  102. package/es/plugins/DataSourcePlugin.js +14 -5
  103. package/es/plugins/DataSourcePlugin.js.map +1 -1
  104. package/es/plugins/LayerModelPlugin.d.ts +2 -0
  105. package/es/plugins/LayerModelPlugin.js +33 -7
  106. package/es/plugins/LayerModelPlugin.js.map +1 -1
  107. package/es/plugins/PixelPickingPlugin.js +16 -13
  108. package/es/plugins/PixelPickingPlugin.js.map +1 -1
  109. package/es/point/index.d.ts +1 -1
  110. package/es/point/index.js +15 -8
  111. package/es/point/index.js.map +1 -1
  112. package/es/point/models/earthExtrude.d.ts +2 -2
  113. package/es/point/models/earthExtrude.js +16 -14
  114. package/es/point/models/earthExtrude.js.map +1 -1
  115. package/es/point/models/earthFill.d.ts +2 -11
  116. package/es/point/models/earthFill.js +13 -22
  117. package/es/point/models/earthFill.js.map +1 -1
  118. package/es/point/models/extrude.d.ts +2 -2
  119. package/es/point/models/extrude.js +49 -27
  120. package/es/point/models/extrude.js.map +1 -1
  121. package/es/point/models/fill.d.ts +2 -2
  122. package/es/point/models/fill.js +59 -41
  123. package/es/point/models/fill.js.map +1 -1
  124. package/es/point/models/fillmage.d.ts +2 -7
  125. package/es/point/models/fillmage.js +13 -22
  126. package/es/point/models/fillmage.js.map +1 -1
  127. package/es/point/models/image.d.ts +2 -2
  128. package/es/point/models/image.js +11 -6
  129. package/es/point/models/image.js.map +1 -1
  130. package/es/point/models/index.d.ts +1 -1
  131. package/es/point/models/index.js +0 -2
  132. package/es/point/models/index.js.map +1 -1
  133. package/es/point/models/normal.d.ts +2 -2
  134. package/es/point/models/normal.js +11 -6
  135. package/es/point/models/normal.js.map +1 -1
  136. package/es/point/models/radar.d.ts +2 -11
  137. package/es/point/models/radar.js +13 -22
  138. package/es/point/models/radar.js.map +1 -1
  139. package/es/point/models/simplePoint.d.ts +2 -2
  140. package/es/point/models/simplePoint.js +11 -6
  141. package/es/point/models/simplePoint.js.map +1 -1
  142. package/es/point/models/text.d.ts +3 -2
  143. package/es/point/models/text.js +108 -75
  144. package/es/point/models/text.js.map +1 -1
  145. package/es/point/models/tile.d.ts +2 -11
  146. package/es/point/models/tile.js +22 -25
  147. package/es/point/models/tile.js.map +1 -1
  148. package/es/polygon/index.js +12 -2
  149. package/es/polygon/index.js.map +1 -1
  150. package/es/polygon/models/extrude.d.ts +2 -2
  151. package/es/polygon/models/extrude.js +10 -5
  152. package/es/polygon/models/extrude.js.map +1 -1
  153. package/es/polygon/models/fill.d.ts +2 -2
  154. package/es/polygon/models/fill.js +27 -13
  155. package/es/polygon/models/fill.js.map +1 -1
  156. package/es/polygon/models/ocean.d.ts +2 -2
  157. package/es/polygon/models/ocean.js +12 -6
  158. package/es/polygon/models/ocean.js.map +1 -1
  159. package/es/polygon/models/tile.d.ts +2 -3
  160. package/es/polygon/models/tile.js +17 -27
  161. package/es/polygon/models/tile.js.map +1 -1
  162. package/es/polygon/models/water.d.ts +2 -2
  163. package/es/polygon/models/water.js +12 -6
  164. package/es/polygon/models/water.js.map +1 -1
  165. package/es/raster/index.js +12 -2
  166. package/es/raster/index.js.map +1 -1
  167. package/es/raster/models/raster.d.ts +3 -3
  168. package/es/raster/models/raster.js +11 -7
  169. package/es/raster/models/raster.js.map +1 -1
  170. package/es/tile/manager/tileLayerManager.js +4 -1
  171. package/es/tile/manager/tileLayerManager.js.map +1 -1
  172. package/es/tile/manager/tilePickerManager.js +1 -0
  173. package/es/tile/manager/tilePickerManager.js.map +1 -1
  174. package/es/tile/tileFactory/base.js.map +1 -1
  175. package/es/tile/tileFactory/point.js.map +1 -1
  176. package/es/tile/tileFactory/rasterDataLayer.js +12 -2
  177. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -1
  178. package/es/tile/tileFactory/vectorLayer.js +12 -2
  179. package/es/tile/tileFactory/vectorLayer.js.map +1 -1
  180. package/es/wind/index.js +12 -2
  181. package/es/wind/index.js.map +1 -1
  182. package/es/wind/models/wind.d.ts +2 -2
  183. package/es/wind/models/wind.js +14 -7
  184. package/es/wind/models/wind.js.map +1 -1
  185. package/lib/Geometry/index.js +12 -2
  186. package/lib/Geometry/index.js.map +1 -1
  187. package/lib/Geometry/models/billboard.js +11 -6
  188. package/lib/Geometry/models/billboard.js.map +1 -1
  189. package/lib/Geometry/models/plane.js +12 -7
  190. package/lib/Geometry/models/plane.js.map +1 -1
  191. package/lib/Geometry/models/sprite.js +11 -6
  192. package/lib/Geometry/models/sprite.js.map +1 -1
  193. package/lib/canvas/index.js +12 -2
  194. package/lib/canvas/index.js.map +1 -1
  195. package/lib/citybuliding/building.js +12 -2
  196. package/lib/citybuliding/building.js.map +1 -1
  197. package/lib/citybuliding/models/build.js +16 -3
  198. package/lib/citybuliding/models/build.js.map +1 -1
  199. package/lib/core/BaseLayer.js +96 -57
  200. package/lib/core/BaseLayer.js.map +1 -1
  201. package/lib/core/BaseModel.js +2 -2
  202. package/lib/core/BaseModel.js.map +1 -1
  203. package/lib/core/interface.js.map +1 -1
  204. package/lib/core/triangulation.js +4 -6
  205. package/lib/core/triangulation.js.map +1 -1
  206. package/lib/earth/index.js +8 -2
  207. package/lib/earth/index.js.map +1 -1
  208. package/lib/earth/models/atmosphere.js +11 -6
  209. package/lib/earth/models/atmosphere.js.map +1 -1
  210. package/lib/earth/models/base.js +11 -6
  211. package/lib/earth/models/base.js.map +1 -1
  212. package/lib/earth/models/bloomsphere.js +11 -6
  213. package/lib/earth/models/bloomsphere.js.map +1 -1
  214. package/lib/heatmap/index.js +17 -5
  215. package/lib/heatmap/index.js.map +1 -1
  216. package/lib/heatmap/models/grid.js +12 -8
  217. package/lib/heatmap/models/grid.js.map +1 -1
  218. package/lib/heatmap/models/grid3d.js +12 -6
  219. package/lib/heatmap/models/grid3d.js.map +1 -1
  220. package/lib/heatmap/models/heatmap.js +113 -62
  221. package/lib/heatmap/models/heatmap.js.map +1 -1
  222. package/lib/heatmap/models/hexagon.js +11 -6
  223. package/lib/heatmap/models/hexagon.js.map +1 -1
  224. package/lib/image/index.js +12 -2
  225. package/lib/image/index.js.map +1 -1
  226. package/lib/image/models/image.js +11 -7
  227. package/lib/image/models/image.js.map +1 -1
  228. package/lib/line/index.js +12 -5
  229. package/lib/line/index.js.map +1 -1
  230. package/lib/line/models/arc.js +14 -9
  231. package/lib/line/models/arc.js.map +1 -1
  232. package/lib/line/models/arc_3d.js +13 -8
  233. package/lib/line/models/arc_3d.js.map +1 -1
  234. package/lib/line/models/earthArc_3d.js +17 -9
  235. package/lib/line/models/earthArc_3d.js.map +1 -1
  236. package/lib/line/models/great_circle.js +11 -6
  237. package/lib/line/models/great_circle.js.map +1 -1
  238. package/lib/line/models/half.js +48 -29
  239. package/lib/line/models/half.js.map +1 -1
  240. package/lib/line/models/index.js +0 -3
  241. package/lib/line/models/index.js.map +1 -1
  242. package/lib/line/models/line.js +28 -17
  243. package/lib/line/models/line.js.map +1 -1
  244. package/lib/line/models/linearline.js +14 -24
  245. package/lib/line/models/linearline.js.map +1 -1
  246. package/lib/line/models/simpleLine.js +13 -8
  247. package/lib/line/models/simpleLine.js.map +1 -1
  248. package/lib/line/models/tile.js +47 -39
  249. package/lib/line/models/tile.js.map +1 -1
  250. package/lib/line/models/wall.js +13 -9
  251. package/lib/line/models/wall.js.map +1 -1
  252. package/lib/mask/index.js +12 -2
  253. package/lib/mask/index.js.map +1 -1
  254. package/lib/mask/models/fill.js +55 -27
  255. package/lib/mask/models/fill.js.map +1 -1
  256. package/lib/plugins/DataMappingPlugin.js +29 -8
  257. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  258. package/lib/plugins/DataSourcePlugin.js +13 -4
  259. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  260. package/lib/plugins/LayerModelPlugin.js +33 -7
  261. package/lib/plugins/LayerModelPlugin.js.map +1 -1
  262. package/lib/plugins/PixelPickingPlugin.js +16 -13
  263. package/lib/plugins/PixelPickingPlugin.js.map +1 -1
  264. package/lib/point/index.js +15 -8
  265. package/lib/point/index.js.map +1 -1
  266. package/lib/point/models/earthExtrude.js +16 -15
  267. package/lib/point/models/earthExtrude.js.map +1 -1
  268. package/lib/point/models/earthFill.js +13 -22
  269. package/lib/point/models/earthFill.js.map +1 -1
  270. package/lib/point/models/extrude.js +51 -28
  271. package/lib/point/models/extrude.js.map +1 -1
  272. package/lib/point/models/fill.js +61 -42
  273. package/lib/point/models/fill.js.map +1 -1
  274. package/lib/point/models/fillmage.js +13 -22
  275. package/lib/point/models/fillmage.js.map +1 -1
  276. package/lib/point/models/image.js +11 -6
  277. package/lib/point/models/image.js.map +1 -1
  278. package/lib/point/models/index.js +0 -3
  279. package/lib/point/models/index.js.map +1 -1
  280. package/lib/point/models/normal.js +11 -6
  281. package/lib/point/models/normal.js.map +1 -1
  282. package/lib/point/models/radar.js +13 -22
  283. package/lib/point/models/radar.js.map +1 -1
  284. package/lib/point/models/simplePoint.js +11 -6
  285. package/lib/point/models/simplePoint.js.map +1 -1
  286. package/lib/point/models/text.js +110 -78
  287. package/lib/point/models/text.js.map +1 -1
  288. package/lib/point/models/tile.js +22 -25
  289. package/lib/point/models/tile.js.map +1 -1
  290. package/lib/polygon/index.js +12 -2
  291. package/lib/polygon/index.js.map +1 -1
  292. package/lib/polygon/models/extrude.js +10 -5
  293. package/lib/polygon/models/extrude.js.map +1 -1
  294. package/lib/polygon/models/fill.js +25 -11
  295. package/lib/polygon/models/fill.js.map +1 -1
  296. package/lib/polygon/models/ocean.js +12 -6
  297. package/lib/polygon/models/ocean.js.map +1 -1
  298. package/lib/polygon/models/tile.js +17 -27
  299. package/lib/polygon/models/tile.js.map +1 -1
  300. package/lib/polygon/models/water.js +12 -6
  301. package/lib/polygon/models/water.js.map +1 -1
  302. package/lib/raster/index.js +12 -2
  303. package/lib/raster/index.js.map +1 -1
  304. package/lib/raster/models/raster.js +11 -7
  305. package/lib/raster/models/raster.js.map +1 -1
  306. package/lib/tile/manager/tileLayerManager.js +4 -1
  307. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  308. package/lib/tile/manager/tilePickerManager.js +1 -0
  309. package/lib/tile/manager/tilePickerManager.js.map +1 -1
  310. package/lib/tile/tileFactory/base.js.map +1 -1
  311. package/lib/tile/tileFactory/point.js.map +1 -1
  312. package/lib/tile/tileFactory/rasterDataLayer.js +12 -2
  313. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -1
  314. package/lib/tile/tileFactory/vectorLayer.js +12 -2
  315. package/lib/tile/tileFactory/vectorLayer.js.map +1 -1
  316. package/lib/wind/index.js +12 -2
  317. package/lib/wind/index.js.map +1 -1
  318. package/lib/wind/models/wind.js +14 -7
  319. package/lib/wind/models/wind.js.map +1 -1
  320. package/package.json +9 -8
  321. package/es/line/models/arcmini.d.ts +0 -9
  322. package/es/line/models/arcmini.js +0 -145
  323. package/es/line/models/arcmini.js.map +0 -1
  324. package/es/point/models/icon-font.d.ts +0 -11
  325. package/es/point/models/icon-font.js +0 -181
  326. package/es/point/models/icon-font.js.map +0 -1
  327. package/es/raster/image.d.ts +0 -0
  328. package/es/raster/image.js +0 -2
  329. package/es/raster/image.js.map +0 -1
  330. package/es/raster/raster2d.d.ts +0 -27
  331. package/es/raster/raster2d.js +0 -158
  332. package/es/raster/raster2d.js.map +0 -1
  333. package/es/utils/geo.d.ts +0 -12
  334. package/es/utils/geo.js +0 -53
  335. package/es/utils/geo.js.map +0 -1
  336. package/lib/line/models/arcmini.js +0 -161
  337. package/lib/line/models/arcmini.js.map +0 -1
  338. package/lib/point/models/icon-font.js +0 -196
  339. package/lib/point/models/icon-font.js.map +0 -1
  340. package/lib/raster/image.js +0 -2
  341. package/lib/raster/image.js.map +0 -1
  342. package/lib/raster/raster2d.js +0 -172
  343. package/lib/raster/raster2d.js.map +0 -1
  344. package/lib/utils/geo.js +0 -65
  345. package/lib/utils/geo.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/tile.ts"],"names":["AttributeType","gl","getCullFace","getMask","BaseModel","PointFillTriangulation","Version","FillModel","layer","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","blur","coord","tileOrigin","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_tileOrigin","u_coord","u_isMeter","Number","isMeter","u_blur","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_offsets","isOffsetStatic","styleAttributeService","createAttributesAndIndices","unit","version","mapService","L7MAP","GLOBEL","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","getShaders","frag","vert","triangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","depth","enable","getBlend","stencil","cull","face","point_tile_frag","point_tile_vert","destroy","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","extrude","extrudeIndex","Array","isArray","shape","shape2d","shapeIndex","indexOf"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttribute,\n IElements,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getCullFace, getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointFillTriangulation } from '../../core/triangulation';\n\nimport point_tile_frag from '../shaders/tile/fill_tile_frag.glsl';\nimport point_tile_vert from '../shaders/tile/fill_tile_vert.glsl';\n\nimport { Version } from '@antv/l7-maps';\nexport default class FillModel extends BaseModel {\n public meter2coord: number = 1;\n private isMeter: boolean = false;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n blur = 0,\n coord = 'lnglat',\n tileOrigin,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_tileOrigin: tileOrigin || [0, 0],\n u_coord: coord === 'lnglat' ? 1.0 : 0.0,\n\n u_isMeter: Number(this.isMeter),\n u_blur: blur,\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: Number(opacity),\n u_stroke_opacity: Number(strokeOpacity),\n u_stroke_width: Number(strokeWidth),\n u_stroke_color: this.getStrokeColor(stroke),\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(): IModel[] {\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n return this.buildModels();\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as Partial<\n ILayerConfig & IPointLayerStyleOptions\n >;\n const { frag, vert, type } = this.getShaders();\n\n this.layer.triangulation = PointFillTriangulation;\n return [\n this.layer.buildLayerModel({\n // primitive: gl.POINTS,\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n }),\n ];\n }\n\n /**\n * 根据 animateOption 的值返回对应的 shader 代码\n * @returns\n */\n public getShaders(): { frag: string; vert: string; type: string } {\n return {\n frag: point_tile_frag,\n vert: point_tile_vert,\n type: 'point_fill_tile',\n };\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\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\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n // console.log('featureIdx', featureIdx, feature)\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'shape',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Shape',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { shape = 2 } = feature;\n const shape2d = this.layer.getLayerConfig().shape2d as string[];\n const shapeIndex = shape2d.indexOf(shape as string);\n return [shapeIndex];\n },\n },\n });\n }\n}\n"],"file":"tile.js"}
1
+ {"version":3,"sources":["../../../src/point/models/tile.ts"],"names":["AttributeType","gl","getCullFace","getMask","BaseModel","PointFillTriangulation","Version","FillModel","layer","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","blur","coord","tileOrigin","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_tileOrigin","u_coord","u_isMeter","Number","isMeter","u_blur","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_offsets","isOffsetStatic","styleAttributeService","createAttributesAndIndices","callbackModel","unit","version","mapService","L7MAP","GLOBEL","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","workerEnabled","triangulation","buildLayerModel","moduleName","vertexShader","point_tile_vert","fragmentShader","point_tile_frag","depth","enable","cull","face","getBlend","stencil","workerOptions","modelType","then","model","catch","err","console","warn","destroy","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","extrude","extrudeIndex","Array","isArray","shape","shape2d","shapeIndex","indexOf"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttribute,\n IElements,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getCullFace, getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport { PointFillTriangulation } from '../../core/triangulation';\n\nimport point_tile_frag from '../shaders/tile/fill_tile_frag.glsl';\nimport point_tile_vert from '../shaders/tile/fill_tile_vert.glsl';\n\nimport { Version } from '@antv/l7-maps';\nexport default class FillModel extends BaseModel {\n public meter2coord: number = 1;\n private isMeter: boolean = false;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n blur = 0,\n coord = 'lnglat',\n tileOrigin,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_tileOrigin: tileOrigin || [0, 0],\n u_coord: coord === 'lnglat' ? 1.0 : 0.0,\n\n u_isMeter: Number(this.isMeter),\n u_blur: blur,\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: Number(opacity),\n u_stroke_opacity: Number(strokeOpacity),\n u_stroke_width: Number(strokeWidth),\n u_stroke_color: this.getStrokeColor(stroke),\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n this.buildModels(callbackModel);\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n workerEnabled = false,\n } = this.layer.getLayerConfig() as Partial<\n ILayerConfig & IPointLayerStyleOptions\n >;\n\n this.layer.triangulation = PointFillTriangulation;\n this.layer\n .buildLayerModel({\n moduleName: 'pointTile',\n vertexShader: point_tile_vert,\n fragmentShader: point_tile_frag,\n triangulation: PointFillTriangulation,\n depth: { enable: false },\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n workerEnabled,\n workerOptions: {\n modelType: 'pointTile',\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\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\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n // console.log('featureIdx', featureIdx, feature)\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'shape',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Shape',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { shape = 2 } = feature;\n const shape2d = this.layer.getLayerConfig().shape2d as string[];\n const shapeIndex = shape2d.indexOf(shape as string);\n return [shapeIndex];\n },\n },\n });\n }\n}\n"],"file":"tile.js"}
@@ -37,14 +37,24 @@ var PolygonLayer = function (_BaseLayer) {
37
37
  _createClass(PolygonLayer, [{
38
38
  key: "buildModels",
39
39
  value: function buildModels() {
40
+ var _this2 = this;
41
+
40
42
  var shape = this.getModelType();
41
43
  this.layerModel = new PolygonModels[shape](this);
42
- this.models = this.layerModel.initModels();
44
+ this.layerModel.initModels(function (models) {
45
+ _this2.models = models;
46
+
47
+ _this2.renderLayers();
48
+ });
43
49
  }
44
50
  }, {
45
51
  key: "rebuildModels",
46
52
  value: function rebuildModels() {
47
- this.models = this.layerModel.buildModels();
53
+ var _this3 = this;
54
+
55
+ this.layerModel.buildModels(function (models) {
56
+ return _this3.models = models;
57
+ });
48
58
  }
49
59
  }, {
50
60
  key: "getConfigSchema",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/polygon/index.ts"],"names":["BaseLayer","PolygonModels","PolygonLayer","shape","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","layerSource","parser","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","getPointModelType","layerData","getEncodedData","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","item","find","fe","hasOwnProperty","indexOf"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IPolygonLayerStyleOptions } from '../core/interface';\nimport PolygonModels, { PolygonModelType } from './models/';\n\nexport default class PolygonLayer extends BaseLayer<IPolygonLayerStyleOptions> {\n public type: string = 'PolygonLayer';\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new PolygonModels[shape](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\n protected getModelType(): PolygonModelType {\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorpolygon';\n }\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as PolygonModelType;\n if (shape === 'fill') {\n return 'fill';\n } else if (shape === 'extrude') {\n return 'extrude';\n } else if (shape === 'water') {\n return 'water';\n } else if (shape === 'ocean') {\n return 'ocean';\n } else if (shape === 'line') {\n return 'line';\n } else if (shape === 'tile') {\n return 'tile';\n } else {\n return this.getPointModelType();\n }\n }\n protected getPointModelType(): PolygonModelType {\n // pointlayer\n // 2D、 3d、 shape、image、text、normal、\n const layerData = this.getEncodedData();\n const { shape2d, shape3d } = this.getLayerConfig();\n const iconMap = this.iconService.getIconMap();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n if (!item) {\n return 'fill';\n } else {\n const shape = item.shape;\n if (shape === 'dot') {\n return 'point_normal';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n return 'point_fill';\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n return 'point_extrude';\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'point_image';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/polygon/index.ts"],"names":["BaseLayer","PolygonModels","PolygonLayer","shape","getModelType","layerModel","initModels","models","renderLayers","buildModels","properties","opacity","type","minimum","maximum","layerSource","parser","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","getPointModelType","layerData","getEncodedData","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","item","find","fe","hasOwnProperty","indexOf"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IPolygonLayerStyleOptions } from '../core/interface';\nimport PolygonModels, { PolygonModelType } from './models/';\n\nexport default class PolygonLayer extends BaseLayer<IPolygonLayerStyleOptions> {\n public type: string = 'PolygonLayer';\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new PolygonModels[shape](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\n }\n 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(): PolygonModelType {\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorpolygon';\n }\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as PolygonModelType;\n if (shape === 'fill') {\n return 'fill';\n } else if (shape === 'extrude') {\n return 'extrude';\n } else if (shape === 'water') {\n return 'water';\n } else if (shape === 'ocean') {\n return 'ocean';\n } else if (shape === 'line') {\n return 'line';\n } else if (shape === 'tile') {\n return 'tile';\n } else {\n return this.getPointModelType();\n }\n }\n protected getPointModelType(): PolygonModelType {\n // pointlayer\n // 2D、 3d、 shape、image、text、normal、\n const layerData = this.getEncodedData();\n const { shape2d, shape3d } = this.getLayerConfig();\n const iconMap = this.iconService.getIconMap();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n if (!item) {\n return 'fill';\n } else {\n const shape = item.shape;\n if (shape === 'dot') {\n return 'point_normal';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n return 'point_fill';\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n return 'point_extrude';\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'point_image';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
@@ -15,8 +15,8 @@ export default class ExtrudeModel extends BaseModel {
15
15
  u_targetColor: number[];
16
16
  u_texture: ITexture2D;
17
17
  };
18
- initModels(): IModel[];
19
- buildModels(): IModel[];
18
+ initModels(callbackModel: (models: IModel[]) => void): void;
19
+ buildModels(callbackModel: (models: IModel[]) => void): void;
20
20
  getShaders(): {
21
21
  frag: string;
22
22
  vert: string;
@@ -118,13 +118,13 @@ var ExtrudeModel = function (_BaseModel) {
118
118
  }
119
119
  }, {
120
120
  key: "initModels",
121
- value: function initModels() {
121
+ value: function initModels(callbackModel) {
122
122
  this.loadTexture();
123
- return this.buildModels();
123
+ this.buildModels(callbackModel);
124
124
  }
125
125
  }, {
126
126
  key: "buildModels",
127
- value: function buildModels() {
127
+ value: function buildModels(callbackModel) {
128
128
  var _ref2 = this.layer.getLayerConfig(),
129
129
  _ref2$mask = _ref2.mask,
130
130
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
@@ -136,13 +136,18 @@ var ExtrudeModel = function (_BaseModel) {
136
136
  vert = _this$getShaders.vert,
137
137
  type = _this$getShaders.type;
138
138
 
139
- return [this.layer.buildLayerModel({
139
+ this.layer.buildLayerModel({
140
140
  moduleName: type,
141
141
  vertexShader: vert,
142
142
  fragmentShader: frag,
143
143
  triangulation: PolygonExtrudeTriangulation,
144
144
  stencil: getMask(mask, maskInside)
145
- })];
145
+ }).then(function (model) {
146
+ callbackModel([model]);
147
+ }).catch(function (err) {
148
+ console.warn(err);
149
+ callbackModel([]);
150
+ });
146
151
  }
147
152
  }, {
148
153
  key: "getShaders",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/polygon/models/extrude.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","PolygonExtrudeTriangulation","ExtrudeModel","layer","getLayerConfig","opacity","heightfixed","raisingHeight","topsurface","sidesurface","sourceColor","targetColor","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","useLinearColor","sourceColorArr","targetColorArr","u_topsurface","Number","u_sidesurface","u_heightfixed","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","u_opacity","u_linearColor","u_sourceColor","u_targetColor","u_texture","texture","loadTexture","buildModels","mask","maskInside","getShaders","frag","vert","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","stencil","pickLight","mapTexture","polygonExtrudeTexFrag","polygonExtrudeTexVert","polygonExtrudePickLightFrag","polygonExtrudePickLightVert","polygonExtrudeFrag","polygonExtrudeVert","destroy","bbox","getSource","extent","minLng","minLat","maxLng","maxLat","lngLen","latLen","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","lng","lat","DYNAMIC_DRAW","Array","isArray","rendererService","image","Image","crossOrigin","src","onload","wrapS","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","layerService","updateLayerRenderList","renderLayers"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport { PolygonExtrudeTriangulation } from '../../core/triangulation';\nimport polygonExtrudeFrag from '../shaders/extrude/polygon_extrude_frag.glsl';\n// extrude\nimport polygonExtrudeVert from '../shaders/extrude/polygon_extrude_vert.glsl';\nimport polygonExtrudeTexFrag from '../shaders/extrude/polygon_extrudetex_frag.glsl';\n// texture\nimport polygonExtrudeTexVert from '../shaders/extrude/polygon_extrudetex_vert.glsl';\n// extrude picking\n\nimport polygonExtrudePickLightFrag from '../shaders/extrude/polygon_extrude_picklight_frag.glsl';\nimport polygonExtrudePickLightVert from '../shaders/extrude/polygon_extrude_picklight_vert.glsl';\n\nexport default class ExtrudeModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms() {\n const {\n opacity = 1,\n heightfixed = false,\n raisingHeight = 0,\n topsurface = true,\n sidesurface = true,\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\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\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [1, 1, 1, 1];\n let targetColorArr = [1, 1, 1, 1];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n return {\n // 控制侧面和顶面的显示隐藏\n u_topsurface: Number(topsurface),\n u_sidesurface: Number(sidesurface),\n\n u_heightfixed: Number(heightfixed),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_raisingHeight: Number(raisingHeight),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n u_texture: this.texture,\n };\n }\n\n public initModels(): IModel[] {\n this.loadTexture();\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n\n const { frag, vert, type } = this.getShaders();\n\n return [\n this.layer.buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PolygonExtrudeTriangulation,\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public getShaders() {\n const {\n pickLight,\n mapTexture,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (mapTexture) {\n return {\n frag: polygonExtrudeTexFrag,\n vert: polygonExtrudeTexVert,\n type: 'polygonExtrudeTexture',\n };\n }\n if (pickLight) {\n return {\n frag: polygonExtrudePickLightFrag,\n vert: polygonExtrudePickLightVert,\n type: 'polygonExtrudePickLight',\n };\n } else {\n return {\n frag: polygonExtrudeFrag,\n vert: polygonExtrudeVert,\n type: 'polygonExtrude',\n };\n }\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n this.texture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const bbox = this.layer.getSource().extent;\n const [minLng, minLat, maxLng, maxLat] = bbox;\n const lngLen = maxLng - minLng;\n const latLen = maxLat - minLat;\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uvs',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_uvs',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n const lng = vertex[0];\n const lat = vertex[1];\n return [(lng - minLng) / lngLen, (lat - minLat) / latLen, vertex[4]];\n },\n },\n });\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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 = 10 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n\n private loadTexture() {\n const {\n mapTexture,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n if (mapTexture) {\n const image = new Image();\n image.crossOrigin = '';\n image.src = mapTexture;\n\n image.onload = () => {\n this.texture = createTexture2D({\n data: image,\n width: image.width,\n height: image.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n }\n }\n}\n"],"file":"extrude.js"}
1
+ {"version":3,"sources":["../../../src/polygon/models/extrude.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","PolygonExtrudeTriangulation","ExtrudeModel","layer","getLayerConfig","opacity","heightfixed","raisingHeight","topsurface","sidesurface","sourceColor","targetColor","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","useLinearColor","sourceColorArr","targetColorArr","u_topsurface","Number","u_sidesurface","u_heightfixed","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","u_opacity","u_linearColor","u_sourceColor","u_targetColor","u_texture","texture","callbackModel","loadTexture","buildModels","mask","maskInside","getShaders","frag","vert","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","stencil","then","model","catch","err","console","warn","pickLight","mapTexture","polygonExtrudeTexFrag","polygonExtrudeTexVert","polygonExtrudePickLightFrag","polygonExtrudePickLightVert","polygonExtrudeFrag","polygonExtrudeVert","destroy","bbox","getSource","extent","minLng","minLat","maxLng","maxLat","lngLen","latLen","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","lng","lat","DYNAMIC_DRAW","Array","isArray","rendererService","image","Image","crossOrigin","src","onload","wrapS","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","layerService","updateLayerRenderList","renderLayers"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport { PolygonExtrudeTriangulation } from '../../core/triangulation';\nimport polygonExtrudeFrag from '../shaders/extrude/polygon_extrude_frag.glsl';\n// extrude\nimport polygonExtrudeVert from '../shaders/extrude/polygon_extrude_vert.glsl';\nimport polygonExtrudeTexFrag from '../shaders/extrude/polygon_extrudetex_frag.glsl';\n// texture\nimport polygonExtrudeTexVert from '../shaders/extrude/polygon_extrudetex_vert.glsl';\n// extrude picking\n\nimport polygonExtrudePickLightFrag from '../shaders/extrude/polygon_extrude_picklight_frag.glsl';\nimport polygonExtrudePickLightVert from '../shaders/extrude/polygon_extrude_picklight_vert.glsl';\n\nexport default class ExtrudeModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms() {\n const {\n opacity = 1,\n heightfixed = false,\n raisingHeight = 0,\n topsurface = true,\n sidesurface = true,\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\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\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [1, 1, 1, 1];\n let targetColorArr = [1, 1, 1, 1];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n return {\n // 控制侧面和顶面的显示隐藏\n u_topsurface: Number(topsurface),\n u_sidesurface: Number(sidesurface),\n\n u_heightfixed: Number(heightfixed),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_raisingHeight: Number(raisingHeight),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n u_texture: this.texture,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.loadTexture();\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 IPolygonLayerStyleOptions;\n\n const { frag, vert, type } = this.getShaders();\n this.layer\n .buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: PolygonExtrudeTriangulation,\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 getShaders() {\n const {\n pickLight,\n mapTexture,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (mapTexture) {\n return {\n frag: polygonExtrudeTexFrag,\n vert: polygonExtrudeTexVert,\n type: 'polygonExtrudeTexture',\n };\n }\n if (pickLight) {\n return {\n frag: polygonExtrudePickLightFrag,\n vert: polygonExtrudePickLightVert,\n type: 'polygonExtrudePickLight',\n };\n } else {\n return {\n frag: polygonExtrudeFrag,\n vert: polygonExtrudeVert,\n type: 'polygonExtrude',\n };\n }\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n this.texture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const bbox = this.layer.getSource().extent;\n const [minLng, minLat, maxLng, maxLat] = bbox;\n const lngLen = maxLng - minLng;\n const latLen = maxLat - minLat;\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uvs',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_uvs',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n const lng = vertex[0];\n const lat = vertex[1];\n return [(lng - minLng) / lngLen, (lat - minLat) / latLen, vertex[4]];\n },\n },\n });\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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 = 10 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n\n private loadTexture() {\n const {\n mapTexture,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n if (mapTexture) {\n const image = new Image();\n image.crossOrigin = '';\n image.src = mapTexture;\n\n image.onload = () => {\n this.texture = createTexture2D({\n data: image,\n width: image.width,\n height: image.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n }\n }\n}\n"],"file":"extrude.js"}
@@ -9,8 +9,8 @@ export default class FillModel extends BaseModel {
9
9
  u_opacitylinear: number;
10
10
  u_dir: number;
11
11
  };
12
- initModels(): IModel[];
13
- buildModels(): IModel[];
12
+ initModels(callbackModel: (models: IModel[]) => void): void;
13
+ buildModels(callbackModel: (models: IModel[]) => void): void;
14
14
  clearModels(): void;
15
15
  protected registerBuiltinAttributes(): void;
16
16
  private getModelParams;
@@ -10,9 +10,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
  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; } }
11
11
 
12
12
  import { AttributeType, gl } from '@antv/l7-core';
13
- import { getMask } from '@antv/l7-utils';
13
+ import { getMask, polygonFillTriangulation } from '@antv/l7-utils';
14
14
  import BaseModel from '../../core/BaseModel';
15
- import { polygonTriangulation, polygonTriangulationWithCenter } from '../../core/triangulation';
15
+ import { polygonTriangulationWithCenter } from '../../core/triangulation';
16
16
  var polygon_frag = "uniform float u_opacity: 1.0;\nvarying vec4 v_Color;\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 gl_FragColor = v_Color;\n gl_FragColor.a *= opacity;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
17
17
  var polygon_linear_frag = "uniform float u_opacity: 1.0;\nvarying vec4 v_Color;\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n#pragma include \"picking\"\nuniform float u_opacitylinear: 0.0;\nuniform float u_dir: 1.0;\nvarying vec3 v_linear;\nvarying vec2 v_pos;\n\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n gl_FragColor = v_Color;\n \n if(u_opacitylinear > 0.0) {\n gl_FragColor.a *= u_dir == 1.0 ? 1.0 - length(v_pos - v_linear.xy)/v_linear.z : length(v_pos - v_linear.xy)/v_linear.z;\n }\n\n gl_FragColor.a *= opacity;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
18
18
  var polygon_linear_vert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform float u_opacity: 1.0;\nuniform float u_raisingHeight: 0.0;\n\nvarying vec4 v_Color;\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\nuniform float u_opacitylinear: 0.0;\n\nattribute vec3 a_linear;\nvarying vec3 v_linear;\nvarying vec2 v_pos;\n\nvoid main() {\n if(u_opacitylinear > 0.0) {\n v_linear = a_linear;\n v_pos = a_Position.xy;\n }\n \n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\nstyleMappingMat = 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 // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n v_Color = a_Color;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n project_pos.z += u_raisingHeight;\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);\n project_pos.z *= mapboxZoomScale;\n project_pos.z += u_raisingHeight * mapboxZoomScale;\n }\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}";
@@ -85,12 +85,12 @@ var FillModel = function (_BaseModel) {
85
85
  }
86
86
  }, {
87
87
  key: "initModels",
88
- value: function initModels() {
89
- return this.buildModels();
88
+ value: function initModels(callbackModel) {
89
+ this.buildModels(callbackModel);
90
90
  }
91
91
  }, {
92
92
  key: "buildModels",
93
- value: function buildModels() {
93
+ value: function buildModels(callbackModel) {
94
94
  var _this$getModelParams = this.getModelParams(),
95
95
  frag = _this$getModelParams.frag,
96
96
  vert = _this$getModelParams.vert,
@@ -101,20 +101,34 @@ var FillModel = function (_BaseModel) {
101
101
  _ref2$mask = _ref2.mask,
102
102
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
103
103
  _ref2$maskInside = _ref2.maskInside,
104
- maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
104
+ maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside,
105
+ _ref2$workerEnabled = _ref2.workerEnabled,
106
+ workerEnabled = _ref2$workerEnabled === void 0 ? false : _ref2$workerEnabled,
107
+ enablePicking = _ref2.enablePicking;
105
108
 
106
109
  this.layer.triangulation = triangulation;
107
- return [this.layer.buildLayerModel({
110
+ this.layer.buildLayerModel({
108
111
  moduleName: type,
109
112
  vertexShader: vert,
110
113
  fragmentShader: frag,
111
114
  triangulation: triangulation,
112
- blend: this.getBlend(),
115
+ primitive: gl.TRIANGLES,
113
116
  depth: {
114
117
  enable: false
115
118
  },
116
- stencil: getMask(mask, maskInside)
117
- })];
119
+ blend: this.getBlend(),
120
+ stencil: getMask(mask, maskInside),
121
+ workerEnabled: workerEnabled,
122
+ workerOptions: {
123
+ modelType: type,
124
+ enablePicking: enablePicking
125
+ }
126
+ }).then(function (model) {
127
+ callbackModel([model]);
128
+ }).catch(function (err) {
129
+ console.warn(err);
130
+ callbackModel([]);
131
+ });
118
132
  }
119
133
  }, {
120
134
  key: "clearModels",
@@ -165,15 +179,15 @@ var FillModel = function (_BaseModel) {
165
179
  return {
166
180
  frag: polygon_linear_frag,
167
181
  vert: polygon_linear_vert,
168
- type: 'polygon_linear',
182
+ type: 'polygonLinear',
169
183
  triangulation: polygonTriangulationWithCenter
170
184
  };
171
185
  } else {
172
186
  return {
173
187
  frag: polygon_frag,
174
188
  vert: polygon_vert,
175
- type: 'polygon_fill',
176
- triangulation: polygonTriangulation
189
+ type: 'polygonFill',
190
+ triangulation: polygonFillTriangulation
177
191
  };
178
192
  }
179
193
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/polygon/models/fill.ts"],"names":["AttributeType","gl","getMask","BaseModel","polygonTriangulation","polygonTriangulationWithCenter","FillModel","layer","getLayerConfig","raisingHeight","opacity","opacityLinear","enable","dir","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_opacitylinear","u_dir","buildModels","getModelParams","frag","vert","triangulation","mask","maskInside","buildLayerModel","moduleName","vertexShader","fragmentShader","blend","getBlend","depth","stencil","destroy","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","polygon_linear_frag","polygon_linear_vert","polygon_frag","polygon_vert"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n Triangulation,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport {\n polygonTriangulation,\n polygonTriangulationWithCenter,\n} from '../../core/triangulation';\nimport polygon_frag from '../shaders/polygon_frag.glsl';\nimport polygon_linear_frag from '../shaders/polygon_linear_frag.glsl';\nimport polygon_linear_vert from '../shaders/polygon_linear_vert.glsl';\nimport polygon_vert from '../shaders/polygon_vert.glsl';\nexport default class FillModel extends BaseModel {\n public getUninforms() {\n const {\n raisingHeight = 0,\n opacity = 1,\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\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_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n u_opacitylinear: Number(opacityLinear.enable),\n u_dir: opacityLinear.dir === 'in' ? 1.0 : 0.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const { frag, vert, triangulation, type } = this.getModelParams();\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n this.layer.triangulation = triangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation,\n blend: this.getBlend(),\n depth: { enable: false },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const {\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (opacityLinear.enable) {\n this.styleAttributeService.registerStyleAttribute({\n name: 'linear',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_linear',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n // center[0] center[1] radius\n return [vertex[3], vertex[4], vertex[5]];\n },\n },\n });\n }\n }\n\n private getModelParams(): {\n frag: string;\n vert: string;\n type: string;\n triangulation: Triangulation;\n } {\n const {\n opacityLinear = {\n enable: false,\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (opacityLinear.enable) {\n return {\n frag: polygon_linear_frag,\n vert: polygon_linear_vert,\n type: 'polygon_linear',\n triangulation: polygonTriangulationWithCenter,\n };\n } else {\n return {\n frag: polygon_frag,\n vert: polygon_vert,\n type: 'polygon_fill',\n triangulation: polygonTriangulation,\n };\n }\n }\n}\n"],"file":"fill.js"}
1
+ {"version":3,"sources":["../../../src/polygon/models/fill.ts"],"names":["AttributeType","gl","getMask","polygonFillTriangulation","BaseModel","polygonTriangulationWithCenter","FillModel","layer","getLayerConfig","raisingHeight","opacity","opacityLinear","enable","dir","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_opacitylinear","u_dir","callbackModel","buildModels","getModelParams","frag","vert","triangulation","mask","maskInside","workerEnabled","enablePicking","buildLayerModel","moduleName","vertexShader","fragmentShader","primitive","TRIANGLES","depth","blend","getBlend","stencil","workerOptions","modelType","then","model","catch","err","console","warn","destroy","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","polygon_linear_frag","polygon_linear_vert","polygon_frag","polygon_vert"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n Triangulation,\n} from '@antv/l7-core';\nimport { getMask, polygonFillTriangulation } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport { polygonTriangulationWithCenter } from '../../core/triangulation';\nimport polygon_frag from '../shaders/polygon_frag.glsl';\nimport polygon_linear_frag from '../shaders/polygon_linear_frag.glsl';\nimport polygon_linear_vert from '../shaders/polygon_linear_vert.glsl';\nimport polygon_vert from '../shaders/polygon_vert.glsl';\nexport default class FillModel extends BaseModel {\n public getUninforms() {\n const {\n raisingHeight = 0,\n opacity = 1,\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\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_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n u_opacitylinear: Number(opacityLinear.enable),\n u_dir: opacityLinear.dir === 'in' ? 1.0 : 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 { frag, vert, triangulation, type } = this.getModelParams();\n const {\n mask = false,\n maskInside = true,\n workerEnabled = false,\n enablePicking,\n } = this.layer.getLayerConfig() as Partial<\n ILayerConfig & IPolygonLayerStyleOptions\n >;\n this.layer.triangulation = triangulation;\n this.layer\n .buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n workerEnabled,\n workerOptions: {\n modelType: type,\n enablePicking,\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const {\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (opacityLinear.enable) {\n this.styleAttributeService.registerStyleAttribute({\n name: 'linear',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_linear',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n // center[0] center[1] radius\n return [vertex[3], vertex[4], vertex[5]];\n },\n },\n });\n }\n }\n\n private getModelParams(): {\n frag: string;\n vert: string;\n type: string;\n triangulation: Triangulation;\n } {\n const {\n opacityLinear = {\n enable: false,\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (opacityLinear.enable) {\n return {\n frag: polygon_linear_frag,\n vert: polygon_linear_vert,\n type: 'polygonLinear',\n triangulation: polygonTriangulationWithCenter,\n };\n } else {\n return {\n frag: polygon_frag,\n vert: polygon_vert,\n type: 'polygonFill',\n triangulation: polygonFillTriangulation,\n };\n }\n }\n}\n"],"file":"fill.js"}
@@ -15,8 +15,8 @@ export default class OceanModel extends BaseModel {
15
15
  u_opacity: number;
16
16
  };
17
17
  getAnimateUniforms(): IModelUniform;
18
- initModels(): IModel[];
19
- buildModels(): IModel[];
18
+ initModels(callbackModel: (models: IModel[]) => void): void;
19
+ buildModels(callbackModel: (models: IModel[]) => void): void;
20
20
  clearModels(): void;
21
21
  protected registerBuiltinAttributes(): void;
22
22
  private loadTexture;
@@ -106,29 +106,35 @@ var OceanModel = function (_BaseModel) {
106
106
  }
107
107
  }, {
108
108
  key: "initModels",
109
- value: function initModels() {
109
+ value: function initModels(callbackModel) {
110
110
  this.loadTexture();
111
- return this.buildModels();
111
+ this.buildModels(callbackModel);
112
112
  }
113
113
  }, {
114
114
  key: "buildModels",
115
- value: function buildModels() {
115
+ value: function buildModels(callbackModel) {
116
116
  var _ref2 = this.layer.getLayerConfig(),
117
117
  _ref2$mask = _ref2.mask,
118
118
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
119
119
  _ref2$maskInside = _ref2.maskInside,
120
120
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
121
121
 
122
- return [this.layer.buildLayerModel({
123
- moduleName: 'polygon_ocean',
122
+ this.layer.buildLayerModel({
123
+ moduleName: 'polygonOcean',
124
124
  vertexShader: ocean_vert,
125
125
  fragmentShader: ocean_frag,
126
126
  triangulation: polygonTriangulation,
127
+ primitive: gl.TRIANGLES,
127
128
  depth: {
128
129
  enable: false
129
130
  },
130
131
  stencil: getMask(mask, maskInside)
131
- })];
132
+ }).then(function (model) {
133
+ callbackModel([model]);
134
+ }).catch(function (err) {
135
+ console.warn(err);
136
+ callbackModel([]);
137
+ });
132
138
  }
133
139
  }, {
134
140
  key: "clearModels",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/polygon/models/ocean.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","polygonTriangulation","OceanModel","layer","getLayerConfig","opacity","watercolor","watercolor2","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_texture1","texture1","u_texture2","texture2","u_texture3","texture3","u_watercolor","u_watercolor2","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_time","getLayerAnimateTime","loadTexture","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","ocean_vert","fragmentShader","ocean_frag","triangulation","depth","enable","stencil","destroy","bbox","getSource","extent","minLng","minLat","maxLng","maxLat","lngLen","latLen","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","lng","lat","rendererService","defaultTextureOptions","initImage","images","initTex","layerService","updateLayerRenderList","renderLayers","callback","loadedCount","loadedImages","map","imgSrc","image","Image","crossOrigin","src","push","onload","wrapS","MIRRORED_REPEAT","wrapT","min","LINEAR","mag"],"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, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport { polygonTriangulation } from '../../core/triangulation';\nimport ocean_frag from '../shaders/water/polygon_ocean_frag.glsl';\nimport ocean_vert from '../shaders/water/polygon_ocean_vert.glsl';\nexport default class OceanModel extends BaseModel {\n private texture1: ITexture2D;\n private texture2: ITexture2D;\n private texture3: ITexture2D;\n public getUninforms() {\n const {\n opacity = 1,\n watercolor = '#6D99A8',\n watercolor2 = '#0F121C',\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\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_texture1: this.texture1,\n u_texture2: this.texture2,\n u_texture3: this.texture3,\n u_watercolor: rgb2arr(watercolor),\n u_watercolor2: rgb2arr(watercolor2),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public getAnimateUniforms(): IModelUniform {\n return {\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(): IModel[] {\n this.loadTexture();\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'polygon_ocean',\n vertexShader: ocean_vert,\n fragmentShader: ocean_frag,\n triangulation: polygonTriangulation,\n depth: { enable: false },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.texture1?.destroy();\n this.texture2?.destroy();\n this.texture3?.destroy();\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const bbox = this.layer.getSource().extent;\n const [minLng, minLat, maxLng, maxLat] = bbox;\n const lngLen = maxLng - minLng;\n const latLen = maxLat - minLat;\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'oceanUv',\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.STATIC_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 normal: number[],\n ) => {\n const [lng, lat] = vertex;\n return [(lng - minLng) / lngLen, (lat - minLat) / latLen];\n },\n },\n });\n }\n\n private loadTexture() {\n const { createTexture2D } = this.rendererService;\n const defaultTextureOptions = { height: 0, width: 0 };\n // 默认索引为 undefined,所以单独赋值\n this.texture1 = createTexture2D(defaultTextureOptions);\n this.texture2 = createTexture2D(defaultTextureOptions);\n this.texture3 = createTexture2D(defaultTextureOptions);\n\n // 加载完 image 后单独给 texture f赋值\n initImage((images: HTMLImageElement[]) => {\n this.texture1 = initTex(images[0]);\n this.texture2 = initTex(images[1]);\n this.texture3 = initTex(images[2]);\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n function initImage(callback: (loadedImages: HTMLImageElement[]) => void) {\n let loadedCount = 0;\n const loadedImages: HTMLImageElement[] = [];\n const images = [\n 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ',\n 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*MJ22QbpuCzIAAAAAAAAAAAAAARQnAQ',\n 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*-z2HSIVDsHIAAAAAAAAAAAAAARQnAQ',\n ];\n images.map((imgSrc: string) => {\n const image = new Image();\n image.crossOrigin = '';\n image.src = imgSrc;\n loadedImages.push(image);\n image.onload = () => {\n loadedCount++;\n if (loadedCount === 3) {\n callback(loadedImages);\n }\n };\n });\n }\n\n function initTex(image: HTMLImageElement) {\n return createTexture2D({\n data: image,\n width: image.width,\n height: image.height,\n wrapS: gl.MIRRORED_REPEAT,\n wrapT: gl.MIRRORED_REPEAT,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n });\n }\n }\n}\n"],"file":"ocean.js"}
1
+ {"version":3,"sources":["../../../src/polygon/models/ocean.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","polygonTriangulation","OceanModel","layer","getLayerConfig","opacity","watercolor","watercolor2","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_texture1","texture1","u_texture2","texture2","u_texture3","texture3","u_watercolor","u_watercolor2","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_time","getLayerAnimateTime","callbackModel","loadTexture","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","ocean_vert","fragmentShader","ocean_frag","triangulation","primitive","TRIANGLES","depth","enable","stencil","then","model","catch","err","console","warn","destroy","bbox","getSource","extent","minLng","minLat","maxLng","maxLat","lngLen","latLen","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","lng","lat","rendererService","defaultTextureOptions","initImage","images","initTex","layerService","updateLayerRenderList","renderLayers","callback","loadedCount","loadedImages","map","imgSrc","image","Image","crossOrigin","src","push","onload","wrapS","MIRRORED_REPEAT","wrapT","min","LINEAR","mag"],"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, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport { polygonTriangulation } from '../../core/triangulation';\nimport ocean_frag from '../shaders/water/polygon_ocean_frag.glsl';\nimport ocean_vert from '../shaders/water/polygon_ocean_vert.glsl';\nexport default class OceanModel extends BaseModel {\n private texture1: ITexture2D;\n private texture2: ITexture2D;\n private texture3: ITexture2D;\n public getUninforms() {\n const {\n opacity = 1,\n watercolor = '#6D99A8',\n watercolor2 = '#0F121C',\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\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_texture1: this.texture1,\n u_texture2: this.texture2,\n u_texture3: this.texture3,\n u_watercolor: rgb2arr(watercolor),\n u_watercolor2: rgb2arr(watercolor2),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public getAnimateUniforms(): IModelUniform {\n return {\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.loadTexture();\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 IPolygonLayerStyleOptions;\n this.layer\n .buildLayerModel({\n moduleName: 'polygonOcean',\n vertexShader: ocean_vert,\n fragmentShader: ocean_frag,\n triangulation: polygonTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels() {\n this.texture1?.destroy();\n this.texture2?.destroy();\n this.texture3?.destroy();\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const bbox = this.layer.getSource().extent;\n const [minLng, minLat, maxLng, maxLat] = bbox;\n const lngLen = maxLng - minLng;\n const latLen = maxLat - minLat;\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'oceanUv',\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.STATIC_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 normal: number[],\n ) => {\n const [lng, lat] = vertex;\n return [(lng - minLng) / lngLen, (lat - minLat) / latLen];\n },\n },\n });\n }\n\n private loadTexture() {\n const { createTexture2D } = this.rendererService;\n const defaultTextureOptions = { height: 0, width: 0 };\n // 默认索引为 undefined,所以单独赋值\n this.texture1 = createTexture2D(defaultTextureOptions);\n this.texture2 = createTexture2D(defaultTextureOptions);\n this.texture3 = createTexture2D(defaultTextureOptions);\n\n // 加载完 image 后单独给 texture f赋值\n initImage((images: HTMLImageElement[]) => {\n this.texture1 = initTex(images[0]);\n this.texture2 = initTex(images[1]);\n this.texture3 = initTex(images[2]);\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n function initImage(callback: (loadedImages: HTMLImageElement[]) => void) {\n let loadedCount = 0;\n const loadedImages: HTMLImageElement[] = [];\n const images = [\n 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ',\n 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*MJ22QbpuCzIAAAAAAAAAAAAAARQnAQ',\n 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*-z2HSIVDsHIAAAAAAAAAAAAAARQnAQ',\n ];\n images.map((imgSrc: string) => {\n const image = new Image();\n image.crossOrigin = '';\n image.src = imgSrc;\n loadedImages.push(image);\n image.onload = () => {\n loadedCount++;\n if (loadedCount === 3) {\n callback(loadedImages);\n }\n };\n });\n }\n\n function initTex(image: HTMLImageElement) {\n return createTexture2D({\n data: image,\n width: image.width,\n height: image.height,\n wrapS: gl.MIRRORED_REPEAT,\n wrapT: gl.MIRRORED_REPEAT,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n });\n }\n }\n}\n"],"file":"ocean.js"}
@@ -8,9 +8,8 @@ export default class FillModel extends BaseModel {
8
8
  u_cellTypeLayout: number[];
9
9
  u_opacity: number;
10
10
  };
11
- initModels(): IModel[];
12
- buildModels(): IModel[];
11
+ initModels(callbackModel: (models: IModel[]) => void): void;
12
+ buildModels(callbackModel: (models: IModel[]) => void): void;
13
13
  clearModels(): void;
14
14
  protected registerBuiltinAttributes(): void;
15
- private getModelParams;
16
15
  }