@antv/l7-layers 2.9.27-alpha.1 → 2.9.27-alpha.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 (302) hide show
  1. package/es/Geometry/index.d.ts +13 -0
  2. package/es/Geometry/index.js +20 -2
  3. package/es/Geometry/models/billboard.js +1 -2
  4. package/es/Geometry/models/plane.js +2 -4
  5. package/es/Geometry/models/sprite.js +2 -4
  6. package/es/canvas/index.d.ts +4 -0
  7. package/es/canvas/index.js +38 -2
  8. package/es/citybuliding/building.js +6 -2
  9. package/es/citybuliding/models/build.js +2 -3
  10. package/es/core/BaseLayer.d.ts +17 -6
  11. package/es/core/BaseLayer.js +89 -94
  12. package/es/core/BaseModel.d.ts +1 -1
  13. package/es/core/BaseModel.js +7 -3
  14. package/es/core/interface.d.ts +18 -0
  15. package/es/core/triangulation.d.ts +6 -0
  16. package/es/core/triangulation.js +64 -2
  17. package/es/earth/index.d.ts +5 -0
  18. package/es/earth/index.js +12 -1
  19. package/es/earth/models/base.js +2 -4
  20. package/es/earth/shaders/atmosphere_frag.glsl +1 -1
  21. package/es/earth/shaders/bloomsphere_frag.glsl +1 -1
  22. package/es/heatmap/index.js +6 -2
  23. package/es/heatmap/models/heatmap.js +5 -3
  24. package/es/image/index.js +6 -2
  25. package/es/image/models/dataImage.js +4 -7
  26. package/es/image/models/image.js +4 -7
  27. package/es/line/index.d.ts +1 -0
  28. package/es/line/index.js +8 -2
  29. package/es/line/models/arc.js +6 -5
  30. package/es/line/models/half.js +3 -4
  31. package/es/line/models/line.js +9 -8
  32. package/es/line/models/simpleLine.js +2 -1
  33. package/es/line/models/simpleTileLine.d.ts +9 -0
  34. package/es/line/models/simpleTileLine.js +100 -0
  35. package/es/line/models/tile.d.ts +1 -4
  36. package/es/line/models/tile.js +49 -222
  37. package/es/line/models/wall.js +10 -46
  38. package/es/line/shaders/dash/arc_dash_vert.glsl +2 -0
  39. package/es/line/shaders/dash/line_dash_frag.glsl +1 -1
  40. package/es/line/shaders/line_arc2d_vert.glsl +1 -1
  41. package/es/line/shaders/line_arc_3d_frag.glsl +1 -1
  42. package/es/line/shaders/line_arc_3d_vert.glsl +3 -3
  43. package/es/line/shaders/line_arc_frag.glsl +1 -1
  44. package/es/line/shaders/line_arc_great_circle_frag.glsl +1 -1
  45. package/es/line/shaders/line_arc_great_circle_vert.glsl +1 -1
  46. package/es/line/shaders/line_arc_vert.glsl +5 -3
  47. package/es/line/shaders/line_bezier_vert.glsl +1 -1
  48. package/es/line/shaders/line_frag.glsl +1 -2
  49. package/es/line/shaders/line_vert.glsl +1 -1
  50. package/es/line/shaders/linear/arc3d_linear_frag.glsl +1 -1
  51. package/es/line/shaders/linear/arc3d_linear_vert.glsl +3 -3
  52. package/es/line/shaders/linear/arc_linear_frag.glsl +1 -1
  53. package/es/line/shaders/tile/line_tile_map_vert.glsl +25 -0
  54. package/es/line/shaders/tile/line_tile_vert.glsl +19 -177
  55. package/es/line/shaders/tile/simpleline_map_vert.glsl +15 -0
  56. package/es/line/shaders/tile/simpleline_vert.glsl +21 -0
  57. package/es/line/shaders/{wall_frag.glsl → wall/wall_frag.glsl} +17 -21
  58. package/es/line/shaders/wall/wall_vert.glsl +77 -0
  59. package/es/mask/index.d.ts +1 -0
  60. package/es/mask/index.js +80 -5
  61. package/es/mask/models/fill.d.ts +2 -1
  62. package/es/mask/models/fill.js +13 -10
  63. package/es/mask/shaders/mask_vert.glsl +0 -6
  64. package/es/plugins/DataMappingPlugin.d.ts +4 -3
  65. package/es/plugins/DataMappingPlugin.js +129 -58
  66. package/es/plugins/DataSourcePlugin.js +3 -2
  67. package/es/plugins/FeatureScalePlugin.d.ts +0 -2
  68. package/es/plugins/FeatureScalePlugin.js +8 -51
  69. package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -2
  70. package/es/plugins/LayerAnimateStylePlugin.js +7 -27
  71. package/es/plugins/LayerModelPlugin.js +2 -6
  72. package/es/plugins/LightingPlugin.js +1 -7
  73. package/es/plugins/MultiPassRendererPlugin.d.ts +0 -1
  74. package/es/plugins/MultiPassRendererPlugin.js +4 -16
  75. package/es/plugins/PixelPickingPlugin.d.ts +1 -1
  76. package/es/plugins/PixelPickingPlugin.js +8 -28
  77. package/es/plugins/RegisterStyleAttributePlugin.d.ts +4 -0
  78. package/es/plugins/RegisterStyleAttributePlugin.js +56 -5
  79. package/es/plugins/UpdateStyleAttributePlugin.js +2 -9
  80. package/es/point/index.js +6 -2
  81. package/es/point/models/fill.js +2 -2
  82. package/es/point/models/fillmage.js +1 -1
  83. package/es/point/models/image.js +1 -1
  84. package/es/point/models/normal.d.ts +0 -1
  85. package/es/point/models/normal.js +9 -60
  86. package/es/point/models/radar.js +4 -69
  87. package/es/point/models/simplePoint.d.ts +0 -1
  88. package/es/point/models/simplePoint.js +2 -11
  89. package/es/point/models/text.js +6 -7
  90. package/es/point/models/tile.d.ts +0 -7
  91. package/es/point/models/tile.js +22 -155
  92. package/es/point/models/tileText.d.ts +0 -4
  93. package/es/point/models/tileText.js +98 -185
  94. package/es/point/shaders/animate/wave_frag.glsl +3 -3
  95. package/es/point/shaders/earth/fill_vert.glsl +0 -1
  96. package/es/point/shaders/fill_vert.glsl +0 -1
  97. package/es/point/shaders/normal_frag.glsl +1 -10
  98. package/es/point/shaders/normal_vert.glsl +5 -60
  99. package/es/point/shaders/radar/radar_frag.glsl +4 -15
  100. package/es/point/shaders/radar/radar_vert.glsl +4 -54
  101. package/es/point/shaders/tile/fill_tile_frag.glsl +10 -17
  102. package/es/point/shaders/tile/fill_tile_vert.glsl +20 -123
  103. package/es/point/shaders/tile/text_frag.glsl +33 -0
  104. package/es/point/shaders/tile/text_map_frag.glsl +31 -0
  105. package/es/point/shaders/tile/text_map_vert.glsl +38 -0
  106. package/es/point/shaders/tile/text_vert.glsl +48 -0
  107. package/es/polygon/index.js +6 -2
  108. package/es/polygon/models/extrude.js +1 -3
  109. package/es/polygon/models/fill.js +3 -4
  110. package/es/polygon/models/ocean.d.ts +0 -2
  111. package/es/polygon/models/ocean.js +13 -47
  112. package/es/polygon/models/tile.d.ts +1 -4
  113. package/es/polygon/models/tile.js +25 -57
  114. package/es/polygon/models/water.d.ts +0 -2
  115. package/es/polygon/models/water.js +13 -47
  116. package/es/polygon/shaders/polygon_frag.glsl +2 -2
  117. package/es/polygon/shaders/polygon_vert.glsl +2 -2
  118. package/es/polygon/shaders/tile/polygon_tile_map_vert.glsl +16 -0
  119. package/es/polygon/shaders/tile/polygon_tile_vert.glsl +20 -60
  120. package/es/polygon/shaders/water/polygon_ocean_frag.glsl +1 -2
  121. package/es/polygon/shaders/water/polygon_ocean_vert.glsl +0 -31
  122. package/es/polygon/shaders/water/polygon_water_frag.glsl +1 -3
  123. package/es/polygon/shaders/water/polygon_water_vert.glsl +0 -29
  124. package/es/raster/buffers/triangulation.js +1 -4
  125. package/es/raster/index.js +6 -2
  126. package/es/raster/models/raster.js +3 -2
  127. package/es/shader/minify_frag.glsl +7 -0
  128. package/es/shader/minify_picking_frag.glsl +10 -0
  129. package/es/tile/manager/baseMapTileLayerManager.d.ts +29 -0
  130. package/es/tile/manager/baseMapTileLayerManager.js +207 -0
  131. package/es/tile/manager/tileLayerManager.d.ts +2 -2
  132. package/es/tile/manager/tileLayerManager.js +2 -2
  133. package/es/tile/manager/tilePickerManager.d.ts +2 -3
  134. package/es/tile/manager/tilePickerManager.js +1 -2
  135. package/es/tile/models/tileModel.d.ts +1 -0
  136. package/es/tile/models/tileModel.js +18 -2
  137. package/es/tile/tileFactory/base.d.ts +1 -1
  138. package/es/tile/tileFactory/base.js +58 -33
  139. package/es/tile/tileFactory/line.js +3 -0
  140. package/es/tile/tileFactory/point.js +3 -0
  141. package/es/tile/tileFactory/polygon.js +3 -0
  142. package/es/tile/tileFactory/raster.js +3 -0
  143. package/es/tile/tileFactory/rasterData.js +3 -0
  144. package/es/tile/tileFactory/rasterDataLayer.js +6 -2
  145. package/es/tile/tileFactory/test.js +26 -5
  146. package/es/tile/tileFactory/vectorLayer.d.ts +4 -1
  147. package/es/tile/tileFactory/vectorLayer.js +110 -7
  148. package/es/tile/tileLayer/baseMapTileLayer.d.ts +29 -0
  149. package/es/tile/tileLayer/baseMapTileLayer.js +188 -0
  150. package/es/tile/tileLayer/baseTileLayer.d.ts +4 -4
  151. package/es/tile/tileLayer/baseTileLayer.js +46 -75
  152. package/es/tile/tileTest.d.ts +1 -0
  153. package/es/tile/tileTest.js +3 -2
  154. package/es/tile/tmsMapTileLayer.d.ts +9 -0
  155. package/es/tile/tmsMapTileLayer.js +119 -0
  156. package/es/tile/tmsTileLayer.d.ts +2 -0
  157. package/es/tile/tmsTileLayer.js +24 -2
  158. package/es/tile/utils.d.ts +4 -0
  159. package/es/tile/utils.js +30 -0
  160. package/es/utils/dataMappingStyle.js +3 -0
  161. package/es/utils/layerData.js +2 -2
  162. package/es/utils/updateShape.js +2 -2
  163. package/es/wind/index.js +6 -2
  164. package/es/wind/models/wind.js +8 -8
  165. package/es/wind/shaders/wind_vert.glsl +1 -1
  166. package/lib/Geometry/index.js +19 -2
  167. package/lib/Geometry/models/billboard.js +1 -2
  168. package/lib/Geometry/models/plane.js +2 -4
  169. package/lib/Geometry/models/sprite.js +2 -4
  170. package/lib/canvas/index.js +37 -2
  171. package/lib/citybuliding/building.js +6 -2
  172. package/lib/citybuliding/models/build.js +2 -3
  173. package/lib/core/BaseLayer.js +86 -94
  174. package/lib/core/BaseModel.js +7 -3
  175. package/lib/core/triangulation.js +66 -2
  176. package/lib/earth/index.js +11 -1
  177. package/lib/earth/models/base.js +2 -4
  178. package/lib/earth/shaders/atmosphere_frag.glsl +1 -1
  179. package/lib/earth/shaders/bloomsphere_frag.glsl +1 -1
  180. package/lib/heatmap/index.js +6 -2
  181. package/lib/heatmap/models/heatmap.js +5 -3
  182. package/lib/image/index.js +6 -2
  183. package/lib/image/models/dataImage.js +4 -7
  184. package/lib/image/models/image.js +4 -7
  185. package/lib/line/index.js +7 -2
  186. package/lib/line/models/arc.js +6 -5
  187. package/lib/line/models/half.js +3 -4
  188. package/lib/line/models/line.js +9 -8
  189. package/lib/line/models/simpleLine.js +2 -1
  190. package/lib/line/models/simpleTileLine.js +115 -0
  191. package/lib/line/models/tile.js +49 -223
  192. package/lib/line/models/wall.js +10 -46
  193. package/lib/line/shaders/dash/arc_dash_vert.glsl +2 -0
  194. package/lib/line/shaders/dash/line_dash_frag.glsl +1 -1
  195. package/lib/line/shaders/line_arc2d_vert.glsl +1 -1
  196. package/lib/line/shaders/line_arc_3d_frag.glsl +1 -1
  197. package/lib/line/shaders/line_arc_3d_vert.glsl +3 -3
  198. package/lib/line/shaders/line_arc_frag.glsl +1 -1
  199. package/lib/line/shaders/line_arc_great_circle_frag.glsl +1 -1
  200. package/lib/line/shaders/line_arc_great_circle_vert.glsl +1 -1
  201. package/lib/line/shaders/line_arc_vert.glsl +5 -3
  202. package/lib/line/shaders/line_bezier_vert.glsl +1 -1
  203. package/lib/line/shaders/line_frag.glsl +1 -2
  204. package/lib/line/shaders/line_vert.glsl +1 -1
  205. package/lib/line/shaders/linear/arc3d_linear_frag.glsl +1 -1
  206. package/lib/line/shaders/linear/arc3d_linear_vert.glsl +3 -3
  207. package/lib/line/shaders/linear/arc_linear_frag.glsl +1 -1
  208. package/lib/line/shaders/tile/line_tile_map_vert.glsl +25 -0
  209. package/lib/line/shaders/tile/line_tile_vert.glsl +19 -177
  210. package/lib/line/shaders/tile/simpleline_map_vert.glsl +15 -0
  211. package/lib/line/shaders/tile/simpleline_vert.glsl +21 -0
  212. package/lib/line/shaders/{wall_frag.glsl → wall/wall_frag.glsl} +17 -21
  213. package/lib/line/shaders/wall/wall_vert.glsl +77 -0
  214. package/lib/mask/index.js +82 -5
  215. package/lib/mask/models/fill.js +14 -10
  216. package/lib/mask/shaders/mask_vert.glsl +0 -6
  217. package/lib/plugins/DataMappingPlugin.js +127 -57
  218. package/lib/plugins/DataSourcePlugin.js +3 -2
  219. package/lib/plugins/FeatureScalePlugin.js +6 -50
  220. package/lib/plugins/LayerAnimateStylePlugin.js +6 -29
  221. package/lib/plugins/LayerModelPlugin.js +2 -6
  222. package/lib/plugins/LightingPlugin.js +1 -7
  223. package/lib/plugins/MultiPassRendererPlugin.js +3 -19
  224. package/lib/plugins/PixelPickingPlugin.js +8 -28
  225. package/lib/plugins/RegisterStyleAttributePlugin.js +56 -5
  226. package/lib/plugins/UpdateStyleAttributePlugin.js +2 -9
  227. package/lib/point/index.js +6 -2
  228. package/lib/point/models/fill.js +2 -2
  229. package/lib/point/models/fillmage.js +1 -1
  230. package/lib/point/models/image.js +1 -1
  231. package/lib/point/models/normal.js +8 -59
  232. package/lib/point/models/radar.js +4 -69
  233. package/lib/point/models/simplePoint.js +1 -10
  234. package/lib/point/models/text.js +6 -7
  235. package/lib/point/models/tile.js +21 -156
  236. package/lib/point/models/tileText.js +97 -184
  237. package/lib/point/shaders/animate/wave_frag.glsl +3 -3
  238. package/lib/point/shaders/earth/fill_vert.glsl +0 -1
  239. package/lib/point/shaders/fill_vert.glsl +0 -1
  240. package/lib/point/shaders/normal_frag.glsl +1 -10
  241. package/lib/point/shaders/normal_vert.glsl +5 -60
  242. package/lib/point/shaders/radar/radar_frag.glsl +4 -15
  243. package/lib/point/shaders/radar/radar_vert.glsl +4 -54
  244. package/lib/point/shaders/tile/fill_tile_frag.glsl +10 -17
  245. package/lib/point/shaders/tile/fill_tile_vert.glsl +20 -123
  246. package/lib/point/shaders/tile/text_frag.glsl +33 -0
  247. package/lib/point/shaders/tile/text_map_frag.glsl +31 -0
  248. package/lib/point/shaders/tile/text_map_vert.glsl +38 -0
  249. package/lib/point/shaders/tile/text_vert.glsl +48 -0
  250. package/lib/polygon/index.js +6 -2
  251. package/lib/polygon/models/extrude.js +1 -3
  252. package/lib/polygon/models/fill.js +3 -4
  253. package/lib/polygon/models/ocean.js +14 -47
  254. package/lib/polygon/models/tile.js +24 -57
  255. package/lib/polygon/models/water.js +14 -47
  256. package/lib/polygon/shaders/polygon_frag.glsl +2 -2
  257. package/lib/polygon/shaders/polygon_vert.glsl +2 -2
  258. package/lib/polygon/shaders/tile/polygon_tile_map_vert.glsl +16 -0
  259. package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +20 -60
  260. package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +1 -2
  261. package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +0 -31
  262. package/lib/polygon/shaders/water/polygon_water_frag.glsl +1 -3
  263. package/lib/polygon/shaders/water/polygon_water_vert.glsl +0 -29
  264. package/lib/raster/buffers/triangulation.js +1 -4
  265. package/lib/raster/index.js +6 -2
  266. package/lib/raster/models/raster.js +3 -2
  267. package/lib/shader/minify_frag.glsl +7 -0
  268. package/lib/shader/minify_picking_frag.glsl +10 -0
  269. package/lib/tile/manager/baseMapTileLayerManager.js +222 -0
  270. package/lib/tile/manager/tileLayerManager.js +2 -2
  271. package/lib/tile/manager/tilePickerManager.js +1 -2
  272. package/lib/tile/models/tileModel.js +19 -2
  273. package/lib/tile/tileFactory/base.js +60 -33
  274. package/lib/tile/tileFactory/line.js +3 -0
  275. package/lib/tile/tileFactory/point.js +3 -0
  276. package/lib/tile/tileFactory/polygon.js +3 -0
  277. package/lib/tile/tileFactory/raster.js +3 -0
  278. package/lib/tile/tileFactory/rasterData.js +3 -0
  279. package/lib/tile/tileFactory/rasterDataLayer.js +6 -2
  280. package/lib/tile/tileFactory/test.js +26 -5
  281. package/lib/tile/tileFactory/vectorLayer.js +112 -8
  282. package/lib/tile/tileLayer/baseMapTileLayer.js +195 -0
  283. package/lib/tile/tileLayer/baseTileLayer.js +46 -75
  284. package/lib/tile/tileTest.js +3 -2
  285. package/lib/tile/tmsMapTileLayer.js +136 -0
  286. package/lib/tile/tmsTileLayer.js +25 -2
  287. package/lib/tile/utils.js +38 -0
  288. package/lib/utils/dataMappingStyle.js +3 -0
  289. package/lib/utils/layerData.js +2 -2
  290. package/lib/utils/updateShape.js +2 -2
  291. package/lib/wind/index.js +6 -2
  292. package/lib/wind/models/wind.js +7 -7
  293. package/lib/wind/shaders/wind_vert.glsl +1 -1
  294. package/package.json +8 -7
  295. package/es/line/shaders/tile/line_tile_frag.glsl +0 -79
  296. package/es/line/shaders/wall_vert.glsl +0 -111
  297. package/es/mask/shaders/mask_frag.glsl +0 -7
  298. package/es/polygon/shaders/tile/polygon_tile_frag.glsl +0 -12
  299. package/lib/line/shaders/tile/line_tile_frag.glsl +0 -79
  300. package/lib/line/shaders/wall_vert.glsl +0 -111
  301. package/lib/mask/shaders/mask_frag.glsl +0 -7
  302. package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +0 -12
@@ -56,6 +56,9 @@ var RasterTile = /*#__PURE__*/function (_TileFactory) {
56
56
  initOptions: initOptions,
57
57
  source: source
58
58
  });
59
+ layer.once('modelLoaded', function () {
60
+ tile.layerLoad();
61
+ });
59
62
  return {
60
63
  layers: [layer],
61
64
  layerIDList: [layer.id]
@@ -81,6 +81,9 @@ var RasterTiffTile = /*#__PURE__*/function (_TileFactory) {
81
81
  });
82
82
  this.emitEvent([layer], false);
83
83
  (0, _utils.registerLayers)(this.parentLayer, [layer]);
84
+ layer.once('modelLoaded', function () {
85
+ tile.layerLoad();
86
+ });
84
87
  return {
85
88
  layers: [layer],
86
89
  layerIDList: [layer.id]
@@ -58,7 +58,9 @@ var RasterTiffLayer = /*#__PURE__*/function (_BaseLayer) {
58
58
  this.layerModel.initModels(function (models) {
59
59
  _this2.models = models;
60
60
 
61
- _this2.renderLayers();
61
+ _this2.emit('modelLoaded', null);
62
+
63
+ _this2.layerService.throttleRenderLayers();
62
64
  });
63
65
  }
64
66
  }, {
@@ -67,7 +69,9 @@ var RasterTiffLayer = /*#__PURE__*/function (_BaseLayer) {
67
69
  var _this3 = this;
68
70
 
69
71
  this.layerModel.buildModels(function (models) {
70
- return _this3.models = models;
72
+ _this3.models = models;
73
+
74
+ _this3.emit('modelLoaded', null);
71
75
  });
72
76
  }
73
77
  }, {
@@ -65,24 +65,45 @@ var TestTile = /*#__PURE__*/function (_TileFactory) {
65
65
 
66
66
  var properties = features[0].properties;
67
67
  var text = new _vectorLayer.default({
68
- layerType: 'PointLayer'
68
+ layerType: 'PointLayer',
69
+ usage: 'basemap'
69
70
  }).source([properties], {
70
71
  parser: {
71
72
  type: 'json',
72
73
  x: 'textLng',
73
- y: 'textLat'
74
+ y: 'textLat',
75
+ cancelExtent: true
74
76
  }
75
- }).shape('key', 'text').size(20).color('#000').style({
77
+ }).shape('key', 'text').style({
78
+ size: 20,
79
+ color: '#000',
76
80
  stroke: '#fff',
77
81
  strokeWidth: 2
78
82
  });
79
83
  var line = new _vectorLayer.default({
80
- layerType: 'LineLayer'
84
+ layerType: 'LineLayer',
85
+ usage: 'basemap'
81
86
  }).source({
82
87
  type: 'FeatureCollection',
83
88
  features: features
84
- }).shape('simple').color('#000');
89
+ }, {
90
+ parser: {
91
+ type: 'geojson',
92
+ cancelExtent: true
93
+ }
94
+ }).shape('simple').style({
95
+ color: '#000'
96
+ }); // Tip: sign tile layer
97
+
98
+ text.isTileLayer = true;
99
+ line.isTileLayer = true;
85
100
  (0, _utils.registerLayers)(this.parentLayer, [line, text]);
101
+ text.once('modelLoaded', function () {
102
+ tile.layerLoad();
103
+ });
104
+ line.once('modelLoaded', function () {
105
+ tile.layerLoad();
106
+ });
86
107
  return {
87
108
  layers: [line, text],
88
109
  layerIDList: [line.id, text.id]
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -21,11 +23,13 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
21
23
 
22
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
25
 
26
+ var _l7Core = require("@antv/l7-core");
27
+
24
28
  var _BaseLayer2 = _interopRequireDefault(require("../../core/BaseLayer"));
25
29
 
26
30
  var _tile = _interopRequireDefault(require("../../line/models/tile"));
27
31
 
28
- var _simpleLine = _interopRequireDefault(require("../../line/models/simpleLine"));
32
+ var _simpleTileLine = _interopRequireDefault(require("../../line/models/simpleTileLine"));
29
33
 
30
34
  var _tileText = _interopRequireDefault(require("../../point/models/tileText"));
31
35
 
@@ -33,6 +37,12 @@ var _tile2 = _interopRequireDefault(require("../../point/models/tile"));
33
37
 
34
38
  var _tile3 = _interopRequireDefault(require("../../polygon/models/tile"));
35
39
 
40
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
41
+
42
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
43
+
44
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
45
+
36
46
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
47
 
38
48
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -53,12 +63,102 @@ var VectorLayer = /*#__PURE__*/function (_BaseLayer) {
53
63
 
54
64
  _this = _super.call.apply(_super, [this].concat(args));
55
65
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isVector", true);
56
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", _this.layerType);
66
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", _this.layerType || 'vectorLayer');
57
67
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "pickedID", null);
68
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sourceEvent", function () {
69
+ // Tip: vector 不支持 autoFit
70
+ _this.dataState.dataSourceNeedUpdate = true;
71
+
72
+ _this.reRender();
73
+ });
58
74
  return _this;
59
75
  }
60
76
 
61
77
  (0, _createClass2.default)(VectorLayer, [{
78
+ key: "init",
79
+ value: function init() {
80
+ var _this2 = this;
81
+
82
+ // 设置配置项
83
+ var sceneId = this.container.get(_l7Core.TYPES.SceneID);
84
+ this.configService.setLayerConfig(sceneId, this.id, this.rawConfig);
85
+ this.layerType = this.rawConfig.layerType;
86
+
87
+ if (this.type === 'PointLayer') {
88
+ // Tip: iconService 和 fontService 只有在矢量点图层中才会被使用
89
+ this.iconService = this.container.get(_l7Core.TYPES.IIconService);
90
+ this.fontService = this.container.get(_l7Core.TYPES.IFontService);
91
+ }
92
+
93
+ this.rendererService = this.container.get(_l7Core.TYPES.IRendererService);
94
+ this.layerService = this.container.get(_l7Core.TYPES.ILayerService);
95
+ this.mapService = this.container.get(_l7Core.TYPES.IMapService);
96
+ this.cameraService = this.container.get(_l7Core.TYPES.ICameraService);
97
+ this.coordinateService = this.container.get(_l7Core.TYPES.ICoordinateSystemService);
98
+ this.shaderModuleService = this.container.get(_l7Core.TYPES.IShaderModuleService);
99
+ this.postProcessingPassFactory = this.container.get(_l7Core.TYPES.IFactoryPostProcessingPass);
100
+ this.normalPassFactory = this.container.get(_l7Core.TYPES.IFactoryNormalPass); // 图层容器服务
101
+
102
+ this.styleAttributeService = this.container.get(_l7Core.TYPES.IStyleAttributeService); // 完成样式服务注册完成前添加的属性
103
+
104
+ this.pendingStyleAttributes.forEach(function (_ref) {
105
+ var attributeName = _ref.attributeName,
106
+ attributeField = _ref.attributeField,
107
+ attributeValues = _ref.attributeValues,
108
+ updateOptions = _ref.updateOptions;
109
+
110
+ _this2.styleAttributeService.updateStyleAttribute(attributeName, {
111
+ // @ts-ignore
112
+ scale: (0, _objectSpread2.default)({
113
+ field: attributeField
114
+ }, _this2.splitValuesAndCallbackInAttribute( // @ts-ignore
115
+ attributeValues, // @ts-ignore
116
+ _this2.getLayerConfig()[attributeName]))
117
+ }, // @ts-ignore
118
+ updateOptions);
119
+ });
120
+ this.pendingStyleAttributes = []; // 获取插件集
121
+
122
+ this.plugins = this.container.getAll(_l7Core.TYPES.ILayerPlugin); // 完成插件注册,传入场景和图层容器内的服务
123
+
124
+ var _iterator = _createForOfIteratorHelper(this.plugins),
125
+ _step;
126
+
127
+ try {
128
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
129
+ var plugin = _step.value;
130
+ plugin.apply(this, {
131
+ rendererService: this.rendererService,
132
+ mapService: this.mapService,
133
+ styleAttributeService: this.styleAttributeService,
134
+ normalPassFactory: this.normalPassFactory,
135
+ postProcessingPassFactory: this.postProcessingPassFactory
136
+ });
137
+ } // 触发 init 生命周期插件
138
+
139
+ } catch (err) {
140
+ _iterator.e(err);
141
+ } finally {
142
+ _iterator.f();
143
+ }
144
+
145
+ this.hooks.init.call();
146
+ this.hooks.afterInit.call();
147
+ return this;
148
+ }
149
+ }, {
150
+ key: "renderModels",
151
+ value: function renderModels(isPicking) {
152
+ var _this3 = this;
153
+
154
+ this.models.forEach(function (model) {
155
+ model.draw({
156
+ uniforms: _this3.layerModel.getUninforms()
157
+ }, isPicking);
158
+ });
159
+ return this;
160
+ }
161
+ }, {
62
162
  key: "getPickID",
63
163
  value: function getPickID() {
64
164
  return this.pickedID;
@@ -71,23 +171,27 @@ var VectorLayer = /*#__PURE__*/function (_BaseLayer) {
71
171
  }, {
72
172
  key: "buildModels",
73
173
  value: function buildModels() {
74
- var _this2 = this;
174
+ var _this4 = this;
75
175
 
76
176
  var model = this.getModelType();
77
177
  this.layerModel = new model(this);
78
178
  this.layerModel.initModels(function (models) {
79
- _this2.models = models;
179
+ _this4.models = models;
80
180
 
81
- _this2.renderLayers();
181
+ _this4.emit('modelLoaded', null);
182
+
183
+ _this4.layerService.throttleRenderLayers();
82
184
  });
83
185
  }
84
186
  }, {
85
187
  key: "rebuildModels",
86
188
  value: function rebuildModels() {
87
- var _this3 = this;
189
+ var _this5 = this;
88
190
 
89
191
  this.layerModel.buildModels(function (models) {
90
- return _this3.models = models;
192
+ _this5.models = models;
193
+
194
+ _this5.emit('modelLoaded', null);
91
195
  });
92
196
  }
93
197
  }, {
@@ -121,7 +225,7 @@ var VectorLayer = /*#__PURE__*/function (_BaseLayer) {
121
225
  return _tile.default;
122
226
 
123
227
  case 'simple':
124
- return _simpleLine.default;
228
+ return _simpleTileLine.default;
125
229
 
126
230
  default:
127
231
  return _tile.default;
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _baseMapTileLayerManager = require("../manager/baseMapTileLayerManager");
17
+
18
+ var _lodash = require("lodash");
19
+
20
+ var BaseTileLayer = /*#__PURE__*/function () {
21
+ function BaseTileLayer(_ref) {
22
+ var _parentSource$data;
23
+
24
+ var parent = _ref.parent,
25
+ rendererService = _ref.rendererService,
26
+ mapService = _ref.mapService,
27
+ layerService = _ref.layerService;
28
+ (0, _classCallCheck2.default)(this, BaseTileLayer);
29
+ (0, _defineProperty2.default)(this, "type", 'baseTile');
30
+ (0, _defineProperty2.default)(this, "initedTileset", false);
31
+ (0, _defineProperty2.default)(this, "viewchange", (0, _lodash.debounce)(this.mapchange, 200));
32
+ var parentSource = parent.getSource();
33
+
34
+ var _ref2 = (parentSource === null || parentSource === void 0 ? void 0 : (_parentSource$data = parentSource.data) === null || _parentSource$data === void 0 ? void 0 : _parentSource$data.tilesetOptions) || {},
35
+ sourceLayer = _ref2.sourceLayer;
36
+
37
+ this.sourceLayer = sourceLayer;
38
+ this.parent = parent;
39
+ this.mapService = mapService;
40
+ this.layerService = layerService;
41
+ this.tileLayerManager = new _baseMapTileLayerManager.BaseMapTileLayerManager(parent, mapService, rendererService);
42
+ this.initTileSetManager();
43
+ }
44
+ /**
45
+ * 渲染瓦片的图层
46
+ */
47
+
48
+
49
+ (0, _createClass2.default)(BaseTileLayer, [{
50
+ key: "children",
51
+ get: function get() {
52
+ return this.tileLayerManager.children;
53
+ }
54
+ }, {
55
+ key: "render",
56
+ value: function render() {
57
+ if (this.tileLayerManager) {
58
+ this.tileLayerManager.render();
59
+ }
60
+ } // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+
62
+ }, {
63
+ key: "tileLoaded",
64
+ value: function tileLoaded(tile) {//
65
+ }
66
+ }, {
67
+ key: "tileError",
68
+ value: function tileError(error) {
69
+ console.warn('error:', error);
70
+ }
71
+ }, {
72
+ key: "tileUnLoad",
73
+ value: function tileUnLoad(tile) {
74
+ this.tileLayerManager.removeChilds(tile.layerIDList, false);
75
+ }
76
+ }, {
77
+ key: "tileUpdate",
78
+ value: function tileUpdate() {
79
+ // Base Function
80
+ if (!this.tilesetManager) {
81
+ return;
82
+ }
83
+
84
+ if (this.tilesetManager.isLoaded) {
85
+ // 将事件抛出,图层上可以使用瓦片
86
+ this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);
87
+ }
88
+ }
89
+ }, {
90
+ key: "initTileSetManager",
91
+ value: function initTileSetManager() {
92
+ var _this$tilesetManager;
93
+
94
+ var source = this.parent.getSource();
95
+ this.tilesetManager = source.tileset;
96
+
97
+ if (!this.initedTileset) {
98
+ this.bindTilesetEvent();
99
+ this.initedTileset = true;
100
+ }
101
+
102
+ var _this$getCurrentView = this.getCurrentView(),
103
+ latLonBounds = _this$getCurrentView.latLonBounds,
104
+ zoom = _this$getCurrentView.zoom;
105
+
106
+ (_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
107
+ }
108
+ }, {
109
+ key: "mapchange",
110
+ value: function mapchange() {
111
+ var _this$tilesetManager2;
112
+
113
+ var _this$getCurrentView2 = this.getCurrentView(),
114
+ latLonBounds = _this$getCurrentView2.latLonBounds,
115
+ zoom = _this$getCurrentView2.zoom;
116
+
117
+ if (this.mapService.version === 'GAODE1.x') {
118
+ var _this$parent$getLayer = this.parent.getLayerConfig(),
119
+ visible = _this$parent$getLayer.visible;
120
+
121
+ if (zoom < 3 && visible) {
122
+ this.parent.updateLayerConfig({
123
+ visible: false
124
+ });
125
+ this.layerService.reRender();
126
+ } else if (zoom >= 3 && !visible) {
127
+ this.parent.updateLayerConfig({
128
+ visible: true
129
+ });
130
+ this.layerService.reRender();
131
+ }
132
+ }
133
+
134
+ if (this.lastViewStates && this.lastViewStates.zoom === zoom && this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
135
+ return;
136
+ }
137
+
138
+ this.lastViewStates = {
139
+ zoom: zoom,
140
+ latLonBounds: latLonBounds
141
+ };
142
+ (_this$tilesetManager2 = this.tilesetManager) === null || _this$tilesetManager2 === void 0 ? void 0 : _this$tilesetManager2.update(zoom, latLonBounds);
143
+ }
144
+ }, {
145
+ key: "bindTilesetEvent",
146
+ value: function bindTilesetEvent() {
147
+ var _this = this;
148
+
149
+ if (!this.tilesetManager) {
150
+ return;
151
+ } // 瓦片数据加载成功
152
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
153
+
154
+
155
+ this.tilesetManager.on('tile-loaded', function (tile) {// 将事件抛出,图层上可以监听使用
156
+ }); // 瓦片数据从缓存删除或被执行重新加载
157
+
158
+ this.tilesetManager.on('tile-unload', function (tile) {
159
+ // 将事件抛出,图层上可以监听使用
160
+ _this.tileUnLoad(tile);
161
+ }); // 瓦片数据加载失败
162
+
163
+ this.tilesetManager.on('tile-error', function (error, tile) {
164
+ // 将事件抛出,图层上可以监听使用
165
+ _this.tileError(error);
166
+ }); // 瓦片显隐状态更新
167
+
168
+ this.tilesetManager.on('tile-update', function () {
169
+ _this.tileUpdate();
170
+ }); // 地图视野发生改变
171
+
172
+ this.mapService.on('zoomend', function () {
173
+ return _this.viewchange();
174
+ });
175
+ this.mapService.on('moveend', function () {
176
+ return _this.viewchange();
177
+ });
178
+ } // 防抖操作
179
+
180
+ }, {
181
+ key: "getCurrentView",
182
+ value: function getCurrentView() {
183
+ var bounds = this.mapService.getBounds();
184
+ var latLonBounds = [bounds[0][0], bounds[0][1], bounds[1][0], bounds[1][1]];
185
+ var zoom = this.mapService.getZoom();
186
+ return {
187
+ latLonBounds: latLonBounds,
188
+ zoom: zoom
189
+ };
190
+ }
191
+ }]);
192
+ return BaseTileLayer;
193
+ }();
194
+
195
+ exports.default = BaseTileLayer;