@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
@@ -10,7 +10,14 @@ import { getLayerShape, readRasterValue, registerLayers } from "../utils";
10
10
  import VectorLayer from "./vectorLayer";
11
11
  import * as turf from '@turf/helpers';
12
12
  import union from '@turf/union';
13
+ import clone from '@turf/clone';
13
14
  import polygonToLineString from '@turf/polygon-to-line';
15
+ var EMPTY_FEATURE_DATA = {
16
+ features: [],
17
+ featureId: null,
18
+ vectorTileLayer: null,
19
+ source: null
20
+ };
14
21
 
15
22
  var TileFactory = /*#__PURE__*/function () {
16
23
  // 用于记录图层内事件,辅助判断图层外事件逻辑
@@ -33,7 +40,8 @@ var TileFactory = /*#__PURE__*/function () {
33
40
  var source = this.parentLayer.getSource();
34
41
  this.zoomOffset = source.parser.zoomOffset || 0;
35
42
  this.tilesetManager = source.tileset;
36
- }
43
+ } // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
+
37
45
 
38
46
  _createClass(TileFactory, [{
39
47
  key: "createTile",
@@ -46,44 +54,41 @@ var TileFactory = /*#__PURE__*/function () {
46
54
  }, {
47
55
  key: "getFeatureData",
48
56
  value: function getFeatureData(tile, initOptions) {
49
- var emptyData = {
50
- features: [],
51
- featureId: null,
52
- vectorTileLayer: null,
53
- source: null
54
- };
55
57
  var sourceLayer = initOptions.sourceLayer,
56
58
  featureId = initOptions.featureId,
57
- transforms = initOptions.transforms,
59
+ _initOptions$transfor = initOptions.transforms,
60
+ transforms = _initOptions$transfor === void 0 ? [] : _initOptions$transfor,
58
61
  layerType = initOptions.layerType,
59
62
  shape = initOptions.shape;
60
63
 
61
64
  if (!sourceLayer) {
62
- return emptyData;
65
+ return EMPTY_FEATURE_DATA;
63
66
  }
64
67
 
65
68
  var vectorTileLayer = tile.data.layers[sourceLayer];
66
69
  var features = vectorTileLayer === null || vectorTileLayer === void 0 ? void 0 : vectorTileLayer.features;
67
70
 
68
71
  if (!(Array.isArray(features) && features.length > 0)) {
69
- return emptyData;
72
+ return EMPTY_FEATURE_DATA;
70
73
  } else {
71
74
  var geofeatures = [];
72
75
 
73
76
  if (layerType === 'LineLayer' && shape === 'simple') {
74
77
  features.map(function (feature) {
75
- if (feature.geometry.type === 'MultiPolygon') {
78
+ var cloneFeature = clone(feature);
79
+
80
+ if (cloneFeature.geometry.type === 'MultiPolygon') {
76
81
  var _geofeatures;
77
82
 
78
83
  // @ts-ignore
79
- var linefeatures = polygonToLineString(feature).features;
84
+ var linefeatures = polygonToLineString(cloneFeature).features;
80
85
 
81
86
  (_geofeatures = geofeatures).push.apply(_geofeatures, _toConsumableArray(linefeatures));
82
- } else if (feature.geometry.type === 'Polygon') {
83
- feature.geometry.type = 'MultiLineString';
84
- geofeatures.push(feature);
87
+ } else if (cloneFeature.geometry.type === 'Polygon') {
88
+ cloneFeature.geometry.type = 'MultiLineString';
89
+ geofeatures.push(cloneFeature);
85
90
  } else {
86
- geofeatures.push(feature);
91
+ geofeatures.push(cloneFeature);
87
92
  }
88
93
  });
89
94
  } else {
@@ -96,7 +101,8 @@ var TileFactory = /*#__PURE__*/function () {
96
101
  }, {
97
102
  parser: {
98
103
  type: 'geojson',
99
- featureId: featureId
104
+ featureId: featureId,
105
+ cancelExtent: true
100
106
  },
101
107
  transforms: transforms
102
108
  });
@@ -120,28 +126,43 @@ var TileFactory = /*#__PURE__*/function () {
120
126
  color = initOptions.color,
121
127
  layerType = initOptions.layerType,
122
128
  size = initOptions.size,
123
- shape = initOptions.shape;
129
+ shape = initOptions.shape,
130
+ usage = initOptions.usage,
131
+ basemapColor = initOptions.basemapColor,
132
+ basemapSize = initOptions.basemapSize;
124
133
  var FactoryTileLayer = L7Layer ? L7Layer : VectorLayer;
125
134
  var layer = new FactoryTileLayer(_objectSpread({
126
135
  visible: tile.isVisible,
127
136
  tileOrigin: vectorTileLayer === null || vectorTileLayer === void 0 ? void 0 : vectorTileLayer.l7TileOrigin,
128
137
  coord: vectorTileLayer === null || vectorTileLayer === void 0 ? void 0 : vectorTileLayer.l7TileCoord
129
- }, this.getLayerInitOption(initOptions))); // vector layer set config
138
+ }, this.getLayerInitOption(initOptions)));
139
+ if (layerType) layer.type = layerType; // Tip: sign tile layer
130
140
 
131
- if (layer.isVector) {
141
+ layer.isTileLayer = true; // vector 、raster
142
+ // vector layer set event
143
+
144
+ if (layer.isVector && usage !== 'basemap') {
132
145
  this.emitEvent([layer]);
133
- layer.type = layerType;
134
146
  layer.select(true);
135
147
  } // set source
136
148
 
137
149
 
138
- layer.source(source); // set scale
139
-
140
- this.setScale(layer); // set scale attribute field
150
+ layer.source(source); // set scale attribute field
141
151
 
142
152
  this.setStyleAttributeField(layer, 'shape', shape);
143
- this.setStyleAttributeField(layer, 'color', color);
144
- this.setStyleAttributeField(layer, 'size', size); // set mask
153
+
154
+ if (usage !== 'basemap') {
155
+ // set scale
156
+ this.setScale(layer);
157
+ this.setStyleAttributeField(layer, 'color', color);
158
+ this.setStyleAttributeField(layer, 'size', size);
159
+ } else {
160
+ layer.style({
161
+ color: basemapColor,
162
+ size: basemapSize
163
+ });
164
+ } // set mask
165
+
145
166
 
146
167
  var layers = [layer];
147
168
 
@@ -149,7 +170,12 @@ var TileFactory = /*#__PURE__*/function () {
149
170
  var masklayer = new MaskLayer().source({
150
171
  type: 'FeatureCollection',
151
172
  features: [tile.bboxPolygon]
152
- }).shape('fill');
173
+ }, {
174
+ parser: {
175
+ type: 'geojson',
176
+ cancelExtent: true
177
+ }
178
+ });
153
179
  layers.push(masklayer);
154
180
  layer.addMaskLayer(masklayer);
155
181
  } // regist layer
@@ -169,7 +195,7 @@ var TileFactory = /*#__PURE__*/function () {
169
195
  value: function getDefautStyleAttributeField(layer, type) {
170
196
  switch (type) {
171
197
  case 'size':
172
- return 2;
198
+ return 1;
173
199
 
174
200
  case 'color':
175
201
  return '#fff';
@@ -248,8 +274,7 @@ var TileFactory = /*#__PURE__*/function () {
248
274
  var tiles = this.tilesetManager.tiles.filter(function (t) {
249
275
  return t.key === "".concat(xy[0], ",").concat(xy[1], ",").concat(z);
250
276
  });
251
- var tile = tiles[0];
252
- return tile;
277
+ return tiles[0];
253
278
  }
254
279
  }, {
255
280
  key: "emitEvent",
@@ -268,7 +293,7 @@ var TileFactory = /*#__PURE__*/function () {
268
293
 
269
294
  var tile = _this.getTile(lng, lat);
270
295
 
271
- _this.getFeatureAndEmitEvent(layer, 'subLayerClick', e, isVector, tile);
296
+ tile && _this.getFeatureAndEmitEvent(layer, 'subLayerClick', e, isVector, tile);
272
297
  } else {
273
298
  _this.getFeatureAndEmitEvent(layer, 'subLayerClick', e);
274
299
  }
@@ -283,7 +308,7 @@ var TileFactory = /*#__PURE__*/function () {
283
308
 
284
309
  var tile = _this.getTile(lng, lat);
285
310
 
286
- _this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e, isVector, tile);
311
+ tile && _this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e, isVector, tile);
287
312
  } else {
288
313
  _this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e);
289
314
  }
@@ -301,7 +326,7 @@ var TileFactory = /*#__PURE__*/function () {
301
326
 
302
327
  var tile = _this.getTile(lng, lat);
303
328
 
304
- _this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e, isVector, tile);
329
+ tile && _this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e, isVector, tile);
305
330
  } else {
306
331
  _this.getFeatureAndEmitEvent(layer, 'subLayerMouseEnter', e);
307
332
  }
@@ -46,6 +46,9 @@ var VectorPolygonTile = /*#__PURE__*/function (_TileFactory) {
46
46
  vectorTileLayer: vectorTileLayer,
47
47
  source: source
48
48
  });
49
+ layer.once('modelLoaded', function () {
50
+ tile.layerLoad();
51
+ });
49
52
  return {
50
53
  layers: [layer],
51
54
  layerIDList: [layer.id]
@@ -46,6 +46,9 @@ var VectorPolygonTile = /*#__PURE__*/function (_TileFactory) {
46
46
  vectorTileLayer: vectorTileLayer,
47
47
  source: source
48
48
  });
49
+ layer.once('modelLoaded', function () {
50
+ tile.layerLoad();
51
+ });
49
52
  return {
50
53
  layers: [layer],
51
54
  layerIDList: [layer.id]
@@ -46,6 +46,9 @@ var VectorPolygonTile = /*#__PURE__*/function (_TileFactory) {
46
46
  vectorTileLayer: vectorTileLayer,
47
47
  source: source
48
48
  });
49
+ layer.once('modelLoaded', function () {
50
+ tile.layerLoad();
51
+ });
49
52
  return {
50
53
  layers: [layer],
51
54
  layerIDList: [layer.id]
@@ -42,6 +42,9 @@ var RasterTile = /*#__PURE__*/function (_TileFactory) {
42
42
  initOptions: initOptions,
43
43
  source: source
44
44
  });
45
+ layer.once('modelLoaded', function () {
46
+ tile.layerLoad();
47
+ });
45
48
  return {
46
49
  layers: [layer],
47
50
  layerIDList: [layer.id]
@@ -67,6 +67,9 @@ var RasterTiffTile = /*#__PURE__*/function (_TileFactory) {
67
67
  });
68
68
  this.emitEvent([layer], false);
69
69
  registerLayers(this.parentLayer, [layer]);
70
+ layer.once('modelLoaded', function () {
71
+ tile.layerLoad();
72
+ });
70
73
  return {
71
74
  layers: [layer],
72
75
  layerIDList: [layer.id]
@@ -44,7 +44,9 @@ var RasterTiffLayer = /*#__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 RasterTiffLayer = /*#__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
  }, {
@@ -51,24 +51,45 @@ var TestTile = /*#__PURE__*/function (_TileFactory) {
51
51
 
52
52
  var properties = features[0].properties;
53
53
  var text = new VectorLayer({
54
- layerType: 'PointLayer'
54
+ layerType: 'PointLayer',
55
+ usage: 'basemap'
55
56
  }).source([properties], {
56
57
  parser: {
57
58
  type: 'json',
58
59
  x: 'textLng',
59
- y: 'textLat'
60
+ y: 'textLat',
61
+ cancelExtent: true
60
62
  }
61
- }).shape('key', 'text').size(20).color('#000').style({
63
+ }).shape('key', 'text').style({
64
+ size: 20,
65
+ color: '#000',
62
66
  stroke: '#fff',
63
67
  strokeWidth: 2
64
68
  });
65
69
  var line = new VectorLayer({
66
- layerType: 'LineLayer'
70
+ layerType: 'LineLayer',
71
+ usage: 'basemap'
67
72
  }).source({
68
73
  type: 'FeatureCollection',
69
74
  features: features
70
- }).shape('simple').color('#000');
75
+ }, {
76
+ parser: {
77
+ type: 'geojson',
78
+ cancelExtent: true
79
+ }
80
+ }).shape('simple').style({
81
+ color: '#000'
82
+ }); // Tip: sign tile layer
83
+
84
+ text.isTileLayer = true;
85
+ line.isTileLayer = true;
71
86
  registerLayers(this.parentLayer, [line, text]);
87
+ text.once('modelLoaded', function () {
88
+ tile.layerLoad();
89
+ });
90
+ line.once('modelLoaded', function () {
91
+ tile.layerLoad();
92
+ });
72
93
  return {
73
94
  layers: [line, text],
74
95
  layerIDList: [line.id, text.id]
@@ -1,7 +1,7 @@
1
1
  import BaseLayer from '../../core/BaseLayer';
2
2
  import { ILineLayerStyleOptions, IPointLayerStyleOptions, IPolygonLayerStyleOptions } from '../../core/interface';
3
3
  import lineFillModel from '../../line/models/tile';
4
- import lineSimpleModel from '../../line/models/simpleLine';
4
+ import lineSimpleModel from '../../line/models/simpleTileLine';
5
5
  import pointTextModel from '../../point/models/tileText';
6
6
  import pointFillModel from '../../point/models/tile';
7
7
  import polygonFillModel from '../../polygon/models/tile';
@@ -9,6 +9,9 @@ export default class VectorLayer extends BaseLayer<Partial<IPolygonLayerStyleOpt
9
9
  isVector: boolean;
10
10
  type: string;
11
11
  private pickedID;
12
+ init(): this;
13
+ renderModels(isPicking?: boolean): this;
14
+ protected sourceEvent: () => void;
12
15
  getPickID(): number | null;
13
16
  setPickID(): number | null;
14
17
  buildModels(): void;
@@ -1,3 +1,4 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -6,13 +7,20 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
6
7
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
9
 
10
+ 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; } } }; }
11
+
12
+ 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); }
13
+
14
+ 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; }
15
+
9
16
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
17
 
11
18
  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
19
 
20
+ import { TYPES } from '@antv/l7-core';
13
21
  import BaseLayer from "../../core/BaseLayer";
14
22
  import lineFillModel from "../../line/models/tile";
15
- import lineSimpleModel from "../../line/models/simpleLine";
23
+ import lineSimpleModel from "../../line/models/simpleTileLine";
16
24
  import pointTextModel from "../../point/models/tileText";
17
25
  import pointFillModel from "../../point/models/tile";
18
26
  import polygonFillModel from "../../polygon/models/tile";
@@ -35,14 +43,105 @@ var VectorLayer = /*#__PURE__*/function (_BaseLayer) {
35
43
 
36
44
  _defineProperty(_assertThisInitialized(_this), "isVector", true);
37
45
 
38
- _defineProperty(_assertThisInitialized(_this), "type", _this.layerType);
46
+ _defineProperty(_assertThisInitialized(_this), "type", _this.layerType || 'vectorLayer');
39
47
 
40
48
  _defineProperty(_assertThisInitialized(_this), "pickedID", null);
41
49
 
50
+ _defineProperty(_assertThisInitialized(_this), "sourceEvent", function () {
51
+ // Tip: vector 不支持 autoFit
52
+ _this.dataState.dataSourceNeedUpdate = true;
53
+
54
+ _this.reRender();
55
+ });
56
+
42
57
  return _this;
43
58
  }
44
59
 
45
60
  _createClass(VectorLayer, [{
61
+ key: "init",
62
+ value: function init() {
63
+ var _this2 = this;
64
+
65
+ // 设置配置项
66
+ var sceneId = this.container.get(TYPES.SceneID);
67
+ this.configService.setLayerConfig(sceneId, this.id, this.rawConfig);
68
+ this.layerType = this.rawConfig.layerType;
69
+
70
+ if (this.type === 'PointLayer') {
71
+ // Tip: iconService 和 fontService 只有在矢量点图层中才会被使用
72
+ this.iconService = this.container.get(TYPES.IIconService);
73
+ this.fontService = this.container.get(TYPES.IFontService);
74
+ }
75
+
76
+ this.rendererService = this.container.get(TYPES.IRendererService);
77
+ this.layerService = this.container.get(TYPES.ILayerService);
78
+ this.mapService = this.container.get(TYPES.IMapService);
79
+ this.cameraService = this.container.get(TYPES.ICameraService);
80
+ this.coordinateService = this.container.get(TYPES.ICoordinateSystemService);
81
+ this.shaderModuleService = this.container.get(TYPES.IShaderModuleService);
82
+ this.postProcessingPassFactory = this.container.get(TYPES.IFactoryPostProcessingPass);
83
+ this.normalPassFactory = this.container.get(TYPES.IFactoryNormalPass); // 图层容器服务
84
+
85
+ this.styleAttributeService = this.container.get(TYPES.IStyleAttributeService); // 完成样式服务注册完成前添加的属性
86
+
87
+ this.pendingStyleAttributes.forEach(function (_ref) {
88
+ var attributeName = _ref.attributeName,
89
+ attributeField = _ref.attributeField,
90
+ attributeValues = _ref.attributeValues,
91
+ updateOptions = _ref.updateOptions;
92
+
93
+ _this2.styleAttributeService.updateStyleAttribute(attributeName, {
94
+ // @ts-ignore
95
+ scale: _objectSpread({
96
+ field: attributeField
97
+ }, _this2.splitValuesAndCallbackInAttribute( // @ts-ignore
98
+ attributeValues, // @ts-ignore
99
+ _this2.getLayerConfig()[attributeName]))
100
+ }, // @ts-ignore
101
+ updateOptions);
102
+ });
103
+ this.pendingStyleAttributes = []; // 获取插件集
104
+
105
+ this.plugins = this.container.getAll(TYPES.ILayerPlugin); // 完成插件注册,传入场景和图层容器内的服务
106
+
107
+ var _iterator = _createForOfIteratorHelper(this.plugins),
108
+ _step;
109
+
110
+ try {
111
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
112
+ var plugin = _step.value;
113
+ plugin.apply(this, {
114
+ rendererService: this.rendererService,
115
+ mapService: this.mapService,
116
+ styleAttributeService: this.styleAttributeService,
117
+ normalPassFactory: this.normalPassFactory,
118
+ postProcessingPassFactory: this.postProcessingPassFactory
119
+ });
120
+ } // 触发 init 生命周期插件
121
+
122
+ } catch (err) {
123
+ _iterator.e(err);
124
+ } finally {
125
+ _iterator.f();
126
+ }
127
+
128
+ this.hooks.init.call();
129
+ this.hooks.afterInit.call();
130
+ return this;
131
+ }
132
+ }, {
133
+ key: "renderModels",
134
+ value: function renderModels(isPicking) {
135
+ var _this3 = this;
136
+
137
+ this.models.forEach(function (model) {
138
+ model.draw({
139
+ uniforms: _this3.layerModel.getUninforms()
140
+ }, isPicking);
141
+ });
142
+ return this;
143
+ }
144
+ }, {
46
145
  key: "getPickID",
47
146
  value: function getPickID() {
48
147
  return this.pickedID;
@@ -55,23 +154,27 @@ var VectorLayer = /*#__PURE__*/function (_BaseLayer) {
55
154
  }, {
56
155
  key: "buildModels",
57
156
  value: function buildModels() {
58
- var _this2 = this;
157
+ var _this4 = this;
59
158
 
60
159
  var model = this.getModelType();
61
160
  this.layerModel = new model(this);
62
161
  this.layerModel.initModels(function (models) {
63
- _this2.models = models;
162
+ _this4.models = models;
64
163
 
65
- _this2.renderLayers();
164
+ _this4.emit('modelLoaded', null);
165
+
166
+ _this4.layerService.throttleRenderLayers();
66
167
  });
67
168
  }
68
169
  }, {
69
170
  key: "rebuildModels",
70
171
  value: function rebuildModels() {
71
- var _this3 = this;
172
+ var _this5 = this;
72
173
 
73
174
  this.layerModel.buildModels(function (models) {
74
- return _this3.models = models;
175
+ _this5.models = models;
176
+
177
+ _this5.emit('modelLoaded', null);
75
178
  });
76
179
  }
77
180
  }, {
@@ -0,0 +1,29 @@
1
+ import { ILayer, ILayerService, IMapService, IBaseTileLayer, IBaseTileLayerManager, ITileLayerOPtions } from '@antv/l7-core';
2
+ import { Tile, TilesetManager } from '@antv/l7-utils';
3
+ export default class BaseTileLayer implements IBaseTileLayer {
4
+ get children(): ILayer[];
5
+ type: string;
6
+ sourceLayer: string;
7
+ parent: ILayer;
8
+ initedTileset: boolean;
9
+ tilesetManager: TilesetManager | undefined;
10
+ tileLayerManager: IBaseTileLayerManager;
11
+ scaleField: any;
12
+ private lastViewStates;
13
+ protected mapService: IMapService;
14
+ protected layerService: ILayerService;
15
+ constructor({ parent, rendererService, mapService, layerService, }: ITileLayerOPtions);
16
+ /**
17
+ * 渲染瓦片的图层
18
+ */
19
+ render(): void;
20
+ tileLoaded(tile: Tile): void;
21
+ tileError(error: Error): void;
22
+ tileUnLoad(tile: Tile): void;
23
+ tileUpdate(): void;
24
+ private initTileSetManager;
25
+ private mapchange;
26
+ private bindTilesetEvent;
27
+ viewchange: import("lodash").DebouncedFunc<() => void>;
28
+ private getCurrentView;
29
+ }