@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
@@ -12,6 +12,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
12
12
  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; } }
13
13
 
14
14
  import BaseTileLayer from "./tileLayer/baseTileLayer";
15
+ import { tileAllLoad } from "./utils";
15
16
  export var TMSTileLayer = /*#__PURE__*/function (_BaseTileLayer) {
16
17
  _inherits(TMSTileLayer, _BaseTileLayer);
17
18
 
@@ -83,18 +84,39 @@ export var TMSTileLayer = /*#__PURE__*/function (_BaseTileLayer) {
83
84
 
84
85
  var _layers = _this2.tileLayerManager.getChilds(tile.layerIDList);
85
86
 
86
- _this2.tileLayerManager.updateLayersConfig(_layers, 'visible', tile.isVisible);
87
+ _this2.updateTileVisible(tile, _layers);
87
88
 
88
89
  _this2.setPickState(_layers);
89
90
  }
90
91
  });
91
- this.parent.renderLayers();
92
92
 
93
93
  if (this.tilesetManager.isLoaded) {
94
94
  // 将事件抛出,图层上可以使用瓦片
95
95
  this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);
96
96
  }
97
97
  }
98
+ }, {
99
+ key: "emitTileVisibleEvent",
100
+ value: function emitTileVisibleEvent(tile, callback) {
101
+ if (tile.isVisible) {
102
+ callback();
103
+ } else {
104
+ tileAllLoad(tile, function () {
105
+ callback();
106
+ });
107
+ }
108
+ }
109
+ }, {
110
+ key: "updateTileVisible",
111
+ value: function updateTileVisible(tile, layers) {
112
+ var _this3 = this;
113
+
114
+ this.emitTileVisibleEvent(tile, function () {
115
+ _this3.tileLayerManager.updateLayersConfig(layers, 'visible', tile.isVisible);
116
+
117
+ _this3.layerService.reRender();
118
+ });
119
+ }
98
120
  }]);
99
121
 
100
122
  return TMSTileLayer;
@@ -11,3 +11,7 @@ export declare function getContainerSize(container: HTMLCanvasElement | HTMLElem
11
11
  };
12
12
  export declare function readRasterValue(tile: Tile, mapService: IMapService, x: number, y: number): any;
13
13
  export declare function readPixel(x: number, y: number, rendererService: IRendererService): false | Uint8Array;
14
+ export declare function isTileLoaded(tile: Tile): boolean;
15
+ export declare function isTileChildLoaded(tile: Tile): boolean;
16
+ export declare function isTileParentLoaded(tile: Tile): boolean;
17
+ export declare function tileAllLoad(tile: Tile, callback: () => void): void;
package/es/tile/utils.js CHANGED
@@ -128,4 +128,34 @@ export function readPixel(x, y, rendererService) {
128
128
  data: new Uint8Array(1 * 1 * 4)
129
129
  });
130
130
  return pickedColors;
131
+ }
132
+ export function isTileLoaded(tile) {
133
+ return tile.layerIDList.length === tile.loadedLayers;
134
+ }
135
+ export function isTileChildLoaded(tile) {
136
+ var childs = tile.children;
137
+ return childs.filter(function (child) {
138
+ return isTileLoaded(child);
139
+ }).length === childs.length;
140
+ }
141
+ export function isTileParentLoaded(tile) {
142
+ var parent = tile.parent;
143
+
144
+ if (!parent) {
145
+ return true;
146
+ } else {
147
+ return isTileLoaded(parent);
148
+ }
149
+ }
150
+ export function tileAllLoad(tile, callback) {
151
+ var timer = window.setInterval(function () {
152
+ var tileLoaded = isTileLoaded(tile);
153
+ var tileChildLoaded = isTileChildLoaded(tile);
154
+ var tileParentLoaded = isTileParentLoaded(tile);
155
+
156
+ if (tileLoaded && tileChildLoaded && tileParentLoaded) {
157
+ callback();
158
+ window.clearInterval(timer);
159
+ }
160
+ }, 36);
131
161
  }
@@ -23,6 +23,9 @@ function registerStyleAttribute(fieldName, layer, field, values, updateOptions)
23
23
 
24
24
 
25
25
  function handleStyleDataMapping(configToUpdate, layer) {
26
+ // 瓦片图层不需要进行样式数据映射
27
+ if (layer.tileLayer || layer.isTileLayer) return;
28
+
26
29
  if (configToUpdate.opacity) {
27
30
  // 处理 style 中 opacity 属性的数据映射
28
31
  handleStyleFloat('opacity', layer, configToUpdate.opacity);
@@ -17,7 +17,7 @@ function adjustData2Amap2Coordinates(mappedData, mapService) {
17
17
  if (typeof mappedData[0].coordinates[0] === 'number') {
18
18
  // 单个的点数据
19
19
  // @ts-ignore
20
- mappedData // TODO: 避免经纬度被重复计算导致坐标位置偏移
20
+ mappedData // 避免经纬度被重复计算导致坐标位置偏移
21
21
  .filter(function (d) {
22
22
  return !d.originCoordinates;
23
23
  }).map(function (d) {
@@ -31,7 +31,7 @@ function adjustData2Amap2Coordinates(mappedData, mapService) {
31
31
  } else {
32
32
  // 连续的线、面数据
33
33
  // @ts-ignore
34
- mappedData // TODO: 避免经纬度被重复计算导致坐标位置偏移
34
+ mappedData // 避免经纬度被重复计算导致坐标位置偏移
35
35
  .filter(function (d) {
36
36
  return !d.originCoordinates;
37
37
  }).map(function (d) {
@@ -1,4 +1,4 @@
1
- // TODO: shapeUpdateList 存储一系列的 shape 类型
1
+ // shapeUpdateList 存储一系列的 shape 类型
2
2
  // 当这一系列的 shape 相互切换的时候需要重构 layer 的 model (顶点数据集)
3
3
  var shapeUpdateList = [// PointLayer
4
4
  ['circle', 'cylinder'], ['square', 'cylinder'], ['triangle', 'cylinder'], ['pentagon', 'cylinder'], ['hexagon', 'cylinder'], ['octogon', 'cylinder'], ['hexagram', 'cylinder'], ['rhombus', 'cylinder'], ['vesica', 'cylinder']];
@@ -11,7 +11,7 @@ export function updateShape(layer, lastShape, currentShape) {
11
11
 
12
12
  shapeUpdateList.map(function (shapes) {
13
13
  if (shapes.includes(lastShape) && shapes.includes(currentShape)) {
14
- // TODO: dataSourceNeedUpdate 借用数据更新时更新 layer model 的工作流
14
+ // dataSourceNeedUpdate 借用数据更新时更新 layer model 的工作流
15
15
  layer.dataState.dataSourceNeedUpdate = true;
16
16
  return;
17
17
  }
package/es/wind/index.js CHANGED
@@ -44,7 +44,9 @@ var WindLayer = /*#__PURE__*/function (_BaseLayer) {
44
44
  this.layerModel.initModels(function (models) {
45
45
  _this2.models = models;
46
46
 
47
- _this2.renderLayers();
47
+ _this2.emit('modelLoaded', null);
48
+
49
+ _this2.layerService.throttleRenderLayers();
48
50
  });
49
51
  }
50
52
  }, {
@@ -53,7 +55,9 @@ var WindLayer = /*#__PURE__*/function (_BaseLayer) {
53
55
  var _this3 = this;
54
56
 
55
57
  this.layerModel.buildModels(function (models) {
56
- return _this3.models = models;
58
+ _this3.models = models;
59
+
60
+ _this3.emit('modelLoaded', null);
57
61
  });
58
62
  }
59
63
  }, {
@@ -11,7 +11,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
11
11
  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; } }
12
12
 
13
13
  import { AttributeType, gl } from '@antv/l7-core';
14
- import { FrequencyController } from '@antv/l7-utils';
14
+ import { FrequencyController, getMask } from '@antv/l7-utils';
15
15
  import BaseModel from "../../core/BaseModel";
16
16
  import { RasterImageTriangulation } from "../../core/triangulation";
17
17
 
@@ -19,7 +19,7 @@ import { RasterImageTriangulation } from "../../core/triangulation";
19
19
  var WindFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nvarying vec2 v_texCoord;\nvoid main() {\n vec4 color = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y));\n gl_FragColor = color;\n gl_FragColor.a *= u_opacity;\n}\n";
20
20
 
21
21
  /* babel-plugin-inline-import '../shaders/wind_vert.glsl' */
22
- var WindVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n }\n}\n";
22
+ var WindVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n \n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n }\n}\n";
23
23
  import { Wind } from "./windRender";
24
24
  var defaultRampColors = {
25
25
  0.0: '#3288bd',
@@ -149,9 +149,7 @@ var WindModel = /*#__PURE__*/function (_BaseModel) {
149
149
  height: imageHeight
150
150
  });
151
151
 
152
- _this3.layerService.updateLayerRenderList();
153
-
154
- _this3.layerService.renderLayers();
152
+ _this3.layerService.reRender();
155
153
  });
156
154
  this.layer.buildLayerModel({
157
155
  moduleName: 'wind',
@@ -162,7 +160,9 @@ var WindModel = /*#__PURE__*/function (_BaseModel) {
162
160
  depth: {
163
161
  enable: false
164
162
  },
165
- blend: this.getBlend()
163
+ stencil: getMask(mask, maskInside),
164
+ blend: this.getBlend(),
165
+ pick: false
166
166
  }).then(function (model) {
167
167
  _this3.colorModel = model;
168
168
  callbackModel([model]);
@@ -225,7 +225,7 @@ var WindModel = /*#__PURE__*/function (_BaseModel) {
225
225
  type: gl.FLOAT
226
226
  },
227
227
  size: 2,
228
- update: function update(feature, featureIdx, vertex, attributeIdx) {
228
+ update: function update(feature, featureIdx, vertex) {
229
229
  return [vertex[3], vertex[4]];
230
230
  }
231
231
  }
@@ -291,7 +291,7 @@ var WindModel = /*#__PURE__*/function (_BaseModel) {
291
291
  var _this$wind$draw = this.wind.draw(),
292
292
  d = _this$wind$draw.d,
293
293
  w = _this$wind$draw.w,
294
- h = _this$wind$draw.h; // TODO: 恢复 L7 渲染流程中 gl 状态
294
+ h = _this$wind$draw.h; // 恢复 L7 渲染流程中 gl 状态
295
295
 
296
296
 
297
297
  this.rendererService.setBaseState();
@@ -8,7 +8,7 @@ varying vec2 v_texCoord;
8
8
  void main() {
9
9
  v_texCoord = a_Uv;
10
10
  vec4 project_pos = project_position(vec4(a_Position, 1.0));
11
- // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));
11
+
12
12
  if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
13
13
  gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));
14
14
  } else {
@@ -45,6 +45,19 @@ var GeometryLayer = /*#__PURE__*/function (_BaseLayer) {
45
45
 
46
46
  _this = _super.call.apply(_super, [this].concat(args));
47
47
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", 'GeometryLayer');
48
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "defaultSourceConfig", {
49
+ data: [{
50
+ x: 0,
51
+ y: 0
52
+ }],
53
+ options: {
54
+ parser: {
55
+ type: 'json',
56
+ x: 'x',
57
+ y: 'y'
58
+ }
59
+ }
60
+ });
48
61
  return _this;
49
62
  }
50
63
 
@@ -58,7 +71,9 @@ var GeometryLayer = /*#__PURE__*/function (_BaseLayer) {
58
71
  this.layerModel.initModels(function (models) {
59
72
  _this2.models = models;
60
73
 
61
- _this2.renderLayers();
74
+ _this2.emit('modelLoaded', null);
75
+
76
+ _this2.layerService.throttleRenderLayers();
62
77
  });
63
78
  }
64
79
  }, {
@@ -67,7 +82,9 @@ var GeometryLayer = /*#__PURE__*/function (_BaseLayer) {
67
82
  var _this3 = this;
68
83
 
69
84
  this.layerModel.buildModels(function (models) {
70
- return _this3.models = models;
85
+ _this3.models = models;
86
+
87
+ _this3.emit('modelLoaded', null);
71
88
  });
72
89
  }
73
90
  }, {
@@ -181,8 +181,7 @@ var BillBoardModel = /*#__PURE__*/function (_BaseModel) {
181
181
  wrapS: _l7Core.gl.CLAMP_TO_EDGE,
182
182
  wrapT: _l7Core.gl.CLAMP_TO_EDGE
183
183
  });
184
- this.layerService.updateLayerRenderList();
185
- this.layerService.renderLayers();
184
+ this.layerService.reRender();
186
185
  }
187
186
  }
188
187
  }, {
@@ -281,9 +281,7 @@ var PlaneModel = /*#__PURE__*/function (_BaseModel) {
281
281
  wrapT: _l7Core.gl.CLAMP_TO_EDGE
282
282
  });
283
283
 
284
- _this3.layerService.updateLayerRenderList();
285
-
286
- _this3.layerService.renderLayers();
284
+ _this3.layerService.reRender();
287
285
  };
288
286
 
289
287
  img.src = mapTexture;
@@ -344,7 +342,7 @@ var PlaneModel = /*#__PURE__*/function (_BaseModel) {
344
342
  };
345
343
  });
346
344
  this.layer.updateModelData(modelData);
347
- this.layerService.renderLayers();
345
+ this.layerService.throttleRenderLayers();
348
346
  }
349
347
  /**
350
348
  * load terrain texture & offset attribute z
@@ -104,7 +104,7 @@ var SpriteModel = /*#__PURE__*/function (_BaseModel) {
104
104
  m.updateAttributes(attributes);
105
105
  });
106
106
 
107
- _this.layer.renderLayers();
107
+ _this.layerService.throttleRenderLayers();
108
108
 
109
109
  _this.timer = requestAnimationFrame(_this.updateModel);
110
110
  });
@@ -280,9 +280,7 @@ var SpriteModel = /*#__PURE__*/function (_BaseModel) {
280
280
  wrapT: _l7Core.gl.CLAMP_TO_EDGE
281
281
  });
282
282
 
283
- _this4.layerService.updateLayerRenderList();
284
-
285
- _this4.layerService.renderLayers();
283
+ _this4.layerService.reRender();
286
284
  };
287
285
 
288
286
  img.src = mapTexture;
@@ -45,6 +45,7 @@ var CanvasLayer = /*#__PURE__*/function (_BaseLayer) {
45
45
 
46
46
  _this = _super.call.apply(_super, [this].concat(args));
47
47
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", 'CanvasLayer');
48
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "forceRender", true);
48
49
  return _this;
49
50
  }
50
51
 
@@ -58,7 +59,9 @@ var CanvasLayer = /*#__PURE__*/function (_BaseLayer) {
58
59
  this.layerModel.initModels(function (models) {
59
60
  _this2.models = models;
60
61
 
61
- _this2.renderLayers();
62
+ _this2.emit('modelLoaded', null);
63
+
64
+ _this2.layerService.throttleRenderLayers();
62
65
  });
63
66
  }
64
67
  }, {
@@ -67,8 +70,40 @@ var CanvasLayer = /*#__PURE__*/function (_BaseLayer) {
67
70
  var _this3 = this;
68
71
 
69
72
  this.layerModel.buildModels(function (models) {
70
- return _this3.models = models;
73
+ _this3.models = models;
74
+
75
+ _this3.emit('modelLoaded', null);
76
+ });
77
+ }
78
+ }, {
79
+ key: "hide",
80
+ value: function hide() {
81
+ var _this$layerModel;
82
+
83
+ // 清除画布
84
+ this.layerModel.clearCanvas && ((_this$layerModel = this.layerModel) === null || _this$layerModel === void 0 ? void 0 : _this$layerModel.clearCanvas());
85
+ this.updateLayerConfig({
86
+ visible: false
87
+ });
88
+ this.reRender();
89
+ return this;
90
+ }
91
+ }, {
92
+ key: "renderModels",
93
+ value: function renderModels() {
94
+ var _this$layerModel2,
95
+ _this4 = this;
96
+
97
+ if (this !== null && this !== void 0 && (_this$layerModel2 = this.layerModel) !== null && _this$layerModel2 !== void 0 && _this$layerModel2.renderUpdate) {
98
+ this.layerModel.renderUpdate();
99
+ }
100
+
101
+ this.models.forEach(function (model) {
102
+ model.draw({
103
+ uniforms: _this4.layerModel.getUninforms()
104
+ }, false);
71
105
  });
106
+ return this;
72
107
  }
73
108
  }, {
74
109
  key: "getConfigSchema",
@@ -57,7 +57,9 @@ var CityBuildingLayer = /*#__PURE__*/function (_BaseLayer) {
57
57
  this.layerModel.initModels(function (models) {
58
58
  _this2.models = models;
59
59
 
60
- _this2.renderLayers();
60
+ _this2.emit('modelLoaded', null);
61
+
62
+ _this2.layerService.throttleRenderLayers();
61
63
  });
62
64
  }
63
65
  }, {
@@ -66,7 +68,9 @@ var CityBuildingLayer = /*#__PURE__*/function (_BaseLayer) {
66
68
  var _this3 = this;
67
69
 
68
70
  this.layerModel.buildModels(function (models) {
69
- return _this3.models = models;
71
+ _this3.models = models;
72
+
73
+ _this3.emit('modelLoaded', null);
70
74
  });
71
75
  }
72
76
  }, {
@@ -170,7 +170,7 @@ var CityBuildModel = /*#__PURE__*/function (_BaseModel) {
170
170
  type: _l7Core.gl.FLOAT
171
171
  },
172
172
  size: 1,
173
- update: function update(feature, featureIdx, vertex, attributeIdx) {
173
+ update: function update(feature) {
174
174
  var _feature$size = feature.size,
175
175
  size = _feature$size === void 0 ? 10 : _feature$size;
176
176
  return Array.isArray(size) ? [size[0]] : [size];
@@ -189,8 +189,7 @@ var CityBuildModel = /*#__PURE__*/function (_BaseModel) {
189
189
  type: _l7Core.gl.FLOAT
190
190
  },
191
191
  size: 2,
192
- update: function update(feature, featureIdx, vertex, attributeIdx) {
193
- var size = feature.size;
192
+ update: function update(feature, featureIdx, vertex) {
194
193
  return [vertex[3], vertex[4]];
195
194
  }
196
195
  }