@antv/l7-layers 2.9.19 → 2.9.22-alpha.0

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 (710) hide show
  1. package/es/Geometry/index.js +4 -5
  2. package/es/Geometry/models/billboard.js +23 -9
  3. package/es/Geometry/models/index.js +4 -5
  4. package/es/Geometry/models/plane.js +25 -13
  5. package/es/Geometry/models/sprite.js +11 -21
  6. package/es/Geometry/shaders/billboard_frag.glsl +13 -0
  7. package/es/Geometry/shaders/billboard_vert.glsl +50 -0
  8. package/es/Geometry/shaders/plane_frag.glsl +22 -0
  9. package/es/Geometry/shaders/plane_vert.glsl +53 -0
  10. package/es/Geometry/shaders/sprite_frag.glsl +21 -0
  11. package/es/Geometry/shaders/sprite_vert.glsl +28 -0
  12. package/es/canvas/index.js +4 -5
  13. package/es/canvas/models/canvas.js +6 -12
  14. package/es/canvas/models/index.js +2 -3
  15. package/es/citybuliding/building.js +4 -5
  16. package/es/citybuliding/models/build.js +19 -22
  17. package/es/citybuliding/shaders/build_frag.glsl +117 -0
  18. package/es/citybuliding/shaders/build_vert.glsl +54 -0
  19. package/es/core/BaseLayer.js +205 -157
  20. package/es/core/BaseModel.js +135 -76
  21. package/es/core/interface.d.ts +11 -1
  22. package/es/core/interface.js +15 -2
  23. package/es/core/schema.js +4 -2
  24. package/es/core/shape/Path.js +8 -3
  25. package/es/core/shape/extrude.js +9 -4
  26. package/es/core/triangulation.d.ts +1 -0
  27. package/es/core/triangulation.js +123 -24
  28. package/es/earth/index.js +11 -7
  29. package/es/earth/models/atmosphere.js +15 -7
  30. package/es/earth/models/base.js +19 -7
  31. package/es/earth/models/bloomsphere.js +15 -7
  32. package/es/earth/shaders/atmosphere_frag.glsl +17 -0
  33. package/es/earth/shaders/atmosphere_vert.glsl +26 -0
  34. package/es/earth/shaders/base_frag.glsl +13 -0
  35. package/es/earth/shaders/base_vert.glsl +52 -0
  36. package/es/earth/shaders/bloomsphere_frag.glsl +15 -0
  37. package/es/earth/shaders/bloomsphere_vert.glsl +20 -0
  38. package/es/earth/utils.js +28 -5
  39. package/es/heatmap/index.js +8 -7
  40. package/es/heatmap/models/grid.js +11 -5
  41. package/es/heatmap/models/grid3d.js +18 -7
  42. package/es/heatmap/models/heatmap.js +45 -44
  43. package/es/heatmap/models/hexagon.js +14 -6
  44. package/es/heatmap/models/index.js +5 -6
  45. package/es/heatmap/shaders/grid_vert.glsl +42 -0
  46. package/es/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  47. package/es/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  48. package/es/heatmap/shaders/heatmap_frag.glsl +47 -0
  49. package/es/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  50. package/es/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  51. package/es/heatmap/shaders/heatmap_vert.glsl +10 -0
  52. package/es/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  53. package/es/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  54. package/es/heatmap/shaders/hexagon_frag.glsl +12 -0
  55. package/es/heatmap/shaders/hexagon_vert.glsl +41 -0
  56. package/es/heatmap/triangulation.js +2 -2
  57. package/es/image/index.js +4 -5
  58. package/es/image/models/dataImage.js +21 -31
  59. package/es/image/models/image.js +19 -25
  60. package/es/image/models/index.js +3 -4
  61. package/es/image/shaders/dataImage_frag.glsl +38 -0
  62. package/es/image/shaders/image_frag.glsl +9 -0
  63. package/es/image/shaders/image_vert.glsl +17 -0
  64. package/es/index.d.ts +2 -2
  65. package/es/index.js +92 -30
  66. package/es/line/index.js +4 -5
  67. package/es/line/models/arc.js +38 -15
  68. package/es/line/models/arc_3d.js +33 -14
  69. package/es/line/models/earthArc_3d.js +33 -14
  70. package/es/line/models/great_circle.js +25 -13
  71. package/es/line/models/half.js +33 -12
  72. package/es/line/models/index.js +12 -13
  73. package/es/line/models/line.js +57 -17
  74. package/es/line/models/linearline.js +32 -14
  75. package/es/line/models/simpleLine.js +26 -11
  76. package/es/line/models/tile.js +28 -10
  77. package/es/line/models/wall.js +30 -13
  78. package/es/line/shaders/arc_chunks.vert.glsl +21 -0
  79. package/es/line/shaders/dash/arc_dash_frag.glsl +28 -0
  80. package/es/line/shaders/dash/arc_dash_vert.glsl +148 -0
  81. package/es/line/shaders/dash/line_dash_frag.glsl +31 -0
  82. package/es/line/shaders/dash/line_dash_vert.glsl +93 -0
  83. package/es/line/shaders/half/line_half_frag.glsl +53 -0
  84. package/es/line/shaders/half/line_half_vert.glsl +169 -0
  85. package/es/line/shaders/line_arc2d_vert.glsl +114 -0
  86. package/es/line/shaders/line_arc_3d_frag.glsl +103 -0
  87. package/es/line/shaders/line_arc_3d_vert.glsl +207 -0
  88. package/es/line/shaders/line_arc_frag.glsl +89 -0
  89. package/es/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  90. package/es/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  91. package/es/line/shaders/line_arc_vert.glsl +174 -0
  92. package/es/line/shaders/line_bezier_vert.glsl +85 -0
  93. package/es/line/shaders/line_frag.glsl +100 -0
  94. package/es/line/shaders/line_vert.glsl +192 -0
  95. package/es/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  96. package/es/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  97. package/es/line/shaders/linear/arc_linear_frag.glsl +38 -0
  98. package/es/line/shaders/linear/arc_linear_vert.glsl +138 -0
  99. package/es/line/shaders/linear/line_linear_frag.glsl +27 -0
  100. package/es/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  101. package/es/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  102. package/es/line/shaders/simple/simpleline_frag.glsl +10 -0
  103. package/es/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  104. package/es/line/shaders/simple/simpleline_vert.glsl +78 -0
  105. package/es/line/shaders/tile/line_tile_frag.glsl +79 -0
  106. package/es/line/shaders/tile/line_tile_vert.glsl +210 -0
  107. package/es/line/shaders/wall_frag.glsl +93 -0
  108. package/es/line/shaders/wall_vert.glsl +111 -0
  109. package/es/mask/index.js +4 -5
  110. package/es/mask/models/fill.js +11 -8
  111. package/es/mask/models/index.js +2 -3
  112. package/es/mask/shaders/mask_frag.glsl +7 -0
  113. package/es/mask/shaders/mask_vert.glsl +22 -0
  114. package/es/plugins/DataMappingPlugin.js +71 -34
  115. package/es/plugins/DataSourcePlugin.js +12 -10
  116. package/es/plugins/FeatureScalePlugin.js +44 -24
  117. package/es/plugins/LayerAnimateStylePlugin.js +6 -7
  118. package/es/plugins/LayerModelPlugin.js +16 -7
  119. package/es/plugins/LayerStylePlugin.js +7 -3
  120. package/es/plugins/LightingPlugin.js +21 -13
  121. package/es/plugins/MultiPassRendererPlugin.js +21 -8
  122. package/es/plugins/PixelPickingPlugin.js +33 -11
  123. package/es/plugins/RegisterStyleAttributePlugin.js +10 -3
  124. package/es/plugins/ShaderUniformPlugin.js +24 -10
  125. package/es/plugins/UpdateModelPlugin.js +7 -3
  126. package/es/plugins/UpdateStyleAttributePlugin.js +20 -7
  127. package/es/point/index.js +12 -6
  128. package/es/point/models/earthExtrude.js +30 -12
  129. package/es/point/models/earthFill.js +25 -13
  130. package/es/point/models/extrude.js +30 -12
  131. package/es/point/models/fill.js +50 -15
  132. package/es/point/models/fillmage.js +46 -17
  133. package/es/point/models/image.js +20 -12
  134. package/es/point/models/index.js +14 -14
  135. package/es/point/models/normal.js +15 -7
  136. package/es/point/models/radar.js +33 -13
  137. package/es/point/models/simplePoint.js +17 -9
  138. package/es/point/models/text.js +77 -30
  139. package/es/point/models/tile.js +33 -12
  140. package/es/point/shaders/animate/wave_frag.glsl +65 -0
  141. package/es/point/shaders/earth/extrude_frag.glsl +44 -0
  142. package/es/point/shaders/earth/extrude_vert.glsl +140 -0
  143. package/es/point/shaders/earth/fill_frag.glsl +86 -0
  144. package/es/point/shaders/earth/fill_vert.glsl +126 -0
  145. package/es/point/shaders/extrude/extrude_frag.glsl +44 -0
  146. package/es/point/shaders/extrude/extrude_vert.glsl +121 -0
  147. package/es/point/shaders/fill_frag.glsl +84 -0
  148. package/es/point/shaders/fill_vert.glsl +182 -0
  149. package/es/point/shaders/image/fillImage_frag.glsl +20 -0
  150. package/es/point/shaders/image/fillImage_vert.glsl +108 -0
  151. package/es/point/shaders/image_frag.glsl +39 -0
  152. package/es/point/shaders/image_vert.glsl +81 -0
  153. package/es/point/shaders/normal_frag.glsl +15 -0
  154. package/es/point/shaders/normal_vert.glsl +79 -0
  155. package/es/point/shaders/radar/radar_frag.glsl +64 -0
  156. package/es/point/shaders/radar/radar_vert.glsl +120 -0
  157. package/es/point/shaders/simplePoint_frag.glsl +53 -0
  158. package/es/point/shaders/simplePoint_vert.glsl +79 -0
  159. package/es/point/shaders/text_frag.glsl +48 -0
  160. package/es/point/shaders/text_vert.glsl +131 -0
  161. package/es/point/shaders/tile/fill_tile_frag.glsl +83 -0
  162. package/es/point/shaders/tile/fill_tile_vert.glsl +181 -0
  163. package/es/point/shape/extrude.js +8 -3
  164. package/es/polygon/index.js +6 -5
  165. package/es/polygon/models/extrude.js +40 -31
  166. package/es/polygon/models/fill.js +19 -8
  167. package/es/polygon/models/index.js +14 -14
  168. package/es/polygon/models/ocean.js +25 -33
  169. package/es/polygon/models/tile.js +13 -7
  170. package/es/polygon/models/water.js +21 -25
  171. package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  172. package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  173. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  174. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  175. package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  176. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  177. package/es/polygon/shaders/polygon_frag.glsl +12 -0
  178. package/es/polygon/shaders/polygon_linear_frag.glsl +22 -0
  179. package/es/polygon/shaders/polygon_linear_vert.glsl +74 -0
  180. package/es/polygon/shaders/polygon_vert.glsl +66 -0
  181. package/es/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  182. package/es/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  183. package/es/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  184. package/es/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  185. package/es/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  186. package/es/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  187. package/es/raster/buffers/triangulation.js +2 -2
  188. package/es/raster/index.js +7 -6
  189. package/es/raster/models/index.js +3 -4
  190. package/es/raster/models/raster.js +15 -25
  191. package/es/raster/raster.js +9 -13
  192. package/es/raster/shaders/raster_2d_frag.glsl +28 -0
  193. package/es/raster/shaders/raster_2d_vert.glsl +18 -0
  194. package/es/raster/shaders/raster_frag.glsl +9 -0
  195. package/es/raster/shaders/raster_vert.glsl +44 -0
  196. package/es/tile/interface.js +1 -2
  197. package/es/tile/manager/tileConfigManager.js +6 -8
  198. package/es/tile/manager/tileLayerManager.js +19 -30
  199. package/es/tile/manager/tilePickerManager.js +14 -14
  200. package/es/tile/models/tileModel.js +6 -6
  201. package/es/tile/tileFactory/base.js +26 -32
  202. package/es/tile/tileFactory/index.js +6 -7
  203. package/es/tile/tileFactory/line.js +3 -9
  204. package/es/tile/tileFactory/point.js +3 -9
  205. package/es/tile/tileFactory/polygon.js +3 -9
  206. package/es/tile/tileFactory/raster.js +4 -10
  207. package/es/tile/tileFactory/rasterData.js +5 -11
  208. package/es/tile/tileFactory/rasterDataLayer.js +4 -5
  209. package/es/tile/tileFactory/vectorLayer.js +8 -9
  210. package/es/tile/tileLayer/baseTileLayer.js +67 -39
  211. package/es/tile/tmsTileLayer.js +5 -4
  212. package/es/tile/utils.js +5 -3
  213. package/es/utils/blend.js +1 -2
  214. package/es/utils/collision-index.js +36 -21
  215. package/es/utils/dataMappingStyle.js +71 -15
  216. package/es/utils/extrude_polyline.d.ts +15 -0
  217. package/es/utils/extrude_polyline.js +225 -51
  218. package/es/utils/grid-index.js +7 -21
  219. package/es/utils/layerData.js +41 -17
  220. package/es/utils/multiPassRender.js +21 -5
  221. package/es/utils/polylineNormal.js +40 -20
  222. package/es/utils/simpleLine.js +4 -6
  223. package/es/utils/symbol-layout.js +49 -10
  224. package/es/utils/updateShape.js +6 -3
  225. package/es/wind/index.js +5 -6
  226. package/es/wind/models/index.js +2 -3
  227. package/es/wind/models/utils.js +50 -26
  228. package/es/wind/models/wind.js +15 -18
  229. package/es/wind/models/windRender.js +89 -78
  230. package/es/wind/models/windShader.d.ts +6 -6
  231. package/es/wind/models/windShader.js +12 -7
  232. package/es/wind/shaders/wind_frag.glsl +9 -0
  233. package/es/wind/shaders/wind_vert.glsl +17 -0
  234. package/lib/Geometry/index.js +77 -115
  235. package/lib/Geometry/models/billboard.js +181 -218
  236. package/lib/Geometry/models/index.js +34 -19
  237. package/lib/Geometry/models/plane.js +278 -394
  238. package/lib/Geometry/models/sprite.js +189 -294
  239. package/lib/Geometry/shaders/billboard_frag.glsl +13 -0
  240. package/lib/Geometry/shaders/billboard_vert.glsl +50 -0
  241. package/lib/Geometry/shaders/plane_frag.glsl +22 -0
  242. package/lib/Geometry/shaders/plane_vert.glsl +53 -0
  243. package/lib/Geometry/shaders/sprite_frag.glsl +21 -0
  244. package/lib/Geometry/shaders/sprite_vert.glsl +28 -0
  245. package/lib/canvas/index.js +66 -102
  246. package/lib/canvas/models/canvas.js +140 -210
  247. package/lib/canvas/models/index.js +30 -13
  248. package/lib/citybuliding/building.js +63 -99
  249. package/lib/citybuliding/models/build.js +146 -196
  250. package/lib/citybuliding/shaders/build_frag.glsl +117 -0
  251. package/lib/citybuliding/shaders/build_vert.glsl +54 -0
  252. package/lib/core/BaseLayer.js +807 -1245
  253. package/lib/core/BaseModel.js +275 -375
  254. package/lib/core/interface.js +52 -20
  255. package/lib/core/schema.js +39 -18
  256. package/lib/core/shape/Path.js +78 -60
  257. package/lib/core/shape/extrude.js +90 -127
  258. package/lib/core/triangulation.js +208 -295
  259. package/lib/earth/index.js +62 -96
  260. package/lib/earth/models/atmosphere.js +112 -139
  261. package/lib/earth/models/base.js +150 -198
  262. package/lib/earth/models/bloomsphere.js +112 -139
  263. package/lib/earth/shaders/atmosphere_frag.glsl +17 -0
  264. package/lib/earth/shaders/atmosphere_vert.glsl +26 -0
  265. package/lib/earth/shaders/base_frag.glsl +13 -0
  266. package/lib/earth/shaders/base_vert.glsl +52 -0
  267. package/lib/earth/shaders/bloomsphere_frag.glsl +15 -0
  268. package/lib/earth/shaders/bloomsphere_vert.glsl +20 -0
  269. package/lib/earth/utils.js +89 -85
  270. package/lib/heatmap/index.js +92 -148
  271. package/lib/heatmap/models/grid.js +91 -113
  272. package/lib/heatmap/models/grid3d.js +123 -145
  273. package/lib/heatmap/models/heatmap.js +338 -470
  274. package/lib/heatmap/models/hexagon.js +92 -114
  275. package/lib/heatmap/models/index.js +37 -23
  276. package/lib/heatmap/shaders/grid_vert.glsl +42 -0
  277. package/lib/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  278. package/lib/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  279. package/lib/heatmap/shaders/heatmap_frag.glsl +47 -0
  280. package/lib/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  281. package/lib/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  282. package/lib/heatmap/shaders/heatmap_vert.glsl +10 -0
  283. package/lib/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  284. package/lib/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  285. package/lib/heatmap/shaders/hexagon_frag.glsl +12 -0
  286. package/lib/heatmap/shaders/hexagon_vert.glsl +41 -0
  287. package/lib/heatmap/triangulation.js +46 -30
  288. package/lib/image/index.js +74 -112
  289. package/lib/image/models/dataImage.js +173 -241
  290. package/lib/image/models/image.js +123 -177
  291. package/lib/image/models/index.js +32 -16
  292. package/lib/image/shaders/dataImage_frag.glsl +38 -0
  293. package/lib/image/shaders/image_frag.glsl +9 -0
  294. package/lib/image/shaders/image_vert.glsl +17 -0
  295. package/lib/index.js +96 -193
  296. package/lib/line/index.js +83 -128
  297. package/lib/line/models/arc.js +237 -328
  298. package/lib/line/models/arc_3d.js +228 -314
  299. package/lib/line/models/earthArc_3d.js +228 -316
  300. package/lib/line/models/great_circle.js +200 -279
  301. package/lib/line/models/half.js +201 -266
  302. package/lib/line/models/index.js +50 -43
  303. package/lib/line/models/line.js +299 -386
  304. package/lib/line/models/linearline.js +203 -258
  305. package/lib/line/models/simpleLine.js +175 -225
  306. package/lib/line/models/tile.js +237 -330
  307. package/lib/line/models/wall.js +235 -310
  308. package/lib/line/shaders/arc_chunks.vert.glsl +21 -0
  309. package/lib/line/shaders/dash/arc_dash_frag.glsl +28 -0
  310. package/lib/line/shaders/dash/arc_dash_vert.glsl +148 -0
  311. package/lib/line/shaders/dash/line_dash_frag.glsl +31 -0
  312. package/lib/line/shaders/dash/line_dash_vert.glsl +93 -0
  313. package/lib/line/shaders/half/line_half_frag.glsl +53 -0
  314. package/lib/line/shaders/half/line_half_vert.glsl +169 -0
  315. package/lib/line/shaders/line_arc2d_vert.glsl +114 -0
  316. package/lib/line/shaders/line_arc_3d_frag.glsl +103 -0
  317. package/lib/line/shaders/line_arc_3d_vert.glsl +207 -0
  318. package/lib/line/shaders/line_arc_frag.glsl +89 -0
  319. package/lib/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  320. package/lib/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  321. package/lib/line/shaders/line_arc_vert.glsl +174 -0
  322. package/lib/line/shaders/line_bezier_vert.glsl +85 -0
  323. package/lib/line/shaders/line_frag.glsl +100 -0
  324. package/lib/line/shaders/line_vert.glsl +192 -0
  325. package/lib/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  326. package/lib/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  327. package/lib/line/shaders/linear/arc_linear_frag.glsl +38 -0
  328. package/lib/line/shaders/linear/arc_linear_vert.glsl +138 -0
  329. package/lib/line/shaders/linear/line_linear_frag.glsl +27 -0
  330. package/lib/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  331. package/lib/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  332. package/lib/line/shaders/simple/simpleline_frag.glsl +10 -0
  333. package/lib/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  334. package/lib/line/shaders/simple/simpleline_vert.glsl +78 -0
  335. package/lib/line/shaders/tile/line_tile_frag.glsl +79 -0
  336. package/lib/line/shaders/tile/line_tile_vert.glsl +210 -0
  337. package/lib/line/shaders/wall_frag.glsl +93 -0
  338. package/lib/line/shaders/wall_vert.glsl +111 -0
  339. package/lib/mask/index.js +59 -93
  340. package/lib/mask/models/fill.js +82 -132
  341. package/lib/mask/models/index.js +30 -13
  342. package/lib/mask/shaders/mask_frag.glsl +7 -0
  343. package/lib/mask/shaders/mask_vert.glsl +22 -0
  344. package/lib/plugins/DataMappingPlugin.js +222 -304
  345. package/lib/plugins/DataSourcePlugin.js +87 -100
  346. package/lib/plugins/FeatureScalePlugin.js +239 -310
  347. package/lib/plugins/LayerAnimateStylePlugin.js +55 -61
  348. package/lib/plugins/LayerModelPlugin.js +72 -70
  349. package/lib/plugins/LayerStylePlugin.js +51 -44
  350. package/lib/plugins/LightingPlugin.js +68 -72
  351. package/lib/plugins/MultiPassRendererPlugin.js +65 -77
  352. package/lib/plugins/PixelPickingPlugin.js +109 -128
  353. package/lib/plugins/RegisterStyleAttributePlugin.js +110 -103
  354. package/lib/plugins/ShaderUniformPlugin.js +98 -103
  355. package/lib/plugins/UpdateModelPlugin.js +47 -36
  356. package/lib/plugins/UpdateStyleAttributePlugin.js +75 -80
  357. package/lib/point/index.js +147 -216
  358. package/lib/point/models/earthExtrude.js +201 -262
  359. package/lib/point/models/earthFill.js +202 -276
  360. package/lib/point/models/extrude.js +203 -282
  361. package/lib/point/models/fill.js +273 -369
  362. package/lib/point/models/fillmage.js +250 -327
  363. package/lib/point/models/image.js +163 -226
  364. package/lib/point/models/index.js +52 -46
  365. package/lib/point/models/normal.js +134 -176
  366. package/lib/point/models/radar.js +212 -286
  367. package/lib/point/models/simplePoint.js +142 -187
  368. package/lib/point/models/text.js +385 -559
  369. package/lib/point/models/tile.js +223 -294
  370. package/lib/point/shaders/animate/wave_frag.glsl +65 -0
  371. package/lib/point/shaders/earth/extrude_frag.glsl +44 -0
  372. package/lib/point/shaders/earth/extrude_vert.glsl +140 -0
  373. package/lib/point/shaders/earth/fill_frag.glsl +86 -0
  374. package/lib/point/shaders/earth/fill_vert.glsl +126 -0
  375. package/lib/point/shaders/extrude/extrude_frag.glsl +44 -0
  376. package/lib/point/shaders/extrude/extrude_vert.glsl +121 -0
  377. package/lib/point/shaders/fill_frag.glsl +84 -0
  378. package/lib/point/shaders/fill_vert.glsl +182 -0
  379. package/lib/point/shaders/image/fillImage_frag.glsl +20 -0
  380. package/lib/point/shaders/image/fillImage_vert.glsl +108 -0
  381. package/lib/point/shaders/image_frag.glsl +39 -0
  382. package/lib/point/shaders/image_vert.glsl +81 -0
  383. package/lib/point/shaders/normal_frag.glsl +15 -0
  384. package/lib/point/shaders/normal_vert.glsl +79 -0
  385. package/lib/point/shaders/radar/radar_frag.glsl +64 -0
  386. package/lib/point/shaders/radar/radar_vert.glsl +120 -0
  387. package/lib/point/shaders/simplePoint_frag.glsl +53 -0
  388. package/lib/point/shaders/simplePoint_vert.glsl +79 -0
  389. package/lib/point/shaders/text_frag.glsl +48 -0
  390. package/lib/point/shaders/text_vert.glsl +131 -0
  391. package/lib/point/shaders/tile/fill_tile_frag.glsl +83 -0
  392. package/lib/point/shaders/tile/fill_tile_vert.glsl +181 -0
  393. package/lib/point/shape/extrude.js +51 -51
  394. package/lib/polygon/index.js +100 -149
  395. package/lib/polygon/models/extrude.js +222 -303
  396. package/lib/polygon/models/fill.js +153 -205
  397. package/lib/polygon/models/index.js +52 -46
  398. package/lib/polygon/models/ocean.js +172 -251
  399. package/lib/polygon/models/tile.js +100 -139
  400. package/lib/polygon/models/water.js +152 -227
  401. package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  402. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  403. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  404. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  405. package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  406. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  407. package/lib/polygon/shaders/polygon_frag.glsl +12 -0
  408. package/lib/polygon/shaders/polygon_linear_frag.glsl +22 -0
  409. package/lib/polygon/shaders/polygon_linear_vert.glsl +74 -0
  410. package/lib/polygon/shaders/polygon_vert.glsl +66 -0
  411. package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  412. package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  413. package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  414. package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  415. package/lib/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  416. package/lib/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  417. package/lib/raster/buffers/triangulation.js +39 -26
  418. package/lib/raster/index.js +73 -111
  419. package/lib/raster/models/index.js +33 -17
  420. package/lib/raster/models/raster.js +134 -187
  421. package/lib/raster/raster.js +132 -189
  422. package/lib/raster/shaders/raster_2d_frag.glsl +28 -0
  423. package/lib/raster/shaders/raster_2d_vert.glsl +18 -0
  424. package/lib/raster/shaders/raster_frag.glsl +9 -0
  425. package/lib/raster/shaders/raster_vert.glsl +44 -0
  426. package/lib/tile/interface.js +17 -2
  427. package/lib/tile/manager/tileConfigManager.js +86 -126
  428. package/lib/tile/manager/tileLayerManager.js +227 -312
  429. package/lib/tile/manager/tilePickerManager.js +123 -187
  430. package/lib/tile/models/tileModel.js +51 -70
  431. package/lib/tile/tileFactory/base.js +292 -403
  432. package/lib/tile/tileFactory/index.js +48 -51
  433. package/lib/tile/tileFactory/line.js +50 -71
  434. package/lib/tile/tileFactory/point.js +50 -71
  435. package/lib/tile/tileFactory/polygon.js +50 -71
  436. package/lib/tile/tileFactory/raster.js +54 -72
  437. package/lib/tile/tileFactory/rasterData.js +76 -94
  438. package/lib/tile/tileFactory/rasterDataLayer.js +62 -98
  439. package/lib/tile/tileFactory/vectorLayer.js +95 -148
  440. package/lib/tile/tileLayer/baseTileLayer.js +220 -380
  441. package/lib/tile/tmsTileLayer.js +67 -109
  442. package/lib/tile/utils.js +86 -101
  443. package/lib/utils/blend.js +79 -60
  444. package/lib/utils/collision-index.js +63 -83
  445. package/lib/utils/dataMappingStyle.js +59 -56
  446. package/lib/utils/extrude_polyline.js +405 -428
  447. package/lib/utils/grid-index.js +111 -168
  448. package/lib/utils/layerData.js +88 -95
  449. package/lib/utils/multiPassRender.js +38 -31
  450. package/lib/utils/polylineNormal.js +86 -118
  451. package/lib/utils/simpleLine.js +85 -101
  452. package/lib/utils/symbol-layout.js +109 -173
  453. package/lib/utils/updateShape.js +40 -11
  454. package/lib/wind/index.js +71 -110
  455. package/lib/wind/models/index.js +30 -13
  456. package/lib/wind/models/utils.js +89 -104
  457. package/lib/wind/models/wind.js +224 -332
  458. package/lib/wind/models/windRender.js +215 -293
  459. package/lib/wind/models/windShader.js +181 -17
  460. package/lib/wind/shaders/wind_frag.glsl +9 -0
  461. package/lib/wind/shaders/wind_vert.glsl +17 -0
  462. package/package.json +11 -9
  463. package/es/Geometry/index.js.map +0 -1
  464. package/es/Geometry/models/billboard.js.map +0 -1
  465. package/es/Geometry/models/index.js.map +0 -1
  466. package/es/Geometry/models/plane.js.map +0 -1
  467. package/es/Geometry/models/sprite.js.map +0 -1
  468. package/es/canvas/index.js.map +0 -1
  469. package/es/canvas/models/canvas.js.map +0 -1
  470. package/es/canvas/models/index.js.map +0 -1
  471. package/es/citybuliding/building.js.map +0 -1
  472. package/es/citybuliding/models/build.js.map +0 -1
  473. package/es/core/BaseLayer.js.map +0 -1
  474. package/es/core/BaseModel.js.map +0 -1
  475. package/es/core/interface.js.map +0 -1
  476. package/es/core/schema.js.map +0 -1
  477. package/es/core/shape/Path.js.map +0 -1
  478. package/es/core/shape/extrude.js.map +0 -1
  479. package/es/core/triangulation.js.map +0 -1
  480. package/es/earth/index.js.map +0 -1
  481. package/es/earth/models/atmosphere.js.map +0 -1
  482. package/es/earth/models/base.js.map +0 -1
  483. package/es/earth/models/bloomsphere.js.map +0 -1
  484. package/es/earth/utils.js.map +0 -1
  485. package/es/glsl.d.js +0 -2
  486. package/es/glsl.d.js.map +0 -1
  487. package/es/heatmap/index.js.map +0 -1
  488. package/es/heatmap/models/grid.js.map +0 -1
  489. package/es/heatmap/models/grid3d.js.map +0 -1
  490. package/es/heatmap/models/heatmap.js.map +0 -1
  491. package/es/heatmap/models/hexagon.js.map +0 -1
  492. package/es/heatmap/models/index.js.map +0 -1
  493. package/es/heatmap/triangulation.js.map +0 -1
  494. package/es/image/index.js.map +0 -1
  495. package/es/image/models/dataImage.js.map +0 -1
  496. package/es/image/models/image.js.map +0 -1
  497. package/es/image/models/index.js.map +0 -1
  498. package/es/index.js.map +0 -1
  499. package/es/line/index.js.map +0 -1
  500. package/es/line/models/arc.js.map +0 -1
  501. package/es/line/models/arc_3d.js.map +0 -1
  502. package/es/line/models/earthArc_3d.js.map +0 -1
  503. package/es/line/models/great_circle.js.map +0 -1
  504. package/es/line/models/half.js.map +0 -1
  505. package/es/line/models/index.js.map +0 -1
  506. package/es/line/models/line.js.map +0 -1
  507. package/es/line/models/linearline.js.map +0 -1
  508. package/es/line/models/simpleLine.js.map +0 -1
  509. package/es/line/models/tile.js.map +0 -1
  510. package/es/line/models/wall.js.map +0 -1
  511. package/es/mask/index.js.map +0 -1
  512. package/es/mask/models/fill.js.map +0 -1
  513. package/es/mask/models/index.js.map +0 -1
  514. package/es/plugins/DataMappingPlugin.js.map +0 -1
  515. package/es/plugins/DataSourcePlugin.js.map +0 -1
  516. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  517. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  518. package/es/plugins/LayerModelPlugin.js.map +0 -1
  519. package/es/plugins/LayerStylePlugin.js.map +0 -1
  520. package/es/plugins/LightingPlugin.js.map +0 -1
  521. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  522. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  523. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  524. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  525. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  526. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  527. package/es/point/index.js.map +0 -1
  528. package/es/point/models/earthExtrude.js.map +0 -1
  529. package/es/point/models/earthFill.js.map +0 -1
  530. package/es/point/models/extrude.js.map +0 -1
  531. package/es/point/models/fill.js.map +0 -1
  532. package/es/point/models/fillmage.js.map +0 -1
  533. package/es/point/models/image.js.map +0 -1
  534. package/es/point/models/index.js.map +0 -1
  535. package/es/point/models/normal.js.map +0 -1
  536. package/es/point/models/radar.js.map +0 -1
  537. package/es/point/models/simplePoint.js.map +0 -1
  538. package/es/point/models/text.js.map +0 -1
  539. package/es/point/models/tile.js.map +0 -1
  540. package/es/point/shape/extrude.js.map +0 -1
  541. package/es/polygon/index.js.map +0 -1
  542. package/es/polygon/models/extrude.js.map +0 -1
  543. package/es/polygon/models/fill.js.map +0 -1
  544. package/es/polygon/models/index.js.map +0 -1
  545. package/es/polygon/models/ocean.js.map +0 -1
  546. package/es/polygon/models/tile.js.map +0 -1
  547. package/es/polygon/models/water.js.map +0 -1
  548. package/es/raster/buffers/triangulation.js.map +0 -1
  549. package/es/raster/index.js.map +0 -1
  550. package/es/raster/models/index.js.map +0 -1
  551. package/es/raster/models/raster.js.map +0 -1
  552. package/es/raster/raster.js.map +0 -1
  553. package/es/tile/interface.js.map +0 -1
  554. package/es/tile/manager/tileConfigManager.js.map +0 -1
  555. package/es/tile/manager/tileLayerManager.js.map +0 -1
  556. package/es/tile/manager/tilePickerManager.js.map +0 -1
  557. package/es/tile/models/tileModel.js.map +0 -1
  558. package/es/tile/tileFactory/base.js.map +0 -1
  559. package/es/tile/tileFactory/index.js.map +0 -1
  560. package/es/tile/tileFactory/line.js.map +0 -1
  561. package/es/tile/tileFactory/point.js.map +0 -1
  562. package/es/tile/tileFactory/polygon.js.map +0 -1
  563. package/es/tile/tileFactory/raster.js.map +0 -1
  564. package/es/tile/tileFactory/rasterData.js.map +0 -1
  565. package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
  566. package/es/tile/tileFactory/vectorLayer.js.map +0 -1
  567. package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
  568. package/es/tile/tmsTileLayer.js.map +0 -1
  569. package/es/tile/utils.js.map +0 -1
  570. package/es/utils/blend.js.map +0 -1
  571. package/es/utils/collision-index.js.map +0 -1
  572. package/es/utils/dataMappingStyle.js.map +0 -1
  573. package/es/utils/extrude_polyline.js.map +0 -1
  574. package/es/utils/grid-index.js.map +0 -1
  575. package/es/utils/layerData.js.map +0 -1
  576. package/es/utils/multiPassRender.js.map +0 -1
  577. package/es/utils/polylineNormal.js.map +0 -1
  578. package/es/utils/simpleLine.js.map +0 -1
  579. package/es/utils/symbol-layout.js.map +0 -1
  580. package/es/utils/updateShape.js.map +0 -1
  581. package/es/wind/index.js.map +0 -1
  582. package/es/wind/models/index.js.map +0 -1
  583. package/es/wind/models/utils.js.map +0 -1
  584. package/es/wind/models/wind.js.map +0 -1
  585. package/es/wind/models/windRender.js.map +0 -1
  586. package/es/wind/models/windShader.js.map +0 -1
  587. package/lib/Geometry/index.js.map +0 -1
  588. package/lib/Geometry/models/billboard.js.map +0 -1
  589. package/lib/Geometry/models/index.js.map +0 -1
  590. package/lib/Geometry/models/plane.js.map +0 -1
  591. package/lib/Geometry/models/sprite.js.map +0 -1
  592. package/lib/canvas/index.js.map +0 -1
  593. package/lib/canvas/models/canvas.js.map +0 -1
  594. package/lib/canvas/models/index.js.map +0 -1
  595. package/lib/citybuliding/building.js.map +0 -1
  596. package/lib/citybuliding/models/build.js.map +0 -1
  597. package/lib/core/BaseLayer.js.map +0 -1
  598. package/lib/core/BaseModel.js.map +0 -1
  599. package/lib/core/interface.js.map +0 -1
  600. package/lib/core/schema.js.map +0 -1
  601. package/lib/core/shape/Path.js.map +0 -1
  602. package/lib/core/shape/extrude.js.map +0 -1
  603. package/lib/core/triangulation.js.map +0 -1
  604. package/lib/earth/index.js.map +0 -1
  605. package/lib/earth/models/atmosphere.js.map +0 -1
  606. package/lib/earth/models/base.js.map +0 -1
  607. package/lib/earth/models/bloomsphere.js.map +0 -1
  608. package/lib/earth/utils.js.map +0 -1
  609. package/lib/glsl.d.js +0 -2
  610. package/lib/glsl.d.js.map +0 -1
  611. package/lib/heatmap/index.js.map +0 -1
  612. package/lib/heatmap/models/grid.js.map +0 -1
  613. package/lib/heatmap/models/grid3d.js.map +0 -1
  614. package/lib/heatmap/models/heatmap.js.map +0 -1
  615. package/lib/heatmap/models/hexagon.js.map +0 -1
  616. package/lib/heatmap/models/index.js.map +0 -1
  617. package/lib/heatmap/triangulation.js.map +0 -1
  618. package/lib/image/index.js.map +0 -1
  619. package/lib/image/models/dataImage.js.map +0 -1
  620. package/lib/image/models/image.js.map +0 -1
  621. package/lib/image/models/index.js.map +0 -1
  622. package/lib/index.js.map +0 -1
  623. package/lib/line/index.js.map +0 -1
  624. package/lib/line/models/arc.js.map +0 -1
  625. package/lib/line/models/arc_3d.js.map +0 -1
  626. package/lib/line/models/earthArc_3d.js.map +0 -1
  627. package/lib/line/models/great_circle.js.map +0 -1
  628. package/lib/line/models/half.js.map +0 -1
  629. package/lib/line/models/index.js.map +0 -1
  630. package/lib/line/models/line.js.map +0 -1
  631. package/lib/line/models/linearline.js.map +0 -1
  632. package/lib/line/models/simpleLine.js.map +0 -1
  633. package/lib/line/models/tile.js.map +0 -1
  634. package/lib/line/models/wall.js.map +0 -1
  635. package/lib/mask/index.js.map +0 -1
  636. package/lib/mask/models/fill.js.map +0 -1
  637. package/lib/mask/models/index.js.map +0 -1
  638. package/lib/plugins/DataMappingPlugin.js.map +0 -1
  639. package/lib/plugins/DataSourcePlugin.js.map +0 -1
  640. package/lib/plugins/FeatureScalePlugin.js.map +0 -1
  641. package/lib/plugins/LayerAnimateStylePlugin.js.map +0 -1
  642. package/lib/plugins/LayerModelPlugin.js.map +0 -1
  643. package/lib/plugins/LayerStylePlugin.js.map +0 -1
  644. package/lib/plugins/LightingPlugin.js.map +0 -1
  645. package/lib/plugins/MultiPassRendererPlugin.js.map +0 -1
  646. package/lib/plugins/PixelPickingPlugin.js.map +0 -1
  647. package/lib/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  648. package/lib/plugins/ShaderUniformPlugin.js.map +0 -1
  649. package/lib/plugins/UpdateModelPlugin.js.map +0 -1
  650. package/lib/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  651. package/lib/point/index.js.map +0 -1
  652. package/lib/point/models/earthExtrude.js.map +0 -1
  653. package/lib/point/models/earthFill.js.map +0 -1
  654. package/lib/point/models/extrude.js.map +0 -1
  655. package/lib/point/models/fill.js.map +0 -1
  656. package/lib/point/models/fillmage.js.map +0 -1
  657. package/lib/point/models/image.js.map +0 -1
  658. package/lib/point/models/index.js.map +0 -1
  659. package/lib/point/models/normal.js.map +0 -1
  660. package/lib/point/models/radar.js.map +0 -1
  661. package/lib/point/models/simplePoint.js.map +0 -1
  662. package/lib/point/models/text.js.map +0 -1
  663. package/lib/point/models/tile.js.map +0 -1
  664. package/lib/point/shape/extrude.js.map +0 -1
  665. package/lib/polygon/index.js.map +0 -1
  666. package/lib/polygon/models/extrude.js.map +0 -1
  667. package/lib/polygon/models/fill.js.map +0 -1
  668. package/lib/polygon/models/index.js.map +0 -1
  669. package/lib/polygon/models/ocean.js.map +0 -1
  670. package/lib/polygon/models/tile.js.map +0 -1
  671. package/lib/polygon/models/water.js.map +0 -1
  672. package/lib/raster/buffers/triangulation.js.map +0 -1
  673. package/lib/raster/index.js.map +0 -1
  674. package/lib/raster/models/index.js.map +0 -1
  675. package/lib/raster/models/raster.js.map +0 -1
  676. package/lib/raster/raster.js.map +0 -1
  677. package/lib/tile/interface.js.map +0 -1
  678. package/lib/tile/manager/tileConfigManager.js.map +0 -1
  679. package/lib/tile/manager/tileLayerManager.js.map +0 -1
  680. package/lib/tile/manager/tilePickerManager.js.map +0 -1
  681. package/lib/tile/models/tileModel.js.map +0 -1
  682. package/lib/tile/tileFactory/base.js.map +0 -1
  683. package/lib/tile/tileFactory/index.js.map +0 -1
  684. package/lib/tile/tileFactory/line.js.map +0 -1
  685. package/lib/tile/tileFactory/point.js.map +0 -1
  686. package/lib/tile/tileFactory/polygon.js.map +0 -1
  687. package/lib/tile/tileFactory/raster.js.map +0 -1
  688. package/lib/tile/tileFactory/rasterData.js.map +0 -1
  689. package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
  690. package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
  691. package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
  692. package/lib/tile/tmsTileLayer.js.map +0 -1
  693. package/lib/tile/utils.js.map +0 -1
  694. package/lib/utils/blend.js.map +0 -1
  695. package/lib/utils/collision-index.js.map +0 -1
  696. package/lib/utils/dataMappingStyle.js.map +0 -1
  697. package/lib/utils/extrude_polyline.js.map +0 -1
  698. package/lib/utils/grid-index.js.map +0 -1
  699. package/lib/utils/layerData.js.map +0 -1
  700. package/lib/utils/multiPassRender.js.map +0 -1
  701. package/lib/utils/polylineNormal.js.map +0 -1
  702. package/lib/utils/simpleLine.js.map +0 -1
  703. package/lib/utils/symbol-layout.js.map +0 -1
  704. package/lib/utils/updateShape.js.map +0 -1
  705. package/lib/wind/index.js.map +0 -1
  706. package/lib/wind/models/index.js.map +0 -1
  707. package/lib/wind/models/utils.js.map +0 -1
  708. package/lib/wind/models/wind.js.map +0 -1
  709. package/lib/wind/models/windRender.js.map +0 -1
  710. package/lib/wind/models/windShader.js.map +0 -1
@@ -1,12 +1,9 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/createClass";
4
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
4
  import _inherits from "@babel/runtime/helpers/inherits";
6
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
7
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
- import _isNumber from "lodash/isNumber";
10
7
 
11
8
  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); }; }
12
9
 
@@ -14,30 +11,25 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
14
11
 
15
12
  import { AttributeType, gl } from '@antv/l7-core';
16
13
  import { getMask } from '@antv/l7-utils';
17
- import BaseModel from '../../core/BaseModel';
18
- import { polygonTriangulation } from '../../core/triangulation';
14
+ import { isNumber } from 'lodash';
15
+ import BaseModel from "../../core/BaseModel";
16
+ import { polygonTriangulation } from "../../core/triangulation";
17
+
18
+ /* babel-plugin-inline-import '../shaders/water/polygon_water_frag.glsl' */
19
19
  var water_frag = "uniform sampler2D u_texture;\nuniform float u_time: 0.0;\nuniform float u_speed: 1.0;\nuniform float u_opacity: 1.0;\n\nvarying vec4 v_Color;\nvarying vec2 v_uv;\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n\nfloat rand(vec2 n) { return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233)))* 43758.5453); }\n\nfloat water(vec3 p) {\n float t = u_time * u_speed;\n p.z += t * 2.; p.x += t * 2.;\n vec3 c1 = texture2D(u_texture, p.xz / 30.).xyz;\n p.z += t * 3.; p.x += t * 0.52;\n vec3 c2 = texture2D(u_texture, p.xz / 30.).xyz;\n p.z += t * 4.; p.x += t * 0.8;\n vec3 c3 = texture2D(u_texture, p.xz / 30.).xyz;\n c1 += c2 - c3;\n float z = (c1.x + c1.y + c1.z) / 3.;\n return p.y + z / 4.;\n}\n\nfloat map(vec3 p) {\n float d = 100.0;\n d = water(p);\n return d;\n}\n\nfloat intersect(vec3 ro, vec3 rd) {\n float d = 0.0;\n for (int i = 0; i <= 100; i++) {\n float h = map(ro + rd * d);\n if (h < 0.1) return d;\n d += h;\n }\n return 0.0;\n}\n\nvec3 norm(vec3 p) {\n float eps = .1;\n return normalize(vec3(\n map(p + vec3(eps, 0, 0)) - map(p + vec3(-eps, 0, 0)),\n map(p + vec3(0, eps, 0)) - map(p + vec3(0, -eps, 0)),\n map(p + vec3(0, 0, eps)) - map(p + vec3(0, 0, -eps))\n ));\n} \n\nfloat calSpc() {\n vec3 l1 = normalize(vec3(1, 1, 1));\n vec3 ro = vec3(-3, 20, -8);\n vec3 rc = vec3(0, 0, 0);\n vec3 ww = normalize(rc - ro);\n vec3 uu = normalize(cross(vec3(0,1,0), ww));\n vec3 vv = normalize(cross(rc - ro, uu));\n vec3 rd = normalize(uu * v_uv.x + vv * v_uv.y + ww);\n float d = intersect(ro, rd);\n vec3 p = ro + rd * d;\n vec3 n = norm(p);\n float spc = pow(max(0.0, dot(reflect(l1, n), rd)), 30.0);\n return spc;\n}\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n gl_FragColor = v_Color;\n gl_FragColor.a *= opacity;\n\n float spc = calSpc();\n gl_FragColor += spc * 0.4;\n}\n";
20
+
21
+ /* babel-plugin-inline-import '../shaders/water/polygon_water_vert.glsl' */
20
22
  var water_vert = "attribute vec4 a_Color;\nattribute vec2 a_uv;\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_Color;\nvarying vec2 v_uv;\nuniform float u_opacity: 1.0;\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n\nvoid main() {\n v_uv = a_uv;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\nstyleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\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";
21
23
 
22
- var WaterModel = function (_BaseModel) {
24
+ var WaterModel = /*#__PURE__*/function (_BaseModel) {
23
25
  _inherits(WaterModel, _BaseModel);
24
26
 
25
27
  var _super = _createSuper(WaterModel);
26
28
 
27
29
  function WaterModel() {
28
- var _this;
29
-
30
30
  _classCallCheck(this, WaterModel);
31
31
 
32
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33
- args[_key] = arguments[_key];
34
- }
35
-
36
- _this = _super.call.apply(_super, [this].concat(args));
37
-
38
- _defineProperty(_assertThisInitialized(_this), "texture", void 0);
39
-
40
- return _this;
32
+ return _super.apply(this, arguments);
41
33
  }
42
34
 
43
35
  _createClass(WaterModel, [{
@@ -62,7 +54,8 @@ var WaterModel = function (_BaseModel) {
62
54
  width = _this$calDataFrame.width,
63
55
  height = _this$calDataFrame.height;
64
56
 
65
- this.rowCount = height;
57
+ this.rowCount = height; // 当前数据纹理有多少行
58
+
66
59
  this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
67
60
  flipY: true,
68
61
  data: data,
@@ -83,9 +76,10 @@ var WaterModel = function (_BaseModel) {
83
76
  return {
84
77
  u_texture: this.texture,
85
78
  u_dataTexture: this.dataTexture,
79
+ // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]
86
80
  u_cellTypeLayout: this.getCellTypeLayout(),
87
81
  u_speed: speed,
88
- u_opacity: _isNumber(opacity) ? opacity : 1.0
82
+ u_opacity: isNumber(opacity) ? opacity : 1.0
89
83
  };
90
84
  }
91
85
  }, {
@@ -154,6 +148,7 @@ var WaterModel = function (_BaseModel) {
154
148
  descriptor: {
155
149
  name: 'a_uv',
156
150
  buffer: {
151
+ // give the WebGL driver a hint that this buffer may change
157
152
  usage: gl.STATIC_DRAW,
158
153
  data: [],
159
154
  type: gl.FLOAT
@@ -172,7 +167,7 @@ var WaterModel = function (_BaseModel) {
172
167
  }, {
173
168
  key: "loadTexture",
174
169
  value: function loadTexture() {
175
- var _this2 = this;
170
+ var _this = this;
176
171
 
177
172
  var _ref3 = this.layer.getLayerConfig(),
178
173
  waterTexture = _ref3.waterTexture;
@@ -186,14 +181,16 @@ var WaterModel = function (_BaseModel) {
186
181
  image.crossOrigin = '';
187
182
 
188
183
  if (waterTexture) {
184
+ // custom texture
189
185
  console.warn('L7 recommend:https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ');
190
186
  image.src = waterTexture;
191
187
  } else {
188
+ // default texture
192
189
  image.src = 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ';
193
190
  }
194
191
 
195
192
  image.onload = function () {
196
- _this2.texture = createTexture2D({
193
+ _this.texture = createTexture2D({
197
194
  data: image,
198
195
  width: image.width,
199
196
  height: image.height,
@@ -203,9 +200,9 @@ var WaterModel = function (_BaseModel) {
203
200
  mag: gl.LINEAR
204
201
  });
205
202
 
206
- _this2.layerService.updateLayerRenderList();
203
+ _this.layerService.updateLayerRenderList();
207
204
 
208
- _this2.layerService.renderLayers();
205
+ _this.layerService.renderLayers();
209
206
  };
210
207
  }
211
208
  }]);
@@ -213,5 +210,4 @@ var WaterModel = function (_BaseModel) {
213
210
  return WaterModel;
214
211
  }(BaseModel);
215
212
 
216
- export { WaterModel as default };
217
- //# sourceMappingURL=water.js.map
213
+ export { WaterModel as default };
@@ -0,0 +1,44 @@
1
+ uniform float u_opacity: 1.0;
2
+ uniform vec4 u_sourceColor;
3
+ uniform vec4 u_targetColor;
4
+ uniform float u_linearColor: 0;
5
+
6
+ uniform float u_topsurface: 1.0;
7
+ uniform float u_sidesurface: 1.0;
8
+
9
+ varying vec4 v_Color;
10
+ varying mat4 styleMappingMat; // 传递从片元中传递的映射数据
11
+ #pragma include "picking"
12
+
13
+ void main() {
14
+ float opacity = styleMappingMat[0][0];
15
+ float isSide = styleMappingMat[0][3];
16
+ float sidey = styleMappingMat[3][0];
17
+ float lightWeight = styleMappingMat[3][1];
18
+
19
+ if(isSide < 1.0) {
20
+ // side face
21
+ if(u_sidesurface < 1.0) {
22
+ discard;
23
+ }
24
+
25
+ if(u_linearColor == 1.0) {
26
+ vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey);
27
+ linearColor.rgb *= lightWeight;
28
+ gl_FragColor = linearColor;
29
+ } else {
30
+ gl_FragColor = v_Color;
31
+ }
32
+
33
+ } else {
34
+ // top face
35
+ if(u_topsurface < 1.0) {
36
+ discard;
37
+ }
38
+
39
+ gl_FragColor = v_Color;
40
+ }
41
+
42
+ gl_FragColor.a *= opacity;
43
+ gl_FragColor = filterColor(gl_FragColor);
44
+ }
@@ -0,0 +1,44 @@
1
+ uniform float u_opacity: 1.0;
2
+ uniform vec4 u_sourceColor;
3
+ uniform vec4 u_targetColor;
4
+ uniform float u_linearColor: 0;
5
+
6
+ uniform float u_topsurface: 1.0;
7
+ uniform float u_sidesurface: 1.0;
8
+
9
+ varying vec4 v_Color;
10
+ varying mat4 styleMappingMat; // 传递从片元中传递的映射数据
11
+ #pragma include "picking"
12
+
13
+ void main() {
14
+ float opacity = styleMappingMat[0][0];
15
+ float isSide = styleMappingMat[0][3];
16
+ float sidey = styleMappingMat[3][0];
17
+ float lightWeight = styleMappingMat[3][1];
18
+
19
+ if(isSide < 1.0) {
20
+ // side face
21
+ if(u_sidesurface < 1.0) {
22
+ discard;
23
+ }
24
+
25
+ if( u_linearColor == 1.0) {
26
+ // side use linear
27
+ vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey);
28
+ linearColor.rgb *= lightWeight;
29
+ gl_FragColor = linearColor;
30
+ } else {
31
+ // side notuse linear
32
+ gl_FragColor = v_Color;
33
+ }
34
+ } else {
35
+ // top face
36
+ if(u_topsurface < 1.0) {
37
+ discard;
38
+ }
39
+ gl_FragColor = v_Color;
40
+ }
41
+
42
+ gl_FragColor.a *= opacity;
43
+ gl_FragColor = filterColorAlpha(gl_FragColor, lightWeight);
44
+ }
@@ -0,0 +1,85 @@
1
+ precision highp float;
2
+
3
+ #define ambientRatio 0.5
4
+ #define diffuseRatio 0.3
5
+ #define specularRatio 0.2
6
+
7
+ attribute vec4 a_Color;
8
+ attribute vec3 a_Position;
9
+ attribute vec3 a_Normal;
10
+ attribute float a_Size;
11
+ attribute vec3 a_uvs;
12
+ uniform mat4 u_ModelMatrix;
13
+ uniform mat4 u_Mvp;
14
+
15
+ varying vec4 v_Color;
16
+ uniform float u_heightfixed: 0.0; // 默认不固定
17
+ uniform float u_raisingHeight: 0.0;
18
+ uniform float u_opacity: 1.0;
19
+ varying mat4 styleMappingMat; // 用于将在顶点着色器中计算好的样式值传递给片元
20
+
21
+ #pragma include "styleMapping"
22
+ #pragma include "styleMappingCalOpacity"
23
+
24
+ #pragma include "projection"
25
+ #pragma include "light"
26
+ #pragma include "picking"
27
+
28
+ void main() {
29
+ // cal style mapping - 数据纹理映射部分的计算
30
+ styleMappingMat = mat4(
31
+ 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - isSide
32
+ 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA
33
+ 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]
34
+ 0.0, 0.0, 0.0, 0.0 // sidey
35
+ );
36
+ styleMappingMat[0][3] = a_Position.z;
37
+ styleMappingMat[3][0] = a_uvs[2];
38
+
39
+ float rowCount = u_cellTypeLayout[0][0]; // 当前的数据纹理有几行
40
+ float columnCount = u_cellTypeLayout[0][1]; // 当看到数据纹理有几列
41
+ float columnWidth = 1.0/columnCount; // 列宽
42
+ float rowHeight = 1.0/rowCount; // 行高
43
+ float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets
44
+ float id = a_vertexId; // 第n个顶点
45
+ float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // 起始点在第几行
46
+ float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // 起始点在第几列
47
+
48
+ // cell 固定顺序 opacity -> strokeOpacity -> strokeWidth -> stroke ...
49
+ // 按顺序从 cell 中取值、若没有则自动往下取值
50
+ float textureOffset = 0.0; // 在 cell 中取值的偏移量
51
+
52
+ vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);
53
+ styleMappingMat[0][0] = opacityAndOffset.r;
54
+ textureOffset = opacityAndOffset.g;
55
+ // cal style mapping - 数据纹理映射部分的计算
56
+ vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);
57
+ vec4 project_pos = project_position(pos);
58
+
59
+ if(u_heightfixed > 0.0) { // 判断几何体是否固定高度
60
+ project_pos.z = a_Position.z * a_Size;
61
+ project_pos.z += u_raisingHeight;
62
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
63
+ float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);
64
+ project_pos.z *= mapboxZoomScale;
65
+ project_pos.z += u_raisingHeight * mapboxZoomScale;
66
+ }
67
+ }
68
+
69
+ // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
70
+
71
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
72
+ // gl_Position = u_Mvp * (vec4(project_pos.xyz * vec3(1.0, 1.0, -1.0), 1.0));
73
+ gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));
74
+ } else {
75
+ gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
76
+ }
77
+
78
+ float lightWeight = calc_lighting(pos);
79
+ // v_Color = a_Color;
80
+ v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w);
81
+
82
+ styleMappingMat[3][1] = lightWeight;
83
+
84
+ setPickingColor(a_PickingColor);
85
+ }
@@ -0,0 +1,90 @@
1
+ precision highp float;
2
+
3
+ #define ambientRatio 0.5
4
+ #define diffuseRatio 0.3
5
+ #define specularRatio 0.2
6
+
7
+ attribute vec4 a_Color;
8
+ attribute vec3 a_Position;
9
+ attribute vec3 a_Normal;
10
+ attribute float a_Size;
11
+ attribute vec3 a_uvs;
12
+ uniform mat4 u_ModelMatrix;
13
+ uniform mat4 u_Mvp;
14
+
15
+ varying vec4 v_Color;
16
+ uniform float u_heightfixed: 0.0; // 默认不固定
17
+ uniform float u_raisingHeight: 0.0;
18
+ uniform float u_opacity: 1.0;
19
+ varying mat4 styleMappingMat; // 用于将在顶点着色器中计算好的样式值传递给片元
20
+
21
+ #pragma include "styleMapping"
22
+ #pragma include "styleMappingCalOpacity"
23
+
24
+ #pragma include "projection"
25
+ #pragma include "light"
26
+ #pragma include "picking"
27
+
28
+ void main() {
29
+ // cal style mapping - 数据纹理映射部分的计算
30
+ styleMappingMat = mat4(
31
+ 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - isSide
32
+ 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA
33
+ 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]
34
+ 0.0, 0.0, 0.0, 0.0 // sidey
35
+ );
36
+ styleMappingMat[0][3] = a_Position.z;
37
+ styleMappingMat[3][0] = a_uvs[2];
38
+
39
+ float rowCount = u_cellTypeLayout[0][0]; // 当前的数据纹理有几行
40
+ float columnCount = u_cellTypeLayout[0][1]; // 当看到数据纹理有几列
41
+ float columnWidth = 1.0/columnCount; // 列宽
42
+ float rowHeight = 1.0/rowCount; // 行高
43
+ float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets
44
+ float id = a_vertexId; // 第n个顶点
45
+ float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // 起始点在第几行
46
+ float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // 起始点在第几列
47
+
48
+ // cell 固定顺序 opacity -> strokeOpacity -> strokeWidth -> stroke ...
49
+ // 按顺序从 cell 中取值、若没有则自动往下取值
50
+ float textureOffset = 0.0; // 在 cell 中取值的偏移量
51
+
52
+ vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);
53
+ styleMappingMat[0][0] = opacityAndOffset.r;
54
+ textureOffset = opacityAndOffset.g;
55
+ // cal style mapping - 数据纹理映射部分的计算
56
+
57
+ vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);
58
+ vec4 project_pos = project_position(pos);
59
+
60
+ if(u_heightfixed > 0.0) { // 判断几何体是否固定高度
61
+ project_pos.z = a_Position.z * a_Size;
62
+ project_pos.z += u_raisingHeight;
63
+
64
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
65
+ float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);
66
+ project_pos.z *= mapboxZoomScale;
67
+ project_pos.z += u_raisingHeight * mapboxZoomScale;
68
+ }
69
+ }
70
+
71
+ // project_pos.z += 500000.0; // amap1
72
+
73
+ // project_pos.z += (500000.0 * 4.0)/pow(2.0, 21.0 - u_Zoom); // mapbox
74
+ // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
75
+
76
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
77
+ // gl_Position = u_Mvp * (vec4(project_pos.xyz * vec3(1.0, 1.0, -1.0), 1.0));
78
+ gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));
79
+ } else {
80
+ gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
81
+ }
82
+
83
+ float lightWeight = calc_lighting(pos);
84
+ // v_Color = a_Color;
85
+ v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w);
86
+
87
+ styleMappingMat[3][1] = lightWeight;
88
+
89
+ setPickingColor(a_PickingColor);
90
+ }
@@ -0,0 +1,48 @@
1
+ uniform sampler2D u_texture;
2
+ uniform float u_opacity: 1.0;
3
+ uniform vec4 u_sourceColor;
4
+ uniform vec4 u_targetColor;
5
+ uniform float u_linearColor: 0;
6
+
7
+ uniform float u_topsurface: 1.0;
8
+ uniform float u_sidesurface: 1.0;
9
+
10
+ varying vec4 v_Color;
11
+ varying mat4 styleMappingMat; // 传递从片元中传递的映射数据
12
+ #pragma include "picking"
13
+
14
+ void main() {
15
+ float opacity = styleMappingMat[0][0];
16
+ float isSide = styleMappingMat[0][3];
17
+ float lightWeight = styleMappingMat[3][1];
18
+ float topU = styleMappingMat[2][2];
19
+ float topV = styleMappingMat[2][3];
20
+
21
+ float sidey = styleMappingMat[3][0];
22
+ if(isSide < 1.0) {
23
+ // side face
24
+ if(u_sidesurface < 1.0) {
25
+ discard;
26
+ }
27
+
28
+ if(u_linearColor == 1.0) {
29
+ vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey);
30
+ linearColor.rgb *= lightWeight;
31
+ gl_FragColor = linearColor;
32
+ } else {
33
+ gl_FragColor = v_Color;
34
+ }
35
+ } else {
36
+
37
+ // top face
38
+ if(u_topsurface < 1.0) {
39
+ discard;
40
+ }
41
+
42
+ gl_FragColor = texture2D(u_texture, vec2(topU, topV));
43
+ }
44
+
45
+
46
+ gl_FragColor.a *= opacity;
47
+ gl_FragColor = filterColor(gl_FragColor);
48
+ }
@@ -0,0 +1,93 @@
1
+ precision highp float;
2
+
3
+ #define ambientRatio 0.5
4
+ #define diffuseRatio 0.3
5
+ #define specularRatio 0.2
6
+
7
+ attribute vec4 a_Color;
8
+ attribute vec3 a_Position;
9
+ attribute vec3 a_Normal;
10
+ attribute float a_Size;
11
+ attribute vec3 a_uvs;
12
+ uniform mat4 u_ModelMatrix;
13
+ uniform mat4 u_Mvp;
14
+
15
+ varying vec4 v_Color;
16
+ uniform float u_heightfixed: 0.0; // 默认不固定
17
+ uniform float u_raisingHeight: 0.0;
18
+ uniform float u_opacity: 1.0;
19
+ varying mat4 styleMappingMat; // 用于将在顶点着色器中计算好的样式值传递给片元
20
+
21
+ #pragma include "styleMapping"
22
+ #pragma include "styleMappingCalOpacity"
23
+
24
+ #pragma include "projection"
25
+ #pragma include "light"
26
+ #pragma include "picking"
27
+
28
+ void main() {
29
+ v_Color = a_Color;
30
+
31
+ // cal style mapping - 数据纹理映射部分的计算
32
+ styleMappingMat = mat4(
33
+ 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - a_Position.z(judge side by a_Position.z)
34
+ 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA
35
+ 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1] - u - v
36
+ 0.0, 0.0, 0.0, 0.0 // sidey
37
+ );
38
+
39
+ styleMappingMat[0][3] = a_Position.z;
40
+ styleMappingMat[2][2] = a_uvs[0];
41
+ styleMappingMat[2][3] = 1.0 - a_uvs[1];
42
+ styleMappingMat[3][0] = a_uvs[2];
43
+
44
+
45
+ float rowCount = u_cellTypeLayout[0][0]; // 当前的数据纹理有几行
46
+ float columnCount = u_cellTypeLayout[0][1]; // 当看到数据纹理有几列
47
+ float columnWidth = 1.0/columnCount; // 列宽
48
+ float rowHeight = 1.0/rowCount; // 行高
49
+ float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets
50
+ float id = a_vertexId; // 第n个顶点
51
+ float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // 起始点在第几行
52
+ float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // 起始点在第几列
53
+
54
+ // cell 固定顺序 opacity -> strokeOpacity -> strokeWidth -> stroke ...
55
+ // 按顺序从 cell 中取值、若没有则自动往下取值
56
+ float textureOffset = 0.0; // 在 cell 中取值的偏移量
57
+
58
+ vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);
59
+ styleMappingMat[0][0] = opacityAndOffset.r;
60
+ textureOffset = opacityAndOffset.g;
61
+ // cal style mapping - 数据纹理映射部分的计算
62
+
63
+ vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);
64
+ vec4 project_pos = project_position(pos);
65
+
66
+ if(u_heightfixed > 0.0) { // 判断几何体是否固定高度
67
+ project_pos.z = a_Position.z * a_Size;
68
+ project_pos.z += u_raisingHeight;
69
+
70
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
71
+ float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);
72
+ project_pos.z *= mapboxZoomScale;
73
+ project_pos.z += u_raisingHeight * mapboxZoomScale;
74
+ }
75
+ }
76
+
77
+ // project_pos.z += 500000.0; // amap1
78
+
79
+ // project_pos.z += (500000.0 * 4.0)/pow(2.0, 21.0 - u_Zoom); // mapbox
80
+ // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
81
+
82
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
83
+ // gl_Position = u_Mvp * (vec4(project_pos.xyz * vec3(1.0, 1.0, -1.0), 1.0));
84
+ gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));
85
+ } else {
86
+ gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
87
+ }
88
+
89
+ float lightWeight = calc_lighting(pos);
90
+ styleMappingMat[3][1] = lightWeight;
91
+
92
+ setPickingColor(a_PickingColor);
93
+ }
@@ -0,0 +1,12 @@
1
+ uniform float u_opacity: 1.0;
2
+ varying vec4 v_Color;
3
+ varying mat4 styleMappingMat; // 传递从片元中传递的映射数据
4
+
5
+ #pragma include "picking"
6
+
7
+ void main() {
8
+ float opacity = styleMappingMat[0][0];
9
+ gl_FragColor = v_Color;
10
+ gl_FragColor.a *= opacity;
11
+ gl_FragColor = filterColor(gl_FragColor);
12
+ }
@@ -0,0 +1,22 @@
1
+ uniform float u_opacity: 1.0;
2
+ varying vec4 v_Color;
3
+ varying mat4 styleMappingMat; // 传递从片元中传递的映射数据
4
+
5
+ #pragma include "picking"
6
+ uniform float u_opacitylinear: 0.0;
7
+ uniform float u_dir: 1.0;
8
+ varying vec3 v_linear;
9
+ varying vec2 v_pos;
10
+
11
+
12
+ void main() {
13
+ float opacity = styleMappingMat[0][0];
14
+ gl_FragColor = v_Color;
15
+
16
+ if(u_opacitylinear > 0.0) {
17
+ gl_FragColor.a *= u_dir == 1.0 ? 1.0 - length(v_pos - v_linear.xy)/v_linear.z : length(v_pos - v_linear.xy)/v_linear.z;
18
+ }
19
+
20
+ gl_FragColor.a *= opacity;
21
+ gl_FragColor = filterColor(gl_FragColor);
22
+ }
@@ -0,0 +1,74 @@
1
+ attribute vec4 a_Color;
2
+ attribute vec3 a_Position;
3
+
4
+ uniform mat4 u_ModelMatrix;
5
+ uniform mat4 u_Mvp;
6
+ uniform float u_opacity: 1.0;
7
+ uniform float u_raisingHeight: 0.0;
8
+
9
+ varying vec4 v_Color;
10
+ varying mat4 styleMappingMat; // 用于将在顶点着色器中计算好的样式值传递给片元
11
+
12
+ #pragma include "styleMapping"
13
+ #pragma include "styleMappingCalOpacity"
14
+
15
+ #pragma include "projection"
16
+ #pragma include "picking"
17
+
18
+ uniform float u_opacitylinear: 0.0;
19
+
20
+ attribute vec3 a_linear;
21
+ varying vec3 v_linear;
22
+ varying vec2 v_pos;
23
+
24
+ void main() {
25
+ if(u_opacitylinear > 0.0) {
26
+ v_linear = a_linear;
27
+ v_pos = a_Position.xy;
28
+ }
29
+
30
+ // cal style mapping - 数据纹理映射部分的计算
31
+ styleMappingMat = mat4(
32
+ 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty
33
+ 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA
34
+ 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]
35
+ 0.0, 0.0, 0.0, 0.0
36
+ );
37
+
38
+ float rowCount = u_cellTypeLayout[0][0]; // 当前的数据纹理有几行
39
+ float columnCount = u_cellTypeLayout[0][1]; // 当看到数据纹理有几列
40
+ float columnWidth = 1.0/columnCount; // 列宽
41
+ float rowHeight = 1.0/rowCount; // 行高
42
+ float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets
43
+ float id = a_vertexId; // 第n个顶点
44
+ float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // 起始点在第几行
45
+ float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // 起始点在第几列
46
+
47
+ // cell 固定顺序 opacity -> strokeOpacity -> strokeWidth -> stroke ...
48
+ // 按顺序从 cell 中取值、若没有则自动往下取值
49
+ float textureOffset = 0.0; // 在 cell 中取值的偏移量
50
+
51
+ vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);
52
+ styleMappingMat[0][0] = opacityAndOffset.r;
53
+ textureOffset = opacityAndOffset.g;
54
+ // cal style mapping - 数据纹理映射部分的计算
55
+
56
+ v_Color = a_Color;
57
+ vec4 project_pos = project_position(vec4(a_Position, 1.0));
58
+ // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
59
+ project_pos.z += u_raisingHeight;
60
+
61
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {
62
+ float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);
63
+ project_pos.z *= mapboxZoomScale;
64
+ project_pos.z += u_raisingHeight * mapboxZoomScale;
65
+ }
66
+
67
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
68
+ gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));
69
+ } else {
70
+ gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));
71
+ }
72
+
73
+ setPickingColor(a_PickingColor);
74
+ }