@antv/l7-layers 2.10.1 → 2.10.3

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