@antv/l7-layers 2.10.6 → 2.10.9

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 (388) hide show
  1. package/es/Geometry/index.d.ts +2 -3
  2. package/es/Geometry/index.js +27 -17
  3. package/es/Geometry/models/billboard.d.ts +2 -2
  4. package/es/Geometry/models/billboard.js +77 -37
  5. package/es/Geometry/models/index.d.ts +1 -1
  6. package/es/Geometry/models/plane.d.ts +2 -2
  7. package/es/Geometry/models/plane.js +80 -40
  8. package/es/Geometry/models/sprite.d.ts +2 -2
  9. package/es/Geometry/models/sprite.js +83 -45
  10. package/es/canvas/index.d.ts +2 -3
  11. package/es/canvas/index.js +29 -19
  12. package/es/canvas/models/canvas.d.ts +2 -2
  13. package/es/canvas/models/canvas.js +54 -15
  14. package/es/canvas/models/index.d.ts +1 -1
  15. package/es/citybuliding/building.d.ts +2 -3
  16. package/es/citybuliding/building.js +26 -17
  17. package/es/citybuliding/models/build.d.ts +2 -2
  18. package/es/citybuliding/models/build.js +70 -25
  19. package/es/core/BaseLayer.d.ts +22 -18
  20. package/es/core/BaseLayer.js +387 -266
  21. package/es/core/BaseModel.d.ts +5 -5
  22. package/es/core/BaseModel.js +47 -6
  23. package/es/core/LayerPickService.d.ts +12 -0
  24. package/es/core/LayerPickService.js +165 -0
  25. package/es/core/TextureService.d.ts +14 -0
  26. package/es/core/TextureService.js +67 -0
  27. package/es/core/shape/Path.d.ts +2 -2
  28. package/es/core/triangulation.js +8 -1
  29. package/es/earth/index.d.ts +3 -3
  30. package/es/earth/index.js +28 -9
  31. package/es/earth/models/atmosphere.d.ts +2 -2
  32. package/es/earth/models/atmosphere.js +67 -22
  33. package/es/earth/models/base.d.ts +2 -2
  34. package/es/earth/models/base.js +89 -43
  35. package/es/earth/models/bloomsphere.d.ts +2 -2
  36. package/es/earth/models/bloomsphere.js +67 -22
  37. package/es/heatmap/index.d.ts +2 -3
  38. package/es/heatmap/index.js +33 -24
  39. package/es/heatmap/models/grid.d.ts +2 -2
  40. package/es/heatmap/models/grid.js +68 -27
  41. package/es/heatmap/models/grid3d.d.ts +2 -2
  42. package/es/heatmap/models/grid3d.js +70 -29
  43. package/es/heatmap/models/heatmap.d.ts +2 -2
  44. package/es/heatmap/models/heatmap.js +40 -14
  45. package/es/heatmap/models/hexagon.d.ts +2 -2
  46. package/es/heatmap/models/hexagon.js +69 -28
  47. package/es/heatmap/models/index.d.ts +1 -1
  48. package/es/heatmap/shaders/hexagon_3d_vert.glsl +2 -13
  49. package/es/image/index.d.ts +3 -4
  50. package/es/image/index.js +29 -34
  51. package/es/image/models/image.d.ts +2 -2
  52. package/es/image/models/image.js +117 -67
  53. package/es/image/models/index.d.ts +1 -1
  54. package/es/image/models/index.js +1 -5
  55. package/es/image/shaders/dataImage_frag.glsl +10 -16
  56. package/es/index.d.ts +2 -2
  57. package/es/index.js +2 -2
  58. package/es/line/index.d.ts +5 -4
  59. package/es/line/index.js +51 -25
  60. package/es/line/models/arc.d.ts +2 -2
  61. package/es/line/models/arc.js +73 -38
  62. package/es/line/models/arc_3d.d.ts +2 -2
  63. package/es/line/models/arc_3d.js +69 -34
  64. package/es/line/models/earthArc_3d.d.ts +2 -2
  65. package/es/line/models/earthArc_3d.js +72 -37
  66. package/es/line/models/great_circle.d.ts +2 -2
  67. package/es/line/models/great_circle.js +70 -29
  68. package/es/line/models/half.d.ts +2 -2
  69. package/es/line/models/half.js +40 -17
  70. package/es/line/models/index.d.ts +1 -1
  71. package/es/line/models/index.js +0 -2
  72. package/es/line/models/line.d.ts +2 -2
  73. package/es/line/models/line.js +79 -47
  74. package/es/line/models/linearline.d.ts +2 -2
  75. package/es/line/models/linearline.js +70 -31
  76. package/es/line/models/simpleLine.d.ts +2 -2
  77. package/es/line/models/simpleLine.js +71 -34
  78. package/es/line/models/simpleTileLine.d.ts +2 -2
  79. package/es/line/models/simpleTileLine.js +70 -30
  80. package/es/line/models/tile.d.ts +2 -2
  81. package/es/line/models/tile.js +40 -17
  82. package/es/line/models/wall.d.ts +2 -2
  83. package/es/line/models/wall.js +67 -22
  84. package/es/mask/index.d.ts +2 -4
  85. package/es/mask/index.js +27 -97
  86. package/es/mask/models/fill.d.ts +2 -2
  87. package/es/mask/models/fill.js +40 -16
  88. package/es/mask/models/index.d.ts +1 -1
  89. package/es/mask/models/index.js +1 -3
  90. package/es/plugins/DataMappingPlugin.d.ts +0 -2
  91. package/es/plugins/DataMappingPlugin.js +90 -152
  92. package/es/plugins/DataSourcePlugin.js +67 -30
  93. package/es/plugins/FeatureScalePlugin.d.ts +0 -1
  94. package/es/plugins/FeatureScalePlugin.js +85 -61
  95. package/es/plugins/LayerModelPlugin.d.ts +2 -2
  96. package/es/plugins/LayerModelPlugin.js +121 -37
  97. package/es/plugins/LayerStylePlugin.js +1 -6
  98. package/es/plugins/MultiPassRendererPlugin.js +1 -1
  99. package/es/plugins/PixelPickingPlugin.js +1 -1
  100. package/es/plugins/RegisterStyleAttributePlugin.js +1 -16
  101. package/es/plugins/UpdateModelPlugin.js +3 -0
  102. package/es/plugins/UpdateStyleAttributePlugin.js +3 -6
  103. package/es/point/index.d.ts +4 -4
  104. package/es/point/index.js +55 -23
  105. package/es/point/models/earthExtrude.d.ts +2 -2
  106. package/es/point/models/earthExtrude.js +73 -30
  107. package/es/point/models/earthFill.d.ts +2 -2
  108. package/es/point/models/earthFill.js +66 -21
  109. package/es/point/models/extrude.d.ts +2 -2
  110. package/es/point/models/extrude.js +40 -17
  111. package/es/point/models/fill.d.ts +2 -2
  112. package/es/point/models/fill.js +43 -20
  113. package/es/point/models/fillmage.d.ts +2 -2
  114. package/es/point/models/fillmage.js +82 -43
  115. package/es/point/models/image.d.ts +2 -2
  116. package/es/point/models/image.js +72 -31
  117. package/es/point/models/index.d.ts +1 -1
  118. package/es/point/models/index.js +0 -2
  119. package/es/point/models/normal.d.ts +2 -2
  120. package/es/point/models/normal.js +71 -30
  121. package/es/point/models/radar.d.ts +2 -2
  122. package/es/point/models/radar.js +75 -35
  123. package/es/point/models/simplePoint.d.ts +2 -2
  124. package/es/point/models/simplePoint.js +70 -29
  125. package/es/point/models/text.d.ts +3 -2
  126. package/es/point/models/text.js +185 -112
  127. package/es/point/models/tile.d.ts +2 -2
  128. package/es/point/models/tile.js +77 -35
  129. package/es/point/models/tileText.d.ts +2 -2
  130. package/es/point/models/tileText.js +151 -116
  131. package/es/polygon/index.d.ts +2 -3
  132. package/es/polygon/index.js +27 -24
  133. package/es/polygon/models/extrude.d.ts +2 -2
  134. package/es/polygon/models/extrude.js +66 -29
  135. package/es/polygon/models/fill.d.ts +2 -2
  136. package/es/polygon/models/fill.js +76 -43
  137. package/es/polygon/models/index.d.ts +1 -1
  138. package/es/polygon/models/index.js +0 -2
  139. package/es/polygon/models/ocean.d.ts +2 -2
  140. package/es/polygon/models/ocean.js +69 -28
  141. package/es/polygon/models/tile.d.ts +2 -2
  142. package/es/polygon/models/tile.js +70 -30
  143. package/es/polygon/models/water.d.ts +2 -2
  144. package/es/polygon/models/water.js +69 -28
  145. package/es/raster/index.d.ts +2 -3
  146. package/es/raster/index.js +30 -20
  147. package/es/raster/models/index.d.ts +1 -1
  148. package/es/raster/models/index.js +2 -2
  149. package/es/raster/models/raster.d.ts +2 -2
  150. package/es/raster/models/raster.js +39 -28
  151. package/es/raster/models/rasterRgb.d.ts +7 -8
  152. package/es/raster/models/rasterRgb.js +75 -45
  153. package/es/{image/models/tileDataImage.d.ts → raster/models/rasterTerrainRgb.d.ts} +3 -3
  154. package/es/raster/models/rasterTerrainRgb.js +184 -0
  155. package/es/raster/models/rasterTile.d.ts +2 -2
  156. package/es/raster/models/rasterTile.js +78 -37
  157. package/es/raster/shaders/raster_2d_frag.glsl +2 -38
  158. package/es/raster/shaders/raster_rgb_frag.glsl +10 -4
  159. package/es/raster/shaders/raster_terrain_rgb_frag.glsl +31 -0
  160. package/es/raster/shaders/rater_terrain_rgb_vert.glsl +17 -0
  161. package/es/tile/interaction/getRasterData.d.ts +2 -2
  162. package/es/tile/interaction/utils.js +3 -11
  163. package/es/tile/interface.d.ts +7 -6
  164. package/es/tile/manager/base.d.ts +17 -12
  165. package/es/tile/manager/base.js +212 -47
  166. package/es/tile/service/TileLayerService.d.ts +34 -0
  167. package/es/tile/service/TileLayerService.js +220 -0
  168. package/es/tile/service/TilePickService.d.ts +26 -0
  169. package/es/tile/service/TilePickService.js +174 -0
  170. package/es/tile/service/TileSourceService.d.ts +7 -0
  171. package/es/tile/service/TileSourceService.js +39 -0
  172. package/es/tile/style/constants.d.ts +1 -13
  173. package/es/tile/style/constants.js +6 -15
  174. package/es/tile/style/utils.d.ts +1 -8
  175. package/es/tile/style/utils.js +0 -126
  176. package/es/tile/tileFactory/DebugTile.d.ts +16 -0
  177. package/es/tile/tileFactory/DebugTile.js +100 -0
  178. package/es/tile/tileFactory/ImageTile.d.ts +14 -0
  179. package/es/tile/tileFactory/ImageTile.js +89 -0
  180. package/es/tile/tileFactory/MaskTile.d.ts +18 -0
  181. package/es/tile/tileFactory/MaskTile.js +105 -0
  182. package/es/tile/tileFactory/RasterRGBTile.d.ts +11 -0
  183. package/es/tile/tileFactory/RasterRGBTile.js +98 -0
  184. package/es/tile/tileFactory/RasterTerrainRGBTile.d.ts +14 -0
  185. package/es/tile/tileFactory/RasterTerrainRGBTile.js +89 -0
  186. package/es/tile/tileFactory/RasterTile.d.ts +18 -0
  187. package/es/tile/tileFactory/RasterTile.js +133 -0
  188. package/es/tile/tileFactory/Tile.d.ts +34 -0
  189. package/es/tile/tileFactory/Tile.js +161 -0
  190. package/es/tile/tileFactory/VectorTile.d.ts +27 -0
  191. package/es/tile/tileFactory/VectorTile.js +198 -0
  192. package/es/tile/tileFactory/index.d.ts +11 -4
  193. package/es/tile/tileFactory/index.js +34 -23
  194. package/es/tile/tileFactory/layers/{rasterDataLayer.d.ts → RasterDataLayer.d.ts} +3 -3
  195. package/es/tile/tileFactory/layers/{rasterDataLayer.js → RasterDataLayer.js} +34 -22
  196. package/es/tile/tileFactory/layers/{tileTest.d.ts → TileDebugLayer.d.ts} +2 -2
  197. package/es/tile/tileFactory/layers/{tileTest.js → TileDebugLayer.js} +23 -10
  198. package/es/tile/tileFactory/util.d.ts +5 -0
  199. package/es/tile/tileFactory/util.js +21 -0
  200. package/es/tile/tileLayer/BaseLayer.d.ts +45 -0
  201. package/es/tile/tileLayer/BaseLayer.js +348 -0
  202. package/es/tile/utils.d.ts +1 -11
  203. package/es/tile/utils.js +0 -129
  204. package/es/utils/dataMappingStyle.d.ts +4 -4
  205. package/es/utils/dataMappingStyle.js +16 -18
  206. package/es/utils/grid-index.d.ts +1 -1
  207. package/es/utils/layerData.js +5 -11
  208. package/es/utils/symbol-layout.d.ts +1 -1
  209. package/es/wind/index.d.ts +2 -3
  210. package/es/wind/index.js +27 -17
  211. package/es/wind/models/index.d.ts +1 -1
  212. package/es/wind/models/wind.d.ts +2 -2
  213. package/es/wind/models/wind.js +123 -104
  214. package/lib/Geometry/index.js +29 -17
  215. package/lib/Geometry/models/billboard.js +79 -37
  216. package/lib/Geometry/models/plane.js +82 -40
  217. package/lib/Geometry/models/sprite.js +85 -45
  218. package/lib/canvas/index.js +31 -19
  219. package/lib/canvas/models/canvas.js +56 -15
  220. package/lib/citybuliding/building.js +28 -17
  221. package/lib/citybuliding/models/build.js +72 -25
  222. package/lib/core/BaseLayer.js +388 -261
  223. package/lib/core/BaseModel.js +48 -6
  224. package/lib/core/LayerPickService.js +179 -0
  225. package/lib/core/TextureService.js +77 -0
  226. package/lib/core/triangulation.js +8 -1
  227. package/lib/earth/index.js +30 -9
  228. package/lib/earth/models/atmosphere.js +69 -22
  229. package/lib/earth/models/base.js +90 -42
  230. package/lib/earth/models/bloomsphere.js +69 -22
  231. package/lib/heatmap/index.js +35 -24
  232. package/lib/heatmap/models/grid.js +70 -27
  233. package/lib/heatmap/models/grid3d.js +72 -29
  234. package/lib/heatmap/models/heatmap.js +40 -14
  235. package/lib/heatmap/models/hexagon.js +71 -28
  236. package/lib/heatmap/shaders/hexagon_3d_vert.glsl +2 -13
  237. package/lib/image/index.js +31 -34
  238. package/lib/image/models/image.js +119 -67
  239. package/lib/image/models/index.js +1 -7
  240. package/lib/image/shaders/dataImage_frag.glsl +10 -16
  241. package/lib/index.js +5 -5
  242. package/lib/line/index.js +53 -26
  243. package/lib/line/models/arc.js +75 -38
  244. package/lib/line/models/arc_3d.js +71 -34
  245. package/lib/line/models/earthArc_3d.js +74 -37
  246. package/lib/line/models/great_circle.js +72 -29
  247. package/lib/line/models/half.js +40 -17
  248. package/lib/line/models/index.js +0 -3
  249. package/lib/line/models/line.js +81 -47
  250. package/lib/line/models/linearline.js +72 -31
  251. package/lib/line/models/simpleLine.js +73 -34
  252. package/lib/line/models/simpleTileLine.js +72 -30
  253. package/lib/line/models/tile.js +40 -17
  254. package/lib/line/models/wall.js +69 -22
  255. package/lib/mask/index.js +28 -99
  256. package/lib/mask/models/fill.js +40 -16
  257. package/lib/mask/models/index.js +1 -4
  258. package/lib/plugins/DataMappingPlugin.js +91 -149
  259. package/lib/plugins/DataSourcePlugin.js +69 -30
  260. package/lib/plugins/FeatureScalePlugin.js +87 -61
  261. package/lib/plugins/LayerModelPlugin.js +128 -41
  262. package/lib/plugins/LayerStylePlugin.js +1 -6
  263. package/lib/plugins/MultiPassRendererPlugin.js +1 -1
  264. package/lib/plugins/PixelPickingPlugin.js +1 -1
  265. package/lib/plugins/RegisterStyleAttributePlugin.js +1 -16
  266. package/lib/plugins/UpdateModelPlugin.js +3 -0
  267. package/lib/plugins/UpdateStyleAttributePlugin.js +3 -6
  268. package/lib/point/index.js +56 -24
  269. package/lib/point/models/earthExtrude.js +75 -30
  270. package/lib/point/models/earthFill.js +68 -21
  271. package/lib/point/models/extrude.js +40 -17
  272. package/lib/point/models/fill.js +44 -21
  273. package/lib/point/models/fillmage.js +84 -43
  274. package/lib/point/models/image.js +74 -31
  275. package/lib/point/models/index.js +0 -3
  276. package/lib/point/models/normal.js +73 -30
  277. package/lib/point/models/radar.js +77 -35
  278. package/lib/point/models/simplePoint.js +72 -29
  279. package/lib/point/models/text.js +185 -111
  280. package/lib/point/models/tile.js +79 -35
  281. package/lib/point/models/tileText.js +151 -115
  282. package/lib/polygon/index.js +29 -25
  283. package/lib/polygon/models/extrude.js +68 -29
  284. package/lib/polygon/models/fill.js +78 -43
  285. package/lib/polygon/models/index.js +0 -3
  286. package/lib/polygon/models/ocean.js +71 -28
  287. package/lib/polygon/models/tile.js +72 -30
  288. package/lib/polygon/models/water.js +71 -28
  289. package/lib/raster/index.js +32 -20
  290. package/lib/raster/models/index.js +3 -3
  291. package/lib/raster/models/raster.js +39 -29
  292. package/lib/raster/models/rasterRgb.js +78 -43
  293. package/lib/raster/models/rasterTerrainRgb.js +200 -0
  294. package/lib/raster/models/rasterTile.js +80 -37
  295. package/lib/raster/shaders/raster_2d_frag.glsl +2 -38
  296. package/lib/raster/shaders/raster_rgb_frag.glsl +10 -4
  297. package/lib/raster/shaders/raster_terrain_rgb_frag.glsl +31 -0
  298. package/lib/raster/shaders/rater_terrain_rgb_vert.glsl +17 -0
  299. package/lib/tile/interaction/utils.js +3 -11
  300. package/lib/tile/manager/base.js +213 -47
  301. package/lib/tile/service/TileLayerService.js +233 -0
  302. package/lib/tile/service/TilePickService.js +190 -0
  303. package/lib/tile/service/TileSourceService.js +59 -0
  304. package/lib/tile/style/constants.js +8 -19
  305. package/lib/tile/style/utils.js +0 -140
  306. package/lib/tile/tileFactory/DebugTile.js +115 -0
  307. package/lib/tile/tileFactory/ImageTile.js +104 -0
  308. package/lib/tile/tileFactory/MaskTile.js +120 -0
  309. package/lib/tile/tileFactory/RasterRGBTile.js +112 -0
  310. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +104 -0
  311. package/lib/tile/tileFactory/RasterTile.js +149 -0
  312. package/lib/tile/tileFactory/Tile.js +171 -0
  313. package/lib/tile/tileFactory/VectorTile.js +214 -0
  314. package/lib/tile/tileFactory/index.js +46 -23
  315. package/lib/tile/tileFactory/layers/{rasterDataLayer.js → RasterDataLayer.js} +36 -22
  316. package/lib/tile/tileFactory/layers/{tileTest.js → TileDebugLayer.js} +24 -11
  317. package/lib/tile/tileFactory/util.js +35 -0
  318. package/lib/tile/tileLayer/BaseLayer.js +363 -0
  319. package/lib/tile/utils.js +0 -148
  320. package/lib/utils/dataMappingStyle.js +18 -20
  321. package/lib/utils/layerData.js +4 -10
  322. package/lib/wind/index.js +29 -17
  323. package/lib/wind/models/wind.js +125 -104
  324. package/package.json +7 -7
  325. package/es/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  326. package/es/image/models/dataImage.d.ts +0 -13
  327. package/es/image/models/dataImage.js +0 -186
  328. package/es/image/models/tileDataImage.js +0 -160
  329. package/es/raster/raster.d.ts +0 -21
  330. package/es/raster/raster.js +0 -161
  331. package/es/tile/interaction/TilePickService.d.ts +0 -16
  332. package/es/tile/interaction/TilePickService.js +0 -129
  333. package/es/tile/manager/layerManager.d.ts +0 -19
  334. package/es/tile/manager/layerManager.js +0 -254
  335. package/es/tile/manager/mapLayerManager.d.ts +0 -7
  336. package/es/tile/manager/mapLayerManager.js +0 -119
  337. package/es/tile/models/tileModel.d.ts +0 -10
  338. package/es/tile/models/tileModel.js +0 -81
  339. package/es/tile/render/TileRenderService.d.ts +0 -10
  340. package/es/tile/render/TileRenderService.js +0 -68
  341. package/es/tile/style/TileStyleService.d.ts +0 -17
  342. package/es/tile/style/TileStyleService.js +0 -118
  343. package/es/tile/tileFactory/base.d.ts +0 -45
  344. package/es/tile/tileFactory/base.js +0 -403
  345. package/es/tile/tileFactory/layers/vectorLayer.d.ts +0 -30
  346. package/es/tile/tileFactory/layers/vectorLayer.js +0 -253
  347. package/es/tile/tileFactory/line.d.ts +0 -12
  348. package/es/tile/tileFactory/line.js +0 -59
  349. package/es/tile/tileFactory/mask.d.ts +0 -12
  350. package/es/tile/tileFactory/mask.js +0 -60
  351. package/es/tile/tileFactory/point.d.ts +0 -12
  352. package/es/tile/tileFactory/point.js +0 -60
  353. package/es/tile/tileFactory/polygon.d.ts +0 -12
  354. package/es/tile/tileFactory/polygon.js +0 -59
  355. package/es/tile/tileFactory/raster.d.ts +0 -12
  356. package/es/tile/tileFactory/raster.js +0 -55
  357. package/es/tile/tileFactory/rasterData.d.ts +0 -12
  358. package/es/tile/tileFactory/rasterData.js +0 -81
  359. package/es/tile/tileFactory/test.d.ts +0 -12
  360. package/es/tile/tileFactory/test.js +0 -94
  361. package/es/tile/tileLayer/MapTileLayer.d.ts +0 -6
  362. package/es/tile/tileLayer/MapTileLayer.js +0 -48
  363. package/es/tile/tileLayer/TileLayer.d.ts +0 -22
  364. package/es/tile/tileLayer/TileLayer.js +0 -198
  365. package/es/tile/tileLayer/base.d.ts +0 -33
  366. package/es/tile/tileLayer/base.js +0 -212
  367. package/lib/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  368. package/lib/image/models/dataImage.js +0 -201
  369. package/lib/image/models/tileDataImage.js +0 -174
  370. package/lib/raster/raster.js +0 -178
  371. package/lib/tile/interaction/TilePickService.js +0 -143
  372. package/lib/tile/manager/layerManager.js +0 -275
  373. package/lib/tile/manager/mapLayerManager.js +0 -134
  374. package/lib/tile/models/tileModel.js +0 -94
  375. package/lib/tile/render/TileRenderService.js +0 -78
  376. package/lib/tile/style/TileStyleService.js +0 -133
  377. package/lib/tile/tileFactory/base.js +0 -427
  378. package/lib/tile/tileFactory/layers/vectorLayer.js +0 -268
  379. package/lib/tile/tileFactory/line.js +0 -70
  380. package/lib/tile/tileFactory/mask.js +0 -71
  381. package/lib/tile/tileFactory/point.js +0 -71
  382. package/lib/tile/tileFactory/polygon.js +0 -70
  383. package/lib/tile/tileFactory/raster.js +0 -68
  384. package/lib/tile/tileFactory/rasterData.js +0 -93
  385. package/lib/tile/tileFactory/test.js +0 -106
  386. package/lib/tile/tileLayer/MapTileLayer.js +0 -63
  387. package/lib/tile/tileLayer/TileLayer.js +0 -215
  388. package/lib/tile/tileLayer/base.js +0 -225
@@ -7,12 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
10
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
13
 
12
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
15
 
14
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
-
16
16
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
17
17
 
18
18
  var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
@@ -57,6 +57,10 @@ var _multiPassRender = require("../utils/multiPassRender");
57
57
 
58
58
  var _updateShape = require("../utils/updateShape");
59
59
 
60
+ var _LayerPickService = _interopRequireDefault(require("./LayerPickService"));
61
+
62
+ var _TextureService = _interopRequireDefault(require("./TextureService"));
63
+
60
64
  var _excluded = ["passes"],
61
65
  _excluded2 = ["moduleName", "vertexShader", "fragmentShader", "triangulation", "segmentNumber", "workerEnabled", "workerOptions"];
62
66
 
@@ -84,12 +88,10 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
84
88
  // 生命周期钩子
85
89
  // 待渲染 model 列表
86
90
  // 用于保存子图层对象
87
- // Tip: 用于标识矢量图层
88
91
 
89
92
  /**
90
93
  * 待更新样式属性,在初始化阶段完成注册
91
94
  */
92
- // Tip: layer 保底颜色
93
95
  // private pickingPassRender: IPass<'pixelPicking'>;
94
96
  function BaseLayer() {
95
97
  var _this;
@@ -124,10 +126,10 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
124
126
  StyleAttrNeedUpdate: false
125
127
  });
126
128
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hooks", {
127
- init: new _asyncHook.SyncBailHook(),
129
+ init: new _asyncHook.AsyncSeriesBailHook(),
128
130
  afterInit: new _asyncHook.SyncBailHook(),
129
131
  beforeRender: new _asyncHook.SyncBailHook(),
130
- beforeRenderData: new _asyncHook.SyncWaterfallHook(),
132
+ beforeRenderData: new _asyncHook.AsyncWaterfallHook(),
131
133
  afterRender: new _asyncHook.SyncHook(),
132
134
  beforePickingEncode: new _asyncHook.SyncHook(),
133
135
  afterPickingEncode: new _asyncHook.SyncHook(),
@@ -139,10 +141,9 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
139
141
  afterDestroy: new _asyncHook.SyncHook()
140
142
  });
141
143
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "models", []);
142
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "modelLoaded", false);
144
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "startInit", false);
143
145
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "layerChildren", []);
144
146
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "masks", []);
145
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isVector", false);
146
147
  (0, _initializerDefineProperty2.default)((0, _assertThisInitialized2.default)(_this), "configService", _descriptor, (0, _assertThisInitialized2.default)(_this));
147
148
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "animateOptions", {
148
149
  enable: false
@@ -151,7 +152,6 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
151
152
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "pendingStyleAttributes", []);
152
153
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "scaleOptions", {});
153
154
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "animateStatus", false);
154
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "bottomColor", 'rgba(0, 0, 0, 0)');
155
155
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isDestroyed", false);
156
156
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "encodeDataLength", 0);
157
157
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sourceEvent", function () {
@@ -163,11 +163,16 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
163
163
  _this.fitBounds(layerConfig.fitBoundsOptions);
164
164
  }
165
165
 
166
- _this.reRender();
166
+ var autoRender = _this.layerSource.getSourceCfg().autoRender;
167
+
168
+ if (autoRender) {
169
+ _this.reRender();
170
+ }
167
171
  });
168
172
  _this.name = config.name || _this.id;
169
173
  _this.zIndex = config.zIndex || 0;
170
- _this.rawConfig = config;
174
+ _this.rawConfig = config; // this.parent = this;
175
+
171
176
  return _this;
172
177
  }
173
178
 
@@ -210,12 +215,12 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
210
215
  }
211
216
  });
212
217
 
213
- if (!this.inited) {
218
+ if (!this.startInit) {
214
219
  this.needUpdateConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.needUpdateConfig), configToUpdate);
215
220
  } else {
216
221
  var sceneId = this.container.get(_l7Core.TYPES.SceneID); // @ts-ignore
217
222
 
218
- (0, _dataMappingStyle.handleStyleDataMapping)(configToUpdate, this); // 处理 style 中进行数据映射的属性字段
223
+ (0, _dataMappingStyle.styleDataMapping)(configToUpdate, this); // 处理 style 中进行数据映射的属性字段
219
224
 
220
225
  this.configService.setLayerConfig(sceneId, this.id, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.configService.getLayerConfig(this.id)), this.needUpdateConfig), configToUpdate));
221
226
  this.needUpdateConfig = {};
@@ -239,16 +244,6 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
239
244
  value: function getContainer() {
240
245
  return this.container;
241
246
  }
242
- }, {
243
- key: "setBottomColor",
244
- value: function setBottomColor(color) {
245
- this.bottomColor = color;
246
- }
247
- }, {
248
- key: "getBottomColor",
249
- value: function getBottomColor() {
250
- return this.bottomColor;
251
- }
252
247
  }, {
253
248
  key: "addPlugin",
254
249
  value: function addPlugin(plugin) {
@@ -257,105 +252,133 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
257
252
  }
258
253
  }, {
259
254
  key: "init",
260
- value: function init() {
261
- var _this3 = this;
262
-
263
- // 设置配置项
264
- var sceneId = this.container.get(_l7Core.TYPES.SceneID); // 初始化图层配置项
265
- // const { enableMultiPassRenderer = false } = this.rawConfig;
266
- // this.configService.setLayerConfig(sceneId, this.id, {
267
- // enableMultiPassRenderer,
268
- // });
269
-
270
- this.configService.setLayerConfig(sceneId, this.id, this.rawConfig);
271
- this.layerType = this.rawConfig.layerType; // 全局容器服务
272
- // 场景容器服务
273
-
274
- this.iconService = this.container.get(_l7Core.TYPES.IIconService);
275
- this.fontService = this.container.get(_l7Core.TYPES.IFontService);
276
- this.rendererService = this.container.get(_l7Core.TYPES.IRendererService);
277
- this.layerService = this.container.get(_l7Core.TYPES.ILayerService);
278
- this.interactionService = this.container.get(_l7Core.TYPES.IInteractionService);
279
- this.pickingService = this.container.get(_l7Core.TYPES.IPickingService);
280
- this.mapService = this.container.get(_l7Core.TYPES.IMapService);
281
-
282
- var _this$getLayerConfig = this.getLayerConfig(),
283
- enableMultiPassRenderer = _this$getLayerConfig.enableMultiPassRenderer,
284
- passes = _this$getLayerConfig.passes;
285
-
286
- if (enableMultiPassRenderer && passes !== null && passes !== void 0 && passes.length && passes.length > 0) {
287
- // Tip: 兼容 multiPassRender 在 amap1 时存在的图层不同步问题 zoom
288
- this.mapService.on('mapAfterFrameChange', function () {
289
- _this3.renderLayers();
290
- });
291
- }
255
+ value: function () {
256
+ var _init = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
257
+ var _this3 = this;
258
+
259
+ var sceneId, _this$getLayerConfig, enableMultiPassRenderer, passes, _iterator, _step, plugin;
260
+
261
+ return _regenerator.default.wrap(function _callee$(_context) {
262
+ while (1) {
263
+ switch (_context.prev = _context.next) {
264
+ case 0:
265
+ // 设置配置项
266
+ sceneId = this.container.get(_l7Core.TYPES.SceneID);
267
+ this.startInit = true; // 初始化图层配置项
268
+ // const { enableMultiPassRenderer = false } = this.rawConfig;
269
+ // this.configService.setLayerConfig(sceneId, this.id, {
270
+ // enableMultiPassRenderer,
271
+ // });
272
+
273
+ this.configService.setLayerConfig(sceneId, this.id, this.rawConfig);
274
+ this.layerType = this.rawConfig.layerType; // 全局容器服务
275
+ // 场景容器服务
276
+
277
+ this.iconService = this.container.get(_l7Core.TYPES.IIconService);
278
+ this.fontService = this.container.get(_l7Core.TYPES.IFontService);
279
+ this.rendererService = this.container.get(_l7Core.TYPES.IRendererService);
280
+ this.layerService = this.container.get(_l7Core.TYPES.ILayerService);
281
+ this.interactionService = this.container.get(_l7Core.TYPES.IInteractionService);
282
+ this.pickingService = this.container.get(_l7Core.TYPES.IPickingService);
283
+ this.mapService = this.container.get(_l7Core.TYPES.IMapService);
284
+ _this$getLayerConfig = this.getLayerConfig(), enableMultiPassRenderer = _this$getLayerConfig.enableMultiPassRenderer, passes = _this$getLayerConfig.passes;
285
+
286
+ if (enableMultiPassRenderer && passes !== null && passes !== void 0 && passes.length && passes.length > 0) {
287
+ // Tip: 兼容 multiPassRender 在 amap1 时存在的图层不同步问题 zoom
288
+ this.mapService.on('mapAfterFrameChange', function () {
289
+ _this3.renderLayers();
290
+ });
291
+ }
292
292
 
293
- this.cameraService = this.container.get(_l7Core.TYPES.ICameraService);
294
- this.coordinateService = this.container.get(_l7Core.TYPES.ICoordinateSystemService);
295
- this.shaderModuleService = this.container.get(_l7Core.TYPES.IShaderModuleService);
296
- this.postProcessingPassFactory = this.container.get(_l7Core.TYPES.IFactoryPostProcessingPass);
297
- this.normalPassFactory = this.container.get(_l7Core.TYPES.IFactoryNormalPass); // 图层容器服务
293
+ this.cameraService = this.container.get(_l7Core.TYPES.ICameraService);
294
+ this.coordinateService = this.container.get(_l7Core.TYPES.ICoordinateSystemService);
295
+ this.shaderModuleService = this.container.get(_l7Core.TYPES.IShaderModuleService);
296
+ this.postProcessingPassFactory = this.container.get(_l7Core.TYPES.IFactoryPostProcessingPass);
297
+ this.normalPassFactory = this.container.get(_l7Core.TYPES.IFactoryNormalPass); // 图层容器服务
298
+
299
+ this.styleAttributeService = this.container.get(_l7Core.TYPES.IStyleAttributeService);
300
+
301
+ if (enableMultiPassRenderer) {
302
+ // 按需初始化 瓦片频繁报错
303
+ this.multiPassRenderer = this.container.get(_l7Core.TYPES.IMultiPassRenderer);
304
+ this.multiPassRenderer.setLayer(this);
305
+ } // 完成样式服务注册完成前添加的属性
306
+
307
+
308
+ this.pendingStyleAttributes.forEach(function (_ref2) {
309
+ var attributeName = _ref2.attributeName,
310
+ attributeField = _ref2.attributeField,
311
+ attributeValues = _ref2.attributeValues,
312
+ updateOptions = _ref2.updateOptions;
313
+
314
+ _this3.styleAttributeService.updateStyleAttribute(attributeName, {
315
+ // @ts-ignore
316
+ scale: (0, _objectSpread2.default)({
317
+ field: attributeField
318
+ }, _this3.splitValuesAndCallbackInAttribute( // @ts-ignore
319
+ attributeValues, // @ts-ignore
320
+ _this3.getLayerConfig()[attributeName]))
321
+ }, // @ts-ignore
322
+ updateOptions);
323
+ });
324
+ this.pendingStyleAttributes = []; // 获取插件集
325
+
326
+ this.plugins = this.container.getAll(_l7Core.TYPES.ILayerPlugin); // 完成插件注册,传入场景和图层容器内的服务
327
+
328
+ _iterator = _createForOfIteratorHelper(this.plugins);
329
+
330
+ try {
331
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
332
+ plugin = _step.value;
333
+ plugin.apply(this, {
334
+ rendererService: this.rendererService,
335
+ mapService: this.mapService,
336
+ styleAttributeService: this.styleAttributeService,
337
+ normalPassFactory: this.normalPassFactory,
338
+ postProcessingPassFactory: this.postProcessingPassFactory
339
+ });
340
+ } // 初始化其他服务
341
+
342
+ } catch (err) {
343
+ _iterator.e(err);
344
+ } finally {
345
+ _iterator.f();
346
+ }
298
347
 
299
- this.styleAttributeService = this.container.get(_l7Core.TYPES.IStyleAttributeService);
300
- this.multiPassRenderer = this.container.get(_l7Core.TYPES.IMultiPassRenderer);
301
- this.multiPassRenderer.setLayer(this); // 完成样式服务注册完成前添加的属性
348
+ this.layerPickService = new _LayerPickService.default(this); // 颜色纹理服务
302
349
 
303
- this.pendingStyleAttributes.forEach(function (_ref2) {
304
- var attributeName = _ref2.attributeName,
305
- attributeField = _ref2.attributeField,
306
- attributeValues = _ref2.attributeValues,
307
- updateOptions = _ref2.updateOptions;
350
+ this.textureService = new _TextureService.default(this); // 触发 init 生命周期插件
308
351
 
309
- _this3.styleAttributeService.updateStyleAttribute(attributeName, {
310
- // @ts-ignore
311
- scale: (0, _objectSpread2.default)({
312
- field: attributeField
313
- }, _this3.splitValuesAndCallbackInAttribute( // @ts-ignore
314
- attributeValues, // @ts-ignore
315
- _this3.getLayerConfig()[attributeName]))
316
- }, // @ts-ignore
317
- updateOptions);
318
- });
319
- this.pendingStyleAttributes = []; // 获取插件集
320
-
321
- this.plugins = this.container.getAll(_l7Core.TYPES.ILayerPlugin); // 完成插件注册,传入场景和图层容器内的服务
322
-
323
- var _iterator = _createForOfIteratorHelper(this.plugins),
324
- _step;
325
-
326
- try {
327
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
328
- var plugin = _step.value;
329
- plugin.apply(this, {
330
- rendererService: this.rendererService,
331
- mapService: this.mapService,
332
- styleAttributeService: this.styleAttributeService,
333
- normalPassFactory: this.normalPassFactory,
334
- postProcessingPassFactory: this.postProcessingPassFactory
335
- });
336
- } // 触发 init 生命周期插件
337
-
338
- } catch (err) {
339
- _iterator.e(err);
340
- } finally {
341
- _iterator.f();
342
- }
352
+ _context.next = 29;
353
+ return this.hooks.init.promise();
343
354
 
344
- this.hooks.init.call(); // this.pickingPassRender = this.normalPassFactory('pixelPicking');
345
- // this.pickingPassRender.init(this);
355
+ case 29:
356
+ this.inited = true; // 触发初始化完成事件;
346
357
 
347
- this.hooks.afterInit.call(); // 触发初始化完成事件;
358
+ this.emit('inited', {
359
+ target: this,
360
+ type: 'inited'
361
+ });
362
+ this.emit('add', {
363
+ target: this,
364
+ type: 'add'
365
+ });
366
+ this.hooks.afterInit.call();
348
367
 
349
- this.emit('inited', {
350
- target: this,
351
- type: 'inited'
352
- });
353
- this.emit('add', {
354
- target: this,
355
- type: 'add'
356
- });
357
- return this;
358
- }
368
+ case 33:
369
+ case "end":
370
+ return _context.stop();
371
+ }
372
+ }
373
+ }, _callee, this);
374
+ }));
375
+
376
+ function init() {
377
+ return _init.apply(this, arguments);
378
+ }
379
+
380
+ return init;
381
+ }()
359
382
  }, {
360
383
  key: "updateModelData",
361
384
  value: function updateModelData(data) {
@@ -389,6 +412,11 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
389
412
  };
390
413
  }
391
414
  }
415
+ }, {
416
+ key: "setLayerPickService",
417
+ value: function setLayerPickService(layerPickService) {
418
+ this.layerPickService = layerPickService;
419
+ }
392
420
  }, {
393
421
  key: "calculateEncodeData",
394
422
  value: function calculateEncodeData(data, option) {
@@ -406,8 +434,7 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
406
434
  }, {
407
435
  key: "prepareBuildModel",
408
436
  value: function prepareBuildModel() {
409
- this.inited = true;
410
- this.updateLayerConfig((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.getDefaultConfig()), this.rawConfig)); // 启动动画
437
+ this.updateLayerConfig((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.getDefaultConfig()), this.rawConfig), this.needUpdateConfig)); // 启动动画
411
438
 
412
439
  var _this$getLayerConfig2 = this.getLayerConfig(),
413
440
  animateOption = _this$getLayerConfig2.animateOption;
@@ -503,7 +530,8 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
503
530
  // 判断是否为source
504
531
  this.setSource(data);
505
532
  return this;
506
- }
533
+ } // 设置source 配置
534
+
507
535
 
508
536
  this.sourceOption = {
509
537
  data: data,
@@ -526,8 +554,6 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
526
554
  if (!currentSource) {
527
555
  // 执行 setData 的时候 source 还不存在(还未执行 addLayer)
528
556
  _this4.source(new _l7Source.default(data, options));
529
-
530
- _this4.sourceEvent();
531
557
  } else {
532
558
  _this4.layerSource.setData(data, options);
533
559
  } // this.layerSource.setData(data, options);
@@ -542,7 +568,6 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
542
568
  value: function style(options) {
543
569
  var _this5 = this;
544
570
 
545
- var lastConfig = this.getLayerConfig();
546
571
  var passes = options.passes,
547
572
  rest = (0, _objectWithoutProperties2.default)(options, _excluded); // passes 特殊处理
548
573
 
@@ -561,16 +586,16 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
561
586
  if (this.container) {
562
587
  this.updateLayerConfig(this.rawConfig);
563
588
  this.styleNeedUpdate = true;
564
- } // @ts-ignore
589
+ } // TODO style model 更新
590
+ // @ts-ignore
591
+ // if (lastConfig && lastConfig.mask === true && options.mask === false) {
592
+ // this.clearModels();
593
+ // this.layerModel.buildModels((models) => {
594
+ // this.models = models;
595
+ // });
596
+ // }
565
597
 
566
598
 
567
- if (lastConfig && lastConfig.mask === true && options.mask === false) {
568
- this.clearModels();
569
- this.layerModel.buildModels(function (models) {
570
- _this5.models = models;
571
- });
572
- }
573
-
574
599
  return this;
575
600
  }
576
601
  }, {
@@ -604,6 +629,8 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
604
629
  return this;
605
630
  }
606
631
 
632
+ this.layerService.beforeRenderData(this);
633
+
607
634
  if (this.encodeDataLength <= 0 && !this.forceRender) {
608
635
  return this;
609
636
  } // Tip: this.getEncodedData().length !== 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题
@@ -619,29 +646,29 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
619
646
  }, {
620
647
  key: "renderMultiPass",
621
648
  value: function () {
622
- var _renderMultiPass = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
623
- return _regenerator.default.wrap(function _callee$(_context) {
649
+ var _renderMultiPass = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
650
+ return _regenerator.default.wrap(function _callee2$(_context2) {
624
651
  while (1) {
625
- switch (_context.prev = _context.next) {
652
+ switch (_context2.prev = _context2.next) {
626
653
  case 0:
627
654
  if (!(this.encodeDataLength <= 0 && !this.forceRender)) {
628
- _context.next = 2;
655
+ _context2.next = 2;
629
656
  break;
630
657
  }
631
658
 
632
- return _context.abrupt("return");
659
+ return _context2.abrupt("return");
633
660
 
634
661
  case 2:
635
662
  if (!(this.multiPassRenderer && this.multiPassRenderer.getRenderFlag())) {
636
- _context.next = 7;
663
+ _context2.next = 7;
637
664
  break;
638
665
  }
639
666
 
640
- _context.next = 5;
667
+ _context2.next = 5;
641
668
  return this.multiPassRenderer.render();
642
669
 
643
670
  case 5:
644
- _context.next = 8;
671
+ _context2.next = 8;
645
672
  break;
646
673
 
647
674
  case 7:
@@ -654,10 +681,10 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
654
681
 
655
682
  case 8:
656
683
  case "end":
657
- return _context.stop();
684
+ return _context2.stop();
658
685
  }
659
686
  }
660
- }, _callee, this);
687
+ }, _callee2, this);
661
688
  }));
662
689
 
663
690
  function renderMultiPass() {
@@ -846,7 +873,7 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
846
873
  _this$getLayerConfig5 = _this$getLayerConfig3.maxZoom,
847
874
  maxZoom = _this$getLayerConfig5 === void 0 ? Infinity : _this$getLayerConfig5;
848
875
 
849
- return !!visible && zoom >= minZoom && zoom <= maxZoom;
876
+ return !!visible && zoom >= minZoom && zoom < maxZoom;
850
877
  }
851
878
  }, {
852
879
  key: "setMultiPass",
@@ -976,7 +1003,8 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
976
1003
  this.hooks.beforeDestroy.call(); // 清除sources事件
977
1004
 
978
1005
  this.layerSource.off('update', this.sourceEvent);
979
- (_this$multiPassRender = this.multiPassRenderer) === null || _this$multiPassRender === void 0 ? void 0 : _this$multiPassRender.destroy(); // 清除所有属性以及关联的 vao == 销毁所有 => model this.models.forEach((model) => model.destroy());
1006
+ (_this$multiPassRender = this.multiPassRenderer) === null || _this$multiPassRender === void 0 ? void 0 : _this$multiPassRender.destroy();
1007
+ this.textureService.destroy(); // 清除所有属性以及关联的 vao == 销毁所有 => model this.models.forEach((model) => model.destroy());
980
1008
 
981
1009
  this.styleAttributeService.clearAllAttributes(); // 执行每个图层单独的 clearModels 方法 (清除一些额外的 texture、program、buffer 等)
982
1010
 
@@ -1021,13 +1049,14 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1021
1049
  return !!(this.styleAttributeService.getLayerStyleAttributes() || []).filter(function (attribute) {
1022
1050
  return attribute.needRescale || attribute.needRemapping || attribute.needRegenerateVertices;
1023
1051
  }).length;
1024
- }
1052
+ } // 外部初始化Source
1053
+
1025
1054
  }, {
1026
1055
  key: "setSource",
1027
1056
  value: function setSource(source) {
1028
1057
  var _this8 = this;
1029
1058
 
1030
- // 清除旧 sources 事件
1059
+ // 解除原 sources 事件
1031
1060
  if (this.layerSource) {
1032
1061
  this.layerSource.off('update', this.sourceEvent);
1033
1062
  }
@@ -1038,15 +1067,16 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1038
1067
  if (this.inited && this.layerSource.cluster) {
1039
1068
  var zoom = this.mapService.getZoom();
1040
1069
  this.layerSource.updateClusterData(zoom);
1041
- } // source 可能会复用,会在其它layer被修改
1042
-
1070
+ }
1043
1071
 
1044
1072
  if (this.layerSource.inited) {
1045
1073
  this.sourceEvent();
1046
1074
  } // this.layerSource.inited 为 true update 事件不会再触发
1047
1075
 
1048
1076
 
1049
- this.layerSource.on('update', function () {
1077
+ this.layerSource.on('update', function (_ref3) {
1078
+ var type = _ref3.type;
1079
+
1050
1080
  if (_this8.coordCenter === undefined) {
1051
1081
  var _this8$mapService;
1052
1082
 
@@ -1058,13 +1088,45 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1058
1088
  }
1059
1089
  }
1060
1090
 
1061
- _this8.sourceEvent();
1091
+ if (type === 'update') {
1092
+ // source 初始化不需要处理
1093
+ _this8.sourceEvent();
1094
+ }
1062
1095
  });
1096
+ } // layer 初始化source
1097
+
1098
+ }, {
1099
+ key: "initSource",
1100
+ value: function initSource(source) {
1101
+ this.layerSource = source;
1102
+ this.clusterZoom = 0;
1103
+ this.addSourceEvent();
1063
1104
  }
1064
1105
  }, {
1065
1106
  key: "getSource",
1066
1107
  value: function getSource() {
1067
1108
  return this.layerSource;
1109
+ } // 注册source 更新事件
1110
+
1111
+ }, {
1112
+ key: "addSourceEvent",
1113
+ value: function addSourceEvent() {
1114
+ var _this9 = this;
1115
+
1116
+ this.layerSource.on('update', function () {
1117
+ if (_this9.coordCenter === undefined) {
1118
+ var _this9$mapService;
1119
+
1120
+ var layerCenter = _this9.layerSource.center;
1121
+ _this9.coordCenter = layerCenter;
1122
+
1123
+ if ((_this9$mapService = _this9.mapService) !== null && _this9$mapService !== void 0 && _this9$mapService.setCoordCenter) {
1124
+ _this9.mapService.setCoordCenter(layerCenter);
1125
+ }
1126
+ }
1127
+
1128
+ _this9.sourceEvent();
1129
+ });
1068
1130
  }
1069
1131
  }, {
1070
1132
  key: "getScaleOptions",
@@ -1143,9 +1205,9 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1143
1205
  }
1144
1206
  }, {
1145
1207
  key: "pick",
1146
- value: function pick(_ref6) {
1147
- var x = _ref6.x,
1148
- y = _ref6.y;
1208
+ value: function pick(_ref7) {
1209
+ var x = _ref7.x,
1210
+ y = _ref7.y;
1149
1211
  this.interactionService.triggerHover({
1150
1212
  x: x,
1151
1213
  y: y
@@ -1158,75 +1220,79 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1158
1220
  }
1159
1221
  }, {
1160
1222
  key: "buildLayerModel",
1161
- value: function buildLayerModel(options) {
1162
- var _this9 = this;
1223
+ value: function () {
1224
+ var _buildLayerModel = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(options) {
1225
+ var _this10 = this;
1163
1226
 
1164
- var moduleName = options.moduleName,
1165
- vertexShader = options.vertexShader,
1166
- fragmentShader = options.fragmentShader,
1167
- triangulation = options.triangulation,
1168
- segmentNumber = options.segmentNumber,
1169
- _options$workerEnable = options.workerEnabled,
1170
- workerEnabled = _options$workerEnable === void 0 ? false : _options$workerEnable,
1171
- workerOptions = options.workerOptions,
1172
- rest = (0, _objectWithoutProperties2.default)(options, _excluded2);
1173
- this.shaderModuleService.registerModule(moduleName, {
1174
- vs: vertexShader,
1175
- fs: fragmentShader
1176
- });
1227
+ var moduleName, vertexShader, fragmentShader, triangulation, segmentNumber, _options$workerEnable, workerEnabled, workerOptions, rest, _this$shaderModuleSer, vs, fs, uniforms, createModel;
1177
1228
 
1178
- var _this$shaderModuleSer = this.shaderModuleService.getModule(moduleName),
1179
- vs = _this$shaderModuleSer.vs,
1180
- fs = _this$shaderModuleSer.fs,
1181
- uniforms = _this$shaderModuleSer.uniforms;
1182
-
1183
- var createModel = this.rendererService.createModel;
1184
- return new Promise(function (resolve, reject) {
1185
- setTimeout(function () {
1186
- // filter supported worker & worker enabled layer
1187
- if (workerOptions && workerOptions.modelType in _l7Utils.WorkerSourceMap && workerEnabled) {
1188
- _this9.styleAttributeService.createAttributesAndIndicesAscy(_this9.encodedData, segmentNumber, workerOptions).then(function (_ref7) {
1189
- var attributes = _ref7.attributes,
1190
- elements = _ref7.elements;
1191
- var m = createModel((0, _objectSpread2.default)({
1192
- attributes: attributes,
1193
- uniforms: uniforms,
1194
- fs: fs,
1195
- vs: vs,
1196
- elements: elements,
1197
- blend: _blend.BlendTypes[_l7Core.BlendType.normal]
1198
- }, rest));
1199
- resolve(m);
1200
- }).catch(function (err) {
1201
- return reject(err);
1202
- });
1203
- } else {
1204
- // console.log(this.encodedData[1].originCoordinates[0])
1205
- // console.log(this.encodedData[1].coordinates[0])
1206
- var _this9$styleAttribute = _this9.styleAttributeService.createAttributesAndIndices(_this9.encodedData, triangulation, segmentNumber),
1207
- attributes = _this9$styleAttribute.attributes,
1208
- elements = _this9$styleAttribute.elements,
1209
- count = _this9$styleAttribute.count;
1210
-
1211
- var modelOptions = (0, _objectSpread2.default)({
1212
- attributes: attributes,
1213
- uniforms: uniforms,
1214
- fs: fs,
1215
- vs: vs,
1216
- elements: elements,
1217
- blend: _blend.BlendTypes[_l7Core.BlendType.normal]
1218
- }, rest);
1219
-
1220
- if (count) {
1221
- modelOptions.count = count;
1222
- }
1229
+ return _regenerator.default.wrap(function _callee3$(_context3) {
1230
+ while (1) {
1231
+ switch (_context3.prev = _context3.next) {
1232
+ case 0:
1233
+ moduleName = options.moduleName, vertexShader = options.vertexShader, fragmentShader = options.fragmentShader, triangulation = options.triangulation, segmentNumber = options.segmentNumber, _options$workerEnable = options.workerEnabled, workerEnabled = _options$workerEnable === void 0 ? false : _options$workerEnable, workerOptions = options.workerOptions, rest = (0, _objectWithoutProperties2.default)(options, _excluded2);
1234
+ this.shaderModuleService.registerModule(moduleName, {
1235
+ vs: vertexShader,
1236
+ fs: fragmentShader
1237
+ });
1238
+ _this$shaderModuleSer = this.shaderModuleService.getModule(moduleName), vs = _this$shaderModuleSer.vs, fs = _this$shaderModuleSer.fs, uniforms = _this$shaderModuleSer.uniforms;
1239
+ createModel = this.rendererService.createModel;
1240
+ return _context3.abrupt("return", new Promise(function (resolve, reject) {
1241
+ // filter supported worker & worker enabled layer
1242
+ if (workerOptions && workerOptions.modelType in _l7Utils.WorkerSourceMap && workerEnabled) {
1243
+ _this10.styleAttributeService.createAttributesAndIndicesAscy(_this10.encodedData, segmentNumber, workerOptions).then(function (_ref8) {
1244
+ var attributes = _ref8.attributes,
1245
+ elements = _ref8.elements;
1246
+ var m = createModel((0, _objectSpread2.default)({
1247
+ attributes: attributes,
1248
+ uniforms: uniforms,
1249
+ fs: fs,
1250
+ vs: vs,
1251
+ elements: elements,
1252
+ blend: _blend.BlendTypes[_l7Core.BlendType.normal]
1253
+ }, rest));
1254
+ resolve(m);
1255
+ }).catch(function (err) {
1256
+ return reject(err);
1257
+ });
1258
+ } else {
1259
+ var _this10$styleAttribut = _this10.styleAttributeService.createAttributesAndIndices(_this10.encodedData, triangulation, segmentNumber),
1260
+ attributes = _this10$styleAttribut.attributes,
1261
+ elements = _this10$styleAttribut.elements,
1262
+ count = _this10$styleAttribut.count;
1263
+
1264
+ var modelOptions = (0, _objectSpread2.default)({
1265
+ attributes: attributes,
1266
+ uniforms: uniforms,
1267
+ fs: fs,
1268
+ vs: vs,
1269
+ elements: elements,
1270
+ blend: _blend.BlendTypes[_l7Core.BlendType.normal]
1271
+ }, rest);
1272
+
1273
+ if (count) {
1274
+ modelOptions.count = count;
1275
+ }
1276
+
1277
+ var m = createModel(modelOptions);
1278
+ resolve(m);
1279
+ }
1280
+ }));
1223
1281
 
1224
- var m = createModel(modelOptions);
1225
- resolve(m);
1282
+ case 5:
1283
+ case "end":
1284
+ return _context3.stop();
1285
+ }
1226
1286
  }
1227
- });
1228
- });
1229
- }
1287
+ }, _callee3, this);
1288
+ }));
1289
+
1290
+ function buildLayerModel(_x) {
1291
+ return _buildLayerModel.apply(this, arguments);
1292
+ }
1293
+
1294
+ return buildLayerModel;
1295
+ }()
1230
1296
  }, {
1231
1297
  key: "createAttributes",
1232
1298
  value: function createAttributes(options) {
@@ -1268,11 +1334,6 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1268
1334
  }, {
1269
1335
  key: "needPick",
1270
1336
  value: function needPick(type) {
1271
- // 地图图层的判断
1272
- if (this.rawConfig.usage === 'basemap') {
1273
- return false;
1274
- }
1275
-
1276
1337
  var _this$getLayerConfig10 = this.getLayerConfig(),
1277
1338
  _this$getLayerConfig11 = _this$getLayerConfig10.enableHighlight,
1278
1339
  enableHighlight = _this$getLayerConfig11 === void 0 ? true : _this$getLayerConfig11,
@@ -1294,34 +1355,73 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1294
1355
  }
1295
1356
  }, {
1296
1357
  key: "buildModels",
1297
- value: function buildModels() {
1298
- throw new Error('Method not implemented.');
1299
- }
1358
+ value: function () {
1359
+ var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
1360
+ return _regenerator.default.wrap(function _callee4$(_context4) {
1361
+ while (1) {
1362
+ switch (_context4.prev = _context4.next) {
1363
+ case 0:
1364
+ throw new Error('Method not implemented.');
1365
+
1366
+ case 1:
1367
+ case "end":
1368
+ return _context4.stop();
1369
+ }
1370
+ }
1371
+ }, _callee4);
1372
+ }));
1373
+
1374
+ function buildModels() {
1375
+ return _buildModels.apply(this, arguments);
1376
+ }
1377
+
1378
+ return buildModels;
1379
+ }()
1300
1380
  }, {
1301
1381
  key: "rebuildModels",
1302
- value: function rebuildModels() {
1303
- throw new Error('Method not implemented.');
1304
- }
1382
+ value: function () {
1383
+ var _rebuildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
1384
+ return _regenerator.default.wrap(function _callee5$(_context5) {
1385
+ while (1) {
1386
+ switch (_context5.prev = _context5.next) {
1387
+ case 0:
1388
+ _context5.next = 2;
1389
+ return this.buildModels();
1390
+
1391
+ case 2:
1392
+ case "end":
1393
+ return _context5.stop();
1394
+ }
1395
+ }
1396
+ }, _callee5, this);
1397
+ }));
1398
+
1399
+ function rebuildModels() {
1400
+ return _rebuildModels.apply(this, arguments);
1401
+ }
1402
+
1403
+ return rebuildModels;
1404
+ }()
1305
1405
  }, {
1306
1406
  key: "renderMulPass",
1307
1407
  value: function () {
1308
- var _renderMulPass = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(multiPassRenderer) {
1309
- return _regenerator.default.wrap(function _callee2$(_context2) {
1408
+ var _renderMulPass = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(multiPassRenderer) {
1409
+ return _regenerator.default.wrap(function _callee6$(_context6) {
1310
1410
  while (1) {
1311
- switch (_context2.prev = _context2.next) {
1411
+ switch (_context6.prev = _context6.next) {
1312
1412
  case 0:
1313
- _context2.next = 2;
1413
+ _context6.next = 2;
1314
1414
  return multiPassRenderer.render();
1315
1415
 
1316
1416
  case 2:
1317
1417
  case "end":
1318
- return _context2.stop();
1418
+ return _context6.stop();
1319
1419
  }
1320
1420
  }
1321
- }, _callee2);
1421
+ }, _callee6);
1322
1422
  }));
1323
1423
 
1324
- function renderMulPass(_x) {
1424
+ function renderMulPass(_x2) {
1325
1425
  return _renderMulPass.apply(this, arguments);
1326
1426
  }
1327
1427
 
@@ -1330,34 +1430,35 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1330
1430
  }, {
1331
1431
  key: "renderModels",
1332
1432
  value: function renderModels(isPicking) {
1333
- var _this10 = this;
1433
+ var _this11 = this;
1334
1434
 
1335
1435
  // TODO: this.getEncodedData().length > 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题
1336
1436
  if (this.encodeDataLength <= 0 && !this.forceRender) {
1337
1437
  return this;
1338
1438
  }
1339
1439
 
1340
- if (this.layerModelNeedUpdate && this.layerModel) {
1341
- this.layerModel.buildModels(function (models) {
1342
- _this10.models = models;
1343
-
1344
- _this10.hooks.beforeRender.call();
1345
-
1346
- _this10.layerModelNeedUpdate = false;
1347
- });
1348
- }
1349
-
1440
+ this.hooks.beforeRender.call();
1350
1441
  this.models.forEach(function (model) {
1351
1442
  model.draw({
1352
- uniforms: _this10.layerModel.getUninforms()
1443
+ uniforms: _this11.layerModel.getUninforms()
1353
1444
  }, isPicking);
1354
1445
  });
1446
+ this.hooks.afterRender.call();
1355
1447
  return this;
1356
1448
  }
1357
1449
  }, {
1358
1450
  key: "updateStyleAttribute",
1359
1451
  value: function updateStyleAttribute(type, field, values, updateOptions) {
1360
- if (!this.inited) {
1452
+ // 存储 Attribute
1453
+ if (['color', 'size', 'texture', 'rotate', 'filter', 'label', 'shape'].indexOf(type) !== -1) {
1454
+ this.configService.setAttributeConfig(this.id, (0, _defineProperty2.default)({}, type, {
1455
+ field: field,
1456
+ values: values
1457
+ }));
1458
+ }
1459
+
1460
+ if (!this.startInit) {
1461
+ // 开始初始化执行
1361
1462
  this.pendingStyleAttributes.push({
1362
1463
  attributeName: type,
1363
1464
  attributeField: field,
@@ -1376,6 +1477,11 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1376
1477
  updateOptions);
1377
1478
  }
1378
1479
  }
1480
+ }, {
1481
+ key: "getLayerAttributeConfig",
1482
+ value: function getLayerAttributeConfig() {
1483
+ return this.configService.getAttributeConfig(this.id);
1484
+ }
1379
1485
  }, {
1380
1486
  key: "getShaderPickStat",
1381
1487
  value: function getShaderPickStat() {
@@ -1391,6 +1497,13 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1391
1497
  key: "setEarthTime",
1392
1498
  value: function setEarthTime(time) {
1393
1499
  console.warn('empty fn');
1500
+ } // 数据处理 在数据进行 mapping 生成 encodeData 之前对数据进行处理
1501
+ // 在各个 layer 中继承
1502
+
1503
+ }, {
1504
+ key: "processData",
1505
+ value: function processData(filterData) {
1506
+ return filterData;
1394
1507
  }
1395
1508
  }, {
1396
1509
  key: "getModelType",
@@ -1403,23 +1516,37 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1403
1516
  return {};
1404
1517
  }
1405
1518
  }, {
1406
- key: "dispatchModelLoad",
1407
- value: function dispatchModelLoad(models) {
1408
- var _this11 = this;
1519
+ key: "initLayerModels",
1520
+ value: function () {
1521
+ var _initLayerModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
1522
+ return _regenerator.default.wrap(function _callee7$(_context7) {
1523
+ while (1) {
1524
+ switch (_context7.prev = _context7.next) {
1525
+ case 0:
1526
+ this.models.forEach(function (model) {
1527
+ return model.destroy();
1528
+ });
1529
+ this.models = [];
1530
+ _context7.next = 4;
1531
+ return this.layerModel.initModels();
1409
1532
 
1410
- this.models.forEach(function (model) {
1411
- return model.destroy();
1412
- });
1413
- this.models = [];
1414
- this.models = models;
1415
- this.emit('modelLoaded', null);
1416
- this.modelLoaded = true; // Tip: setTimeout 用于延迟绘制,可以让拖动图层时连续的 setData 更加平滑 - L7Draw
1533
+ case 4:
1534
+ this.models = _context7.sent;
1417
1535
 
1418
- setTimeout(function () {
1419
- // Tip: 使用 renderLayers 而不是 throttleRenderLayers,让图层之间的 setData 更新绘制不存在延迟
1420
- _this11.layerService.renderLayers();
1421
- }, 32);
1422
- }
1536
+ case 5:
1537
+ case "end":
1538
+ return _context7.stop();
1539
+ }
1540
+ }
1541
+ }, _callee7, this);
1542
+ }));
1543
+
1544
+ function initLayerModels() {
1545
+ return _initLayerModels.apply(this, arguments);
1546
+ }
1547
+
1548
+ return initLayerModels;
1549
+ }()
1423
1550
  }, {
1424
1551
  key: "reRender",
1425
1552
  value: function reRender() {