@antv/l7-layers 2.10.3 → 2.10.4

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