@antv/l7-layers 2.16.0 → 2.16.1

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 (242) hide show
  1. package/es/Geometry/index.js +31 -9
  2. package/es/Geometry/models/billboard.js +89 -51
  3. package/es/Geometry/models/plane.js +143 -81
  4. package/es/Geometry/models/sprite.js +118 -60
  5. package/es/canvas/index.js +33 -10
  6. package/es/canvas/models/canvas.js +97 -41
  7. package/es/citybuliding/building.js +27 -8
  8. package/es/citybuliding/models/build.js +82 -57
  9. package/es/core/BaseLayer.js +485 -321
  10. package/es/core/BaseModel.js +126 -97
  11. package/es/core/LayerPickService.js +32 -21
  12. package/es/core/TextureService.js +13 -0
  13. package/es/core/interface.js +24 -17
  14. package/es/core/shape/Path.js +20 -13
  15. package/es/core/shape/extrude.js +31 -10
  16. package/es/core/triangulation.js +114 -54
  17. package/es/earth/index.js +33 -9
  18. package/es/earth/models/atmosphere.js +54 -30
  19. package/es/earth/models/base.js +85 -47
  20. package/es/earth/models/bloomsphere.js +54 -30
  21. package/es/earth/utils.js +13 -9
  22. package/es/heatmap/index.js +40 -10
  23. package/es/heatmap/models/grid.js +52 -28
  24. package/es/heatmap/models/grid3d.js +52 -28
  25. package/es/heatmap/models/heatmap.js +146 -91
  26. package/es/heatmap/models/hexagon.js +52 -28
  27. package/es/heatmap/triangulation.js +4 -0
  28. package/es/image/index.js +28 -9
  29. package/es/image/models/image.js +100 -66
  30. package/es/index.js +17 -9
  31. package/es/line/index.js +34 -9
  32. package/es/line/models/arc.js +118 -66
  33. package/es/line/models/arc_3d.js +108 -60
  34. package/es/line/models/earthArc_3d.js +111 -63
  35. package/es/line/models/great_circle.js +100 -56
  36. package/es/line/models/half.js +77 -46
  37. package/es/line/models/line.js +148 -94
  38. package/es/line/models/linearline.js +80 -45
  39. package/es/line/models/simpleLine.js +74 -41
  40. package/es/line/models/wall.js +92 -52
  41. package/es/mask/index.js +28 -9
  42. package/es/mask/models/fill.js +54 -29
  43. package/es/plugins/DataMappingPlugin.js +117 -80
  44. package/es/plugins/DataSourcePlugin.js +68 -45
  45. package/es/plugins/FeatureScalePlugin.js +122 -67
  46. package/es/plugins/LayerAnimateStylePlugin.js +5 -0
  47. package/es/plugins/LayerMaskPlugin.js +11 -3
  48. package/es/plugins/LayerModelPlugin.js +104 -67
  49. package/es/plugins/LayerStylePlugin.js +9 -3
  50. package/es/plugins/LightingPlugin.js +18 -12
  51. package/es/plugins/MultiPassRendererPlugin.js +16 -11
  52. package/es/plugins/PixelPickingPlugin.js +21 -12
  53. package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
  54. package/es/plugins/ShaderUniformPlugin.js +27 -13
  55. package/es/plugins/UpdateModelPlugin.js +5 -0
  56. package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
  57. package/es/point/index.js +77 -26
  58. package/es/point/models/earthExtrude.js +102 -61
  59. package/es/point/models/earthFill.js +87 -57
  60. package/es/point/models/extrude.js +101 -60
  61. package/es/point/models/fill.js +100 -70
  62. package/es/point/models/fillmage.js +107 -63
  63. package/es/point/models/image.js +88 -48
  64. package/es/point/models/index.js +2 -2
  65. package/es/point/models/normal.js +54 -30
  66. package/es/point/models/radar.js +64 -40
  67. package/es/point/models/simplePoint.js +69 -41
  68. package/es/point/models/text.js +301 -198
  69. package/es/point/shape/extrude.js +13 -4
  70. package/es/polygon/index.js +40 -11
  71. package/es/polygon/models/extrude.js +92 -48
  72. package/es/polygon/models/fill.js +88 -54
  73. package/es/polygon/models/index.js +2 -3
  74. package/es/polygon/models/ocean.js +76 -42
  75. package/es/polygon/models/water.js +71 -37
  76. package/es/raster/buffers/triangulation.js +4 -2
  77. package/es/raster/index.js +32 -9
  78. package/es/raster/models/raster.js +116 -80
  79. package/es/raster/models/rasterRgb.js +127 -84
  80. package/es/raster/models/rasterTerrainRgb.js +84 -56
  81. package/es/tile/interaction/getRasterData.js +20 -14
  82. package/es/tile/interaction/utils.js +9 -7
  83. package/es/tile/manager/base.js +96 -63
  84. package/es/tile/service/TileLayerService.js +55 -33
  85. package/es/tile/service/TilePickService.js +40 -26
  86. package/es/tile/service/TileSourceService.js +7 -3
  87. package/es/tile/tileFactory/DebugTile.js +46 -29
  88. package/es/tile/tileFactory/ImageTile.js +38 -20
  89. package/es/tile/tileFactory/MaskTile.js +43 -22
  90. package/es/tile/tileFactory/RasterRGBTile.js +42 -22
  91. package/es/tile/tileFactory/RasterTerrainRGBTile.js +38 -20
  92. package/es/tile/tileFactory/RasterTile.js +53 -30
  93. package/es/tile/tileFactory/Tile.js +97 -63
  94. package/es/tile/tileFactory/VectorTile.js +68 -41
  95. package/es/tile/tileFactory/index.js +11 -0
  96. package/es/tile/tileFactory/layers/TileDebugLayer.js +27 -6
  97. package/es/tile/tileFactory/util.js +3 -0
  98. package/es/tile/tileLayer/BaseLayer.js +146 -105
  99. package/es/tile/utils.js +1 -1
  100. package/es/utils/blend.js +2 -0
  101. package/es/utils/collision-index.js +16 -9
  102. package/es/utils/dataMappingStyle.js +18 -8
  103. package/es/utils/extrude_polyline.js +149 -101
  104. package/es/utils/grid-index.js +27 -2
  105. package/es/utils/identityScale.js +8 -0
  106. package/es/utils/layerData.js +44 -30
  107. package/es/utils/multiPassRender.js +13 -11
  108. package/es/utils/polylineNormal.js +37 -31
  109. package/es/utils/simpleLine.js +16 -2
  110. package/es/utils/stencil.js +3 -2
  111. package/es/utils/symbol-layout.js +53 -27
  112. package/es/wind/index.js +29 -9
  113. package/es/wind/models/utils.js +51 -26
  114. package/es/wind/models/wind.js +147 -101
  115. package/es/wind/models/windRender.js +66 -53
  116. package/lib/Geometry/index.js +38 -9
  117. package/lib/Geometry/models/billboard.js +97 -51
  118. package/lib/Geometry/models/index.js +5 -0
  119. package/lib/Geometry/models/plane.js +151 -79
  120. package/lib/Geometry/models/sprite.js +127 -60
  121. package/lib/canvas/index.js +40 -10
  122. package/lib/canvas/models/canvas.js +101 -41
  123. package/lib/canvas/models/index.js +3 -0
  124. package/lib/citybuliding/building.js +35 -8
  125. package/lib/citybuliding/models/build.js +92 -57
  126. package/lib/core/BaseLayer.js +479 -321
  127. package/lib/core/BaseModel.js +139 -97
  128. package/lib/core/LayerPickService.js +37 -21
  129. package/lib/core/TextureService.js +16 -0
  130. package/lib/core/interface.js +31 -21
  131. package/lib/core/schema.js +1 -0
  132. package/lib/core/shape/Path.js +31 -14
  133. package/lib/core/shape/extrude.js +54 -10
  134. package/lib/core/triangulation.js +153 -53
  135. package/lib/earth/index.js +43 -9
  136. package/lib/earth/models/atmosphere.js +63 -30
  137. package/lib/earth/models/base.js +90 -47
  138. package/lib/earth/models/bloomsphere.js +63 -30
  139. package/lib/earth/utils.js +31 -7
  140. package/lib/heatmap/index.js +48 -10
  141. package/lib/heatmap/models/grid.js +60 -28
  142. package/lib/heatmap/models/grid3d.js +60 -28
  143. package/lib/heatmap/models/heatmap.js +162 -91
  144. package/lib/heatmap/models/hexagon.js +60 -28
  145. package/lib/heatmap/models/index.js +6 -0
  146. package/lib/heatmap/triangulation.js +5 -0
  147. package/lib/image/index.js +36 -9
  148. package/lib/image/models/image.js +109 -66
  149. package/lib/image/models/index.js +3 -0
  150. package/lib/index.js +61 -7
  151. package/lib/line/index.js +40 -9
  152. package/lib/line/models/arc.js +128 -64
  153. package/lib/line/models/arc_3d.js +119 -58
  154. package/lib/line/models/earthArc_3d.js +122 -61
  155. package/lib/line/models/great_circle.js +111 -56
  156. package/lib/line/models/half.js +87 -46
  157. package/lib/line/models/index.js +11 -0
  158. package/lib/line/models/line.js +156 -92
  159. package/lib/line/models/linearline.js +92 -45
  160. package/lib/line/models/simpleLine.js +84 -41
  161. package/lib/line/models/wall.js +103 -52
  162. package/lib/mask/index.js +36 -9
  163. package/lib/mask/models/fill.js +63 -29
  164. package/lib/mask/models/index.js +3 -0
  165. package/lib/plugins/DataMappingPlugin.js +128 -80
  166. package/lib/plugins/DataSourcePlugin.js +76 -45
  167. package/lib/plugins/FeatureScalePlugin.js +138 -67
  168. package/lib/plugins/LayerAnimateStylePlugin.js +10 -0
  169. package/lib/plugins/LayerMaskPlugin.js +17 -4
  170. package/lib/plugins/LayerModelPlugin.js +113 -68
  171. package/lib/plugins/LayerStylePlugin.js +14 -4
  172. package/lib/plugins/LightingPlugin.js +25 -12
  173. package/lib/plugins/MultiPassRendererPlugin.js +22 -11
  174. package/lib/plugins/PixelPickingPlugin.js +27 -12
  175. package/lib/plugins/RegisterStyleAttributePlugin.js +19 -5
  176. package/lib/plugins/ShaderUniformPlugin.js +34 -13
  177. package/lib/plugins/UpdateModelPlugin.js +10 -1
  178. package/lib/plugins/UpdateStyleAttributePlugin.js +16 -5
  179. package/lib/point/index.js +83 -26
  180. package/lib/point/models/earthExtrude.js +113 -61
  181. package/lib/point/models/earthFill.js +117 -57
  182. package/lib/point/models/extrude.js +111 -60
  183. package/lib/point/models/fill.js +109 -68
  184. package/lib/point/models/fillmage.js +115 -61
  185. package/lib/point/models/image.js +98 -48
  186. package/lib/point/models/index.js +12 -1
  187. package/lib/point/models/normal.js +64 -30
  188. package/lib/point/models/radar.js +74 -40
  189. package/lib/point/models/simplePoint.js +79 -41
  190. package/lib/point/models/text.js +309 -198
  191. package/lib/point/shape/extrude.js +20 -4
  192. package/lib/polygon/index.js +48 -11
  193. package/lib/polygon/models/extrude.js +103 -48
  194. package/lib/polygon/models/fill.js +98 -54
  195. package/lib/polygon/models/index.js +14 -2
  196. package/lib/polygon/models/ocean.js +88 -42
  197. package/lib/polygon/models/water.js +82 -37
  198. package/lib/raster/buffers/triangulation.js +7 -3
  199. package/lib/raster/index.js +40 -9
  200. package/lib/raster/models/index.js +5 -0
  201. package/lib/raster/models/raster.js +125 -80
  202. package/lib/raster/models/rasterRgb.js +139 -84
  203. package/lib/raster/models/rasterTerrainRgb.js +93 -56
  204. package/lib/tile/interaction/getRasterData.js +25 -14
  205. package/lib/tile/interaction/utils.js +19 -7
  206. package/lib/tile/manager/base.js +104 -63
  207. package/lib/tile/service/TileLayerService.js +60 -33
  208. package/lib/tile/service/TilePickService.js +48 -26
  209. package/lib/tile/service/TileSourceService.js +16 -2
  210. package/lib/tile/style/utils.js +3 -0
  211. package/lib/tile/tileFactory/DebugTile.js +54 -29
  212. package/lib/tile/tileFactory/ImageTile.js +46 -20
  213. package/lib/tile/tileFactory/MaskTile.js +51 -22
  214. package/lib/tile/tileFactory/RasterRGBTile.js +50 -22
  215. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +46 -20
  216. package/lib/tile/tileFactory/RasterTile.js +63 -30
  217. package/lib/tile/tileFactory/Tile.js +102 -63
  218. package/lib/tile/tileFactory/VectorTile.js +76 -41
  219. package/lib/tile/tileFactory/index.js +25 -0
  220. package/lib/tile/tileFactory/layers/TileDebugLayer.js +32 -6
  221. package/lib/tile/tileFactory/util.js +9 -0
  222. package/lib/tile/tileLayer/BaseLayer.js +153 -105
  223. package/lib/tile/utils.js +5 -1
  224. package/lib/utils/blend.js +5 -0
  225. package/lib/utils/collision-index.js +25 -9
  226. package/lib/utils/dataMappingStyle.js +19 -8
  227. package/lib/utils/extrude_polyline.js +181 -101
  228. package/lib/utils/grid-index.js +28 -2
  229. package/lib/utils/identityScale.js +9 -0
  230. package/lib/utils/layerData.js +49 -30
  231. package/lib/utils/multiPassRender.js +16 -11
  232. package/lib/utils/polylineNormal.js +66 -31
  233. package/lib/utils/simpleLine.js +21 -2
  234. package/lib/utils/stencil.js +4 -0
  235. package/lib/utils/symbol-layout.js +55 -27
  236. package/lib/wind/index.js +37 -9
  237. package/lib/wind/models/index.js +3 -0
  238. package/lib/wind/models/utils.js +62 -26
  239. package/lib/wind/models/wind.js +157 -101
  240. package/lib/wind/models/windRender.js +71 -53
  241. package/lib/wind/models/windShader.js +1 -0
  242. package/package.json +7 -7
@@ -6,32 +6,43 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
6
6
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
7
7
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
8
8
  import _regeneratorRuntime from "@babel/runtime/regenerator";
9
+
9
10
  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); }; }
11
+
10
12
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
+
11
14
  import { AttributeType, gl } from '@antv/l7-core';
12
15
  import { Version } from '@antv/l7-maps';
13
16
  import { isNumber } from 'lodash';
14
17
  import BaseModel from "../../core/BaseModel";
15
18
  import { polygonTriangulation } from "../../core/triangulation";
19
+
16
20
  /* babel-plugin-inline-import '../shaders/water/polygon_water_frag.glsl' */
17
21
  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;\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 = u_opacity;\n gl_FragColor = v_Color;\n gl_FragColor.a *= opacity;\n\n float spc = calSpc();\n gl_FragColor += spc * 0.4;\n}\n";
22
+
18
23
  /* babel-plugin-inline-import '../shaders/water/polygon_water_vert.glsl' */
19
24
  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;\n\n\n#pragma include \"projection\"\n\nvoid main() {\n v_uv = a_uv;\n\n v_Color = a_Color;\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";
25
+
20
26
  var WaterModel = /*#__PURE__*/function (_BaseModel) {
21
27
  _inherits(WaterModel, _BaseModel);
28
+
22
29
  var _super = _createSuper(WaterModel);
30
+
23
31
  function WaterModel() {
24
32
  _classCallCheck(this, WaterModel);
33
+
25
34
  return _super.apply(this, arguments);
26
35
  }
36
+
27
37
  _createClass(WaterModel, [{
28
38
  key: "getUninforms",
29
39
  value: function getUninforms() {
30
40
  var _ref = this.layer.getLayerConfig(),
31
- _ref$opacity = _ref.opacity,
32
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
33
- _ref$speed = _ref.speed,
34
- speed = _ref$speed === void 0 ? 0.5 : _ref$speed;
41
+ _ref$opacity = _ref.opacity,
42
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
43
+ _ref$speed = _ref.speed,
44
+ speed = _ref$speed === void 0 ? 0.5 : _ref$speed;
45
+
35
46
  return {
36
47
  u_texture: this.texture,
37
48
  u_speed: speed,
@@ -50,19 +61,24 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
50
61
  value: function () {
51
62
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
52
63
  return _regeneratorRuntime.wrap(function _callee$(_context) {
53
- while (1) switch (_context.prev = _context.next) {
54
- case 0:
55
- this.loadTexture();
56
- return _context.abrupt("return", this.buildModels());
57
- case 2:
58
- case "end":
59
- return _context.stop();
64
+ while (1) {
65
+ switch (_context.prev = _context.next) {
66
+ case 0:
67
+ this.loadTexture();
68
+ return _context.abrupt("return", this.buildModels());
69
+
70
+ case 2:
71
+ case "end":
72
+ return _context.stop();
73
+ }
60
74
  }
61
75
  }, _callee, this);
62
76
  }));
77
+
63
78
  function initModels() {
64
79
  return _initModels.apply(this, arguments);
65
80
  }
81
+
66
82
  return initModels;
67
83
  }()
68
84
  }, {
@@ -71,48 +87,57 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
71
87
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
72
88
  var model;
73
89
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
74
- while (1) switch (_context2.prev = _context2.next) {
75
- case 0:
76
- _context2.next = 2;
77
- return this.layer.buildLayerModel({
78
- moduleName: 'polygonWater',
79
- vertexShader: water_vert,
80
- fragmentShader: water_frag,
81
- triangulation: polygonTriangulation,
82
- primitive: gl.TRIANGLES,
83
- depth: {
84
- enable: false
85
- }
86
- });
87
- case 2:
88
- model = _context2.sent;
89
- return _context2.abrupt("return", [model]);
90
- case 4:
91
- case "end":
92
- return _context2.stop();
90
+ while (1) {
91
+ switch (_context2.prev = _context2.next) {
92
+ case 0:
93
+ _context2.next = 2;
94
+ return this.layer.buildLayerModel({
95
+ moduleName: 'polygonWater',
96
+ vertexShader: water_vert,
97
+ fragmentShader: water_frag,
98
+ triangulation: polygonTriangulation,
99
+ primitive: gl.TRIANGLES,
100
+ depth: {
101
+ enable: false
102
+ }
103
+ });
104
+
105
+ case 2:
106
+ model = _context2.sent;
107
+ return _context2.abrupt("return", [model]);
108
+
109
+ case 4:
110
+ case "end":
111
+ return _context2.stop();
112
+ }
93
113
  }
94
114
  }, _callee2, this);
95
115
  }));
116
+
96
117
  function buildModels() {
97
118
  return _buildModels.apply(this, arguments);
98
119
  }
120
+
99
121
  return buildModels;
100
122
  }()
101
123
  }, {
102
124
  key: "clearModels",
103
125
  value: function clearModels() {
104
126
  var _this$texture;
127
+
105
128
  (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
106
129
  }
107
130
  }, {
108
131
  key: "registerBuiltinAttributes",
109
132
  value: function registerBuiltinAttributes() {
110
133
  var bbox = this.layer.getSource().extent;
134
+
111
135
  var _bbox = _slicedToArray(bbox, 4),
112
- minLng = _bbox[0],
113
- minLat = _bbox[1],
114
- maxLng = _bbox[2],
115
- maxLat = _bbox[3];
136
+ minLng = _bbox[0],
137
+ minLat = _bbox[1],
138
+ maxLng = _bbox[2],
139
+ maxLat = _bbox[3];
140
+
116
141
  var lngLen = maxLng - minLng;
117
142
  var latLen = maxLat - minLat;
118
143
  this.styleAttributeService.registerStyleAttribute({
@@ -129,9 +154,11 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
129
154
  size: 2,
130
155
  update: function update(feature, featureIdx, vertex, attributeIdx) {
131
156
  var v = feature.version === Version['GAODE2.x'] ? feature.originCoordinates[0][attributeIdx] : vertex;
157
+
132
158
  var _v = _slicedToArray(v, 2),
133
- lng = _v[0],
134
- lat = _v[1];
159
+ lng = _v[0],
160
+ lat = _v[1];
161
+
135
162
  return [(lng - minLng) / lngLen, (lat - minLat) / latLen];
136
163
  }
137
164
  }
@@ -141,8 +168,10 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
141
168
  key: "loadTexture",
142
169
  value: function loadTexture() {
143
170
  var _this = this;
171
+
144
172
  var _ref2 = this.layer.getLayerConfig(),
145
- waterTexture = _ref2.waterTexture;
173
+ waterTexture = _ref2.waterTexture;
174
+
146
175
  var createTexture2D = this.rendererService.createTexture2D;
147
176
  this.texture = createTexture2D({
148
177
  height: 0,
@@ -150,6 +179,7 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
150
179
  });
151
180
  var image = new Image();
152
181
  image.crossOrigin = '';
182
+
153
183
  if (waterTexture) {
154
184
  // custom texture
155
185
  console.warn('L7 recommend:https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ');
@@ -158,6 +188,7 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
158
188
  // default texture
159
189
  image.src = 'https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ';
160
190
  }
191
+
161
192
  image.onload = function () {
162
193
  _this.texture = createTexture2D({
163
194
  data: image,
@@ -168,10 +199,13 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
168
199
  min: gl.LINEAR,
169
200
  mag: gl.LINEAR
170
201
  });
202
+
171
203
  _this.layerService.reRender();
172
204
  };
173
205
  }
174
206
  }]);
207
+
175
208
  return WaterModel;
176
209
  }(BaseModel);
210
+
177
211
  export { WaterModel as default };
@@ -2,16 +2,18 @@
2
2
  import Martini from '@mapbox/martini';
3
3
  export function RasterTriangulation(parserData) {
4
4
  var data = parserData.data,
5
- width = parserData.width,
6
- height = parserData.height;
5
+ width = parserData.width,
6
+ height = parserData.height;
7
7
  var maxlength = Math.max(width, height);
8
8
  var gridSize = Math.pow(2, Math.ceil(Math.log2(maxlength))) + 1;
9
9
  var terrain = new Float32Array(gridSize * gridSize);
10
+
10
11
  for (var i = 0; i < width; i++) {
11
12
  for (var j = 0; j < height; j++) {
12
13
  terrain[i * gridSize + j] = data[i * width + j];
13
14
  }
14
15
  }
16
+
15
17
  var martini = new Martini(gridSize);
16
18
  var tile = martini.createTile(terrain);
17
19
  var mesh = tile.getMesh(gridSize / 2);
@@ -7,44 +7,61 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConst
7
7
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
8
8
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
9
  import _regeneratorRuntime from "@babel/runtime/regenerator";
10
+
10
11
  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
+
11
13
  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; } }
14
+
12
15
  import BaseLayer from "../core/BaseLayer";
13
16
  import RasterModels from "./models/index";
17
+
14
18
  var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
15
19
  _inherits(RaterLayer, _BaseLayer);
20
+
16
21
  var _super = _createSuper(RaterLayer);
22
+
17
23
  function RaterLayer() {
18
24
  var _this;
25
+
19
26
  _classCallCheck(this, RaterLayer);
27
+
20
28
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
21
29
  args[_key] = arguments[_key];
22
30
  }
31
+
23
32
  _this = _super.call.apply(_super, [this].concat(args));
33
+
24
34
  _defineProperty(_assertThisInitialized(_this), "type", 'RasterLayer');
35
+
25
36
  return _this;
26
37
  }
38
+
27
39
  _createClass(RaterLayer, [{
28
40
  key: "buildModels",
29
41
  value: function () {
30
42
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
31
43
  var modelType;
32
44
  return _regeneratorRuntime.wrap(function _callee$(_context) {
33
- while (1) switch (_context.prev = _context.next) {
34
- case 0:
35
- modelType = this.getModelType();
36
- this.layerModel = new RasterModels[modelType](this);
37
- _context.next = 4;
38
- return this.initLayerModels();
39
- case 4:
40
- case "end":
41
- return _context.stop();
45
+ while (1) {
46
+ switch (_context.prev = _context.next) {
47
+ case 0:
48
+ modelType = this.getModelType();
49
+ this.layerModel = new RasterModels[modelType](this);
50
+ _context.next = 4;
51
+ return this.initLayerModels();
52
+
53
+ case 4:
54
+ case "end":
55
+ return _context.stop();
56
+ }
42
57
  }
43
58
  }, _callee, this);
44
59
  }));
60
+
45
61
  function buildModels() {
46
62
  return _buildModels.apply(this, arguments);
47
63
  }
64
+
48
65
  return buildModels;
49
66
  }()
50
67
  }, {
@@ -64,18 +81,24 @@ var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
64
81
  value: function getModelType() {
65
82
  // 根据 source 的类型判断 model type
66
83
  var parserType = this.layerSource.getParserType();
84
+
67
85
  switch (parserType) {
68
86
  case 'raster':
69
87
  return 'raster';
88
+
70
89
  case 'rasterRgb':
71
90
  return 'rasterRgb';
91
+
72
92
  case 'image':
73
93
  return 'rasterTerrainRgb';
94
+
74
95
  default:
75
96
  return 'raster';
76
97
  }
77
98
  }
78
99
  }]);
100
+
79
101
  return RaterLayer;
80
102
  }(BaseLayer);
103
+
81
104
  export { RaterLayer as default };
@@ -5,37 +5,48 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
+
8
9
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+
9
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
+
10
13
  import { AttributeType, gl } from '@antv/l7-core';
11
14
  import { getDefaultDomain } from '@antv/l7-utils';
12
15
  import BaseModel from "../../core/BaseModel";
13
16
  import { RasterImageTriangulation } from "../../core/triangulation";
17
+
14
18
  /* babel-plugin-inline-import '../shaders/raster_2d_frag.glsl' */
15
19
  var rasterFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_min;\nuniform float u_max;\nuniform vec2 u_domain;\nuniform float u_noDataValue;\nuniform bool u_clampLow: true;\nuniform bool u_clampHigh: true;\nvarying vec2 v_texCoord;\nbool isnan_emu(float x) { return (x > 0.0 || x < 0.0) ? x != x : x != 0.0; }\n\n\nvoid main() {\n\n float value = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).r;\n if (value == u_noDataValue || isnan_emu(value))\n discard;\n else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1]))\n discard;\n else {\n float normalisedValue =(value - u_domain[0]) / (u_domain[1] -u_domain[0]);\n vec4 color = texture2D(u_colorTexture,vec2(normalisedValue, 0));\n \n gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n if(gl_FragColor.a < 0.01)\n discard;\n \n }\n}\n";
20
+
16
21
  /* babel-plugin-inline-import '../shaders/raster_2d_vert.glsl' */
17
22
  var rasterVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n }\n}\n";
23
+
18
24
  var RasterModel = /*#__PURE__*/function (_BaseModel) {
19
25
  _inherits(RasterModel, _BaseModel);
26
+
20
27
  var _super = _createSuper(RasterModel);
28
+
21
29
  function RasterModel() {
22
30
  _classCallCheck(this, RasterModel);
31
+
23
32
  return _super.apply(this, arguments);
24
33
  }
34
+
25
35
  _createClass(RasterModel, [{
26
36
  key: "getUninforms",
27
37
  value: function getUninforms() {
28
38
  var _ref = this.layer.getLayerConfig(),
29
- _ref$opacity = _ref.opacity,
30
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
31
- _ref$clampLow = _ref.clampLow,
32
- clampLow = _ref$clampLow === void 0 ? true : _ref$clampLow,
33
- _ref$clampHigh = _ref.clampHigh,
34
- clampHigh = _ref$clampHigh === void 0 ? true : _ref$clampHigh,
35
- _ref$noDataValue = _ref.noDataValue,
36
- noDataValue = _ref$noDataValue === void 0 ? -9999999 : _ref$noDataValue,
37
- domain = _ref.domain,
38
- rampColors = _ref.rampColors;
39
+ _ref$opacity = _ref.opacity,
40
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
41
+ _ref$clampLow = _ref.clampLow,
42
+ clampLow = _ref$clampLow === void 0 ? true : _ref$clampLow,
43
+ _ref$clampHigh = _ref.clampHigh,
44
+ clampHigh = _ref$clampHigh === void 0 ? true : _ref$clampHigh,
45
+ _ref$noDataValue = _ref.noDataValue,
46
+ noDataValue = _ref$noDataValue === void 0 ? -9999999 : _ref$noDataValue,
47
+ domain = _ref.domain,
48
+ rampColors = _ref.rampColors;
49
+
39
50
  var newdomain = domain || getDefaultDomain(rampColors);
40
51
  this.colorTexture = this.layer.textureService.getColorTexture(rampColors, newdomain);
41
52
  return {
@@ -53,40 +64,49 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
53
64
  value: function () {
54
65
  var _getRasterData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(parserDataItem) {
55
66
  var _yield$parserDataItem, rasterData, width, height;
67
+
56
68
  return _regeneratorRuntime.wrap(function _callee$(_context) {
57
- while (1) switch (_context.prev = _context.next) {
58
- case 0:
59
- if (!Array.isArray(parserDataItem.data)) {
60
- _context.next = 4;
61
- break;
62
- }
63
- return _context.abrupt("return", {
64
- data: parserDataItem.data,
65
- width: parserDataItem.width,
66
- height: parserDataItem.height
67
- });
68
- case 4:
69
- _context.next = 6;
70
- return parserDataItem.data;
71
- case 6:
72
- _yield$parserDataItem = _context.sent;
73
- rasterData = _yield$parserDataItem.rasterData;
74
- width = _yield$parserDataItem.width;
75
- height = _yield$parserDataItem.height;
76
- return _context.abrupt("return", {
77
- data: Array.from(rasterData),
78
- width: width,
79
- height: height
80
- });
81
- case 11:
82
- case "end":
83
- return _context.stop();
69
+ while (1) {
70
+ switch (_context.prev = _context.next) {
71
+ case 0:
72
+ if (!Array.isArray(parserDataItem.data)) {
73
+ _context.next = 4;
74
+ break;
75
+ }
76
+
77
+ return _context.abrupt("return", {
78
+ data: parserDataItem.data,
79
+ width: parserDataItem.width,
80
+ height: parserDataItem.height
81
+ });
82
+
83
+ case 4:
84
+ _context.next = 6;
85
+ return parserDataItem.data;
86
+
87
+ case 6:
88
+ _yield$parserDataItem = _context.sent;
89
+ rasterData = _yield$parserDataItem.rasterData;
90
+ width = _yield$parserDataItem.width;
91
+ height = _yield$parserDataItem.height;
92
+ return _context.abrupt("return", {
93
+ data: Array.from(rasterData),
94
+ width: width,
95
+ height: height
96
+ });
97
+
98
+ case 11:
99
+ case "end":
100
+ return _context.stop();
101
+ }
84
102
  }
85
103
  }, _callee);
86
104
  }));
105
+
87
106
  function getRasterData(_x) {
88
107
  return _getRasterData.apply(this, arguments);
89
108
  }
109
+
90
110
  return getRasterData;
91
111
  }()
92
112
  }, {
@@ -94,50 +114,58 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
94
114
  value: function () {
95
115
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
96
116
  var source, createTexture2D, parserDataItem, _yield$this$getRaster, data, width, height, model;
117
+
97
118
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
98
- while (1) switch (_context2.prev = _context2.next) {
99
- case 0:
100
- source = this.layer.getSource();
101
- createTexture2D = this.rendererService.createTexture2D;
102
- parserDataItem = source.data.dataArray[0];
103
- _context2.next = 5;
104
- return this.getRasterData(parserDataItem);
105
- case 5:
106
- _yield$this$getRaster = _context2.sent;
107
- data = _yield$this$getRaster.data;
108
- width = _yield$this$getRaster.width;
109
- height = _yield$this$getRaster.height;
110
- this.texture = createTexture2D({
111
- data: data,
112
- width: width,
113
- height: height,
114
- format: gl.LUMINANCE,
115
- type: gl.FLOAT
116
- // aniso: 4,
117
- });
118
- _context2.next = 12;
119
- return this.layer.buildLayerModel({
120
- moduleName: 'rasterImageData',
121
- vertexShader: rasterVert,
122
- fragmentShader: rasterFrag,
123
- triangulation: RasterImageTriangulation,
124
- primitive: gl.TRIANGLES,
125
- depth: {
126
- enable: false
127
- }
128
- });
129
- case 12:
130
- model = _context2.sent;
131
- return _context2.abrupt("return", [model]);
132
- case 14:
133
- case "end":
134
- return _context2.stop();
119
+ while (1) {
120
+ switch (_context2.prev = _context2.next) {
121
+ case 0:
122
+ source = this.layer.getSource();
123
+ createTexture2D = this.rendererService.createTexture2D;
124
+ parserDataItem = source.data.dataArray[0];
125
+ _context2.next = 5;
126
+ return this.getRasterData(parserDataItem);
127
+
128
+ case 5:
129
+ _yield$this$getRaster = _context2.sent;
130
+ data = _yield$this$getRaster.data;
131
+ width = _yield$this$getRaster.width;
132
+ height = _yield$this$getRaster.height;
133
+ this.texture = createTexture2D({
134
+ data: data,
135
+ width: width,
136
+ height: height,
137
+ format: gl.LUMINANCE,
138
+ type: gl.FLOAT // aniso: 4,
139
+
140
+ });
141
+ _context2.next = 12;
142
+ return this.layer.buildLayerModel({
143
+ moduleName: 'rasterImageData',
144
+ vertexShader: rasterVert,
145
+ fragmentShader: rasterFrag,
146
+ triangulation: RasterImageTriangulation,
147
+ primitive: gl.TRIANGLES,
148
+ depth: {
149
+ enable: false
150
+ }
151
+ });
152
+
153
+ case 12:
154
+ model = _context2.sent;
155
+ return _context2.abrupt("return", [model]);
156
+
157
+ case 14:
158
+ case "end":
159
+ return _context2.stop();
160
+ }
135
161
  }
136
162
  }, _callee2, this);
137
163
  }));
164
+
138
165
  function initModels() {
139
166
  return _initModels.apply(this, arguments);
140
167
  }
168
+
141
169
  return initModels;
142
170
  }()
143
171
  }, {
@@ -145,24 +173,30 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
145
173
  value: function () {
146
174
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
147
175
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
148
- while (1) switch (_context3.prev = _context3.next) {
149
- case 0:
150
- return _context3.abrupt("return", this.initModels());
151
- case 1:
152
- case "end":
153
- return _context3.stop();
176
+ while (1) {
177
+ switch (_context3.prev = _context3.next) {
178
+ case 0:
179
+ return _context3.abrupt("return", this.initModels());
180
+
181
+ case 1:
182
+ case "end":
183
+ return _context3.stop();
184
+ }
154
185
  }
155
186
  }, _callee3, this);
156
187
  }));
188
+
157
189
  function buildModels() {
158
190
  return _buildModels.apply(this, arguments);
159
191
  }
192
+
160
193
  return buildModels;
161
194
  }()
162
195
  }, {
163
196
  key: "clearModels",
164
197
  value: function clearModels() {
165
198
  var _this$texture, _this$colorTexture;
199
+
166
200
  (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
167
201
  (_this$colorTexture = this.colorTexture) === null || _this$colorTexture === void 0 ? void 0 : _this$colorTexture.destroy();
168
202
  }
@@ -189,6 +223,8 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
189
223
  });
190
224
  }
191
225
  }]);
226
+
192
227
  return RasterModel;
193
228
  }(BaseModel);
229
+
194
230
  export { RasterModel as default };