@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
@@ -1,36 +1,32 @@
1
1
  #define Animate 0.0
2
2
  #define LineTexture 1.0
3
3
 
4
- uniform float u_opacity : 1.0;
5
- uniform float u_textureBlend;
6
- uniform float u_iconStepCount;
7
-
8
- varying vec4 v_color;
9
-
10
4
  // line texture
11
5
  uniform float u_line_texture;
12
6
  uniform sampler2D u_texture;
13
7
  uniform vec2 u_textSize;
14
-
15
- varying vec2 v_iconMapUV;
16
- varying float v_blur;
17
-
18
8
  uniform float u_linearColor: 0;
19
9
  uniform vec4 u_sourceColor;
20
10
  uniform vec4 u_targetColor;
11
+ uniform float u_opacity : 1.0;
12
+ uniform float u_textureBlend;
13
+ uniform float u_iconStepCount;
14
+ uniform float u_time;
15
+ uniform vec4 u_aimate: [ 1., 2., 1.0, 0.2 ]; // 控制运动
21
16
 
22
- #pragma include "picking"
17
+ varying vec2 v_iconMapUV;
18
+ varying float v_blur;
19
+ varying float v_radio;
20
+ varying vec4 v_color;
21
+ varying vec4 v_dataset;
23
22
 
24
- uniform float u_time;
25
- uniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ]; // 控制运动
23
+ #pragma include "picking"
26
24
 
27
- varying mat4 styleMappingMat;
28
- // [animate, duration, interval, trailLength],
29
25
  void main() {
30
- float opacity = styleMappingMat[0][0];
26
+ float opacity = u_opacity;
31
27
  float animateSpeed = 0.0; // 运动速度
32
- float d_distance_ratio = styleMappingMat[3].r; // 当前点位距离占线总长的比例
33
- float v = styleMappingMat[3].a;
28
+ float d_distance_ratio = v_dataset.r; // 当前点位距离占线总长的比例
29
+ float v = v_dataset.a;
34
30
 
35
31
  if(u_linearColor == 1.0) { // 使用渐变颜色
36
32
  gl_FragColor = mix(u_sourceColor, u_targetColor, v);
@@ -48,10 +44,10 @@ void main() {
48
44
  }
49
45
 
50
46
  if(u_line_texture == LineTexture) { // while load texture
51
- float aDistance = styleMappingMat[3].g; // 当前顶点的距离
52
- float d_texPixelLen = styleMappingMat[3].b; // 贴图的像素长度,根据地图层级缩放
47
+ float aDistance = v_dataset.g; // 当前顶点的距离
48
+ float d_texPixelLen = v_dataset.b; // 贴图的像素长度,根据地图层级缩放
53
49
  float u = fract(mod(aDistance, d_texPixelLen)/d_texPixelLen - animateSpeed);
54
- float v = styleMappingMat[3].a; // 线图层贴图部分的 v 坐标值
50
+ float v = v_dataset.a; // 线图层贴图部分的 v 坐标值
55
51
 
56
52
  // 计算纹理间隔 start
57
53
  float flag = 0.0;
@@ -0,0 +1,77 @@
1
+ #define Animate 0.0
2
+
3
+ attribute float a_Miter;
4
+ attribute vec4 a_Color;
5
+ attribute vec2 a_Size;
6
+ attribute vec3 a_Normal;
7
+ attribute vec3 a_Position;
8
+ attribute vec2 a_iconMapUV;
9
+ attribute float a_Total_Distance;
10
+ attribute float a_Distance;
11
+
12
+ uniform mat4 u_ModelMatrix;
13
+ uniform mat4 u_Mvp;
14
+ uniform vec4 u_aimate: [ 1., 2., 1.0, 0.2 ];
15
+ uniform float u_icon_step: 100;
16
+ uniform float u_heightfixed;
17
+ uniform float u_linearColor: 0;
18
+
19
+ #pragma include "projection"
20
+ #pragma include "light"
21
+ #pragma include "picking"
22
+
23
+ // texV 线图层 - 贴图部分的 v 坐标(线的宽度方向)
24
+ varying vec2 v_iconMapUV;
25
+ varying vec4 v_color;
26
+ varying float v_blur;
27
+ varying float v_radio;
28
+ varying vec4 v_dataset;
29
+
30
+ void main() {
31
+
32
+
33
+ float d_distance_ratio; // 当前点位距离占线总长的比例
34
+ float d_texPixelLen; // 贴图的像素长度,根据地图层级缩放
35
+
36
+ v_iconMapUV = a_iconMapUV;
37
+ if(u_heightfixed < 1.0) { // 高度随 zoom 调整
38
+ d_texPixelLen = project_pixel(u_icon_step);
39
+ } else {
40
+ d_texPixelLen = u_icon_step;
41
+ }
42
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) {
43
+ d_texPixelLen *= 10.0;
44
+ }
45
+
46
+ if(u_aimate.x == Animate || u_linearColor == 1.0) {
47
+ d_distance_ratio = a_Distance / a_Total_Distance;
48
+ }
49
+
50
+ float miter = (a_Miter + 1.0)/2.0;
51
+ // 设置数据集的参数
52
+ v_dataset[0] = d_distance_ratio; // 当前点位距离占线总长的比例
53
+ v_dataset[1] = a_Distance; // 当前顶点的距离
54
+ v_dataset[2] = d_texPixelLen; // 贴图的像素长度,根据地图层级缩放
55
+ v_dataset[3] = miter; // 线图层贴图部分的 v 坐标值 0 - 1
56
+
57
+ vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0));
58
+
59
+ float originSize = a_Size.x; // 固定高度
60
+ if(u_heightfixed < 1.0) { // 高度随 zoom 调整
61
+ originSize = project_float_pixel(a_Size.x);
62
+ }
63
+
64
+ float wallHeight = originSize * miter;
65
+ float lightWeight = calc_lighting(vec4(project_pos.xy, wallHeight, 1.0));
66
+
67
+ v_blur = min(project_float_pixel(2.0) / originSize, 0.05);
68
+ v_color = vec4(a_Color.rgb * lightWeight, a_Color.w);
69
+
70
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
71
+ gl_Position = u_Mvp * (vec4(project_pos.xy, wallHeight, 1.0));
72
+ } else {
73
+ gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, wallHeight, 1.0));
74
+ }
75
+
76
+ setPickingColor(a_PickingColor);
77
+ }
package/lib/mask/index.js CHANGED
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -25,6 +27,14 @@ var _BaseLayer2 = _interopRequireDefault(require("../core/BaseLayer"));
25
27
 
26
28
  var _models = _interopRequireDefault(require("./models"));
27
29
 
30
+ var _l7Core = require("@antv/l7-core");
31
+
32
+ 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; } } }; }
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
28
38
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
39
 
30
40
  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; } }
@@ -49,25 +59,92 @@ var MaskLayer = /*#__PURE__*/function (_BaseLayer) {
49
59
  }
50
60
 
51
61
  (0, _createClass2.default)(MaskLayer, [{
62
+ key: "init",
63
+ value: function init() {
64
+ var _this2 = this;
65
+
66
+ // 设置配置项
67
+ var sceneId = this.container.get(_l7Core.TYPES.SceneID);
68
+ this.configService.setLayerConfig(sceneId, this.id, this.rawConfig);
69
+ this.layerType = this.rawConfig.layerType;
70
+ this.rendererService = this.container.get(_l7Core.TYPES.IRendererService);
71
+ this.layerService = this.container.get(_l7Core.TYPES.ILayerService);
72
+ this.mapService = this.container.get(_l7Core.TYPES.IMapService);
73
+ this.cameraService = this.container.get(_l7Core.TYPES.ICameraService);
74
+ this.coordinateService = this.container.get(_l7Core.TYPES.ICoordinateSystemService);
75
+ this.shaderModuleService = this.container.get(_l7Core.TYPES.IShaderModuleService);
76
+ this.postProcessingPassFactory = this.container.get(_l7Core.TYPES.IFactoryPostProcessingPass);
77
+ this.normalPassFactory = this.container.get(_l7Core.TYPES.IFactoryNormalPass); // 图层容器服务
78
+
79
+ this.styleAttributeService = this.container.get(_l7Core.TYPES.IStyleAttributeService); // 完成样式服务注册完成前添加的属性
80
+
81
+ this.pendingStyleAttributes.forEach(function (_ref) {
82
+ var attributeName = _ref.attributeName,
83
+ attributeField = _ref.attributeField,
84
+ attributeValues = _ref.attributeValues,
85
+ updateOptions = _ref.updateOptions;
86
+
87
+ _this2.styleAttributeService.updateStyleAttribute(attributeName, {
88
+ // @ts-ignore
89
+ scale: (0, _objectSpread2.default)({
90
+ field: attributeField
91
+ }, _this2.splitValuesAndCallbackInAttribute( // @ts-ignore
92
+ attributeValues, // @ts-ignore
93
+ _this2.getLayerConfig()[attributeName]))
94
+ }, // @ts-ignore
95
+ updateOptions);
96
+ });
97
+ this.pendingStyleAttributes = []; // 获取插件集
98
+
99
+ this.plugins = this.container.getAll(_l7Core.TYPES.ILayerPlugin); // 完成插件注册,传入场景和图层容器内的服务
100
+
101
+ var _iterator = _createForOfIteratorHelper(this.plugins),
102
+ _step;
103
+
104
+ try {
105
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
106
+ var plugin = _step.value;
107
+ plugin.apply(this, {
108
+ rendererService: this.rendererService,
109
+ mapService: this.mapService,
110
+ styleAttributeService: this.styleAttributeService,
111
+ normalPassFactory: this.normalPassFactory,
112
+ postProcessingPassFactory: this.postProcessingPassFactory
113
+ });
114
+ } // 触发 init 生命周期插件
115
+
116
+ } catch (err) {
117
+ _iterator.e(err);
118
+ } finally {
119
+ _iterator.f();
120
+ }
121
+
122
+ this.hooks.init.call();
123
+ this.hooks.afterInit.call();
124
+ return this;
125
+ }
126
+ }, {
52
127
  key: "buildModels",
53
128
  value: function buildModels() {
54
- var _this2 = this;
129
+ var _this3 = this;
55
130
 
56
131
  var shape = this.getModelType();
57
132
  this.layerModel = new _models.default[shape](this);
58
133
  this.layerModel.initModels(function (models) {
59
- _this2.models = models;
134
+ _this3.models = models;
60
135
 
61
- _this2.renderLayers();
136
+ _this3.emit('modelLoaded', null);
62
137
  });
63
138
  }
64
139
  }, {
65
140
  key: "rebuildModels",
66
141
  value: function rebuildModels() {
67
- var _this3 = this;
142
+ var _this4 = this;
68
143
 
69
144
  this.layerModel.buildModels(function (models) {
70
- return _this3.models = models;
145
+ _this4.models = models;
146
+
147
+ _this4.emit('modelLoaded', null);
71
148
  });
72
149
  }
73
150
  }, {
@@ -23,6 +23,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
23
 
24
24
  var _l7Core = require("@antv/l7-core");
25
25
 
26
+ var _l7Utils = require("@antv/l7-utils");
27
+
26
28
  var _lodash = require("lodash");
27
29
 
28
30
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
@@ -33,11 +35,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
33
35
 
34
36
  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; } }
35
37
 
36
- /* babel-plugin-inline-import '../shaders/mask_frag.glsl' */
37
- var mask_frag = "uniform float u_opacity;\nvarying vec4 v_Color;\n\nvoid main() {\n gl_FragColor = v_Color;\n gl_FragColor.a *= u_opacity;\n}\n";
38
+ /* babel-plugin-inline-import '../../shader/minify_frag.glsl' */
39
+ var mask_frag = "uniform float u_opacity : 1.0;\nuniform vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n gl_FragColor.a *= u_opacity;\n}\n";
38
40
 
39
41
  /* babel-plugin-inline-import '../shaders/mask_vert.glsl' */
40
- var mask_vert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_Color;\n\n#pragma include \"projection\"\n\nvoid main() {\n\n v_Color = a_Color;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n}\n\n";
42
+ var mask_vert = "attribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\n#pragma include \"projection\"\n\nvoid main() {\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.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n}\n\n";
41
43
 
42
44
  var MaskModel = /*#__PURE__*/function (_BaseModel) {
43
45
  (0, _inherits2.default)(MaskModel, _BaseModel);
@@ -54,10 +56,13 @@ var MaskModel = /*#__PURE__*/function (_BaseModel) {
54
56
  value: function getUninforms() {
55
57
  var _ref = this.layer.getLayerConfig(),
56
58
  _ref$opacity = _ref.opacity,
57
- opacity = _ref$opacity === void 0 ? 0 : _ref$opacity;
59
+ opacity = _ref$opacity === void 0 ? 0 : _ref$opacity,
60
+ _ref$color = _ref.color,
61
+ color = _ref$color === void 0 ? '#000' : _ref$color;
58
62
 
59
63
  return {
60
- u_opacity: (0, _lodash.isNumber)(opacity) ? opacity : 0.0
64
+ u_opacity: (0, _lodash.isNumber)(opacity) ? opacity : 0.0,
65
+ u_color: (0, _l7Utils.rgb2arr)(color)
61
66
  };
62
67
  }
63
68
  }, {
@@ -95,7 +100,8 @@ var MaskModel = /*#__PURE__*/function (_BaseModel) {
95
100
  zfail: _l7Core.gl.REPLACE,
96
101
  zpass: _l7Core.gl.REPLACE
97
102
  }
98
- }
103
+ },
104
+ pick: false
99
105
  }).then(function (model) {
100
106
  callbackModel([model]);
101
107
  }).catch(function (err) {
@@ -120,10 +126,8 @@ var MaskModel = /*#__PURE__*/function (_BaseModel) {
120
126
  }, {
121
127
  key: "clearModels",
122
128
  value: function clearModels() {
123
- var _this$dataTexture;
124
-
125
- (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
126
- this.layerService.clear();
129
+ var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
130
+ refresh && this.layerService.clear();
127
131
  }
128
132
  }, {
129
133
  key: "registerBuiltinAttributes",
@@ -1,17 +1,11 @@
1
- attribute vec4 a_Color;
2
1
  attribute vec3 a_Position;
3
2
  uniform mat4 u_ModelMatrix;
4
3
  uniform mat4 u_Mvp;
5
4
 
6
- varying vec4 v_Color;
7
-
8
5
  #pragma include "projection"
9
6
 
10
7
  void main() {
11
-
12
- v_Color = a_Color;
13
8
  vec4 project_pos = project_position(vec4(a_Position, 1.0));
14
- // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
15
9
 
16
10
  if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
17
11
  gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));
@@ -33,14 +33,13 @@ var _lodash = require("lodash");
33
33
 
34
34
  require("reflect-metadata");
35
35
 
36
- var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
36
+ var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
37
37
 
38
- var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inversify.inject)(_l7Core.TYPES.IGlobalConfigService), _dec3 = (0, _inversify.inject)(_l7Core.TYPES.IMapService), _dec4 = (0, _inversify.inject)(_l7Core.TYPES.IFontService), _dec(_class = (_class2 = /*#__PURE__*/function () {
38
+ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inversify.inject)(_l7Core.TYPES.IMapService), _dec3 = (0, _inversify.inject)(_l7Core.TYPES.IFontService), _dec(_class = (_class2 = /*#__PURE__*/function () {
39
39
  function DataMappingPlugin() {
40
40
  (0, _classCallCheck2.default)(this, DataMappingPlugin);
41
- (0, _initializerDefineProperty2.default)(this, "configService", _descriptor, this);
42
- (0, _initializerDefineProperty2.default)(this, "mapService", _descriptor2, this);
43
- (0, _initializerDefineProperty2.default)(this, "fontService", _descriptor3, this);
41
+ (0, _initializerDefineProperty2.default)(this, "mapService", _descriptor, this);
42
+ (0, _initializerDefineProperty2.default)(this, "fontService", _descriptor2, this);
44
43
  }
45
44
 
46
45
  (0, _createClass2.default)(DataMappingPlugin, [{
@@ -63,8 +62,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
63
62
  styleAttributeService: styleAttributeService
64
63
  });
65
64
  });
66
- } // this.generateMaping(layer, { styleAttributeService });
67
-
65
+ }
68
66
  });
69
67
  layer.hooks.beforeRenderData.tap('DataMappingPlugin', function () {
70
68
  layer.dataState.dataMappingNeedUpdate = false;
@@ -80,8 +78,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
80
78
  styleAttributeService: styleAttributeService
81
79
  });
82
80
  });
83
- } // this.generateMaping(layer, { styleAttributeService });
84
-
81
+ }
85
82
 
86
83
  return true;
87
84
  }); // remapping before render
@@ -112,10 +109,14 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
112
109
  if (attributesToRemapping.length) {
113
110
  // 过滤数据
114
111
  if (filter !== null && filter !== void 0 && filter.needRemapping) {
115
- layer.setEncodedData(_this.mapping(layer, attributes, filterData, undefined, bottomColor));
112
+ var encodeData = _this.mapping(layer, attributes, filterData, undefined, bottomColor);
113
+
114
+ layer.setEncodedData(encodeData);
116
115
  filter.needRemapping = false;
117
116
  } else {
118
- layer.setEncodedData(_this.mapping(layer, attributesToRemapping, filterData, layer.getEncodedData(), bottomColor));
117
+ var _encodeData = _this.mapping(layer, attributesToRemapping, filterData, layer.getEncodedData(), bottomColor);
118
+
119
+ layer.setEncodedData(_encodeData);
119
120
  } // 处理文本更新
120
121
 
121
122
 
@@ -141,18 +142,11 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
141
142
  });
142
143
  }
143
144
 
144
- layer.setEncodedData(this.mapping(layer, attributes, filterData, undefined, bottomColor)); // 对外暴露事件
145
+ var encodeData = this.mapping(layer, attributes, filterData, undefined, bottomColor);
146
+ layer.setEncodedData(encodeData); // 对外暴露事件
145
147
 
146
148
  layer.emit('dataUpdate', null);
147
149
  }
148
- }, {
149
- key: "getArrowPoints",
150
- value: function getArrowPoints(p1, p2) {
151
- var dir = [p2[0] - p1[0], p2[1] - p1[1]];
152
- var normalizeDir = (0, _l7Utils.normalize)(dir);
153
- var arrowPoint = [p1[0] + normalizeDir[0] * 0.0001, p1[1] + normalizeDir[1] * 0.0001];
154
- return arrowPoint;
155
- }
156
150
  }, {
157
151
  key: "mapping",
158
152
  value: function mapping(layer, attributes, data, predata, minimumColor) {
@@ -162,25 +156,28 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
162
156
  _ref3$arrow = _ref3.arrow,
163
157
  arrow = _ref3$arrow === void 0 ? {
164
158
  enable: false
165
- } : _ref3$arrow;
159
+ } : _ref3$arrow,
160
+ usage = _ref3.usage;
161
+
162
+ if (usage === 'basemap') {
163
+ return this.mapLayerMapping(layer, attributes, data, predata);
164
+ }
166
165
 
166
+ var usedAttributes = attributes.filter(function (attribute) {
167
+ return attribute.scale !== undefined;
168
+ });
167
169
  var mappedData = data.map(function (record, i) {
168
170
  var preRecord = predata ? predata[i] : {};
169
171
  var encodeRecord = (0, _objectSpread2.default)({
170
172
  id: record._id,
171
173
  coordinates: record.coordinates
172
174
  }, preRecord);
173
- attributes.filter(function (attribute) {
174
- return attribute.scale !== undefined;
175
- }).forEach(function (attribute) {
176
- // console.log('record', record)
177
- var values = _this3.applyAttributeMapping(attribute, record, minimumColor); // console.log('values', values)
178
-
175
+ usedAttributes.forEach(function (attribute) {
176
+ var values = _this3.applyAttributeMapping(attribute, record, minimumColor);
179
177
 
180
178
  attribute.needRemapping = false; // TODO: 支持每个属性配置 postprocess
181
179
 
182
180
  if (attribute.name === 'color') {
183
- // console.log('attribute', attribute)
184
181
  values = values.map(function (c) {
185
182
  return (0, _l7Utils.rgb2arr)(c);
186
183
  });
@@ -196,26 +193,75 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
196
193
 
197
194
  if (arrow.enable && (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')) {
198
195
  // 只有在线图层且支持配置箭头的时候进行插入顶点的处理
199
- var coords = encodeRecord.coordinates;
196
+ var coords = encodeRecord.coordinates; // @ts-ignore
200
197
 
201
- var arrowPoint = _this3.getArrowPoints(coords[0], coords[1]);
198
+ if (layer.arrowInsertCount < layer.encodeDataLength) {
199
+ // Tip: arrowInsert 的判断用于确保每一条线数据 arrow 的属性点只会被植入一次
200
+ var arrowPoint = _this3.getArrowPoints(coords[0], coords[1]);
202
201
 
203
- encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);
202
+ encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint); // @ts-ignore
203
+
204
+ layer.arrowInsertCount++;
205
+ }
204
206
  }
205
207
 
206
208
  return encodeRecord;
207
- }); // console.log('mappedData', mappedData)
208
- // 调整数据兼容 Amap2.0
209
+ }); // 调整数据兼容 Amap2.0
209
210
 
210
211
  this.adjustData2Amap2Coordinates(mappedData, layer); // 调整数据兼容 SimpleCoordinates
211
212
 
212
213
  this.adjustData2SimpleCoordinates(mappedData);
213
214
  return mappedData;
214
215
  }
216
+ }, {
217
+ key: "mapLayerMapping",
218
+ value: function mapLayerMapping(layer, attributes, data, predata) {
219
+ var _this4 = this;
220
+
221
+ var usedAttributes = attributes.filter(function (attribute) {
222
+ return attribute.scale !== undefined;
223
+ });
224
+ var mappedData = data.map(function (record, i) {
225
+ var preRecord = predata ? predata[i] : {};
226
+ var encodeRecord = (0, _objectSpread2.default)({
227
+ id: record._id,
228
+ coordinates: record.coordinates
229
+ }, preRecord);
230
+ usedAttributes.forEach(function (attribute) {
231
+ var _layer$shapeOption;
232
+
233
+ if (attribute.name === 'shape' && // @ts-ignore
234
+ ((_layer$shapeOption = layer.shapeOption) === null || _layer$shapeOption === void 0 ? void 0 : _layer$shapeOption.field) === 'simple') {
235
+ encodeRecord[attribute.name] = 'simple';
236
+ attribute.needRemapping = false;
237
+ } else {
238
+ var values = _this4.applyMapLayerAttributeMapping(attribute, record);
239
+
240
+ attribute.needRemapping = false; // @ts-ignore
241
+
242
+ encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values; // 增加对 layer/text/iconfont unicode 映射的解析
243
+
244
+ if (attribute.name === 'shape') {
245
+ encodeRecord.shape = _this4.fontService.getIconFontKey(encodeRecord[attribute.name]);
246
+ }
247
+ }
248
+ });
249
+
250
+ if (encodeRecord.size === undefined) {
251
+ // in case not set size
252
+ encodeRecord.size = 1;
253
+ }
254
+
255
+ return encodeRecord;
256
+ }); // 调整数据兼容 Amap2.0
257
+
258
+ this.adjustData2Amap2Coordinates(mappedData, layer);
259
+ return mappedData;
260
+ }
215
261
  }, {
216
262
  key: "adjustData2Amap2Coordinates",
217
263
  value: function adjustData2Amap2Coordinates(mappedData, layer) {
218
- var _this4 = this;
264
+ var _this5 = this;
219
265
 
220
266
  // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移
221
267
  if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version['GAODE2.x']) {
@@ -234,7 +280,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
234
280
  // @ts-ignore
235
281
  // d.coordinates = this.mapService.lngLatToCoord(d.coordinates);
236
282
 
237
- d.coordinates = _this4.mapService.lngLatToCoordByLayer(d.coordinates, layerCenter);
283
+ d.coordinates = _this5.mapService.lngLatToCoordByLayer(d.coordinates, layerCenter);
238
284
  });
239
285
  } else {
240
286
  // 连续的线、面数据
@@ -249,35 +295,35 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
249
295
  // @ts-ignore
250
296
  // d.coordinates = this.mapService.lngLatToCoords(d.coordinates);
251
297
 
252
- d.coordinates = _this4.mapService.lngLatToCoordsByLayer(d.coordinates, layerCenter);
298
+ d.coordinates = _this5.mapService.lngLatToCoordsByLayer(d.coordinates, layerCenter);
253
299
  });
254
300
  }
255
301
  }
256
302
  }
257
- }, {
258
- key: "getLayerCenter",
259
- value: function getLayerCenter(layer) {
260
- var source = layer.getSource();
261
- return source.center;
262
- }
263
303
  }, {
264
304
  key: "adjustData2SimpleCoordinates",
265
305
  value: function adjustData2SimpleCoordinates(mappedData) {
266
- var _this5 = this;
306
+ var _this6 = this;
267
307
 
268
308
  if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version.SIMPLE) {
269
309
  mappedData.map(function (d) {
270
310
  if (!d.simpleCoordinate) {
271
- d.coordinates = _this5.unProjectCoordinates(d.coordinates);
311
+ d.coordinates = _this6.unProjectCoordinates(d.coordinates);
272
312
  d.simpleCoordinate = true;
273
313
  }
274
314
  });
275
315
  }
276
316
  }
317
+ }, {
318
+ key: "getLayerCenter",
319
+ value: function getLayerCenter(layer) {
320
+ var source = layer.getSource();
321
+ return source.center;
322
+ }
277
323
  }, {
278
324
  key: "unProjectCoordinates",
279
325
  value: function unProjectCoordinates(coordinates) {
280
- var _this6 = this;
326
+ var _this7 = this;
281
327
 
282
328
  if (typeof coordinates[0] === 'number') {
283
329
  return this.mapService.simpleMapCoord.unproject(coordinates);
@@ -290,7 +336,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
290
336
  // @ts-ignore
291
337
  var c1 = [];
292
338
  coord.map(function (co) {
293
- c1.push(_this6.mapService.simpleMapCoord.unproject(co));
339
+ c1.push(_this7.mapService.simpleMapCoord.unproject(co));
294
340
  }); // @ts-ignore
295
341
 
296
342
  coords.push(c1);
@@ -302,7 +348,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
302
348
  var _coords = []; // @ts-ignore
303
349
 
304
350
  coordinates.map(function (coord) {
305
- _coords.push(_this6.mapService.simpleMapCoord.unproject(coord));
351
+ _coords.push(_this7.mapService.simpleMapCoord.unproject(coord));
306
352
  }); // @ts-ignore
307
353
 
308
354
  return _coords;
@@ -328,9 +374,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
328
374
  // TODO:多字段,常量
329
375
  params.push(record[field]);
330
376
  }
331
- }); // console.log('params', params)
332
- // console.log('attribute', attribute)
333
-
377
+ });
334
378
  var mappingResult = attribute.mapping ? attribute.mapping(params) : [];
335
379
 
336
380
  if (attribute.name === 'color' && !(0, _l7Utils.isColor)(mappingResult[0])) {
@@ -339,19 +383,45 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
339
383
 
340
384
  return mappingResult; // return attribute.mapping ? attribute.mapping(params) : [];
341
385
  }
386
+ }, {
387
+ key: "applyMapLayerAttributeMapping",
388
+ value: function applyMapLayerAttributeMapping(attribute, record) {
389
+ var _attribute$scale3;
390
+
391
+ if (!attribute.scale) {
392
+ return [];
393
+ }
394
+
395
+ var scalers = (attribute === null || attribute === void 0 ? void 0 : (_attribute$scale3 = attribute.scale) === null || _attribute$scale3 === void 0 ? void 0 : _attribute$scale3.scalers) || [];
396
+ var params = [];
397
+ scalers.forEach(function (_ref5) {
398
+ var _attribute$scale4;
399
+
400
+ var field = _ref5.field;
401
+
402
+ if (record.hasOwnProperty(field) || ((_attribute$scale4 = attribute.scale) === null || _attribute$scale4 === void 0 ? void 0 : _attribute$scale4.type) === 'variable') {
403
+ params.push(record[field]);
404
+ }
405
+ });
406
+ var mappingResult = attribute.mapping ? attribute.mapping(params) : [];
407
+ return mappingResult;
408
+ }
409
+ }, {
410
+ key: "getArrowPoints",
411
+ value: function getArrowPoints(p1, p2) {
412
+ var dir = [p2[0] - p1[0], p2[1] - p1[1]];
413
+ var normalizeDir = (0, _l7Utils.normalize)(dir);
414
+ var arrowPoint = [p1[0] + normalizeDir[0] * 0.0001, p1[1] + normalizeDir[1] * 0.0001];
415
+ return arrowPoint;
416
+ }
342
417
  }]);
343
418
  return DataMappingPlugin;
344
- }(), (_descriptor = (0, _applyDecoratedDescriptor2.default)(_class2.prototype, "configService", [_dec2], {
345
- configurable: true,
346
- enumerable: true,
347
- writable: true,
348
- initializer: null
349
- }), _descriptor2 = (0, _applyDecoratedDescriptor2.default)(_class2.prototype, "mapService", [_dec3], {
419
+ }(), (_descriptor = (0, _applyDecoratedDescriptor2.default)(_class2.prototype, "mapService", [_dec2], {
350
420
  configurable: true,
351
421
  enumerable: true,
352
422
  writable: true,
353
423
  initializer: null
354
- }), _descriptor3 = (0, _applyDecoratedDescriptor2.default)(_class2.prototype, "fontService", [_dec4], {
424
+ }), _descriptor2 = (0, _applyDecoratedDescriptor2.default)(_class2.prototype, "fontService", [_dec3], {
355
425
  configurable: true,
356
426
  enumerable: true,
357
427
  writable: true,