@antv/l7-layers 2.25.7 → 2.25.10

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 (717) hide show
  1. package/es/canvas/index.d.ts +18 -0
  2. package/es/canvas/index.js +70 -0
  3. package/es/canvas/models/canvas.d.ts +23 -0
  4. package/es/canvas/models/canvas.js +141 -0
  5. package/es/canvas/models/constants.d.ts +2 -0
  6. package/es/canvas/models/constants.js +6 -0
  7. package/es/canvas/models/index.d.ts +2 -0
  8. package/es/canvas/models/index.js +2 -0
  9. package/es/citybuilding/building.d.ts +7 -0
  10. package/es/citybuilding/building.js +25 -0
  11. package/es/citybuilding/models/build.d.ts +33 -0
  12. package/es/citybuilding/models/build.js +160 -0
  13. package/es/citybuilding/shaders/build_frag.glsl +123 -0
  14. package/es/citybuilding/shaders/build_vert.glsl +58 -0
  15. package/es/core/BaseLayer.d.ts +265 -0
  16. package/es/core/BaseLayer.js +1310 -0
  17. package/es/core/BaseModel.d.ts +95 -0
  18. package/es/core/BaseModel.js +367 -0
  19. package/es/core/CommonStyleAttribute.d.ts +16 -0
  20. package/es/core/CommonStyleAttribute.js +114 -0
  21. package/es/core/LayerPickService.d.ts +12 -0
  22. package/es/core/LayerPickService.js +102 -0
  23. package/es/core/TextureService.d.ts +15 -0
  24. package/es/core/TextureService.js +65 -0
  25. package/es/core/constant.d.ts +6 -0
  26. package/es/core/constant.js +19 -0
  27. package/es/core/interface.d.ts +284 -0
  28. package/es/core/interface.js +32 -0
  29. package/es/core/line_trangluation.d.ts +19 -0
  30. package/es/core/line_trangluation.js +86 -0
  31. package/es/core/schema.d.ts +27 -0
  32. package/es/core/schema.js +25 -0
  33. package/es/core/shape/Path.d.ts +40 -0
  34. package/es/core/shape/Path.js +69 -0
  35. package/es/core/shape/arrow.d.ts +25 -0
  36. package/es/core/shape/arrow.js +144 -0
  37. package/es/core/shape/extrude.d.ts +17 -0
  38. package/es/core/shape/extrude.js +133 -0
  39. package/es/core/triangulation.d.ts +136 -0
  40. package/es/core/triangulation.js +601 -0
  41. package/es/core/utils.d.ts +5 -0
  42. package/es/core/utils.js +36 -0
  43. package/es/earth/index.d.ts +22 -0
  44. package/es/earth/index.js +54 -0
  45. package/es/earth/models/atmosphere.d.ts +30 -0
  46. package/es/earth/models/atmosphere.js +116 -0
  47. package/es/earth/models/base.d.ts +37 -0
  48. package/es/earth/models/base.js +172 -0
  49. package/es/earth/models/bloomsphere.d.ts +30 -0
  50. package/es/earth/models/bloomsphere.js +115 -0
  51. package/es/earth/shaders/atmosphere/atmosphere_frag.glsl +17 -0
  52. package/es/earth/shaders/atmosphere/atmosphere_vert.glsl +24 -0
  53. package/es/earth/shaders/base/base_frag.glsl +11 -0
  54. package/es/earth/shaders/base/base_vert.glsl +52 -0
  55. package/es/earth/shaders/bloomshpere/bloomsphere_frag.glsl +15 -0
  56. package/es/earth/shaders/bloomshpere/bloomsphere_vert.glsl +20 -0
  57. package/es/earth/utils.d.ts +26 -0
  58. package/es/earth/utils.js +99 -0
  59. package/es/geometry/index.d.ts +22 -0
  60. package/es/geometry/index.js +53 -0
  61. package/es/geometry/models/billboard.d.ts +39 -0
  62. package/es/geometry/models/billboard.js +175 -0
  63. package/es/geometry/models/index.d.ts +5 -0
  64. package/es/geometry/models/index.js +9 -0
  65. package/es/geometry/models/plane.d.ts +58 -0
  66. package/es/geometry/models/plane.js +308 -0
  67. package/es/geometry/models/sprite.d.ts +48 -0
  68. package/es/geometry/models/sprite.js +225 -0
  69. package/es/geometry/shaders/billboard_frag.glsl +18 -0
  70. package/es/geometry/shaders/billboard_vert.glsl +43 -0
  71. package/es/geometry/shaders/plane_frag.glsl +23 -0
  72. package/es/geometry/shaders/plane_vert.glsl +31 -0
  73. package/es/geometry/shaders/sprite_frag.glsl +23 -0
  74. package/es/geometry/shaders/sprite_vert.glsl +21 -0
  75. package/es/heatmap/index.d.ts +13 -0
  76. package/es/heatmap/index.js +87 -0
  77. package/es/heatmap/models/grid.d.ts +29 -0
  78. package/es/heatmap/models/grid.js +83 -0
  79. package/es/heatmap/models/grid3d.d.ts +31 -0
  80. package/es/heatmap/models/grid3d.js +122 -0
  81. package/es/heatmap/models/heatmap.d.ts +46 -0
  82. package/es/heatmap/models/heatmap.js +447 -0
  83. package/es/heatmap/models/hexagon.d.ts +29 -0
  84. package/es/heatmap/models/hexagon.js +83 -0
  85. package/es/heatmap/models/index.d.ts +5 -0
  86. package/es/heatmap/models/index.js +12 -0
  87. package/es/heatmap/shaders/grid/grid_frag.glsl +9 -0
  88. package/es/heatmap/shaders/grid/grid_vert.glsl +30 -0
  89. package/es/heatmap/shaders/grid3d/grid_3d_frag.glsl +17 -0
  90. package/es/heatmap/shaders/grid3d/grid_3d_vert.glsl +34 -0
  91. package/es/heatmap/shaders/heatmap/heatmap_3d_frag.glsl +23 -0
  92. package/es/heatmap/shaders/heatmap/heatmap_3d_vert.glsl +59 -0
  93. package/es/heatmap/shaders/heatmap/heatmap_frag.glsl +40 -0
  94. package/es/heatmap/shaders/heatmap/heatmap_framebuffer_frag.glsl +17 -0
  95. package/es/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl +36 -0
  96. package/es/heatmap/shaders/heatmap/heatmap_vert.glsl +21 -0
  97. package/es/heatmap/shaders/hexagon/hexagon_frag.glsl +8 -0
  98. package/es/heatmap/shaders/hexagon/hexagon_vert.glsl +30 -0
  99. package/es/heatmap/triangulation.d.ts +5 -0
  100. package/es/heatmap/triangulation.js +33 -0
  101. package/es/image/index.d.ts +9 -0
  102. package/es/image/index.js +28 -0
  103. package/es/image/models/image.d.ts +31 -0
  104. package/es/image/models/image.js +113 -0
  105. package/es/image/models/index.d.ts +5 -0
  106. package/es/image/models/index.js +5 -0
  107. package/es/image/shaders/dataImage_frag.glsl +32 -0
  108. package/es/image/shaders/image_frag.glsl +38 -0
  109. package/es/image/shaders/image_vert.glsl +20 -0
  110. package/es/index.d.ts +18 -0
  111. package/es/index.js +18 -0
  112. package/es/line/index.d.ts +36 -0
  113. package/es/line/index.js +90 -0
  114. package/es/line/models/arc.d.ts +40 -0
  115. package/es/line/models/arc.js +279 -0
  116. package/es/line/models/arc_3d.d.ts +40 -0
  117. package/es/line/models/arc_3d.js +269 -0
  118. package/es/line/models/flow.d.ts +31 -0
  119. package/es/line/models/flow.js +140 -0
  120. package/es/line/models/great_circle.d.ts +34 -0
  121. package/es/line/models/great_circle.js +240 -0
  122. package/es/line/models/index.d.ts +5 -0
  123. package/es/line/models/index.js +18 -0
  124. package/es/line/models/line.d.ts +44 -0
  125. package/es/line/models/line.js +273 -0
  126. package/es/line/models/simple_line.d.ts +33 -0
  127. package/es/line/models/simple_line.js +118 -0
  128. package/es/line/models/wall.d.ts +34 -0
  129. package/es/line/models/wall.js +223 -0
  130. package/es/line/shaders/arc/line_arc_frag.glsl +92 -0
  131. package/es/line/shaders/arc/line_arc_vert.glsl +156 -0
  132. package/es/line/shaders/arc3d/line_arc_3d_frag.glsl +108 -0
  133. package/es/line/shaders/arc3d/line_arc_3d_vert.glsl +177 -0
  134. package/es/line/shaders/flow/flow_line_frag.glsl +13 -0
  135. package/es/line/shaders/flow/flow_line_vert.glsl +76 -0
  136. package/es/line/shaders/greatCircle/line_arc_great_circle_frag.glsl +99 -0
  137. package/es/line/shaders/greatCircle/line_arc_great_circle_vert.glsl +165 -0
  138. package/es/line/shaders/line/line_frag.glsl +122 -0
  139. package/es/line/shaders/line/line_vert.glsl +101 -0
  140. package/es/line/shaders/simple/simpleline_frag.glsl +30 -0
  141. package/es/line/shaders/simple/simpleline_vert.glsl +45 -0
  142. package/es/line/shaders/wall/wall_frag.glsl +94 -0
  143. package/es/line/shaders/wall/wall_vert.glsl +90 -0
  144. package/es/mask/index.d.ts +16 -0
  145. package/es/mask/index.js +21 -0
  146. package/es/mask/models/fill.d.ts +18 -0
  147. package/es/mask/models/fill.js +61 -0
  148. package/es/mask/models/index.d.ts +5 -0
  149. package/es/mask/models/index.js +5 -0
  150. package/es/mask/shaders/mask_vert.glsl +14 -0
  151. package/es/plugins/DataMappingPlugin.d.ts +12 -0
  152. package/es/plugins/DataMappingPlugin.js +226 -0
  153. package/es/plugins/DataSourcePlugin.d.ts +6 -0
  154. package/es/plugins/DataSourcePlugin.js +75 -0
  155. package/es/plugins/FeatureScalePlugin.d.ts +20 -0
  156. package/es/plugins/FeatureScalePlugin.js +295 -0
  157. package/es/plugins/LayerAnimateStylePlugin.d.ts +4 -0
  158. package/es/plugins/LayerAnimateStylePlugin.js +14 -0
  159. package/es/plugins/LayerMaskPlugin.d.ts +7 -0
  160. package/es/plugins/LayerMaskPlugin.js +19 -0
  161. package/es/plugins/LayerModelPlugin.d.ts +10 -0
  162. package/es/plugins/LayerModelPlugin.js +60 -0
  163. package/es/plugins/LayerStylePlugin.d.ts +7 -0
  164. package/es/plugins/LayerStylePlugin.js +18 -0
  165. package/es/plugins/LightingPlugin.d.ts +35 -0
  166. package/es/plugins/LightingPlugin.js +84 -0
  167. package/es/plugins/MultiPassRendererPlugin.d.ts +22 -0
  168. package/es/plugins/MultiPassRendererPlugin.js +52 -0
  169. package/es/plugins/PixelPickingPlugin.d.ts +11 -0
  170. package/es/plugins/PixelPickingPlugin.js +146 -0
  171. package/es/plugins/RegisterStyleAttributePlugin.d.ts +10 -0
  172. package/es/plugins/RegisterStyleAttributePlugin.js +72 -0
  173. package/es/plugins/ShaderUniformPlugin.d.ts +17 -0
  174. package/es/plugins/ShaderUniformPlugin.js +196 -0
  175. package/es/plugins/UpdateModelPlugin.d.ts +7 -0
  176. package/es/plugins/UpdateModelPlugin.js +20 -0
  177. package/es/plugins/UpdateStyleAttributePlugin.d.ts +9 -0
  178. package/es/plugins/UpdateStyleAttributePlugin.js +54 -0
  179. package/es/plugins/index.d.ts +15 -0
  180. package/es/plugins/index.js +18 -0
  181. package/es/point/index.d.ts +35 -0
  182. package/es/point/index.js +153 -0
  183. package/es/point/models/billboard_point.d.ts +35 -0
  184. package/es/point/models/billboard_point.js +95 -0
  185. package/es/point/models/earthExtrude.d.ts +32 -0
  186. package/es/point/models/earthExtrude.js +199 -0
  187. package/es/point/models/earthFill.d.ts +31 -0
  188. package/es/point/models/earthFill.js +158 -0
  189. package/es/point/models/extrude.d.ts +32 -0
  190. package/es/point/models/extrude.js +195 -0
  191. package/es/point/models/fill.d.ts +47 -0
  192. package/es/point/models/fill.js +180 -0
  193. package/es/point/models/fillImage.d.ts +42 -0
  194. package/es/point/models/fillImage.js +189 -0
  195. package/es/point/models/image.d.ts +48 -0
  196. package/es/point/models/image.js +293 -0
  197. package/es/point/models/index.d.ts +5 -0
  198. package/es/point/models/index.js +24 -0
  199. package/es/point/models/normal.d.ts +36 -0
  200. package/es/point/models/normal.js +89 -0
  201. package/es/point/models/radar.d.ts +37 -0
  202. package/es/point/models/radar.js +115 -0
  203. package/es/point/models/text.d.ts +85 -0
  204. package/es/point/models/text.js +503 -0
  205. package/es/point/shaders/billboard/billboard_point_frag.glsl +48 -0
  206. package/es/point/shaders/billboard/billboard_point_vert.glsl +33 -0
  207. package/es/point/shaders/earthExtrude/earthExtrude_frag.glsl +36 -0
  208. package/es/point/shaders/earthExtrude/earthExtrude_vert.glsl +118 -0
  209. package/es/point/shaders/earthFill/earthFill_frag.glsl +79 -0
  210. package/es/point/shaders/earthFill/earthFill_vert.glsl +46 -0
  211. package/es/point/shaders/extrude/extrude_frag.glsl +29 -0
  212. package/es/point/shaders/extrude/extrude_vert.glsl +95 -0
  213. package/es/point/shaders/fill/fill_frag.glsl +97 -0
  214. package/es/point/shaders/fill/fill_vert.glsl +79 -0
  215. package/es/point/shaders/fillImage/fillImage_frag.glsl +23 -0
  216. package/es/point/shaders/fillImage/fillImage_vert.glsl +46 -0
  217. package/es/point/shaders/image/image_frag.glsl +45 -0
  218. package/es/point/shaders/image/image_vert.glsl +47 -0
  219. package/es/point/shaders/normal/normal_frag.glsl +5 -0
  220. package/es/point/shaders/normal/normal_vert.glsl +22 -0
  221. package/es/point/shaders/radar/radar_frag.glsl +52 -0
  222. package/es/point/shaders/radar/radar_vert.glsl +53 -0
  223. package/es/point/shaders/text/text_frag.glsl +47 -0
  224. package/es/point/shaders/text/text_vert.glsl +65 -0
  225. package/es/point/shape/extrude.d.ts +15 -0
  226. package/es/point/shape/extrude.js +48 -0
  227. package/es/polygon/index.d.ts +18 -0
  228. package/es/polygon/index.js +71 -0
  229. package/es/polygon/models/extrude.d.ts +41 -0
  230. package/es/polygon/models/extrude.js +248 -0
  231. package/es/polygon/models/extrusion.d.ts +40 -0
  232. package/es/polygon/models/extrusion.js +137 -0
  233. package/es/polygon/models/fill.d.ts +32 -0
  234. package/es/polygon/models/fill.js +127 -0
  235. package/es/polygon/models/index.d.ts +5 -0
  236. package/es/polygon/models/index.js +26 -0
  237. package/es/polygon/models/ocean.d.ts +37 -0
  238. package/es/polygon/models/ocean.js +172 -0
  239. package/es/polygon/models/water.d.ts +35 -0
  240. package/es/polygon/models/water.js +150 -0
  241. package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +24 -0
  242. package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +49 -0
  243. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +53 -0
  244. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +74 -0
  245. package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +55 -0
  246. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +54 -0
  247. package/es/polygon/shaders/extrusion/polygon_extrusion_frag.glsl +8 -0
  248. package/es/polygon/shaders/extrusion/polygon_extrusion_vert.glsl +24 -0
  249. package/es/polygon/shaders/fill/fill_frag.glsl +8 -0
  250. package/es/polygon/shaders/fill/fill_linear_frag.glsl +23 -0
  251. package/es/polygon/shaders/fill/fill_linear_vert.glsl +36 -0
  252. package/es/polygon/shaders/fill/fill_vert.glsl +35 -0
  253. package/es/polygon/shaders/ocean/ocean_frag.glsl +277 -0
  254. package/es/polygon/shaders/ocean/ocean_vert.glsl +21 -0
  255. package/es/polygon/shaders/water/polygon_water_frag.glsl +78 -0
  256. package/es/polygon/shaders/water/polygon_water_vert.glsl +22 -0
  257. package/es/raster/buffers/triangulation.d.ts +6 -0
  258. package/es/raster/buffers/triangulation.js +25 -0
  259. package/es/raster/index.d.ts +11 -0
  260. package/es/raster/index.js +55 -0
  261. package/es/raster/models/index.d.ts +5 -0
  262. package/es/raster/models/index.js +10 -0
  263. package/es/raster/models/raster.d.ts +35 -0
  264. package/es/raster/models/raster.js +156 -0
  265. package/es/raster/models/rasterRgb.d.ts +35 -0
  266. package/es/raster/models/rasterRgb.js +158 -0
  267. package/es/raster/models/rasterTerrainRgb.d.ts +30 -0
  268. package/es/raster/models/rasterTerrainRgb.js +118 -0
  269. package/es/raster/shaders/raster/raster_2d_frag.glsl +37 -0
  270. package/es/raster/shaders/raster/raster_2d_vert.glsl +21 -0
  271. package/es/raster/shaders/rgb/raster_rgb_frag.glsl +30 -0
  272. package/es/raster/shaders/rgb/raster_rgb_vert.glsl +21 -0
  273. package/es/raster/shaders/terrain/terrain_rgb_frag.glsl +40 -0
  274. package/es/raster/shaders/terrain/terrain_rgb_vert.glsl +19 -0
  275. package/es/shader/minify_frag.glsl +11 -0
  276. package/es/shader/minify_picking_frag.glsl +10 -0
  277. package/es/tile/core/BaseLayer.d.ts +50 -0
  278. package/es/tile/core/BaseLayer.js +256 -0
  279. package/es/tile/core/TileDebugLayer.d.ts +15 -0
  280. package/es/tile/core/TileDebugLayer.js +23 -0
  281. package/es/tile/interaction/getFeatureData.d.ts +0 -0
  282. package/es/tile/interaction/getFeatureData.js +0 -0
  283. package/es/tile/interaction/getRasterData.d.ts +4 -0
  284. package/es/tile/interaction/getRasterData.js +45 -0
  285. package/es/tile/interaction/utils.d.ts +11 -0
  286. package/es/tile/interaction/utils.js +69 -0
  287. package/es/tile/interface.d.ts +29 -0
  288. package/es/tile/interface.js +1 -0
  289. package/es/tile/service/TileLayerService.d.ts +58 -0
  290. package/es/tile/service/TileLayerService.js +195 -0
  291. package/es/tile/service/TilePickService.d.ts +26 -0
  292. package/es/tile/service/TilePickService.js +126 -0
  293. package/es/tile/service/TileSourceService.d.ts +7 -0
  294. package/es/tile/service/TileSourceService.js +26 -0
  295. package/es/tile/tile/DebugTile.d.ts +16 -0
  296. package/es/tile/tile/DebugTile.js +47 -0
  297. package/es/tile/tile/ImageTile.d.ts +14 -0
  298. package/es/tile/tile/ImageTile.js +39 -0
  299. package/es/tile/tile/MaskTile.d.ts +18 -0
  300. package/es/tile/tile/MaskTile.js +54 -0
  301. package/es/tile/tile/RasterRGBTile.d.ts +11 -0
  302. package/es/tile/tile/RasterRGBTile.js +47 -0
  303. package/es/tile/tile/RasterTerrainRGBTile.d.ts +14 -0
  304. package/es/tile/tile/RasterTerrainRGBTile.js +39 -0
  305. package/es/tile/tile/RasterTile.d.ts +18 -0
  306. package/es/tile/tile/RasterTile.js +81 -0
  307. package/es/tile/tile/Tile.d.ts +112 -0
  308. package/es/tile/tile/Tile.js +166 -0
  309. package/es/tile/tile/VectorTile.d.ts +26 -0
  310. package/es/tile/tile/VectorTile.js +87 -0
  311. package/es/tile/tile/index.d.ts +12 -0
  312. package/es/tile/tile/index.js +44 -0
  313. package/es/tile/tile/util.d.ts +5 -0
  314. package/es/tile/tile/util.js +18 -0
  315. package/es/tile/utils/constants.d.ts +1 -0
  316. package/es/tile/utils/constants.js +8 -0
  317. package/es/tile/utils/utils.d.ts +8 -0
  318. package/es/tile/utils/utils.js +11 -0
  319. package/es/utils/blend.d.ts +2 -0
  320. package/es/utils/blend.js +57 -0
  321. package/es/utils/collision-index.d.ts +47 -0
  322. package/es/utils/collision-index.js +87 -0
  323. package/es/utils/extrude_polyline.d.ts +53 -0
  324. package/es/utils/extrude_polyline.js +319 -0
  325. package/es/utils/grid-index.d.ts +28 -0
  326. package/es/utils/grid-index.js +128 -0
  327. package/es/utils/identityScale.d.ts +8 -0
  328. package/es/utils/identityScale.js +26 -0
  329. package/es/utils/load-image.d.ts +1 -0
  330. package/es/utils/load-image.js +22 -0
  331. package/es/utils/multiPassRender.d.ts +16 -0
  332. package/es/utils/multiPassRender.js +37 -0
  333. package/es/utils/polylineNormal.d.ts +9 -0
  334. package/es/utils/polylineNormal.js +182 -0
  335. package/es/utils/rampcolor_legend.d.ts +6 -0
  336. package/es/utils/rampcolor_legend.js +12 -0
  337. package/es/utils/scale.d.ts +87 -0
  338. package/es/utils/scale.js +595 -0
  339. package/es/utils/simpleLine.d.ts +23 -0
  340. package/es/utils/simpleLine.js +76 -0
  341. package/es/utils/stencil.d.ts +7 -0
  342. package/es/utils/stencil.js +49 -0
  343. package/es/utils/symbol-layout.d.ts +43 -0
  344. package/es/utils/symbol-layout.js +251 -0
  345. package/es/wind/index.d.ts +11 -0
  346. package/es/wind/index.js +34 -0
  347. package/es/wind/models/index.d.ts +5 -0
  348. package/es/wind/models/index.js +5 -0
  349. package/es/wind/models/utils.d.ts +19 -0
  350. package/es/wind/models/utils.js +213 -0
  351. package/es/wind/models/wind.d.ts +38 -0
  352. package/es/wind/models/wind.js +240 -0
  353. package/es/wind/models/windRender.d.ts +104 -0
  354. package/es/wind/models/windRender.js +333 -0
  355. package/es/wind/models/windShader.d.ts +12 -0
  356. package/es/wind/models/windShader.js +151 -0
  357. package/es/wind/shaders/wind_frag.glsl +9 -0
  358. package/es/wind/shaders/wind_vert.glsl +14 -0
  359. package/lib/canvas/index.d.ts +18 -0
  360. package/lib/canvas/index.js +79 -0
  361. package/lib/canvas/models/canvas.d.ts +23 -0
  362. package/lib/canvas/models/canvas.js +149 -0
  363. package/lib/canvas/models/constants.d.ts +2 -0
  364. package/lib/canvas/models/constants.js +12 -0
  365. package/lib/canvas/models/index.d.ts +2 -0
  366. package/lib/canvas/models/index.js +27 -0
  367. package/lib/citybuilding/building.d.ts +7 -0
  368. package/lib/citybuilding/building.js +33 -0
  369. package/lib/citybuilding/models/build.d.ts +33 -0
  370. package/lib/citybuilding/models/build.js +168 -0
  371. package/lib/citybuilding/shaders/build_frag.glsl +123 -0
  372. package/lib/citybuilding/shaders/build_vert.glsl +58 -0
  373. package/lib/core/BaseLayer.d.ts +265 -0
  374. package/lib/core/BaseLayer.js +1317 -0
  375. package/lib/core/BaseModel.d.ts +95 -0
  376. package/lib/core/BaseModel.js +375 -0
  377. package/lib/core/CommonStyleAttribute.d.ts +16 -0
  378. package/lib/core/CommonStyleAttribute.js +120 -0
  379. package/lib/core/LayerPickService.d.ts +12 -0
  380. package/lib/core/LayerPickService.js +110 -0
  381. package/lib/core/TextureService.d.ts +15 -0
  382. package/lib/core/TextureService.js +73 -0
  383. package/lib/core/constant.d.ts +6 -0
  384. package/lib/core/constant.js +25 -0
  385. package/lib/core/interface.d.ts +284 -0
  386. package/lib/core/interface.js +34 -0
  387. package/lib/core/line_trangluation.d.ts +19 -0
  388. package/lib/core/line_trangluation.js +94 -0
  389. package/lib/core/schema.d.ts +27 -0
  390. package/lib/core/schema.js +31 -0
  391. package/lib/core/shape/Path.d.ts +40 -0
  392. package/lib/core/shape/Path.js +81 -0
  393. package/lib/core/shape/arrow.d.ts +25 -0
  394. package/lib/core/shape/arrow.js +158 -0
  395. package/lib/core/shape/extrude.d.ts +17 -0
  396. package/lib/core/shape/extrude.js +142 -0
  397. package/lib/core/triangulation.d.ts +136 -0
  398. package/lib/core/triangulation.js +628 -0
  399. package/lib/core/utils.d.ts +5 -0
  400. package/lib/core/utils.js +44 -0
  401. package/lib/earth/index.d.ts +22 -0
  402. package/lib/earth/index.js +62 -0
  403. package/lib/earth/models/atmosphere.d.ts +30 -0
  404. package/lib/earth/models/atmosphere.js +124 -0
  405. package/lib/earth/models/base.d.ts +37 -0
  406. package/lib/earth/models/base.js +180 -0
  407. package/lib/earth/models/bloomsphere.d.ts +30 -0
  408. package/lib/earth/models/bloomsphere.js +123 -0
  409. package/lib/earth/shaders/atmosphere/atmosphere_frag.glsl +17 -0
  410. package/lib/earth/shaders/atmosphere/atmosphere_vert.glsl +24 -0
  411. package/lib/earth/shaders/base/base_frag.glsl +11 -0
  412. package/lib/earth/shaders/base/base_vert.glsl +52 -0
  413. package/lib/earth/shaders/bloomshpere/bloomsphere_frag.glsl +15 -0
  414. package/lib/earth/shaders/bloomshpere/bloomsphere_vert.glsl +20 -0
  415. package/lib/earth/utils.d.ts +26 -0
  416. package/lib/earth/utils.js +107 -0
  417. package/lib/geometry/index.d.ts +22 -0
  418. package/lib/geometry/index.js +61 -0
  419. package/lib/geometry/models/billboard.d.ts +39 -0
  420. package/lib/geometry/models/billboard.js +183 -0
  421. package/lib/geometry/models/index.d.ts +5 -0
  422. package/lib/geometry/models/index.js +16 -0
  423. package/lib/geometry/models/plane.d.ts +58 -0
  424. package/lib/geometry/models/plane.js +316 -0
  425. package/lib/geometry/models/sprite.d.ts +48 -0
  426. package/lib/geometry/models/sprite.js +233 -0
  427. package/lib/geometry/shaders/billboard_frag.glsl +18 -0
  428. package/lib/geometry/shaders/billboard_vert.glsl +43 -0
  429. package/lib/geometry/shaders/plane_frag.glsl +23 -0
  430. package/lib/geometry/shaders/plane_vert.glsl +31 -0
  431. package/lib/geometry/shaders/sprite_frag.glsl +23 -0
  432. package/lib/geometry/shaders/sprite_vert.glsl +21 -0
  433. package/lib/heatmap/index.d.ts +13 -0
  434. package/lib/heatmap/index.js +95 -0
  435. package/lib/heatmap/models/grid.d.ts +29 -0
  436. package/lib/heatmap/models/grid.js +91 -0
  437. package/lib/heatmap/models/grid3d.d.ts +31 -0
  438. package/lib/heatmap/models/grid3d.js +130 -0
  439. package/lib/heatmap/models/heatmap.d.ts +46 -0
  440. package/lib/heatmap/models/heatmap.js +455 -0
  441. package/lib/heatmap/models/hexagon.d.ts +29 -0
  442. package/lib/heatmap/models/hexagon.js +91 -0
  443. package/lib/heatmap/models/index.d.ts +5 -0
  444. package/lib/heatmap/models/index.js +19 -0
  445. package/lib/heatmap/shaders/grid/grid_frag.glsl +9 -0
  446. package/lib/heatmap/shaders/grid/grid_vert.glsl +30 -0
  447. package/lib/heatmap/shaders/grid3d/grid_3d_frag.glsl +17 -0
  448. package/lib/heatmap/shaders/grid3d/grid_3d_vert.glsl +34 -0
  449. package/lib/heatmap/shaders/heatmap/heatmap_3d_frag.glsl +23 -0
  450. package/lib/heatmap/shaders/heatmap/heatmap_3d_vert.glsl +59 -0
  451. package/lib/heatmap/shaders/heatmap/heatmap_frag.glsl +40 -0
  452. package/lib/heatmap/shaders/heatmap/heatmap_framebuffer_frag.glsl +17 -0
  453. package/lib/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl +36 -0
  454. package/lib/heatmap/shaders/heatmap/heatmap_vert.glsl +21 -0
  455. package/lib/heatmap/shaders/hexagon/hexagon_frag.glsl +8 -0
  456. package/lib/heatmap/shaders/hexagon/hexagon_vert.glsl +30 -0
  457. package/lib/heatmap/triangulation.d.ts +5 -0
  458. package/lib/heatmap/triangulation.js +39 -0
  459. package/lib/image/index.d.ts +9 -0
  460. package/lib/image/index.js +36 -0
  461. package/lib/image/models/image.d.ts +31 -0
  462. package/lib/image/models/image.js +121 -0
  463. package/lib/image/models/index.d.ts +5 -0
  464. package/lib/image/models/index.js +12 -0
  465. package/lib/image/shaders/dataImage_frag.glsl +32 -0
  466. package/lib/image/shaders/image_frag.glsl +38 -0
  467. package/lib/image/shaders/image_vert.glsl +20 -0
  468. package/lib/index.d.ts +18 -0
  469. package/lib/index.js +148 -0
  470. package/lib/line/index.d.ts +36 -0
  471. package/lib/line/index.js +98 -0
  472. package/lib/line/models/arc.d.ts +40 -0
  473. package/lib/line/models/arc.js +287 -0
  474. package/lib/line/models/arc_3d.d.ts +40 -0
  475. package/lib/line/models/arc_3d.js +277 -0
  476. package/lib/line/models/flow.d.ts +31 -0
  477. package/lib/line/models/flow.js +148 -0
  478. package/lib/line/models/great_circle.d.ts +34 -0
  479. package/lib/line/models/great_circle.js +248 -0
  480. package/lib/line/models/index.d.ts +5 -0
  481. package/lib/line/models/index.js +25 -0
  482. package/lib/line/models/line.d.ts +44 -0
  483. package/lib/line/models/line.js +281 -0
  484. package/lib/line/models/simple_line.d.ts +33 -0
  485. package/lib/line/models/simple_line.js +126 -0
  486. package/lib/line/models/wall.d.ts +34 -0
  487. package/lib/line/models/wall.js +231 -0
  488. package/lib/line/shaders/arc/line_arc_frag.glsl +92 -0
  489. package/lib/line/shaders/arc/line_arc_vert.glsl +156 -0
  490. package/lib/line/shaders/arc3d/line_arc_3d_frag.glsl +108 -0
  491. package/lib/line/shaders/arc3d/line_arc_3d_vert.glsl +177 -0
  492. package/lib/line/shaders/flow/flow_line_frag.glsl +13 -0
  493. package/lib/line/shaders/flow/flow_line_vert.glsl +76 -0
  494. package/lib/line/shaders/greatCircle/line_arc_great_circle_frag.glsl +99 -0
  495. package/lib/line/shaders/greatCircle/line_arc_great_circle_vert.glsl +165 -0
  496. package/lib/line/shaders/line/line_frag.glsl +122 -0
  497. package/lib/line/shaders/line/line_vert.glsl +101 -0
  498. package/lib/line/shaders/simple/simpleline_frag.glsl +30 -0
  499. package/lib/line/shaders/simple/simpleline_vert.glsl +45 -0
  500. package/lib/line/shaders/wall/wall_frag.glsl +94 -0
  501. package/lib/line/shaders/wall/wall_vert.glsl +90 -0
  502. package/lib/mask/index.d.ts +16 -0
  503. package/lib/mask/index.js +29 -0
  504. package/lib/mask/models/fill.d.ts +18 -0
  505. package/lib/mask/models/fill.js +69 -0
  506. package/lib/mask/models/index.d.ts +5 -0
  507. package/lib/mask/models/index.js +12 -0
  508. package/lib/mask/shaders/mask_vert.glsl +14 -0
  509. package/lib/plugins/DataMappingPlugin.d.ts +12 -0
  510. package/lib/plugins/DataMappingPlugin.js +234 -0
  511. package/lib/plugins/DataSourcePlugin.d.ts +6 -0
  512. package/lib/plugins/DataSourcePlugin.js +83 -0
  513. package/lib/plugins/FeatureScalePlugin.d.ts +20 -0
  514. package/lib/plugins/FeatureScalePlugin.js +303 -0
  515. package/lib/plugins/LayerAnimateStylePlugin.d.ts +4 -0
  516. package/lib/plugins/LayerAnimateStylePlugin.js +22 -0
  517. package/lib/plugins/LayerMaskPlugin.d.ts +7 -0
  518. package/lib/plugins/LayerMaskPlugin.js +26 -0
  519. package/lib/plugins/LayerModelPlugin.d.ts +10 -0
  520. package/lib/plugins/LayerModelPlugin.js +68 -0
  521. package/lib/plugins/LayerStylePlugin.d.ts +7 -0
  522. package/lib/plugins/LayerStylePlugin.js +25 -0
  523. package/lib/plugins/LightingPlugin.d.ts +35 -0
  524. package/lib/plugins/LightingPlugin.js +93 -0
  525. package/lib/plugins/MultiPassRendererPlugin.d.ts +22 -0
  526. package/lib/plugins/MultiPassRendererPlugin.js +59 -0
  527. package/lib/plugins/PixelPickingPlugin.d.ts +11 -0
  528. package/lib/plugins/PixelPickingPlugin.js +154 -0
  529. package/lib/plugins/RegisterStyleAttributePlugin.d.ts +10 -0
  530. package/lib/plugins/RegisterStyleAttributePlugin.js +78 -0
  531. package/lib/plugins/ShaderUniformPlugin.d.ts +17 -0
  532. package/lib/plugins/ShaderUniformPlugin.js +203 -0
  533. package/lib/plugins/UpdateModelPlugin.d.ts +7 -0
  534. package/lib/plugins/UpdateModelPlugin.js +27 -0
  535. package/lib/plugins/UpdateStyleAttributePlugin.d.ts +9 -0
  536. package/lib/plugins/UpdateStyleAttributePlugin.js +61 -0
  537. package/lib/plugins/index.d.ts +15 -0
  538. package/lib/plugins/index.js +26 -0
  539. package/lib/point/index.d.ts +35 -0
  540. package/lib/point/index.js +161 -0
  541. package/lib/point/models/billboard_point.d.ts +35 -0
  542. package/lib/point/models/billboard_point.js +104 -0
  543. package/lib/point/models/earthExtrude.d.ts +32 -0
  544. package/lib/point/models/earthExtrude.js +207 -0
  545. package/lib/point/models/earthFill.d.ts +31 -0
  546. package/lib/point/models/earthFill.js +166 -0
  547. package/lib/point/models/extrude.d.ts +32 -0
  548. package/lib/point/models/extrude.js +203 -0
  549. package/lib/point/models/fill.d.ts +47 -0
  550. package/lib/point/models/fill.js +188 -0
  551. package/lib/point/models/fillImage.d.ts +42 -0
  552. package/lib/point/models/fillImage.js +197 -0
  553. package/lib/point/models/image.d.ts +48 -0
  554. package/lib/point/models/image.js +301 -0
  555. package/lib/point/models/index.d.ts +5 -0
  556. package/lib/point/models/index.js +32 -0
  557. package/lib/point/models/normal.d.ts +36 -0
  558. package/lib/point/models/normal.js +98 -0
  559. package/lib/point/models/radar.d.ts +37 -0
  560. package/lib/point/models/radar.js +123 -0
  561. package/lib/point/models/text.d.ts +85 -0
  562. package/lib/point/models/text.js +512 -0
  563. package/lib/point/shaders/billboard/billboard_point_frag.glsl +48 -0
  564. package/lib/point/shaders/billboard/billboard_point_vert.glsl +33 -0
  565. package/lib/point/shaders/earthExtrude/earthExtrude_frag.glsl +36 -0
  566. package/lib/point/shaders/earthExtrude/earthExtrude_vert.glsl +118 -0
  567. package/lib/point/shaders/earthFill/earthFill_frag.glsl +79 -0
  568. package/lib/point/shaders/earthFill/earthFill_vert.glsl +46 -0
  569. package/lib/point/shaders/extrude/extrude_frag.glsl +29 -0
  570. package/lib/point/shaders/extrude/extrude_vert.glsl +95 -0
  571. package/lib/point/shaders/fill/fill_frag.glsl +97 -0
  572. package/lib/point/shaders/fill/fill_vert.glsl +79 -0
  573. package/lib/point/shaders/fillImage/fillImage_frag.glsl +23 -0
  574. package/lib/point/shaders/fillImage/fillImage_vert.glsl +46 -0
  575. package/lib/point/shaders/image/image_frag.glsl +45 -0
  576. package/lib/point/shaders/image/image_vert.glsl +47 -0
  577. package/lib/point/shaders/normal/normal_frag.glsl +5 -0
  578. package/lib/point/shaders/normal/normal_vert.glsl +22 -0
  579. package/lib/point/shaders/radar/radar_frag.glsl +52 -0
  580. package/lib/point/shaders/radar/radar_vert.glsl +53 -0
  581. package/lib/point/shaders/text/text_frag.glsl +47 -0
  582. package/lib/point/shaders/text/text_vert.glsl +65 -0
  583. package/lib/point/shape/extrude.d.ts +15 -0
  584. package/lib/point/shape/extrude.js +56 -0
  585. package/lib/polygon/index.d.ts +18 -0
  586. package/lib/polygon/index.js +79 -0
  587. package/lib/polygon/models/extrude.d.ts +41 -0
  588. package/lib/polygon/models/extrude.js +256 -0
  589. package/lib/polygon/models/extrusion.d.ts +40 -0
  590. package/lib/polygon/models/extrusion.js +145 -0
  591. package/lib/polygon/models/fill.d.ts +32 -0
  592. package/lib/polygon/models/fill.js +135 -0
  593. package/lib/polygon/models/index.d.ts +5 -0
  594. package/lib/polygon/models/index.js +33 -0
  595. package/lib/polygon/models/ocean.d.ts +37 -0
  596. package/lib/polygon/models/ocean.js +180 -0
  597. package/lib/polygon/models/water.d.ts +35 -0
  598. package/lib/polygon/models/water.js +158 -0
  599. package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +24 -0
  600. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +49 -0
  601. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +53 -0
  602. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +74 -0
  603. package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +55 -0
  604. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +54 -0
  605. package/lib/polygon/shaders/extrusion/polygon_extrusion_frag.glsl +8 -0
  606. package/lib/polygon/shaders/extrusion/polygon_extrusion_vert.glsl +24 -0
  607. package/lib/polygon/shaders/fill/fill_frag.glsl +8 -0
  608. package/lib/polygon/shaders/fill/fill_linear_frag.glsl +23 -0
  609. package/lib/polygon/shaders/fill/fill_linear_vert.glsl +36 -0
  610. package/lib/polygon/shaders/fill/fill_vert.glsl +35 -0
  611. package/lib/polygon/shaders/ocean/ocean_frag.glsl +277 -0
  612. package/lib/polygon/shaders/ocean/ocean_vert.glsl +21 -0
  613. package/lib/polygon/shaders/water/polygon_water_frag.glsl +78 -0
  614. package/lib/polygon/shaders/water/polygon_water_vert.glsl +22 -0
  615. package/lib/raster/buffers/triangulation.d.ts +6 -0
  616. package/lib/raster/buffers/triangulation.js +33 -0
  617. package/lib/raster/index.d.ts +11 -0
  618. package/lib/raster/index.js +63 -0
  619. package/lib/raster/models/index.d.ts +5 -0
  620. package/lib/raster/models/index.js +17 -0
  621. package/lib/raster/models/raster.d.ts +35 -0
  622. package/lib/raster/models/raster.js +164 -0
  623. package/lib/raster/models/rasterRgb.d.ts +35 -0
  624. package/lib/raster/models/rasterRgb.js +166 -0
  625. package/lib/raster/models/rasterTerrainRgb.d.ts +30 -0
  626. package/lib/raster/models/rasterTerrainRgb.js +126 -0
  627. package/lib/raster/shaders/raster/raster_2d_frag.glsl +37 -0
  628. package/lib/raster/shaders/raster/raster_2d_vert.glsl +21 -0
  629. package/lib/raster/shaders/rgb/raster_rgb_frag.glsl +30 -0
  630. package/lib/raster/shaders/rgb/raster_rgb_vert.glsl +21 -0
  631. package/lib/raster/shaders/terrain/terrain_rgb_frag.glsl +40 -0
  632. package/lib/raster/shaders/terrain/terrain_rgb_vert.glsl +19 -0
  633. package/lib/shader/minify_frag.glsl +11 -0
  634. package/lib/shader/minify_picking_frag.glsl +10 -0
  635. package/lib/tile/core/BaseLayer.d.ts +50 -0
  636. package/lib/tile/core/BaseLayer.js +264 -0
  637. package/lib/tile/core/TileDebugLayer.d.ts +15 -0
  638. package/lib/tile/core/TileDebugLayer.js +31 -0
  639. package/lib/tile/interaction/getFeatureData.d.ts +0 -0
  640. package/lib/tile/interaction/getFeatureData.js +1 -0
  641. package/lib/tile/interaction/getRasterData.d.ts +4 -0
  642. package/lib/tile/interaction/getRasterData.js +52 -0
  643. package/lib/tile/interaction/utils.d.ts +11 -0
  644. package/lib/tile/interaction/utils.js +81 -0
  645. package/lib/tile/interface.d.ts +29 -0
  646. package/lib/tile/interface.js +5 -0
  647. package/lib/tile/service/TileLayerService.d.ts +58 -0
  648. package/lib/tile/service/TileLayerService.js +203 -0
  649. package/lib/tile/service/TilePickService.d.ts +26 -0
  650. package/lib/tile/service/TilePickService.js +134 -0
  651. package/lib/tile/service/TileSourceService.d.ts +7 -0
  652. package/lib/tile/service/TileSourceService.js +35 -0
  653. package/lib/tile/tile/DebugTile.d.ts +16 -0
  654. package/lib/tile/tile/DebugTile.js +55 -0
  655. package/lib/tile/tile/ImageTile.d.ts +14 -0
  656. package/lib/tile/tile/ImageTile.js +47 -0
  657. package/lib/tile/tile/MaskTile.d.ts +18 -0
  658. package/lib/tile/tile/MaskTile.js +62 -0
  659. package/lib/tile/tile/RasterRGBTile.d.ts +11 -0
  660. package/lib/tile/tile/RasterRGBTile.js +55 -0
  661. package/lib/tile/tile/RasterTerrainRGBTile.d.ts +14 -0
  662. package/lib/tile/tile/RasterTerrainRGBTile.js +47 -0
  663. package/lib/tile/tile/RasterTile.d.ts +18 -0
  664. package/lib/tile/tile/RasterTile.js +89 -0
  665. package/lib/tile/tile/Tile.d.ts +112 -0
  666. package/lib/tile/tile/Tile.js +174 -0
  667. package/lib/tile/tile/VectorTile.d.ts +26 -0
  668. package/lib/tile/tile/VectorTile.js +95 -0
  669. package/lib/tile/tile/index.d.ts +12 -0
  670. package/lib/tile/tile/index.js +76 -0
  671. package/lib/tile/tile/util.d.ts +5 -0
  672. package/lib/tile/tile/util.js +26 -0
  673. package/lib/tile/utils/constants.d.ts +1 -0
  674. package/lib/tile/utils/constants.js +14 -0
  675. package/lib/tile/utils/utils.d.ts +8 -0
  676. package/lib/tile/utils/utils.js +18 -0
  677. package/lib/utils/blend.d.ts +2 -0
  678. package/lib/utils/blend.js +63 -0
  679. package/lib/utils/collision-index.d.ts +47 -0
  680. package/lib/utils/collision-index.js +96 -0
  681. package/lib/utils/extrude_polyline.d.ts +53 -0
  682. package/lib/utils/extrude_polyline.js +331 -0
  683. package/lib/utils/grid-index.d.ts +28 -0
  684. package/lib/utils/grid-index.js +135 -0
  685. package/lib/utils/identityScale.d.ts +8 -0
  686. package/lib/utils/identityScale.js +32 -0
  687. package/lib/utils/load-image.d.ts +1 -0
  688. package/lib/utils/load-image.js +29 -0
  689. package/lib/utils/multiPassRender.d.ts +16 -0
  690. package/lib/utils/multiPassRender.js +44 -0
  691. package/lib/utils/polylineNormal.d.ts +9 -0
  692. package/lib/utils/polylineNormal.js +191 -0
  693. package/lib/utils/rampcolor_legend.d.ts +6 -0
  694. package/lib/utils/rampcolor_legend.js +18 -0
  695. package/lib/utils/scale.d.ts +87 -0
  696. package/lib/utils/scale.js +610 -0
  697. package/lib/utils/simpleLine.d.ts +23 -0
  698. package/lib/utils/simpleLine.js +85 -0
  699. package/lib/utils/stencil.d.ts +7 -0
  700. package/lib/utils/stencil.js +56 -0
  701. package/lib/utils/symbol-layout.d.ts +43 -0
  702. package/lib/utils/symbol-layout.js +258 -0
  703. package/lib/wind/index.d.ts +11 -0
  704. package/lib/wind/index.js +42 -0
  705. package/lib/wind/models/index.d.ts +5 -0
  706. package/lib/wind/models/index.js +12 -0
  707. package/lib/wind/models/utils.d.ts +19 -0
  708. package/lib/wind/models/utils.js +229 -0
  709. package/lib/wind/models/wind.d.ts +38 -0
  710. package/lib/wind/models/wind.js +248 -0
  711. package/lib/wind/models/windRender.d.ts +104 -0
  712. package/lib/wind/models/windRender.js +343 -0
  713. package/lib/wind/models/windShader.d.ts +12 -0
  714. package/lib/wind/models/windShader.js +157 -0
  715. package/lib/wind/shaders/wind_frag.glsl +9 -0
  716. package/lib/wind/shaders/wind_vert.glsl +14 -0
  717. package/package.json +6 -6
@@ -0,0 +1,1310 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
+ const _excluded = ["passes"],
6
+ _excluded2 = ["moduleName", "vertexShader", "fragmentShader", "defines", "inject", "triangulation", "styleOption", "pickingEnabled"];
7
+ // @ts-ignore
8
+ import { AsyncSeriesBailHook, AsyncWaterfallHook, SyncBailHook, SyncHook } from '@antv/async-hook';
9
+ import { BlendType, IDebugLog, ILayerStage, globalConfigService } from '@antv/l7-core';
10
+ import { processRelativeCoordinates } from '@antv/l7-source';
11
+ import { encodePickingColor, lodashUtil } from '@antv/l7-utils';
12
+ import { EventEmitter } from 'eventemitter3';
13
+ import { createPlugins } from "../plugins";
14
+ import { BlendTypes } from "../utils/blend";
15
+ import { createMultiPassRenderer, normalizePasses } from "../utils/multiPassRender";
16
+ import LayerPickService from "./LayerPickService";
17
+ import TextureService from "./TextureService";
18
+ const {
19
+ isEqual,
20
+ isFunction,
21
+ isNumber,
22
+ isObject,
23
+ isPlainObject,
24
+ isUndefined
25
+ } = lodashUtil;
26
+ /**
27
+ * 分配 layer id
28
+ */
29
+ let layerIdCounter = 0;
30
+ export default class BaseLayer extends EventEmitter {
31
+ get shaderModuleService() {
32
+ return this.container.shaderModuleService;
33
+ }
34
+ get cameraService() {
35
+ return this.container.cameraService;
36
+ }
37
+ get coordinateService() {
38
+ return this.container.coordinateSystemService;
39
+ }
40
+ get iconService() {
41
+ return this.container.iconService;
42
+ }
43
+ get fontService() {
44
+ return this.container.fontService;
45
+ }
46
+ get pickingService() {
47
+ return this.container.pickingService;
48
+ }
49
+ get rendererService() {
50
+ return this.container.rendererService;
51
+ }
52
+ get layerService() {
53
+ return this.container.layerService;
54
+ }
55
+ get debugService() {
56
+ return this.container.debugService;
57
+ }
58
+ get interactionService() {
59
+ return this.container.interactionService;
60
+ }
61
+ get mapService() {
62
+ var _this$container;
63
+ return (_this$container = this.container) === null || _this$container === void 0 ? void 0 : _this$container.mapService;
64
+ }
65
+ get normalPassFactory() {
66
+ return this.container.normalPassFactory;
67
+ }
68
+ constructor(config = {}) {
69
+ super();
70
+ _defineProperty(this, "id", `${layerIdCounter++}`);
71
+ _defineProperty(this, "name", `${layerIdCounter}`);
72
+ _defineProperty(this, "parent", void 0);
73
+ _defineProperty(this, "coordCenter", void 0);
74
+ _defineProperty(this, "type", void 0);
75
+ _defineProperty(this, "visible", true);
76
+ _defineProperty(this, "zIndex", 0);
77
+ _defineProperty(this, "minZoom", void 0);
78
+ _defineProperty(this, "maxZoom", void 0);
79
+ _defineProperty(this, "inited", false);
80
+ _defineProperty(this, "layerModelNeedUpdate", false);
81
+ _defineProperty(this, "pickedFeatureID", null);
82
+ _defineProperty(this, "selectedFeatureID", null);
83
+ _defineProperty(this, "styleNeedUpdate", false);
84
+ _defineProperty(this, "rendering", void 0);
85
+ _defineProperty(this, "forceRender", false);
86
+ _defineProperty(this, "clusterZoom", 0);
87
+ // 聚合等级标记
88
+ _defineProperty(this, "layerType", void 0);
89
+ _defineProperty(this, "triangulation", void 0);
90
+ _defineProperty(this, "layerPickService", void 0);
91
+ _defineProperty(this, "textureService", void 0);
92
+ _defineProperty(this, "defaultSourceConfig", {
93
+ data: [],
94
+ options: {
95
+ parser: {
96
+ type: 'json'
97
+ }
98
+ }
99
+ });
100
+ _defineProperty(this, "dataState", {
101
+ dataSourceNeedUpdate: false,
102
+ dataMappingNeedUpdate: false,
103
+ filterNeedUpdate: false,
104
+ featureScaleNeedUpdate: false,
105
+ StyleAttrNeedUpdate: false
106
+ });
107
+ // 生命周期钩子
108
+ _defineProperty(this, "hooks", {
109
+ init: new AsyncSeriesBailHook(),
110
+ afterInit: new SyncBailHook(),
111
+ beforeRender: new SyncBailHook(),
112
+ beforeRenderData: new AsyncWaterfallHook(),
113
+ afterRender: new SyncHook(),
114
+ beforePickingEncode: new SyncHook(),
115
+ afterPickingEncode: new SyncHook(),
116
+ beforeHighlight: new SyncHook(['pickedColor']),
117
+ afterHighlight: new SyncHook(),
118
+ beforeSelect: new SyncHook(['pickedColor']),
119
+ afterSelect: new SyncHook(),
120
+ beforeDestroy: new SyncHook(),
121
+ afterDestroy: new SyncHook()
122
+ });
123
+ // 待渲染 model 列表
124
+ _defineProperty(this, "models", []);
125
+ // 每个 Layer 都有一个
126
+ _defineProperty(this, "multiPassRenderer", void 0);
127
+ // 注入插件
128
+ _defineProperty(this, "plugins", void 0);
129
+ _defineProperty(this, "startInit", false);
130
+ _defineProperty(this, "sourceOption", void 0);
131
+ _defineProperty(this, "layerModel", void 0);
132
+ _defineProperty(this, "shapeOption", void 0);
133
+ _defineProperty(this, "tileLayer", void 0);
134
+ // 用于保存子图层对象
135
+ _defineProperty(this, "layerChildren", []);
136
+ _defineProperty(this, "masks", []);
137
+ _defineProperty(this, "configService", globalConfigService);
138
+ _defineProperty(this, "styleAttributeService", void 0);
139
+ _defineProperty(this, "layerSource", void 0);
140
+ _defineProperty(this, "postProcessingPassFactory", void 0);
141
+ _defineProperty(this, "animateOptions", {
142
+ enable: false
143
+ });
144
+ // 相对坐标系支持
145
+ _defineProperty(this, "relativeOrigin", [0, 0]);
146
+ _defineProperty(this, "originalExtent", [0, 0, 0, 0]);
147
+ _defineProperty(this, "absoluteDataArray", []);
148
+ // 保存绝对坐标数据用于交互
149
+ /**
150
+ * 图层容器
151
+ */
152
+ _defineProperty(this, "container", void 0);
153
+ _defineProperty(this, "encodedData", void 0);
154
+ _defineProperty(this, "currentPickId", null);
155
+ _defineProperty(this, "rawConfig", void 0);
156
+ _defineProperty(this, "needUpdateConfig", void 0);
157
+ _defineProperty(this, "encodeStyleAttribute", {});
158
+ // Shader 的数据映射
159
+ _defineProperty(this, "enableShaderEncodeStyles", []);
160
+ // 数据层数据映射
161
+ _defineProperty(this, "enableDataEncodeStyles", []);
162
+ /**
163
+ * 待更新样式属性,在初始化阶段完成注册
164
+ */
165
+ _defineProperty(this, "pendingStyleAttributes", []);
166
+ _defineProperty(this, "scaleOptions", {});
167
+ _defineProperty(this, "animateStartTime", 0);
168
+ _defineProperty(this, "animateStatus", false);
169
+ _defineProperty(this, "isDestroyed", false);
170
+ // private pickingPassRender: IPass<'pixelPicking'>;
171
+ _defineProperty(this, "uniformBuffers", []);
172
+ _defineProperty(this, "encodeDataLength", 0);
173
+ _defineProperty(this, "sourceEvent", () => {
174
+ this.dataState.dataSourceNeedUpdate = true;
175
+ // 处理相对坐标转换
176
+ this.processRelativeCoordinates();
177
+ const layerConfig = this.getLayerConfig();
178
+ if (layerConfig && layerConfig.autoFit) {
179
+ this.fitBounds(layerConfig.fitBoundsOptions);
180
+ }
181
+ const autoRender = this.layerSource.getSourceCfg().autoRender;
182
+ if (autoRender) {
183
+ setTimeout(() => {
184
+ this.reRender();
185
+ }, 10);
186
+ }
187
+ });
188
+ this.name = config.name || this.id;
189
+ this.zIndex = config.zIndex || 0;
190
+ this.rawConfig = config;
191
+ this.masks = config.maskLayers || [];
192
+ }
193
+ addMask(layer) {
194
+ this.masks.push(layer);
195
+ this.updateLayerConfig({
196
+ maskLayers: this.masks
197
+ });
198
+ this.enableMask();
199
+ }
200
+ removeMask(layer) {
201
+ const layerIndex = this.masks.indexOf(layer);
202
+ if (layerIndex > -1) {
203
+ this.masks.splice(layerIndex, 1);
204
+ }
205
+ this.updateLayerConfig({
206
+ maskLayers: this.masks
207
+ });
208
+ }
209
+ disableMask() {
210
+ this.updateLayerConfig({
211
+ enableMask: false
212
+ });
213
+ }
214
+ enableMask() {
215
+ this.updateLayerConfig({
216
+ enableMask: true
217
+ });
218
+ }
219
+
220
+ /**
221
+ * 将废弃
222
+ * @deprecated
223
+ */
224
+ addMaskLayer(maskLayer) {
225
+ this.masks.push(maskLayer);
226
+ }
227
+
228
+ /**
229
+ * 将废弃
230
+ * @deprecated
231
+ */
232
+ removeMaskLayer(maskLayer) {
233
+ const layerIndex = this.masks.indexOf(maskLayer);
234
+ if (layerIndex > -1) {
235
+ this.masks.splice(layerIndex, 1);
236
+ }
237
+ maskLayer.destroy();
238
+ }
239
+ getAttribute(name) {
240
+ return this.styleAttributeService.getLayerStyleAttribute(name);
241
+ }
242
+ getLayerConfig() {
243
+ return this.configService.getLayerConfig(this.id);
244
+ }
245
+ updateLayerConfig(configToUpdate) {
246
+ // 同步 rawConfig
247
+ Object.keys(configToUpdate).map(key => {
248
+ if (key in this.rawConfig) {
249
+ // @ts-ignore
250
+ this.rawConfig[key] = configToUpdate[key];
251
+ }
252
+ });
253
+ if (!this.startInit) {
254
+ this.needUpdateConfig = _objectSpread(_objectSpread({}, this.needUpdateConfig), configToUpdate);
255
+ } else {
256
+ const sceneId = this.container.id;
257
+ // @ts-ignore
258
+ // styleDataMapping(configToUpdate, this); // 处理 style 中进行数据映射的属性字段
259
+ this.configService.setLayerConfig(sceneId, this.id, _objectSpread(_objectSpread(_objectSpread({}, this.configService.getLayerConfig(this.id)), this.needUpdateConfig), configToUpdate));
260
+ this.needUpdateConfig = {};
261
+ }
262
+ }
263
+
264
+ /**
265
+ * 注入图层容器,父容器为场景容器
266
+ * RootContainer 1
267
+ * -> SceneContainer 1.*
268
+ * -> LayerContainer 1.*
269
+ */
270
+ setContainer(container) {
271
+ this.container = container;
272
+ }
273
+ getContainer() {
274
+ return this.container;
275
+ }
276
+ addPlugin(plugin) {
277
+ this.plugins.push(plugin);
278
+ return this;
279
+ }
280
+ init() {
281
+ var _this = this;
282
+ return _asyncToGenerator(function* () {
283
+ // 设置配置项
284
+ const sceneId = _this.container.id;
285
+ _this.startInit = true;
286
+ // 初始化图层配置项
287
+ // const { enableMultiPassRenderer = false } = this.rawConfig;
288
+ // this.configService.setLayerConfig(sceneId, this.id, {
289
+ // enableMultiPassRenderer,
290
+ // });
291
+ _this.configService.setLayerConfig(sceneId, _this.id, _this.rawConfig);
292
+ _this.layerType = _this.rawConfig.layerType;
293
+
294
+ // 全局容器服务
295
+
296
+ // 场景容器服务
297
+ const {
298
+ enableMultiPassRenderer,
299
+ passes
300
+ } = _this.getLayerConfig();
301
+ if (enableMultiPassRenderer && passes !== null && passes !== void 0 && passes.length && passes.length > 0) {
302
+ // Tip: 兼容 multiPassRender 在 amap1 时存在的图层不同步问题 zoom
303
+ _this.mapService.on('mapAfterFrameChange', () => {
304
+ _this.renderLayers();
305
+ });
306
+ }
307
+ _this.postProcessingPassFactory = _this.container.postProcessingPassFactory;
308
+
309
+ // 图层容器服务
310
+ _this.styleAttributeService = _this.container.styleAttributeService;
311
+ if (enableMultiPassRenderer) {
312
+ // 按需初始化 瓦片频繁报错
313
+ _this.multiPassRenderer = _this.container.multiPassRenderer;
314
+ _this.multiPassRenderer.setLayer(_this);
315
+ }
316
+ // 完成样式服务注册完成前添加的属性
317
+ _this.pendingStyleAttributes.forEach(({
318
+ attributeName,
319
+ attributeField,
320
+ attributeValues,
321
+ updateOptions
322
+ }) => {
323
+ _this.styleAttributeService.updateStyleAttribute(attributeName, {
324
+ // @ts-ignore
325
+ scale: _objectSpread({
326
+ field: attributeField
327
+ }, _this.splitValuesAndCallbackInAttribute(
328
+ // @ts-ignore
329
+ attributeValues,
330
+ // @ts-ignore
331
+ attributeField ? undefined : _this.getLayerConfig()[attributeName] // 设置了字段不需要设置默认值
332
+ ))
333
+ },
334
+ // @ts-ignore
335
+ updateOptions);
336
+ });
337
+ _this.pendingStyleAttributes = [];
338
+
339
+ // 获取插件集
340
+ _this.plugins = createPlugins();
341
+ // 完成插件注册,传入场景和图层容器内的服务
342
+ for (const plugin of _this.plugins) {
343
+ plugin.apply(_this, _this.container);
344
+ }
345
+ // if (this.getSource().isTile) {
346
+ // this.tileLayer = new TileLayer(this);
347
+ // }
348
+
349
+ // 初始化其他服务
350
+ _this.layerPickService = new LayerPickService(_this);
351
+
352
+ // 颜色纹理服务
353
+ _this.textureService = new TextureService(_this);
354
+ _this.log(IDebugLog.LayerInitStart);
355
+ // 触发 init 生命周期插件
356
+ yield _this.hooks.init.promise();
357
+ _this.log(IDebugLog.LayerInitEnd);
358
+ _this.inited = true;
359
+ // add mask layer
360
+ // 触发初始化完成事件;
361
+ _this.emit('inited', {
362
+ target: _this,
363
+ type: 'inited'
364
+ });
365
+ _this.emit('add', {
366
+ target: _this,
367
+ type: 'add'
368
+ });
369
+ _this.hooks.afterInit.call();
370
+ })();
371
+ }
372
+ log(logType, step = 'init') {
373
+ var _this$debugService;
374
+ // @ts-ignore 瓦片、瓦片图层目前不参与日志
375
+ if (this.tileLayer || this.isTileLayer) {
376
+ return;
377
+ }
378
+ const key = `${this.id}.${step}.${logType}`;
379
+ const values = {
380
+ id: this.id,
381
+ type: this.type
382
+ };
383
+ (_this$debugService = this.debugService) === null || _this$debugService === void 0 || _this$debugService.log(key, values);
384
+ }
385
+ updateModelData(data) {
386
+ if (data.attributes && data.elements) {
387
+ this.models.map(m => {
388
+ m.updateAttributesAndElements(data.attributes, data.elements);
389
+ });
390
+ } else {
391
+ console.warn('data error');
392
+ }
393
+ }
394
+ setLayerPickService(layerPickService) {
395
+ this.layerPickService = layerPickService;
396
+ }
397
+ /**
398
+ * Model初始化前需要更新Model样式
399
+ */
400
+ prepareBuildModel() {
401
+ if (Object.keys(this.needUpdateConfig || {}).length !== 0) {
402
+ this.updateLayerConfig({});
403
+ }
404
+
405
+ // 启动动画
406
+ const {
407
+ animateOption
408
+ } = this.getLayerConfig();
409
+ if (animateOption !== null && animateOption !== void 0 && animateOption.enable) {
410
+ this.layerService.startAnimate();
411
+ this.animateStatus = true;
412
+ }
413
+ }
414
+ color(field, values, updateOptions) {
415
+ this.updateStyleAttribute('color', field, values, updateOptions);
416
+ return this;
417
+ }
418
+
419
+ // 为对应的图层传入纹理的编号名称(point/image 在 shape 方法中传入纹理名称的方法并不通用)
420
+ texture(field, values, updateOptions) {
421
+ this.updateStyleAttribute('texture', field, values, updateOptions);
422
+ return this;
423
+ }
424
+ rotate(field, values, updateOptions) {
425
+ this.updateStyleAttribute('rotate', field, values, updateOptions);
426
+ return this;
427
+ }
428
+ size(field, values, updateOptions) {
429
+ this.updateStyleAttribute('size', field, values, updateOptions);
430
+ return this;
431
+ }
432
+ // 对mapping后的数据过滤,scale保持不变
433
+ filter(field, values, updateOptions) {
434
+ const flag = this.updateStyleAttribute('filter', field, values, updateOptions);
435
+ this.dataState.dataSourceNeedUpdate = flag && this.inited;
436
+ return this;
437
+ }
438
+ shape(field, values, updateOptions) {
439
+ this.shapeOption = {
440
+ field,
441
+ values
442
+ };
443
+ const flag = this.updateStyleAttribute('shape', field, values, updateOptions);
444
+ this.dataState.dataSourceNeedUpdate = flag && this.inited;
445
+ return this;
446
+ }
447
+ label(field, values, updateOptions) {
448
+ this.pendingStyleAttributes.push({
449
+ attributeName: 'label',
450
+ attributeField: field,
451
+ attributeValues: values,
452
+ updateOptions
453
+ });
454
+ return this;
455
+ }
456
+ animate(options) {
457
+ let rawAnimate = {};
458
+ if (isObject(options)) {
459
+ rawAnimate.enable = true;
460
+ rawAnimate = _objectSpread(_objectSpread({}, rawAnimate), options);
461
+ } else {
462
+ rawAnimate.enable = options;
463
+ }
464
+ this.updateLayerConfig({
465
+ animateOption: rawAnimate
466
+ });
467
+ return this;
468
+ }
469
+ source(data, options) {
470
+ if ((data === null || data === void 0 ? void 0 : data.type) === 'source') {
471
+ // 判断是否为source
472
+ this.setSource(data);
473
+ return this;
474
+ }
475
+ // 设置source 配置
476
+ this.sourceOption = {
477
+ data,
478
+ options
479
+ };
480
+ this.clusterZoom = 0;
481
+ return this;
482
+ }
483
+ setData(data, options) {
484
+ if (this.inited) {
485
+ this.dataUpdatelog();
486
+ this.layerSource.setData(data, options);
487
+ } else {
488
+ this.on('inited', () => {
489
+ this.dataUpdatelog();
490
+ this.layerSource.setData(data, options);
491
+ });
492
+ }
493
+ return this;
494
+ }
495
+ dataUpdatelog() {
496
+ this.log(IDebugLog.SourceInitStart, ILayerStage.UPDATE);
497
+ this.layerSource.once('update', () => {
498
+ this.log(IDebugLog.SourceInitEnd, ILayerStage.UPDATE);
499
+ });
500
+ }
501
+ style(options) {
502
+ const {
503
+ passes
504
+ } = options,
505
+ rest = _objectWithoutProperties(options, _excluded);
506
+ // passes 特殊处理
507
+ if (passes) {
508
+ normalizePasses(passes).forEach(pass => {
509
+ const postProcessingPass = this.multiPassRenderer.getPostProcessor().getPostProcessingPassByName(pass[0]);
510
+ if (postProcessingPass) {
511
+ postProcessingPass.updateOptions(pass[1]);
512
+ }
513
+ });
514
+ }
515
+ // 兼容 borderColor borderWidth
516
+ // @ts-ignore
517
+ if (rest.borderColor) {
518
+ // @ts-ignore
519
+ rest.stroke = rest.borderColor;
520
+ }
521
+ // @ts-ignore
522
+ if (rest.borderWidth) {
523
+ // @ts-ignore
524
+ rest.strokeWidth = rest.borderWidth;
525
+ }
526
+
527
+ // 兼容老版本的写法 ['field, 'value']
528
+ const newOption = rest;
529
+ Object.keys(rest).forEach(key => {
530
+ // @ts-ignore
531
+ const values = rest[key];
532
+ if (Array.isArray(values) && values.length === 2 && !isNumber(values[0]) && !isNumber(values[1])) {
533
+ newOption[key] = {
534
+ field: values[0],
535
+ value: values[1]
536
+ };
537
+ }
538
+ });
539
+ this.encodeStyle(newOption);
540
+ this.updateLayerConfig(newOption);
541
+ return this;
542
+ }
543
+
544
+ // 参与数据映射的字段 encodeing
545
+ encodeStyle(options) {
546
+ Object.keys(options).forEach(key => {
547
+ if (
548
+ // 需要数据映射
549
+ [...this.enableShaderEncodeStyles, ...this.enableDataEncodeStyles].includes(key) && isPlainObject(options[key]) && (options[key].field || options[key].value) && !isEqual(this.encodeStyleAttribute[key], options[key]) // 防止计算属性重复计算
550
+ ) {
551
+ this.encodeStyleAttribute[key] = options[key];
552
+ this.updateStyleAttribute(key, options[key].field, options[key].value);
553
+ if (this.inited) {
554
+ this.dataState.dataMappingNeedUpdate = true;
555
+ }
556
+ } else {
557
+ // 不需要数据映射
558
+ if (this.encodeStyleAttribute[key]) {
559
+ delete this.encodeStyleAttribute[key]; // 删除已经存在的属性
560
+ this.dataState.dataSourceNeedUpdate = true;
561
+ }
562
+ }
563
+ });
564
+ }
565
+ scale(field, cfg) {
566
+ const preOption = _objectSpread({}, this.scaleOptions);
567
+ if (isObject(field)) {
568
+ this.scaleOptions = _objectSpread(_objectSpread({}, this.scaleOptions), field);
569
+ } else {
570
+ this.scaleOptions[field] = cfg;
571
+ }
572
+ if (this.styleAttributeService && !isEqual(preOption, this.scaleOptions)) {
573
+ const scaleOptions = isObject(field) ? field : {
574
+ [field]: cfg
575
+ };
576
+ this.styleAttributeService.updateScaleAttribute(scaleOptions);
577
+ }
578
+ return this;
579
+ }
580
+
581
+ /**
582
+ * 渲染所有的图层
583
+ */
584
+ renderLayers() {
585
+ this.rendering = true;
586
+ this.layerService.reRender();
587
+ this.rendering = false;
588
+ }
589
+ prerender() {}
590
+ render(options = {}) {
591
+ if (this.tileLayer) {
592
+ // 瓦片图层执行单独的 render 渲染队列
593
+ this.tileLayer.render();
594
+ return this;
595
+ }
596
+ this.layerService.beforeRenderData(this);
597
+ if (this.encodeDataLength <= 0 && !this.forceRender) {
598
+ return this;
599
+ }
600
+ // Tip: this.getEncodedData().length !== 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题
601
+ this.renderModels(options);
602
+ return this;
603
+ }
604
+
605
+ /**
606
+ * renderMultiPass 专门用于渲染支持 multipass 的 layer
607
+ */
608
+ renderMultiPass() {
609
+ var _this2 = this;
610
+ return _asyncToGenerator(function* () {
611
+ if (_this2.encodeDataLength <= 0 && !_this2.forceRender) {
612
+ return;
613
+ }
614
+ if (_this2.multiPassRenderer && _this2.multiPassRenderer.getRenderFlag()) {
615
+ // multi render 开始执行 multiPassRender 的渲染流程
616
+ yield _this2.multiPassRenderer.render();
617
+ } else {
618
+ _this2.renderModels();
619
+ }
620
+ })();
621
+ }
622
+ active(options) {
623
+ const activeOption = {};
624
+ activeOption.enableHighlight = isObject(options) ? true : options;
625
+ if (isObject(options)) {
626
+ activeOption.enableHighlight = true;
627
+ if (options.color) {
628
+ activeOption.highlightColor = options.color;
629
+ }
630
+ if (options.mix) {
631
+ activeOption.activeMix = options.mix;
632
+ }
633
+ } else {
634
+ activeOption.enableHighlight = !!options;
635
+ }
636
+ this.updateLayerConfig(activeOption);
637
+ return this;
638
+ }
639
+ setActive(id, options) {
640
+ if (isObject(id)) {
641
+ const {
642
+ x = 0,
643
+ y = 0
644
+ } = id;
645
+ this.updateLayerConfig({
646
+ highlightColor: isObject(options) ? options.color : this.getLayerConfig().highlightColor,
647
+ activeMix: isObject(options) ? options.mix : this.getLayerConfig().activeMix
648
+ });
649
+ this.pick({
650
+ x,
651
+ y
652
+ });
653
+ } else {
654
+ this.updateLayerConfig({
655
+ pickedFeatureID: id,
656
+ highlightColor: isObject(options) ? options.color : this.getLayerConfig().highlightColor,
657
+ activeMix: isObject(options) ? options.mix : this.getLayerConfig().activeMix
658
+ });
659
+ this.hooks.beforeHighlight.call(encodePickingColor(id))
660
+ // @ts-ignore
661
+ .then(() => {
662
+ setTimeout(() => {
663
+ this.reRender();
664
+ }, 1);
665
+ });
666
+ }
667
+ }
668
+ select(option) {
669
+ const activeOption = {};
670
+ activeOption.enableSelect = isObject(option) ? true : option;
671
+ if (isObject(option)) {
672
+ activeOption.enableSelect = true;
673
+ if (option.color) {
674
+ activeOption.selectColor = option.color;
675
+ }
676
+ if (option.mix) {
677
+ activeOption.selectMix = option.mix;
678
+ }
679
+ } else {
680
+ activeOption.enableSelect = !!option;
681
+ }
682
+ this.updateLayerConfig(activeOption);
683
+ return this;
684
+ }
685
+ setSelect(id, options) {
686
+ if (isObject(id)) {
687
+ const {
688
+ x = 0,
689
+ y = 0
690
+ } = id;
691
+ this.updateLayerConfig({
692
+ selectColor: isObject(options) ? options.color : this.getLayerConfig().selectColor,
693
+ selectMix: isObject(options) ? options.mix : this.getLayerConfig().selectMix
694
+ });
695
+ this.pick({
696
+ x,
697
+ y
698
+ });
699
+ } else {
700
+ this.updateLayerConfig({
701
+ pickedFeatureID: id,
702
+ selectColor: isObject(options) ? options.color : this.getLayerConfig().selectColor,
703
+ selectMix: isObject(options) ? options.mix : this.getLayerConfig().selectMix
704
+ });
705
+ this.hooks.beforeSelect.call(encodePickingColor(id))
706
+ // @ts-ignore
707
+ .then(() => {
708
+ setTimeout(() => {
709
+ this.reRender();
710
+ }, 1);
711
+ });
712
+ }
713
+ }
714
+ setBlend(type) {
715
+ this.updateLayerConfig({
716
+ blend: type
717
+ });
718
+ // this.layerModelNeedUpdate = true;
719
+ this.reRender();
720
+ return this;
721
+ }
722
+ show() {
723
+ this.updateLayerConfig({
724
+ visible: true
725
+ });
726
+ this.reRender();
727
+ this.emit('show');
728
+ return this;
729
+ }
730
+ hide() {
731
+ this.updateLayerConfig({
732
+ visible: false
733
+ });
734
+ this.reRender();
735
+ this.emit('hide');
736
+ return this;
737
+ }
738
+ setIndex(index) {
739
+ this.zIndex = index;
740
+ this.layerService.updateLayerRenderList();
741
+ this.layerService.renderLayers();
742
+ return this;
743
+ }
744
+ setCurrentPickId(id) {
745
+ this.currentPickId = id;
746
+ }
747
+ getCurrentPickId() {
748
+ return this.currentPickId;
749
+ }
750
+ setCurrentSelectedId(id) {
751
+ this.selectedFeatureID = id;
752
+ }
753
+ getCurrentSelectedId() {
754
+ return this.selectedFeatureID;
755
+ }
756
+ isVisible() {
757
+ const zoom = this.mapService.getZoom();
758
+ const {
759
+ visible,
760
+ minZoom = -Infinity,
761
+ maxZoom = Infinity
762
+ } = this.getLayerConfig();
763
+ return !!visible && zoom >= minZoom && zoom < maxZoom;
764
+ }
765
+ setMultiPass(enableMultiPass, currentPasses) {
766
+ this.updateLayerConfig({
767
+ enableMultiPassRenderer: enableMultiPass
768
+ });
769
+ if (currentPasses) {
770
+ this.updateLayerConfig({
771
+ passes: currentPasses
772
+ });
773
+ }
774
+ if (enableMultiPass) {
775
+ const {
776
+ passes = []
777
+ } = this.getLayerConfig();
778
+ this.multiPassRenderer = createMultiPassRenderer(this, passes, this.postProcessingPassFactory, this.normalPassFactory);
779
+ this.multiPassRenderer.setRenderFlag(true);
780
+ const {
781
+ width,
782
+ height
783
+ } = this.rendererService.getViewportSize();
784
+ this.multiPassRenderer.resize(width, height);
785
+ }
786
+ return this;
787
+ }
788
+ setMinZoom(minZoom) {
789
+ this.updateLayerConfig({
790
+ minZoom
791
+ });
792
+ return this;
793
+ }
794
+ getMinZoom() {
795
+ const {
796
+ minZoom
797
+ } = this.getLayerConfig();
798
+ return minZoom;
799
+ }
800
+ getMaxZoom() {
801
+ const {
802
+ maxZoom
803
+ } = this.getLayerConfig();
804
+ return maxZoom;
805
+ }
806
+ get(name) {
807
+ const cfg = this.getLayerConfig();
808
+ // @ts-ignore
809
+ return cfg[name];
810
+ }
811
+ setMaxZoom(maxZoom) {
812
+ this.updateLayerConfig({
813
+ maxZoom
814
+ });
815
+ return this;
816
+ }
817
+ setAutoFit(autoFit) {
818
+ this.updateLayerConfig({
819
+ autoFit
820
+ });
821
+ return this;
822
+ }
823
+
824
+ /**
825
+ * zoom to layer Bounds
826
+ */
827
+ fitBounds(fitBoundsOptions) {
828
+ if (!this.inited) {
829
+ this.updateLayerConfig({
830
+ autoFit: true
831
+ });
832
+ return this;
833
+ }
834
+ const source = this.getSource();
835
+ const extent = source.extent;
836
+ const isValid = extent.some(v => Math.abs(v) === Infinity);
837
+ if (isValid) {
838
+ return this;
839
+ }
840
+ this.mapService.fitBounds([[extent[0], extent[1]], [extent[2], extent[3]]], fitBoundsOptions);
841
+ return this;
842
+ }
843
+ destroy(refresh = true) {
844
+ var _this$layerModel, _this$multiPassRender, _this$layerModel2, _this$tileLayer, _this$debugService2;
845
+ if (this.isDestroyed) {
846
+ return;
847
+ }
848
+
849
+ // destroy all UBOs
850
+ (_this$layerModel = this.layerModel) === null || _this$layerModel === void 0 || _this$layerModel.uniformBuffers.forEach(buffer => {
851
+ buffer.destroy();
852
+ });
853
+
854
+ // remove child layer
855
+ this.layerChildren.map(child => child.destroy(false));
856
+ this.layerChildren = [];
857
+
858
+ // remove mask list maskfence 掩模需要销毁
859
+ const {
860
+ maskfence
861
+ } = this.getLayerConfig();
862
+ if (maskfence) {
863
+ this.masks.map(mask => mask.destroy(false));
864
+ this.masks = [];
865
+ }
866
+ this.hooks.beforeDestroy.call();
867
+ // 清除sources事件
868
+ this.layerSource.off('update', this.sourceEvent);
869
+ (_this$multiPassRender = this.multiPassRenderer) === null || _this$multiPassRender === void 0 || _this$multiPassRender.destroy();
870
+ this.textureService.destroy();
871
+
872
+ // 清除所有属性以及关联的 vao == 销毁所有 => model this.models.forEach((model) => model.destroy());
873
+ this.styleAttributeService.clearAllAttributes();
874
+
875
+ // 执行每个图层单独的 clearModels 方法 (清除一些额外的 texture、program、buffer 等)
876
+
877
+ this.hooks.afterDestroy.call();
878
+ // Tip: 清除各个图层自定义的 models 资源
879
+ (_this$layerModel2 = this.layerModel) === null || _this$layerModel2 === void 0 || _this$layerModel2.clearModels(refresh);
880
+ (_this$tileLayer = this.tileLayer) === null || _this$tileLayer === void 0 || _this$tileLayer.destroy();
881
+ this.models = [];
882
+ // 清除图层日志(如果有的话:非瓦片相关)
883
+ (_this$debugService2 = this.debugService) === null || _this$debugService2 === void 0 || _this$debugService2.removeLog(this.id);
884
+ this.emit('remove', {
885
+ target: this,
886
+ type: 'remove'
887
+ });
888
+ this.emit('destroy', {
889
+ target: this,
890
+ type: 'destroy'
891
+ });
892
+ this.removeAllListeners();
893
+ this.isDestroyed = true;
894
+ }
895
+ clear() {
896
+ this.styleAttributeService.clearAllAttributes();
897
+ // 销毁所有 model
898
+ }
899
+ clearModels() {
900
+ var _this$layerModel3;
901
+ this.models.forEach(model => model.destroy());
902
+ (_this$layerModel3 = this.layerModel) === null || _this$layerModel3 === void 0 || _this$layerModel3.clearModels();
903
+ this.models = [];
904
+ }
905
+ isDirty() {
906
+ return !!(this.styleAttributeService.getLayerStyleAttributes() || []).filter(attribute => attribute.needRescale || attribute.needRemapping || attribute.needRegenerateVertices).length;
907
+ }
908
+ // 外部初始化Source
909
+ setSource(source) {
910
+ // 解除原 sources 事件
911
+ if (this.layerSource) {
912
+ this.layerSource.off('update', this.sourceEvent);
913
+ }
914
+ this.layerSource = source;
915
+ this.clusterZoom = 0;
916
+
917
+ // 已 inited 且启用聚合进行更新聚合数据
918
+ if (this.inited && this.layerSource.cluster) {
919
+ const zoom = this.mapService.getZoom();
920
+ this.layerSource.updateClusterData(zoom);
921
+ }
922
+ if (this.layerSource.inited) {
923
+ this.sourceEvent();
924
+ }
925
+ // this.layerSource.inited 为 true update 事件不会再触发
926
+ this.layerSource.on('update', ({
927
+ type
928
+ }) => {
929
+ if (this.coordCenter === undefined) {
930
+ const layerCenter = this.layerSource.center;
931
+ this.coordCenter = layerCenter;
932
+ }
933
+ if (type === 'update') {
934
+ if (this.tileLayer) {
935
+ // 瓦片图层独立更新
936
+ this.tileLayer.reload();
937
+ return;
938
+ }
939
+ // source 初始化不需要处理
940
+ this.sourceEvent();
941
+ }
942
+ if (type === 'inited') {
943
+ this.processRelativeCoordinates();
944
+ }
945
+ });
946
+ }
947
+ getSource() {
948
+ return this.layerSource;
949
+ }
950
+ getScaleOptions() {
951
+ return this.scaleOptions;
952
+ }
953
+ setEncodedData(encodedData) {
954
+ this.encodedData = encodedData;
955
+ this.encodeDataLength = encodedData.length;
956
+ }
957
+ getEncodedData() {
958
+ return this.encodedData;
959
+ }
960
+ getScale(name) {
961
+ return this.styleAttributeService.getLayerAttributeScale(name);
962
+ }
963
+ getLegend(name) {
964
+ var _attribute$scale, _scales$, _scales$2;
965
+ const attribute = this.styleAttributeService.getLayerStyleAttribute(name);
966
+ const scales = (attribute === null || attribute === void 0 || (_attribute$scale = attribute.scale) === null || _attribute$scale === void 0 ? void 0 : _attribute$scale.scalers) || [];
967
+ return {
968
+ type: (_scales$ = scales[0]) === null || _scales$ === void 0 || (_scales$ = _scales$.option) === null || _scales$ === void 0 ? void 0 : _scales$.type,
969
+ field: (_scales$2 = scales[0]) === null || _scales$2 === void 0 ? void 0 : _scales$2.field,
970
+ items: this.getLegendItems(name)
971
+ };
972
+ }
973
+ getLegendItems(name) {
974
+ const scale = this.styleAttributeService.getLayerAttributeScale(name);
975
+ // 函数自定义映射,没有 scale 返回为空数组
976
+ if (!scale) {
977
+ return [];
978
+ }
979
+ if (scale.invertExtent) {
980
+ // 分段类型 Quantize、Quantile、Threshold
981
+ const items = scale.range().map(item => {
982
+ return {
983
+ value: scale.invertExtent(item),
984
+ [name]: item
985
+ };
986
+ });
987
+ return items;
988
+ } else if (scale.ticks) {
989
+ // 连续类型 Continuous (Linear, Power, Log, Identity, Time)
990
+ const items = scale.ticks().map(item => {
991
+ return {
992
+ value: item,
993
+ [name]: scale(item)
994
+ };
995
+ });
996
+ return items;
997
+ } else if (scale !== null && scale !== void 0 && scale.domain) {
998
+ // 枚举类型 Cat
999
+ const items = scale.domain().filter(item => !isUndefined(item)).map(item => {
1000
+ return {
1001
+ value: item,
1002
+ [name]: scale(item)
1003
+ };
1004
+ });
1005
+ return items;
1006
+ }
1007
+ return [];
1008
+ }
1009
+ pick({
1010
+ x,
1011
+ y
1012
+ }) {
1013
+ this.interactionService.triggerHover({
1014
+ x,
1015
+ y
1016
+ });
1017
+ }
1018
+ boxSelect(box, cb) {
1019
+ this.pickingService.boxPickLayer(this, box, cb);
1020
+ }
1021
+ buildLayerModel(options) {
1022
+ var _this3 = this;
1023
+ return _asyncToGenerator(function* () {
1024
+ const {
1025
+ moduleName,
1026
+ vertexShader,
1027
+ fragmentShader,
1028
+ defines,
1029
+ inject,
1030
+ triangulation,
1031
+ styleOption,
1032
+ pickingEnabled = true
1033
+ } = options,
1034
+ rest = _objectWithoutProperties(options, _excluded2);
1035
+ _this3.shaderModuleService.registerModule(moduleName, {
1036
+ vs: vertexShader,
1037
+ fs: fragmentShader,
1038
+ defines,
1039
+ inject
1040
+ });
1041
+ const {
1042
+ vs,
1043
+ fs,
1044
+ uniforms
1045
+ } = _this3.shaderModuleService.getModule(moduleName);
1046
+ const {
1047
+ createModel
1048
+ } = _this3.rendererService;
1049
+ return new Promise(resolve => {
1050
+ const {
1051
+ attributes,
1052
+ elements,
1053
+ count
1054
+ } = _this3.styleAttributeService.createAttributesAndIndices(_this3.encodedData, triangulation, styleOption, _this3);
1055
+ const uniformBuffers = [..._this3.layerModel.uniformBuffers, ..._this3.rendererService.uniformBuffers];
1056
+ if (pickingEnabled) {
1057
+ uniformBuffers.push(_this3.getPickingUniformBuffer());
1058
+ }
1059
+ const modelOptions = _objectSpread({
1060
+ attributes,
1061
+ uniforms,
1062
+ fs,
1063
+ vs,
1064
+ elements,
1065
+ blend: BlendTypes[BlendType.normal],
1066
+ uniformBuffers,
1067
+ textures: _this3.layerModel.textures
1068
+ }, rest);
1069
+ if (count) {
1070
+ modelOptions.count = count;
1071
+ }
1072
+ const m = createModel(modelOptions);
1073
+ resolve(m);
1074
+ });
1075
+ })();
1076
+ }
1077
+ createAttributes(options) {
1078
+ const {
1079
+ triangulation
1080
+ } = options;
1081
+ // @ts-ignore
1082
+ const {
1083
+ attributes
1084
+ } = this.styleAttributeService.createAttributes(this.encodedData, triangulation);
1085
+ return attributes;
1086
+ }
1087
+ getTime() {
1088
+ return this.layerService.clock.getDelta();
1089
+ }
1090
+ setAnimateStartTime() {
1091
+ this.animateStartTime = this.layerService.clock.getElapsedTime();
1092
+ }
1093
+ stopAnimate() {
1094
+ if (this.animateStatus) {
1095
+ this.layerService.stopAnimate();
1096
+ this.animateStatus = false;
1097
+ this.updateLayerConfig({
1098
+ animateOption: {
1099
+ enable: false
1100
+ }
1101
+ });
1102
+ }
1103
+ }
1104
+ getLayerAnimateTime() {
1105
+ return this.layerService.clock.getElapsedTime() - this.animateStartTime;
1106
+ }
1107
+ needPick(type) {
1108
+ const {
1109
+ enableHighlight = true,
1110
+ enableSelect = true
1111
+ } = this.getLayerConfig();
1112
+ // 判断layer是否监听事件;
1113
+ let isPick = this.eventNames().indexOf(type) !== -1 || this.eventNames().indexOf('un' + type) !== -1;
1114
+ if ((type === 'click' || type === 'dblclick') && enableSelect) {
1115
+ isPick = true;
1116
+ }
1117
+ if (type === 'mousemove' && (enableHighlight || this.eventNames().indexOf('mouseenter') !== -1 || this.eventNames().indexOf('unmousemove') !== -1 || this.eventNames().indexOf('mouseout') !== -1)) {
1118
+ isPick = true;
1119
+ }
1120
+ return this.isVisible() && isPick;
1121
+ }
1122
+ buildModels() {
1123
+ return _asyncToGenerator(function* () {
1124
+ throw new Error('Method not implemented.');
1125
+ })();
1126
+ }
1127
+ rebuildModels() {
1128
+ var _this4 = this;
1129
+ return _asyncToGenerator(function* () {
1130
+ yield _this4.buildModels();
1131
+ })();
1132
+ }
1133
+ renderMulPass(multiPassRenderer) {
1134
+ return _asyncToGenerator(function* () {
1135
+ yield multiPassRenderer.render();
1136
+ })();
1137
+ }
1138
+ renderModels(options = {}) {
1139
+ // TODO: this.getEncodedData().length > 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题
1140
+ if (this.encodeDataLength <= 0 && !this.forceRender) {
1141
+ // 数据为空销毁model
1142
+ this.clearModels();
1143
+ return this;
1144
+ }
1145
+ this.hooks.beforeRender.call();
1146
+ this.models.forEach(model => {
1147
+ model.draw({
1148
+ uniforms: this.layerModel.getUninforms(),
1149
+ blend: this.layerModel.getBlend(),
1150
+ stencil: this.layerModel.getStencil(options),
1151
+ textures: this.layerModel.textures
1152
+ }, (options === null || options === void 0 ? void 0 : options.ispick) || false);
1153
+ });
1154
+ this.hooks.afterRender.call();
1155
+ return this;
1156
+ }
1157
+ updateStyleAttribute(type, field, values, updateOptions) {
1158
+ // encode diff
1159
+ const preAttribute = this.configService.getAttributeConfig(this.id) || {};
1160
+ // @ts-ignore
1161
+ if (isEqual(preAttribute[type], {
1162
+ field,
1163
+ values
1164
+ })) {
1165
+ // 检测是否发生更新
1166
+ return false;
1167
+ }
1168
+
1169
+ // 存储 Attribute 瓦片图层使用
1170
+ if (['color', 'size', 'texture', 'rotate', 'filter', 'label', 'shape'].indexOf(type) !== -1) {
1171
+ this.configService.setAttributeConfig(this.id, {
1172
+ [type]: {
1173
+ field,
1174
+ values
1175
+ }
1176
+ });
1177
+ }
1178
+ if (!this.startInit) {
1179
+ // 开始初始化执行
1180
+ this.pendingStyleAttributes.push({
1181
+ attributeName: type,
1182
+ attributeField: field,
1183
+ attributeValues: values,
1184
+ updateOptions
1185
+ });
1186
+ } else {
1187
+ this.styleAttributeService.updateStyleAttribute(type, {
1188
+ // @ts-ignore
1189
+ scale: _objectSpread({
1190
+ field
1191
+ }, this.splitValuesAndCallbackInAttribute(
1192
+ // @ts-ignore
1193
+ values,
1194
+ // @ts-ignore
1195
+ this.getLayerConfig()[field]))
1196
+ },
1197
+ // @ts-ignore
1198
+ updateOptions);
1199
+ }
1200
+ return true;
1201
+ }
1202
+ getLayerAttributeConfig() {
1203
+ return this.configService.getAttributeConfig(this.id);
1204
+ }
1205
+ getShaderPickStat() {
1206
+ return this.layerService.getShaderPickStat();
1207
+ }
1208
+
1209
+ /**
1210
+ * 继承空方法
1211
+ * @param time
1212
+ */
1213
+
1214
+ setEarthTime(time) {
1215
+ console.warn('empty fn');
1216
+ }
1217
+
1218
+ // 数据处理 在数据进行 mapping 生成 encodeData 之前对数据进行处理
1219
+ // 在各个 layer 中继承
1220
+ processData(filterData) {
1221
+ return filterData;
1222
+ }
1223
+ getModelType() {
1224
+ throw new Error('Method not implemented.');
1225
+ }
1226
+ getDefaultConfig() {
1227
+ return {};
1228
+ }
1229
+
1230
+ /**
1231
+ * 处理相对坐标转换
1232
+ */
1233
+ processRelativeCoordinates() {
1234
+ const layerConfig = this.getLayerConfig();
1235
+ const enableRelativeCoordinates = layerConfig === null || layerConfig === void 0 ? void 0 : layerConfig.enableRelativeCoordinates;
1236
+ if (!enableRelativeCoordinates || !this.layerSource || !this.layerSource.data) {
1237
+ return;
1238
+ }
1239
+
1240
+ // 保存原始绝对坐标数据用于交互
1241
+ this.absoluteDataArray = [...this.layerSource.data.dataArray];
1242
+
1243
+ // 处理相对坐标转换
1244
+ const result = processRelativeCoordinates(this.layerSource.data.dataArray, {
1245
+ enableRelativeCoordinates: true
1246
+ });
1247
+
1248
+ // 更新source数据为相对坐标
1249
+ this.layerSource.data.dataArray = result.dataArray;
1250
+ this.relativeOrigin = result.relativeOrigin;
1251
+ this.originalExtent = result.originalExtent;
1252
+ }
1253
+
1254
+ /**
1255
+ * 获取绝对坐标数据(用于交互计算)
1256
+ */
1257
+ getAbsoluteData() {
1258
+ return this.absoluteDataArray;
1259
+ }
1260
+
1261
+ /**
1262
+ * 获取相对坐标原点
1263
+ */
1264
+ getRelativeOrigin() {
1265
+ return this.relativeOrigin;
1266
+ }
1267
+
1268
+ /**
1269
+ * 获取原始数据范围
1270
+ */
1271
+ getOriginalExtent() {
1272
+ return this.originalExtent;
1273
+ }
1274
+ initLayerModels() {
1275
+ var _this5 = this;
1276
+ return _asyncToGenerator(function* () {
1277
+ _this5.models.forEach(model => model.destroy());
1278
+ _this5.models = [];
1279
+ _this5.uniformBuffers.forEach(buffer => {
1280
+ buffer.destroy();
1281
+ });
1282
+ _this5.uniformBuffers = [];
1283
+
1284
+ // Picking Uniform
1285
+ const pickingUniforms = _this5.rendererService.createBuffer({
1286
+ data: new Float32Array(20).fill(0),
1287
+ isUBO: true,
1288
+ label: 'pickingUniforms'
1289
+ });
1290
+ _this5.uniformBuffers.push(pickingUniforms);
1291
+ _this5.models = yield _this5.layerModel.initModels();
1292
+ })();
1293
+ }
1294
+ getPickingUniformBuffer() {
1295
+ return this.uniformBuffers[0];
1296
+ }
1297
+ reRender() {
1298
+ if (this.inited) {
1299
+ this.layerService.reRender();
1300
+ }
1301
+ }
1302
+ splitValuesAndCallbackInAttribute(valuesOrCallback
1303
+ // defaultValues?: unknown[],
1304
+ ) {
1305
+ return {
1306
+ values: isFunction(valuesOrCallback) ? undefined : valuesOrCallback,
1307
+ callback: isFunction(valuesOrCallback) ? valuesOrCallback : undefined
1308
+ };
1309
+ }
1310
+ }