@antv/l7-layers 2.9.27-alpha.2 → 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 (300) hide show
  1. package/es/Geometry/index.js +6 -2
  2. package/es/Geometry/models/billboard.js +1 -2
  3. package/es/Geometry/models/plane.js +2 -4
  4. package/es/Geometry/models/sprite.js +2 -4
  5. package/es/canvas/index.d.ts +4 -0
  6. package/es/canvas/index.js +38 -2
  7. package/es/citybuliding/building.js +6 -2
  8. package/es/citybuliding/models/build.js +2 -3
  9. package/es/core/BaseLayer.d.ts +15 -6
  10. package/es/core/BaseLayer.js +51 -69
  11. package/es/core/BaseModel.d.ts +1 -1
  12. package/es/core/BaseModel.js +7 -3
  13. package/es/core/interface.d.ts +18 -0
  14. package/es/core/triangulation.d.ts +6 -0
  15. package/es/core/triangulation.js +64 -2
  16. package/es/earth/index.js +3 -1
  17. package/es/earth/models/base.js +2 -4
  18. package/es/earth/shaders/atmosphere_frag.glsl +1 -1
  19. package/es/earth/shaders/bloomsphere_frag.glsl +1 -1
  20. package/es/heatmap/index.js +6 -2
  21. package/es/heatmap/models/heatmap.js +5 -3
  22. package/es/image/index.js +6 -2
  23. package/es/image/models/dataImage.js +4 -7
  24. package/es/image/models/image.js +4 -7
  25. package/es/line/index.d.ts +1 -0
  26. package/es/line/index.js +8 -2
  27. package/es/line/models/arc.js +6 -5
  28. package/es/line/models/half.js +3 -4
  29. package/es/line/models/line.js +9 -8
  30. package/es/line/models/simpleLine.js +2 -1
  31. package/es/line/models/simpleTileLine.d.ts +9 -0
  32. package/es/line/models/simpleTileLine.js +100 -0
  33. package/es/line/models/tile.d.ts +1 -4
  34. package/es/line/models/tile.js +49 -222
  35. package/es/line/models/wall.js +10 -46
  36. package/es/line/shaders/dash/arc_dash_vert.glsl +2 -0
  37. package/es/line/shaders/dash/line_dash_frag.glsl +1 -1
  38. package/es/line/shaders/line_arc2d_vert.glsl +1 -1
  39. package/es/line/shaders/line_arc_3d_frag.glsl +1 -1
  40. package/es/line/shaders/line_arc_3d_vert.glsl +3 -3
  41. package/es/line/shaders/line_arc_frag.glsl +1 -1
  42. package/es/line/shaders/line_arc_great_circle_frag.glsl +1 -1
  43. package/es/line/shaders/line_arc_great_circle_vert.glsl +1 -1
  44. package/es/line/shaders/line_arc_vert.glsl +5 -3
  45. package/es/line/shaders/line_bezier_vert.glsl +1 -1
  46. package/es/line/shaders/line_frag.glsl +1 -2
  47. package/es/line/shaders/line_vert.glsl +1 -1
  48. package/es/line/shaders/linear/arc3d_linear_frag.glsl +1 -1
  49. package/es/line/shaders/linear/arc3d_linear_vert.glsl +3 -3
  50. package/es/line/shaders/linear/arc_linear_frag.glsl +1 -1
  51. package/es/line/shaders/tile/line_tile_map_vert.glsl +25 -0
  52. package/es/line/shaders/tile/line_tile_vert.glsl +19 -177
  53. package/es/line/shaders/tile/simpleline_map_vert.glsl +15 -0
  54. package/es/line/shaders/tile/simpleline_vert.glsl +21 -0
  55. package/es/line/shaders/{wall_frag.glsl → wall/wall_frag.glsl} +17 -21
  56. package/es/line/shaders/wall/wall_vert.glsl +77 -0
  57. package/es/mask/index.d.ts +1 -0
  58. package/es/mask/index.js +80 -5
  59. package/es/mask/models/fill.d.ts +2 -1
  60. package/es/mask/models/fill.js +13 -10
  61. package/es/mask/shaders/mask_vert.glsl +0 -6
  62. package/es/plugins/DataMappingPlugin.d.ts +4 -3
  63. package/es/plugins/DataMappingPlugin.js +129 -58
  64. package/es/plugins/DataSourcePlugin.js +3 -2
  65. package/es/plugins/FeatureScalePlugin.d.ts +0 -2
  66. package/es/plugins/FeatureScalePlugin.js +8 -51
  67. package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -2
  68. package/es/plugins/LayerAnimateStylePlugin.js +7 -27
  69. package/es/plugins/LayerModelPlugin.js +2 -6
  70. package/es/plugins/LightingPlugin.js +1 -7
  71. package/es/plugins/MultiPassRendererPlugin.d.ts +0 -1
  72. package/es/plugins/MultiPassRendererPlugin.js +4 -16
  73. package/es/plugins/PixelPickingPlugin.d.ts +1 -1
  74. package/es/plugins/PixelPickingPlugin.js +8 -28
  75. package/es/plugins/RegisterStyleAttributePlugin.d.ts +4 -0
  76. package/es/plugins/RegisterStyleAttributePlugin.js +56 -5
  77. package/es/plugins/UpdateStyleAttributePlugin.js +2 -9
  78. package/es/point/index.js +6 -2
  79. package/es/point/models/fill.js +2 -2
  80. package/es/point/models/fillmage.js +1 -1
  81. package/es/point/models/image.js +1 -1
  82. package/es/point/models/normal.d.ts +0 -1
  83. package/es/point/models/normal.js +9 -60
  84. package/es/point/models/radar.js +4 -69
  85. package/es/point/models/simplePoint.d.ts +0 -1
  86. package/es/point/models/simplePoint.js +2 -11
  87. package/es/point/models/text.js +6 -7
  88. package/es/point/models/tile.d.ts +0 -7
  89. package/es/point/models/tile.js +22 -155
  90. package/es/point/models/tileText.d.ts +0 -4
  91. package/es/point/models/tileText.js +98 -185
  92. package/es/point/shaders/animate/wave_frag.glsl +3 -3
  93. package/es/point/shaders/earth/fill_vert.glsl +0 -1
  94. package/es/point/shaders/fill_vert.glsl +0 -1
  95. package/es/point/shaders/normal_frag.glsl +1 -10
  96. package/es/point/shaders/normal_vert.glsl +5 -60
  97. package/es/point/shaders/radar/radar_frag.glsl +4 -15
  98. package/es/point/shaders/radar/radar_vert.glsl +4 -54
  99. package/es/point/shaders/tile/fill_tile_frag.glsl +10 -17
  100. package/es/point/shaders/tile/fill_tile_vert.glsl +20 -123
  101. package/es/point/shaders/tile/text_frag.glsl +33 -0
  102. package/es/point/shaders/tile/text_map_frag.glsl +31 -0
  103. package/es/point/shaders/tile/text_map_vert.glsl +38 -0
  104. package/es/point/shaders/tile/text_vert.glsl +48 -0
  105. package/es/polygon/index.js +6 -2
  106. package/es/polygon/models/extrude.js +1 -3
  107. package/es/polygon/models/fill.js +3 -4
  108. package/es/polygon/models/ocean.d.ts +0 -2
  109. package/es/polygon/models/ocean.js +13 -47
  110. package/es/polygon/models/tile.d.ts +1 -4
  111. package/es/polygon/models/tile.js +25 -57
  112. package/es/polygon/models/water.d.ts +0 -2
  113. package/es/polygon/models/water.js +13 -47
  114. package/es/polygon/shaders/polygon_frag.glsl +2 -2
  115. package/es/polygon/shaders/polygon_vert.glsl +2 -2
  116. package/es/polygon/shaders/tile/polygon_tile_map_vert.glsl +16 -0
  117. package/es/polygon/shaders/tile/polygon_tile_vert.glsl +20 -60
  118. package/es/polygon/shaders/water/polygon_ocean_frag.glsl +1 -2
  119. package/es/polygon/shaders/water/polygon_ocean_vert.glsl +0 -31
  120. package/es/polygon/shaders/water/polygon_water_frag.glsl +1 -3
  121. package/es/polygon/shaders/water/polygon_water_vert.glsl +0 -29
  122. package/es/raster/buffers/triangulation.js +1 -4
  123. package/es/raster/index.js +6 -2
  124. package/es/raster/models/raster.js +3 -2
  125. package/es/shader/minify_frag.glsl +7 -0
  126. package/es/shader/minify_picking_frag.glsl +10 -0
  127. package/es/tile/manager/baseMapTileLayerManager.d.ts +29 -0
  128. package/es/tile/manager/baseMapTileLayerManager.js +207 -0
  129. package/es/tile/manager/tileLayerManager.d.ts +2 -2
  130. package/es/tile/manager/tileLayerManager.js +2 -2
  131. package/es/tile/manager/tilePickerManager.d.ts +2 -3
  132. package/es/tile/manager/tilePickerManager.js +1 -2
  133. package/es/tile/models/tileModel.d.ts +1 -0
  134. package/es/tile/models/tileModel.js +18 -2
  135. package/es/tile/tileFactory/base.d.ts +1 -1
  136. package/es/tile/tileFactory/base.js +58 -33
  137. package/es/tile/tileFactory/line.js +3 -0
  138. package/es/tile/tileFactory/point.js +3 -0
  139. package/es/tile/tileFactory/polygon.js +3 -0
  140. package/es/tile/tileFactory/raster.js +3 -0
  141. package/es/tile/tileFactory/rasterData.js +3 -0
  142. package/es/tile/tileFactory/rasterDataLayer.js +6 -2
  143. package/es/tile/tileFactory/test.js +26 -5
  144. package/es/tile/tileFactory/vectorLayer.d.ts +4 -1
  145. package/es/tile/tileFactory/vectorLayer.js +110 -7
  146. package/es/tile/tileLayer/baseMapTileLayer.d.ts +29 -0
  147. package/es/tile/tileLayer/baseMapTileLayer.js +188 -0
  148. package/es/tile/tileLayer/baseTileLayer.d.ts +4 -4
  149. package/es/tile/tileLayer/baseTileLayer.js +46 -75
  150. package/es/tile/tileTest.d.ts +1 -0
  151. package/es/tile/tileTest.js +3 -2
  152. package/es/tile/tmsMapTileLayer.d.ts +9 -0
  153. package/es/tile/tmsMapTileLayer.js +119 -0
  154. package/es/tile/tmsTileLayer.d.ts +2 -0
  155. package/es/tile/tmsTileLayer.js +24 -2
  156. package/es/tile/utils.d.ts +4 -0
  157. package/es/tile/utils.js +30 -0
  158. package/es/utils/dataMappingStyle.js +3 -0
  159. package/es/utils/layerData.js +2 -2
  160. package/es/utils/updateShape.js +2 -2
  161. package/es/wind/index.js +6 -2
  162. package/es/wind/models/wind.js +8 -8
  163. package/es/wind/shaders/wind_vert.glsl +1 -1
  164. package/lib/Geometry/index.js +6 -2
  165. package/lib/Geometry/models/billboard.js +1 -2
  166. package/lib/Geometry/models/plane.js +2 -4
  167. package/lib/Geometry/models/sprite.js +2 -4
  168. package/lib/canvas/index.js +37 -2
  169. package/lib/citybuliding/building.js +6 -2
  170. package/lib/citybuliding/models/build.js +2 -3
  171. package/lib/core/BaseLayer.js +51 -69
  172. package/lib/core/BaseModel.js +7 -3
  173. package/lib/core/triangulation.js +66 -2
  174. package/lib/earth/index.js +3 -1
  175. package/lib/earth/models/base.js +2 -4
  176. package/lib/earth/shaders/atmosphere_frag.glsl +1 -1
  177. package/lib/earth/shaders/bloomsphere_frag.glsl +1 -1
  178. package/lib/heatmap/index.js +6 -2
  179. package/lib/heatmap/models/heatmap.js +5 -3
  180. package/lib/image/index.js +6 -2
  181. package/lib/image/models/dataImage.js +4 -7
  182. package/lib/image/models/image.js +4 -7
  183. package/lib/line/index.js +7 -2
  184. package/lib/line/models/arc.js +6 -5
  185. package/lib/line/models/half.js +3 -4
  186. package/lib/line/models/line.js +9 -8
  187. package/lib/line/models/simpleLine.js +2 -1
  188. package/lib/line/models/simpleTileLine.js +115 -0
  189. package/lib/line/models/tile.js +49 -223
  190. package/lib/line/models/wall.js +10 -46
  191. package/lib/line/shaders/dash/arc_dash_vert.glsl +2 -0
  192. package/lib/line/shaders/dash/line_dash_frag.glsl +1 -1
  193. package/lib/line/shaders/line_arc2d_vert.glsl +1 -1
  194. package/lib/line/shaders/line_arc_3d_frag.glsl +1 -1
  195. package/lib/line/shaders/line_arc_3d_vert.glsl +3 -3
  196. package/lib/line/shaders/line_arc_frag.glsl +1 -1
  197. package/lib/line/shaders/line_arc_great_circle_frag.glsl +1 -1
  198. package/lib/line/shaders/line_arc_great_circle_vert.glsl +1 -1
  199. package/lib/line/shaders/line_arc_vert.glsl +5 -3
  200. package/lib/line/shaders/line_bezier_vert.glsl +1 -1
  201. package/lib/line/shaders/line_frag.glsl +1 -2
  202. package/lib/line/shaders/line_vert.glsl +1 -1
  203. package/lib/line/shaders/linear/arc3d_linear_frag.glsl +1 -1
  204. package/lib/line/shaders/linear/arc3d_linear_vert.glsl +3 -3
  205. package/lib/line/shaders/linear/arc_linear_frag.glsl +1 -1
  206. package/lib/line/shaders/tile/line_tile_map_vert.glsl +25 -0
  207. package/lib/line/shaders/tile/line_tile_vert.glsl +19 -177
  208. package/lib/line/shaders/tile/simpleline_map_vert.glsl +15 -0
  209. package/lib/line/shaders/tile/simpleline_vert.glsl +21 -0
  210. package/lib/line/shaders/{wall_frag.glsl → wall/wall_frag.glsl} +17 -21
  211. package/lib/line/shaders/wall/wall_vert.glsl +77 -0
  212. package/lib/mask/index.js +82 -5
  213. package/lib/mask/models/fill.js +14 -10
  214. package/lib/mask/shaders/mask_vert.glsl +0 -6
  215. package/lib/plugins/DataMappingPlugin.js +127 -57
  216. package/lib/plugins/DataSourcePlugin.js +3 -2
  217. package/lib/plugins/FeatureScalePlugin.js +6 -50
  218. package/lib/plugins/LayerAnimateStylePlugin.js +6 -29
  219. package/lib/plugins/LayerModelPlugin.js +2 -6
  220. package/lib/plugins/LightingPlugin.js +1 -7
  221. package/lib/plugins/MultiPassRendererPlugin.js +3 -19
  222. package/lib/plugins/PixelPickingPlugin.js +8 -28
  223. package/lib/plugins/RegisterStyleAttributePlugin.js +56 -5
  224. package/lib/plugins/UpdateStyleAttributePlugin.js +2 -9
  225. package/lib/point/index.js +6 -2
  226. package/lib/point/models/fill.js +2 -2
  227. package/lib/point/models/fillmage.js +1 -1
  228. package/lib/point/models/image.js +1 -1
  229. package/lib/point/models/normal.js +8 -59
  230. package/lib/point/models/radar.js +4 -69
  231. package/lib/point/models/simplePoint.js +1 -10
  232. package/lib/point/models/text.js +6 -7
  233. package/lib/point/models/tile.js +21 -156
  234. package/lib/point/models/tileText.js +97 -184
  235. package/lib/point/shaders/animate/wave_frag.glsl +3 -3
  236. package/lib/point/shaders/earth/fill_vert.glsl +0 -1
  237. package/lib/point/shaders/fill_vert.glsl +0 -1
  238. package/lib/point/shaders/normal_frag.glsl +1 -10
  239. package/lib/point/shaders/normal_vert.glsl +5 -60
  240. package/lib/point/shaders/radar/radar_frag.glsl +4 -15
  241. package/lib/point/shaders/radar/radar_vert.glsl +4 -54
  242. package/lib/point/shaders/tile/fill_tile_frag.glsl +10 -17
  243. package/lib/point/shaders/tile/fill_tile_vert.glsl +20 -123
  244. package/lib/point/shaders/tile/text_frag.glsl +33 -0
  245. package/lib/point/shaders/tile/text_map_frag.glsl +31 -0
  246. package/lib/point/shaders/tile/text_map_vert.glsl +38 -0
  247. package/lib/point/shaders/tile/text_vert.glsl +48 -0
  248. package/lib/polygon/index.js +6 -2
  249. package/lib/polygon/models/extrude.js +1 -3
  250. package/lib/polygon/models/fill.js +3 -4
  251. package/lib/polygon/models/ocean.js +14 -47
  252. package/lib/polygon/models/tile.js +24 -57
  253. package/lib/polygon/models/water.js +14 -47
  254. package/lib/polygon/shaders/polygon_frag.glsl +2 -2
  255. package/lib/polygon/shaders/polygon_vert.glsl +2 -2
  256. package/lib/polygon/shaders/tile/polygon_tile_map_vert.glsl +16 -0
  257. package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +20 -60
  258. package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +1 -2
  259. package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +0 -31
  260. package/lib/polygon/shaders/water/polygon_water_frag.glsl +1 -3
  261. package/lib/polygon/shaders/water/polygon_water_vert.glsl +0 -29
  262. package/lib/raster/buffers/triangulation.js +1 -4
  263. package/lib/raster/index.js +6 -2
  264. package/lib/raster/models/raster.js +3 -2
  265. package/lib/shader/minify_frag.glsl +7 -0
  266. package/lib/shader/minify_picking_frag.glsl +10 -0
  267. package/lib/tile/manager/baseMapTileLayerManager.js +222 -0
  268. package/lib/tile/manager/tileLayerManager.js +2 -2
  269. package/lib/tile/manager/tilePickerManager.js +1 -2
  270. package/lib/tile/models/tileModel.js +19 -2
  271. package/lib/tile/tileFactory/base.js +60 -33
  272. package/lib/tile/tileFactory/line.js +3 -0
  273. package/lib/tile/tileFactory/point.js +3 -0
  274. package/lib/tile/tileFactory/polygon.js +3 -0
  275. package/lib/tile/tileFactory/raster.js +3 -0
  276. package/lib/tile/tileFactory/rasterData.js +3 -0
  277. package/lib/tile/tileFactory/rasterDataLayer.js +6 -2
  278. package/lib/tile/tileFactory/test.js +26 -5
  279. package/lib/tile/tileFactory/vectorLayer.js +112 -8
  280. package/lib/tile/tileLayer/baseMapTileLayer.js +195 -0
  281. package/lib/tile/tileLayer/baseTileLayer.js +46 -75
  282. package/lib/tile/tileTest.js +3 -2
  283. package/lib/tile/tmsMapTileLayer.js +136 -0
  284. package/lib/tile/tmsTileLayer.js +25 -2
  285. package/lib/tile/utils.js +38 -0
  286. package/lib/utils/dataMappingStyle.js +3 -0
  287. package/lib/utils/layerData.js +2 -2
  288. package/lib/utils/updateShape.js +2 -2
  289. package/lib/wind/index.js +6 -2
  290. package/lib/wind/models/wind.js +7 -7
  291. package/lib/wind/shaders/wind_vert.glsl +1 -1
  292. package/package.json +8 -7
  293. package/es/line/shaders/tile/line_tile_frag.glsl +0 -79
  294. package/es/line/shaders/wall_vert.glsl +0 -111
  295. package/es/mask/shaders/mask_frag.glsl +0 -7
  296. package/es/polygon/shaders/tile/polygon_tile_frag.glsl +0 -12
  297. package/lib/line/shaders/tile/line_tile_frag.glsl +0 -79
  298. package/lib/line/shaders/wall_vert.glsl +0 -111
  299. package/lib/mask/shaders/mask_frag.glsl +0 -7
  300. package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +0 -12
@@ -4,44 +4,13 @@ uniform mat4 u_ModelMatrix;
4
4
  uniform mat4 u_Mvp;
5
5
 
6
6
  varying vec2 v_uv;
7
- uniform float u_opacity: 1.0;
8
- varying mat4 styleMappingMat; // 用于将在顶点着色器中计算好的样式值传递给片元
9
-
10
- #pragma include "styleMapping"
11
- #pragma include "styleMappingCalOpacity"
12
7
 
13
8
  #pragma include "projection"
14
9
 
15
10
  void main() {
16
11
  v_uv = a_uv;
17
- // cal style mapping - 数据纹理映射部分的计算
18
- styleMappingMat = mat4(
19
- 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty
20
- 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA
21
- 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]
22
- 0.0, 0.0, 0.0, 0.0
23
- );
24
-
25
- float rowCount = u_cellTypeLayout[0][0]; // 当前的数据纹理有几行
26
- float columnCount = u_cellTypeLayout[0][1]; // 当看到数据纹理有几列
27
- float columnWidth = 1.0/columnCount; // 列宽
28
- float rowHeight = 1.0/rowCount; // 行高
29
- float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets
30
- float id = a_vertexId; // 第n个顶点
31
- float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // 起始点在第几行
32
- float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // 起始点在第几列
33
-
34
- // cell 固定顺序 opacity -> strokeOpacity -> strokeWidth -> stroke ...
35
- // 按顺序从 cell 中取值、若没有则自动往下取值
36
- float textureOffset = 0.0; // 在 cell 中取值的偏移量
37
-
38
- vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);
39
- styleMappingMat[0][0] = opacityAndOffset.r;
40
- textureOffset = opacityAndOffset.g;
41
- // cal style mapping - 数据纹理映射部分的计算
42
12
 
43
13
  vec4 project_pos = project_position(vec4(a_Position, 1.0));
44
- // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
45
14
 
46
15
  if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
47
16
  gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));
@@ -5,8 +5,6 @@ uniform float u_opacity: 1.0;
5
5
 
6
6
  varying vec4 v_Color;
7
7
  varying vec2 v_uv;
8
- varying mat4 styleMappingMat; // 传递从片元中传递的映射数据
9
-
10
8
 
11
9
  float rand(vec2 n) { return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233)))* 43758.5453); }
12
10
 
@@ -64,7 +62,7 @@ float calSpc() {
64
62
  }
65
63
 
66
64
  void main() {
67
- float opacity = styleMappingMat[0][0];
65
+ float opacity = u_opacity;
68
66
  gl_FragColor = v_Color;
69
67
  gl_FragColor.a *= opacity;
70
68
 
@@ -7,44 +7,15 @@ uniform mat4 u_Mvp;
7
7
  varying vec4 v_Color;
8
8
  varying vec2 v_uv;
9
9
  uniform float u_opacity: 1.0;
10
- varying mat4 styleMappingMat; // 用于将在顶点着色器中计算好的样式值传递给片元
11
10
 
12
- #pragma include "styleMapping"
13
- #pragma include "styleMappingCalOpacity"
14
11
 
15
12
  #pragma include "projection"
16
13
 
17
14
  void main() {
18
15
  v_uv = a_uv;
19
- // cal style mapping - 数据纹理映射部分的计算
20
- styleMappingMat = mat4(
21
- 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty
22
- 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA
23
- 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]
24
- 0.0, 0.0, 0.0, 0.0
25
- );
26
-
27
- float rowCount = u_cellTypeLayout[0][0]; // 当前的数据纹理有几行
28
- float columnCount = u_cellTypeLayout[0][1]; // 当看到数据纹理有几列
29
- float columnWidth = 1.0/columnCount; // 列宽
30
- float rowHeight = 1.0/rowCount; // 行高
31
- float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets
32
- float id = a_vertexId; // 第n个顶点
33
- float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // 起始点在第几行
34
- float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // 起始点在第几列
35
-
36
- // cell 固定顺序 opacity -> strokeOpacity -> strokeWidth -> stroke ...
37
- // 按顺序从 cell 中取值、若没有则自动往下取值
38
- float textureOffset = 0.0; // 在 cell 中取值的偏移量
39
-
40
- vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);
41
- styleMappingMat[0][0] = opacityAndOffset.r;
42
- textureOffset = opacityAndOffset.g;
43
- // cal style mapping - 数据纹理映射部分的计算
44
16
 
45
17
  v_Color = a_Color;
46
18
  vec4 project_pos = project_position(vec4(a_Position, 1.0));
47
- // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
48
19
 
49
20
  if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
50
21
  gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));
@@ -1,10 +1,7 @@
1
1
  // @ts-ignore
2
2
  import Martini from '@mapbox/martini';
3
3
  export function RasterTriangulation(parserData) {
4
- var coordinates = parserData.coordinates,
5
- data = parserData.data,
6
- min = parserData.min,
7
- max = parserData.max,
4
+ var data = parserData.data,
8
5
  width = parserData.width,
9
6
  height = parserData.height;
10
7
  var maxlength = Math.max(width, height);
@@ -44,7 +44,9 @@ var RaterLayer = /*#__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 RaterLayer = /*#__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
  }, {
@@ -100,7 +100,8 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
100
100
  depth: {
101
101
  enable: false
102
102
  },
103
- stencil: getMask(mask, maskInside)
103
+ stencil: getMask(mask, maskInside),
104
+ pick: false
104
105
  }).then(function (model) {
105
106
  callbackModel([model]);
106
107
  }).catch(function (err) {
@@ -137,7 +138,7 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
137
138
  type: gl.FLOAT
138
139
  },
139
140
  size: 2,
140
- update: function update(feature, featureIdx, vertex, attributeIdx) {
141
+ update: function update(feature, featureIdx, vertex) {
141
142
  return [vertex[3], vertex[4]];
142
143
  }
143
144
  }
@@ -0,0 +1,7 @@
1
+ uniform float u_opacity : 1.0;
2
+ uniform vec4 u_color;
3
+
4
+ void main() {
5
+ gl_FragColor = u_color;
6
+ gl_FragColor.a *= u_opacity;
7
+ }
@@ -0,0 +1,10 @@
1
+ uniform float u_opacity : 1.0;
2
+ varying vec4 v_color;
3
+
4
+ #pragma include "picking"
5
+
6
+ void main() {
7
+ gl_FragColor = v_color;
8
+ gl_FragColor.a *= u_opacity;
9
+ gl_FragColor = filterColor(gl_FragColor);
10
+ }
@@ -0,0 +1,29 @@
1
+ import { ILayer, IMapService, IRendererService, IBaseTileLayerManager } from '@antv/l7-core';
2
+ import { Tile } from '@antv/l7-utils';
3
+ export declare class BaseMapTileLayerManager implements IBaseTileLayerManager {
4
+ sourceLayer: string;
5
+ parent: ILayer;
6
+ children: ILayer[];
7
+ mapService: IMapService;
8
+ rendererService: IRendererService;
9
+ private tileFactory;
10
+ private initOptions;
11
+ constructor(parent: ILayer, mapService: IMapService, rendererService: IRendererService);
12
+ createTile(tile: Tile): {
13
+ layers: ILayer[];
14
+ layerIDList: string[];
15
+ };
16
+ updateLayersConfig(layers: ILayer[], key: string, value: any): void;
17
+ addChild(layer: ILayer): void;
18
+ addChilds(layers: ILayer[]): void;
19
+ removeChilds(layerIDList: string[], refresh?: boolean): void;
20
+ removeChild(layer: ILayer): void;
21
+ getChilds(layerIDList: string[]): ILayer[];
22
+ getChild(layerID: string): ILayer;
23
+ clearChild(): void;
24
+ hasChild(layer: ILayer): boolean;
25
+ render(): void;
26
+ private setSubLayerInitOptipn;
27
+ private getSourceLayer;
28
+ private initTileFactory;
29
+ }
@@ -0,0 +1,207 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/createClass";
5
+ import { getTileFactory } from "../tileFactory";
6
+ import { getLayerShape, getMaskValue } from "../utils";
7
+ export var BaseMapTileLayerManager = /*#__PURE__*/function () {
8
+ // only support vector layer
9
+ function BaseMapTileLayerManager(parent, mapService, rendererService) {
10
+ _classCallCheck(this, BaseMapTileLayerManager);
11
+
12
+ this.parent = parent;
13
+ this.children = parent.layerChildren;
14
+ this.mapService = mapService;
15
+ this.rendererService = rendererService;
16
+ this.setSubLayerInitOptipn();
17
+ this.initTileFactory();
18
+ }
19
+
20
+ _createClass(BaseMapTileLayerManager, [{
21
+ key: "createTile",
22
+ value: function createTile(tile) {
23
+ return this.tileFactory.createTile(tile, this.initOptions);
24
+ }
25
+ }, {
26
+ key: "updateLayersConfig",
27
+ value: function updateLayersConfig(layers, key, value) {
28
+ layers.map(function (layer) {
29
+ if (key === 'mask') {
30
+ // Tip: 栅格瓦片生效、设置全局的 mask、瓦片被全局的 mask 影响
31
+ layer.style({
32
+ mask: value
33
+ });
34
+ } else {
35
+ layer.updateLayerConfig(_defineProperty({}, key, value));
36
+ }
37
+ });
38
+ }
39
+ }, {
40
+ key: "addChild",
41
+ value: function addChild(layer) {
42
+ this.children.push(layer);
43
+ }
44
+ }, {
45
+ key: "addChilds",
46
+ value: function addChilds(layers) {
47
+ var _this$children;
48
+
49
+ (_this$children = this.children).push.apply(_this$children, _toConsumableArray(layers));
50
+ }
51
+ }, {
52
+ key: "removeChilds",
53
+ value: function removeChilds(layerIDList) {
54
+ var refresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
55
+ var remveLayerList = [];
56
+ var cacheLayerList = [];
57
+ this.children.filter(function (child) {
58
+ layerIDList.includes(child.id) ? remveLayerList.push(child) : cacheLayerList.push(child);
59
+ });
60
+ remveLayerList.map(function (layer) {
61
+ return layer.destroy(refresh);
62
+ });
63
+ this.children = cacheLayerList;
64
+ }
65
+ }, {
66
+ key: "removeChild",
67
+ value: function removeChild(layer) {
68
+ var layerIndex = this.children.indexOf(layer);
69
+
70
+ if (layerIndex > -1) {
71
+ this.children.splice(layerIndex, 1);
72
+ }
73
+
74
+ layer.destroy();
75
+ }
76
+ }, {
77
+ key: "getChilds",
78
+ value: function getChilds(layerIDList) {
79
+ return this.children.filter(function (child) {
80
+ return layerIDList.includes(child.id);
81
+ });
82
+ }
83
+ }, {
84
+ key: "getChild",
85
+ value: function getChild(layerID) {
86
+ return this.children.filter(function (child) {
87
+ return child.id === layerID;
88
+ })[0];
89
+ }
90
+ }, {
91
+ key: "clearChild",
92
+ value: function clearChild() {
93
+ this.children.forEach(function (layer) {
94
+ layer.destroy();
95
+ });
96
+ this.children.slice(0, this.children.length);
97
+ }
98
+ }, {
99
+ key: "hasChild",
100
+ value: function hasChild(layer) {
101
+ return this.children.includes(layer);
102
+ }
103
+ }, {
104
+ key: "render",
105
+ value: function render() {
106
+ var _this = this;
107
+
108
+ this.children.filter(function (layer) {
109
+ return layer.inited;
110
+ }).filter(function (layer) {
111
+ return layer.isVisible();
112
+ }).map(function (layer) {
113
+ layer.hooks.beforeRenderData.call();
114
+ layer.hooks.beforeRender.call();
115
+
116
+ if (layer.masks.length > 0) {
117
+ // 清除上一次的模版缓存
118
+ _this.rendererService.clear({
119
+ stencil: 0,
120
+ depth: 1,
121
+ framebuffer: null
122
+ });
123
+
124
+ layer.masks.map(function (m) {
125
+ m.hooks.beforeRenderData.call();
126
+ m.hooks.beforeRender.call();
127
+ m.render();
128
+ m.hooks.afterRender.call();
129
+ });
130
+ }
131
+
132
+ layer.render();
133
+ layer.hooks.afterRender.call();
134
+ });
135
+ }
136
+ }, {
137
+ key: "setSubLayerInitOptipn",
138
+ value: function setSubLayerInitOptipn() {
139
+ var _colorAttribute$scale, _sizeAttribute$scale;
140
+
141
+ var _ref = this.parent.getLayerConfig(),
142
+ _ref$zIndex = _ref.zIndex,
143
+ zIndex = _ref$zIndex === void 0 ? 0 : _ref$zIndex,
144
+ _ref$opacity = _ref.opacity,
145
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
146
+ _ref$mask = _ref.mask,
147
+ mask = _ref$mask === void 0 ? false : _ref$mask,
148
+ _ref$stroke = _ref.stroke,
149
+ stroke = _ref$stroke === void 0 ? '#fff' : _ref$stroke,
150
+ _ref$strokeWidth = _ref.strokeWidth,
151
+ strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
152
+ _ref$strokeOpacity = _ref.strokeOpacity,
153
+ strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
154
+ _ref$workerEnabled = _ref.workerEnabled,
155
+ workerEnabled = _ref$workerEnabled === void 0 ? false : _ref$workerEnabled,
156
+ sourceLayer = _ref.sourceLayer;
157
+
158
+ var source = this.parent.getSource();
159
+ var parentParserType = source.getParserType();
160
+ var colorAttribute = this.parent.getAttribute('color');
161
+ var basemapColor = (colorAttribute === null || colorAttribute === void 0 ? void 0 : (_colorAttribute$scale = colorAttribute.scale) === null || _colorAttribute$scale === void 0 ? void 0 : _colorAttribute$scale.field) || '#fff';
162
+ var sizeAttribute = this.parent.getAttribute('size');
163
+ var basemapSize = (sizeAttribute === null || sizeAttribute === void 0 ? void 0 : (_sizeAttribute$scale = sizeAttribute.scale) === null || _sizeAttribute$scale === void 0 ? void 0 : _sizeAttribute$scale.field) || 1;
164
+ var layerShape = getLayerShape(this.parent.type, this.parent);
165
+ this.initOptions = {
166
+ usage: 'basemap',
167
+ layerType: this.parent.type,
168
+ shape: layerShape,
169
+ zIndex: zIndex,
170
+ opacity: opacity,
171
+ sourceLayer: this.getSourceLayer(parentParserType, sourceLayer),
172
+ basemapColor: basemapColor,
173
+ basemapSize: basemapSize,
174
+ mask: getMaskValue(this.parent.type, mask),
175
+ stroke: stroke,
176
+ strokeWidth: strokeWidth,
177
+ strokeOpacity: strokeOpacity,
178
+ // worker
179
+ workerEnabled: workerEnabled
180
+ };
181
+ }
182
+ }, {
183
+ key: "getSourceLayer",
184
+ value: function getSourceLayer(parentParserType, sourceLayer) {
185
+ if (parentParserType === 'geojsonvt') {
186
+ return 'geojsonvt';
187
+ } else if (parentParserType === 'testTile') {
188
+ return 'testTile';
189
+ } else {
190
+ return sourceLayer;
191
+ }
192
+ }
193
+ }, {
194
+ key: "initTileFactory",
195
+ value: function initTileFactory() {
196
+ var source = this.parent.getSource();
197
+ var TileFactory = getTileFactory(this.parent.type, source.parser);
198
+ this.tileFactory = new TileFactory({
199
+ parent: this.parent,
200
+ mapService: this.mapService,
201
+ rendererService: this.rendererService
202
+ });
203
+ }
204
+ }]);
205
+
206
+ return BaseMapTileLayerManager;
207
+ }();
@@ -1,4 +1,4 @@
1
- import { IInteractionTarget, ILayer, ILayerService, IMapService, IPickingService, IRendererService, ITileLayerManager, ITilePickManager, ITransform } from '@antv/l7-core';
1
+ import { IInteractionTarget, ILayer, IMapService, IPickingService, IRendererService, ITileLayerManager, ITilePickManager, ITransform } from '@antv/l7-core';
2
2
  import { Tile } from '@antv/l7-utils';
3
3
  import { ITileConfigManager } from './tileConfigManager';
4
4
  export declare class TileLayerManager implements ITileLayerManager {
@@ -13,7 +13,7 @@ export declare class TileLayerManager implements ITileLayerManager {
13
13
  private initOptions;
14
14
  private rampColorsData;
15
15
  private transforms;
16
- constructor(parent: ILayer, mapService: IMapService, rendererService: IRendererService, pickingService: IPickingService, layerService: ILayerService, transforms: ITransform[]);
16
+ constructor(parent: ILayer, mapService: IMapService, rendererService: IRendererService, pickingService: IPickingService, transforms: ITransform[]);
17
17
  createTile(tile: Tile): {
18
18
  layers: ILayer[];
19
19
  layerIDList: string[];
@@ -8,7 +8,7 @@ import { getLayerShape, getMaskValue } from "../utils";
8
8
  import TileConfigManager from "./tileConfigManager";
9
9
  import TilePickManager from "./tilePickerManager";
10
10
  export var TileLayerManager = /*#__PURE__*/function () {
11
- function TileLayerManager(parent, mapService, rendererService, pickingService, layerService, transforms) {
11
+ function TileLayerManager(parent, mapService, rendererService, pickingService, transforms) {
12
12
  _classCallCheck(this, TileLayerManager);
13
13
 
14
14
  this.parent = parent;
@@ -16,7 +16,7 @@ export var TileLayerManager = /*#__PURE__*/function () {
16
16
  this.mapService = mapService;
17
17
  this.rendererService = rendererService;
18
18
  this.transforms = transforms;
19
- this.tilePickManager = new TilePickManager(parent, rendererService, pickingService, this.children, layerService);
19
+ this.tilePickManager = new TilePickManager(parent, rendererService, pickingService, this.children);
20
20
  this.tileConfigManager = new TileConfigManager();
21
21
  this.setSubLayerInitOptipn();
22
22
  this.setConfigListener();
@@ -1,13 +1,12 @@
1
- import { IInteractionTarget, ILayer, ILayerService, IPickingService, IRendererService, ITilePickManager } from '@antv/l7-core';
1
+ import { IInteractionTarget, ILayer, IPickingService, IRendererService, ITilePickManager } from '@antv/l7-core';
2
2
  import { EventEmitter } from 'eventemitter3';
3
3
  export default class TilePickManager extends EventEmitter implements ITilePickManager {
4
4
  isLastPicked: boolean;
5
5
  private rendererService;
6
6
  private pickingService;
7
- private layerService;
8
7
  private children;
9
8
  private parent;
10
- constructor(parent: ILayer, rendererService: IRendererService, pickingService: IPickingService, children: ILayer[], layerService: ILayerService);
9
+ constructor(parent: ILayer, rendererService: IRendererService, pickingService: IPickingService, children: ILayer[]);
11
10
  /**
12
11
  *
13
12
  * @param layers
@@ -17,7 +17,7 @@ var TilePickManager = /*#__PURE__*/function (_EventEmitter) {
17
17
 
18
18
  var _super = _createSuper(TilePickManager);
19
19
 
20
- function TilePickManager(parent, rendererService, pickingService, children, layerService) {
20
+ function TilePickManager(parent, rendererService, pickingService, children) {
21
21
  var _this;
22
22
 
23
23
  _classCallCheck(this, TilePickManager);
@@ -29,7 +29,6 @@ var TilePickManager = /*#__PURE__*/function (_EventEmitter) {
29
29
  _this.parent = parent;
30
30
  _this.rendererService = rendererService;
31
31
  _this.pickingService = pickingService;
32
- _this.layerService = layerService;
33
32
  _this.children = children;
34
33
  return _this;
35
34
  }
@@ -2,6 +2,7 @@ import { IModelUniform } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class TileModel extends BaseModel {
4
4
  getUninforms(): IModelUniform;
5
+ private getTileLayer;
5
6
  initModels(): never[];
6
7
  buildModels(): never[];
7
8
  protected registerBuiltinAttributes(): void;
@@ -10,6 +10,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
10
10
 
11
11
  import BaseModel from "../../core/BaseModel";
12
12
  import { TMSTileLayer } from "../tmsTileLayer";
13
+ import { TMSBaseMapTileLayer } from "../tmsMapTileLayer";
13
14
 
14
15
  var TileModel = /*#__PURE__*/function (_BaseModel) {
15
16
  _inherits(TileModel, _BaseModel);
@@ -27,13 +28,28 @@ var TileModel = /*#__PURE__*/function (_BaseModel) {
27
28
  value: function getUninforms() {
28
29
  return {};
29
30
  }
31
+ }, {
32
+ key: "getTileLayer",
33
+ value: function getTileLayer(usage) {
34
+ switch (usage) {
35
+ case 'basemap':
36
+ return TMSBaseMapTileLayer;
37
+
38
+ default:
39
+ return TMSTileLayer;
40
+ }
41
+ }
30
42
  }, {
31
43
  key: "initModels",
32
44
  value: function initModels() {
33
45
  var source = this.layer.getSource();
34
46
 
35
- if (source !== null && source !== void 0 && source.data.isTile) {
36
- this.layer.tileLayer = new TMSTileLayer({
47
+ var _this$layer$getLayerC = this.layer.getLayerConfig(),
48
+ usage = _this$layer$getLayerC.usage;
49
+
50
+ if (source !== null && source !== void 0 && source.data.isTile && !this.layer.tileLayer) {
51
+ var tileLayer = this.getTileLayer(usage);
52
+ this.layer.tileLayer = new tileLayer({
37
53
  parent: this.layer,
38
54
  rendererService: this.rendererService,
39
55
  mapService: this.mapService,
@@ -30,7 +30,7 @@ export default class TileFactory implements ITileFactory {
30
30
  };
31
31
  createLayer(tileLayerOption: ILayerTileConfig): any;
32
32
  updateStyle(styles: ITileStyles): string;
33
- getDefautStyleAttributeField(layer: ILayer, type: string): string | string[] | 2;
33
+ getDefautStyleAttributeField(layer: ILayer, type: string): string | string[] | 1;
34
34
  setStyleAttributeField(layer: ILayer, type: ScaleAttributeType, value: IScaleValue | undefined | string | string[]): ILayer | undefined;
35
35
  protected parseScaleValue(value: IScaleValue | string, type: string): (string | number | unknown[])[] | (import("@antv/l7-core").StyleAttributeField | ((...args: any[]) => [] | undefined))[];
36
36
  protected getTile(lng: number, lat: number): Tile;