@antv/l7-layers 2.14.1 → 2.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/es/Geometry/models/billboard.js +3 -6
  2. package/es/Geometry/models/plane.js +3 -6
  3. package/es/core/BaseLayer.d.ts +7 -3
  4. package/es/core/BaseLayer.js +64 -20
  5. package/es/core/BaseModel.d.ts +3 -2
  6. package/es/core/BaseModel.js +39 -3
  7. package/es/core/LayerPickService.js +6 -30
  8. package/es/heatmap/index.d.ts +2 -2
  9. package/es/heatmap/index.js +5 -2
  10. package/es/heatmap/models/grid.js +5 -9
  11. package/es/heatmap/models/grid3d.js +5 -10
  12. package/es/heatmap/models/heatmap.d.ts +2 -2
  13. package/es/heatmap/models/heatmap.js +54 -46
  14. package/es/heatmap/models/hexagon.js +5 -10
  15. package/es/image/models/image.js +13 -16
  16. package/es/image/shaders/image_frag.glsl +2 -0
  17. package/es/index.js +6 -0
  18. package/es/line/models/arc.js +4 -6
  19. package/es/line/models/arc_3d.js +4 -6
  20. package/es/line/models/earthArc_3d.js +4 -6
  21. package/es/line/models/great_circle.js +9 -13
  22. package/es/line/models/half.js +4 -6
  23. package/es/line/models/line.js +3 -5
  24. package/es/line/models/linearline.js +4 -6
  25. package/es/line/models/simpleLine.js +5 -8
  26. package/es/mask/models/fill.js +1 -17
  27. package/es/plugins/LayerMaskPlugin.d.ts +8 -0
  28. package/es/plugins/LayerMaskPlugin.js +42 -0
  29. package/es/plugins/LayerStylePlugin.js +2 -1
  30. package/es/point/models/extrude.js +0 -1
  31. package/es/point/models/fill.js +4 -6
  32. package/es/point/models/fillmage.js +8 -12
  33. package/es/point/models/image.js +9 -14
  34. package/es/point/models/normal.js +4 -9
  35. package/es/point/models/radar.js +5 -10
  36. package/es/point/models/simplePoint.js +5 -10
  37. package/es/point/models/text.js +10 -16
  38. package/es/point/shaders/fill_frag.glsl +4 -0
  39. package/es/point/shaders/image_frag.glsl +4 -0
  40. package/es/point/shaders/text_frag.glsl +4 -0
  41. package/es/polygon/index.js +1 -1
  42. package/es/polygon/models/extrude.js +11 -13
  43. package/es/polygon/models/fill.js +3 -5
  44. package/es/polygon/models/ocean.js +6 -9
  45. package/es/polygon/models/water.js +7 -11
  46. package/es/raster/models/raster.js +9 -11
  47. package/es/raster/models/rasterRgb.js +8 -11
  48. package/es/raster/models/rasterTerrainRgb.js +9 -13
  49. package/es/raster/shaders/raster_2d_frag.glsl +6 -3
  50. package/es/raster/shaders/raster_frag.glsl +2 -0
  51. package/es/raster/shaders/raster_rgb_frag.glsl +2 -0
  52. package/es/raster/shaders/raster_terrain_rgb_frag.glsl +2 -0
  53. package/es/tile/service/TileLayerService.js +5 -4
  54. package/es/tile/style/constants.js +1 -1
  55. package/es/tile/tileFactory/Tile.d.ts +8 -0
  56. package/es/tile/tileFactory/Tile.js +102 -14
  57. package/es/tile/tileFactory/VectorTile.d.ts +0 -1
  58. package/es/tile/tileFactory/VectorTile.js +6 -46
  59. package/es/tile/tileLayer/BaseLayer.d.ts +2 -1
  60. package/es/tile/tileLayer/BaseLayer.js +68 -62
  61. package/es/utils/stencil.d.ts +7 -0
  62. package/es/utils/stencil.js +50 -0
  63. package/es/wind/index.d.ts +2 -1
  64. package/es/wind/index.js +3 -1
  65. package/es/wind/models/wind.d.ts +2 -2
  66. package/es/wind/models/wind.js +12 -10
  67. package/lib/Geometry/models/billboard.js +3 -7
  68. package/lib/Geometry/models/plane.js +2 -6
  69. package/lib/core/BaseLayer.js +64 -20
  70. package/lib/core/BaseModel.js +40 -2
  71. package/lib/core/LayerPickService.js +6 -32
  72. package/lib/heatmap/index.js +5 -2
  73. package/lib/heatmap/models/grid.js +5 -10
  74. package/lib/heatmap/models/grid3d.js +5 -11
  75. package/lib/heatmap/models/heatmap.js +53 -45
  76. package/lib/heatmap/models/hexagon.js +5 -11
  77. package/lib/image/models/image.js +12 -15
  78. package/lib/image/shaders/image_frag.glsl +2 -0
  79. package/lib/index.js +8 -0
  80. package/lib/line/models/arc.js +3 -5
  81. package/lib/line/models/arc_3d.js +3 -5
  82. package/lib/line/models/earthArc_3d.js +3 -5
  83. package/lib/line/models/great_circle.js +8 -12
  84. package/lib/line/models/half.js +3 -5
  85. package/lib/line/models/line.js +2 -4
  86. package/lib/line/models/linearline.js +3 -5
  87. package/lib/line/models/simpleLine.js +4 -7
  88. package/lib/mask/models/fill.js +1 -18
  89. package/lib/plugins/LayerMaskPlugin.js +54 -0
  90. package/lib/plugins/LayerStylePlugin.js +2 -1
  91. package/lib/point/models/extrude.js +0 -1
  92. package/lib/point/models/fill.js +3 -5
  93. package/lib/point/models/fillmage.js +7 -11
  94. package/lib/point/models/image.js +9 -15
  95. package/lib/point/models/normal.js +4 -10
  96. package/lib/point/models/radar.js +5 -11
  97. package/lib/point/models/simplePoint.js +5 -11
  98. package/lib/point/models/text.js +9 -15
  99. package/lib/point/shaders/fill_frag.glsl +4 -0
  100. package/lib/point/shaders/image_frag.glsl +4 -0
  101. package/lib/point/shaders/text_frag.glsl +4 -0
  102. package/lib/polygon/index.js +1 -1
  103. package/lib/polygon/models/extrude.js +10 -12
  104. package/lib/polygon/models/fill.js +2 -4
  105. package/lib/polygon/models/ocean.js +5 -8
  106. package/lib/polygon/models/water.js +7 -12
  107. package/lib/raster/models/raster.js +8 -10
  108. package/lib/raster/models/rasterRgb.js +8 -12
  109. package/lib/raster/models/rasterTerrainRgb.js +8 -12
  110. package/lib/raster/shaders/raster_2d_frag.glsl +6 -3
  111. package/lib/raster/shaders/raster_frag.glsl +2 -0
  112. package/lib/raster/shaders/raster_rgb_frag.glsl +2 -0
  113. package/lib/raster/shaders/raster_terrain_rgb_frag.glsl +2 -0
  114. package/lib/tile/service/TileLayerService.js +5 -4
  115. package/lib/tile/style/constants.js +1 -1
  116. package/lib/tile/tileFactory/Tile.js +102 -14
  117. package/lib/tile/tileFactory/VectorTile.js +6 -47
  118. package/lib/tile/tileLayer/BaseLayer.js +67 -62
  119. package/lib/utils/stencil.js +60 -0
  120. package/lib/wind/index.js +3 -1
  121. package/lib/wind/models/wind.js +11 -9
  122. package/package.json +7 -7
@@ -111,14 +111,12 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
111
111
  key: "buildModels",
112
112
  value: function () {
113
113
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
114
- var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside, model;
115
-
114
+ var model;
116
115
  return _regenerator.default.wrap(function _callee2$(_context2) {
117
116
  while (1) {
118
117
  switch (_context2.prev = _context2.next) {
119
118
  case 0:
120
- _ref2 = this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
121
- _context2.next = 3;
119
+ _context2.next = 2;
122
120
  return this.layer.buildLayerModel({
123
121
  moduleName: 'polygonOcean',
124
122
  vertexShader: ocean_vert,
@@ -127,15 +125,14 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
127
125
  primitive: _l7Core.gl.TRIANGLES,
128
126
  depth: {
129
127
  enable: false
130
- },
131
- stencil: (0, _l7Utils.getMask)(mask, maskInside)
128
+ }
132
129
  });
133
130
 
134
- case 3:
131
+ case 2:
135
132
  model = _context2.sent;
136
133
  return _context2.abrupt("return", [model]);
137
134
 
138
- case 5:
135
+ case 4:
139
136
  case "end":
140
137
  return _context2.stop();
141
138
  }
@@ -27,8 +27,6 @@ var _l7Core = require("@antv/l7-core");
27
27
 
28
28
  var _l7Maps = require("@antv/l7-maps");
29
29
 
30
- var _l7Utils = require("@antv/l7-utils");
31
-
32
30
  var _lodash = require("lodash");
33
31
 
34
32
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
@@ -106,14 +104,12 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
106
104
  key: "buildModels",
107
105
  value: function () {
108
106
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
109
- var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside, model;
110
-
107
+ var model;
111
108
  return _regenerator.default.wrap(function _callee2$(_context2) {
112
109
  while (1) {
113
110
  switch (_context2.prev = _context2.next) {
114
111
  case 0:
115
- _ref2 = this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
116
- _context2.next = 3;
112
+ _context2.next = 2;
117
113
  return this.layer.buildLayerModel({
118
114
  moduleName: 'polygonWater',
119
115
  vertexShader: water_vert,
@@ -122,15 +118,14 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
122
118
  primitive: _l7Core.gl.TRIANGLES,
123
119
  depth: {
124
120
  enable: false
125
- },
126
- stencil: (0, _l7Utils.getMask)(mask, maskInside)
121
+ }
127
122
  });
128
123
 
129
- case 3:
124
+ case 2:
130
125
  model = _context2.sent;
131
126
  return _context2.abrupt("return", [model]);
132
127
 
133
- case 5:
128
+ case 4:
134
129
  case "end":
135
130
  return _context2.stop();
136
131
  }
@@ -193,8 +188,8 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
193
188
  value: function loadTexture() {
194
189
  var _this = this;
195
190
 
196
- var _ref3 = this.layer.getLayerConfig(),
197
- waterTexture = _ref3.waterTexture;
191
+ var _ref2 = this.layer.getLayerConfig(),
192
+ waterTexture = _ref2.waterTexture;
198
193
 
199
194
  var createTexture2D = this.rendererService.createTexture2D;
200
195
  this.texture = createTexture2D({
@@ -34,7 +34,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
34
34
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
35
 
36
36
  /* babel-plugin-inline-import '../shaders/raster_2d_frag.glsl' */
37
- 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 gl_FragColor = vec4(0.0, 0, 0, 0.0);\n else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1]))\n gl_FragColor = vec4(0, 0, 0, 0);\n else {\n \n float normalisedValue =(value - u_domain[0]) / (u_domain[1] -u_domain[0]);\n vec4 color = texture2D(u_colorTexture,vec2(normalisedValue, 0));\n gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n }\n}\n";
37
+ 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";
38
38
 
39
39
  /* babel-plugin-inline-import '../shaders/raster_2d_vert.glsl' */
40
40
  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";
@@ -130,20 +130,19 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
130
130
  key: "initModels",
131
131
  value: function () {
132
132
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
133
- var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside, source, createTexture2D, parserDataItem, _yield$this$getRaster, data, width, height, model;
133
+ var source, createTexture2D, parserDataItem, _yield$this$getRaster, data, width, height, model;
134
134
 
135
135
  return _regenerator.default.wrap(function _callee2$(_context2) {
136
136
  while (1) {
137
137
  switch (_context2.prev = _context2.next) {
138
138
  case 0:
139
- _ref2 = this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
140
139
  source = this.layer.getSource();
141
140
  createTexture2D = this.rendererService.createTexture2D;
142
141
  parserDataItem = source.data.dataArray[0];
143
- _context2.next = 6;
142
+ _context2.next = 5;
144
143
  return this.getRasterData(parserDataItem);
145
144
 
146
- case 6:
145
+ case 5:
147
146
  _yield$this$getRaster = _context2.sent;
148
147
  data = _yield$this$getRaster.data;
149
148
  width = _yield$this$getRaster.width;
@@ -156,7 +155,7 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
156
155
  type: _l7Core.gl.FLOAT // aniso: 4,
157
156
 
158
157
  });
159
- _context2.next = 13;
158
+ _context2.next = 12;
160
159
  return this.layer.buildLayerModel({
161
160
  moduleName: 'rasterImageData',
162
161
  vertexShader: rasterVert,
@@ -165,15 +164,14 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
165
164
  primitive: _l7Core.gl.TRIANGLES,
166
165
  depth: {
167
166
  enable: false
168
- },
169
- stencil: (0, _l7Utils.getMask)(mask, maskInside)
167
+ }
170
168
  });
171
169
 
172
- case 13:
170
+ case 12:
173
171
  model = _context2.sent;
174
172
  return _context2.abrupt("return", [model]);
175
173
 
176
- case 15:
174
+ case 14:
177
175
  case "end":
178
176
  return _context2.stop();
179
177
  }
@@ -31,8 +31,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
31
31
 
32
32
  var _l7Core = require("@antv/l7-core");
33
33
 
34
- var _l7Utils = require("@antv/l7-utils");
35
-
36
34
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
37
35
 
38
36
  var _triangulation = require("../../core/triangulation");
@@ -48,7 +46,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
48
46
  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";
49
47
 
50
48
  /* babel-plugin-inline-import '../shaders/raster_rgb_frag.glsl' */
51
- var rasterFrag = "precision mediump float;\nuniform vec2 u_rminmax: vec2(0,255); \nuniform vec2 u_gminmax: vec2(0,255);\nuniform vec2 u_bminmax: vec2(0,255);\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform float u_noDataValue : 0.0;\nvarying vec2 v_texCoord;\n\nvoid main() {\n vec3 rgb = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).rgb;\n if(rgb == vec3(u_noDataValue)) {\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n } else {\n gl_FragColor = vec4(rgb.r / (u_rminmax.y -u_rminmax.x), rgb.g /(u_gminmax.y -u_gminmax.x), rgb.b/ (u_bminmax.y - u_bminmax.x), u_opacity);\n }\n \n}";
49
+ var rasterFrag = "precision mediump float;\nuniform vec2 u_rminmax: vec2(0,255); \nuniform vec2 u_gminmax: vec2(0,255);\nuniform vec2 u_bminmax: vec2(0,255);\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform float u_noDataValue : 0.0;\nvarying vec2 v_texCoord;\n\nvoid main() {\n vec3 rgb = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).rgb;\n if(rgb == vec3(u_noDataValue)) {\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n } else {\n gl_FragColor = vec4(rgb.r / (u_rminmax.y -u_rminmax.x), rgb.g /(u_gminmax.y -u_gminmax.x), rgb.b/ (u_bminmax.y - u_bminmax.x), u_opacity);\n }\n if(gl_FragColor.a < 0.01)\n discard;\n \n}";
52
50
 
53
51
  var RasterModel = /*#__PURE__*/function (_BaseModel) {
54
52
  (0, _inherits2.default)(RasterModel, _BaseModel);
@@ -154,20 +152,19 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
154
152
  key: "initModels",
155
153
  value: function () {
156
154
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
157
- var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside, source, createTexture2D, parserDataItem, _yield$this$getRaster, data, width, height, model;
155
+ var source, createTexture2D, parserDataItem, _yield$this$getRaster, data, width, height, model;
158
156
 
159
157
  return _regenerator.default.wrap(function _callee2$(_context2) {
160
158
  while (1) {
161
159
  switch (_context2.prev = _context2.next) {
162
160
  case 0:
163
- _ref2 = this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
164
161
  source = this.layer.getSource();
165
162
  createTexture2D = this.rendererService.createTexture2D;
166
163
  parserDataItem = source.data.dataArray[0];
167
- _context2.next = 6;
164
+ _context2.next = 5;
168
165
  return this.getRasterData(parserDataItem);
169
166
 
170
- case 6:
167
+ case 5:
171
168
  _yield$this$getRaster = _context2.sent;
172
169
  data = _yield$this$getRaster.data;
173
170
  width = _yield$this$getRaster.width;
@@ -180,7 +177,7 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
180
177
  format: _l7Core.gl.RGB,
181
178
  type: _l7Core.gl.FLOAT
182
179
  });
183
- _context2.next = 13;
180
+ _context2.next = 12;
184
181
  return this.layer.buildLayerModel({
185
182
  moduleName: 'rasterImageDataRGBA',
186
183
  vertexShader: rasterVert,
@@ -189,15 +186,14 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
189
186
  primitive: _l7Core.gl.TRIANGLES,
190
187
  depth: {
191
188
  enable: false
192
- },
193
- stencil: (0, _l7Utils.getMask)(mask, maskInside)
189
+ }
194
190
  });
195
191
 
196
- case 13:
192
+ case 12:
197
193
  model = _context2.sent;
198
194
  return _context2.abrupt("return", [model]);
199
195
 
200
- case 15:
196
+ case 14:
201
197
  case "end":
202
198
  return _context2.stop();
203
199
  }
@@ -34,7 +34,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
34
34
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
35
 
36
36
  /* babel-plugin-inline-import '../shaders/raster_terrain_rgb_frag.glsl' */
37
- var Raster_terrainFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\n\nuniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\n\nvarying vec2 v_texCoord;\n\nuniform vec2 u_domain;\nuniform float u_noDataValue;\nuniform bool u_clampLow: true;\nuniform bool u_clampHigh: true;\n\nvoid main() {\n vec4 baseColor = texture2D(u_texture, vec2(v_texCoord.x, v_texCoord.y)) * 256.0;\n float r = baseColor.r * 256.0 * 256.0;\n float g = baseColor.g * 256.0;\n float b = baseColor.b;\n float value = (r + g + b) * 0.1 - 10000.0;\n \n if (value == u_noDataValue) {\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n } else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1])) {\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\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 gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n }\n}\n";
37
+ var Raster_terrainFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\n\nuniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\n\nvarying vec2 v_texCoord;\n\nuniform vec2 u_domain;\nuniform float u_noDataValue;\nuniform bool u_clampLow: true;\nuniform bool u_clampHigh: true;\n\nvoid main() {\n vec4 baseColor = texture2D(u_texture, vec2(v_texCoord.x, v_texCoord.y)) * 256.0;\n float r = baseColor.r * 256.0 * 256.0;\n float g = baseColor.g * 256.0;\n float b = baseColor.b;\n float value = (r + g + b) * 0.1 - 10000.0;\n \n if (value == u_noDataValue) {\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n } else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1])) {\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\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 gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n if(gl_FragColor.a < 0.01)\n discard;\n }\n}\n";
38
38
 
39
39
  /* babel-plugin-inline-import '../shaders/rater_terrain_rgb_vert.glsl' */
40
40
  var Raster_terrainVert = "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 // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\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";
@@ -87,26 +87,24 @@ var RasterTerrainRGB = /*#__PURE__*/function (_BaseModel) {
87
87
  key: "initModels",
88
88
  value: function () {
89
89
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
90
- var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside, source, createTexture2D, imageData, model;
91
-
90
+ var source, createTexture2D, imageData, model;
92
91
  return _regenerator.default.wrap(function _callee$(_context) {
93
92
  while (1) {
94
93
  switch (_context.prev = _context.next) {
95
94
  case 0:
96
- _ref2 = this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
97
95
  source = this.layer.getSource();
98
96
  createTexture2D = this.rendererService.createTexture2D;
99
- _context.next = 5;
97
+ _context.next = 4;
100
98
  return source.data.images;
101
99
 
102
- case 5:
100
+ case 4:
103
101
  imageData = _context.sent;
104
102
  this.texture = createTexture2D({
105
103
  data: imageData[0],
106
104
  width: imageData[0].width,
107
105
  height: imageData[0].height
108
106
  });
109
- _context.next = 9;
107
+ _context.next = 8;
110
108
  return this.layer.buildLayerModel({
111
109
  moduleName: 'RasterTileDataImage',
112
110
  vertexShader: Raster_terrainVert,
@@ -115,16 +113,14 @@ var RasterTerrainRGB = /*#__PURE__*/function (_BaseModel) {
115
113
  primitive: _l7Core.gl.TRIANGLES,
116
114
  depth: {
117
115
  enable: false
118
- },
119
- blend: this.getBlend(),
120
- stencil: (0, _l7Utils.getMask)(mask, maskInside)
116
+ }
121
117
  });
122
118
 
123
- case 9:
119
+ case 8:
124
120
  model = _context.sent;
125
121
  return _context.abrupt("return", [model]);
126
122
 
127
- case 11:
123
+ case 10:
128
124
  case "end":
129
125
  return _context.stop();
130
126
  }
@@ -16,14 +16,17 @@ void main() {
16
16
 
17
17
  float value = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).r;
18
18
  if (value == u_noDataValue || isnan_emu(value))
19
- gl_FragColor = vec4(0.0, 0, 0, 0.0);
19
+ discard;
20
20
  else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1]))
21
- gl_FragColor = vec4(0, 0, 0, 0);
21
+ discard;
22
22
  else {
23
-
24
23
  float normalisedValue =(value - u_domain[0]) / (u_domain[1] -u_domain[0]);
25
24
  vec4 color = texture2D(u_colorTexture,vec2(normalisedValue, 0));
25
+
26
26
  gl_FragColor = color;
27
27
  gl_FragColor.a = gl_FragColor.a * u_opacity ;
28
+ if(gl_FragColor.a < 0.01)
29
+ discard;
30
+
28
31
  }
29
32
  }
@@ -5,5 +5,7 @@ uniform float u_opacity: 1.0;
5
5
  void main() {
6
6
  gl_FragColor = v_color;
7
7
  gl_FragColor.a *= u_opacity;
8
+ if(gl_FragColor.a < 0.01)
9
+ discard;
8
10
 
9
11
  }
@@ -14,5 +14,7 @@ void main() {
14
14
  } else {
15
15
  gl_FragColor = vec4(rgb.r / (u_rminmax.y -u_rminmax.x), rgb.g /(u_gminmax.y -u_gminmax.x), rgb.b/ (u_bminmax.y - u_bminmax.x), u_opacity);
16
16
  }
17
+ if(gl_FragColor.a < 0.01)
18
+ discard;
17
19
 
18
20
  }
@@ -27,5 +27,7 @@ void main() {
27
27
  vec4 color = texture2D(u_colorTexture, vec2(normalisedValue, 0));
28
28
  gl_FragColor = color;
29
29
  gl_FragColor.a = gl_FragColor.a * u_opacity ;
30
+ if(gl_FragColor.a < 0.01)
31
+ discard;
30
32
  }
31
33
  }
@@ -145,20 +145,20 @@ var TileLayerService = /*#__PURE__*/function () {
145
145
  var _render = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
146
146
  var _this2 = this;
147
147
 
148
- var layers;
148
+ var layers, renders;
149
149
  return _regenerator.default.wrap(function _callee2$(_context2) {
150
150
  while (1) {
151
151
  switch (_context2.prev = _context2.next) {
152
152
  case 0:
153
153
  layers = this.getRenderLayers();
154
- layers.map( /*#__PURE__*/function () {
154
+ renders = layers.map( /*#__PURE__*/function () {
155
155
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(layer) {
156
156
  return _regenerator.default.wrap(function _callee$(_context) {
157
157
  while (1) {
158
158
  switch (_context.prev = _context.next) {
159
159
  case 0:
160
160
  _context.next = 2;
161
- return _this2.layerService.renderLayer(layer);
161
+ return _this2.layerService.renderTileLayer(layer);
162
162
 
163
163
  case 2:
164
164
  case "end":
@@ -172,8 +172,9 @@ var TileLayerService = /*#__PURE__*/function () {
172
172
  return _ref2.apply(this, arguments);
173
173
  };
174
174
  }());
175
+ Promise.all(renders);
175
176
 
176
- case 2:
177
+ case 3:
177
178
  case "end":
178
179
  return _context2.stop();
179
180
  }
@@ -11,5 +11,5 @@ var ProxyFuncs = [
11
11
  * 1. 需要作用到所属子图层才会生效的方法
12
12
  * 2. 不需要主动重新创建 model 的方法
13
13
  */
14
- 'shape', 'color', 'size', 'style', 'animate', 'filter', 'rotate', 'scale', 'setBlend', 'setSelect', 'setActive'];
14
+ 'shape', 'color', 'size', 'style', 'animate', 'filter', 'rotate', 'scale', 'setBlend', 'setSelect', 'setActive', 'disableMask', 'enableMask'];
15
15
  exports.ProxyFuncs = ProxyFuncs;
@@ -23,6 +23,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
23
23
 
24
24
  var _l7Core = require("@antv/l7-core");
25
25
 
26
+ var _polygon = _interopRequireDefault(require("../../polygon"));
27
+
26
28
  var _util = require("./util");
27
29
 
28
30
  var Tile = /*#__PURE__*/function () {
@@ -31,6 +33,7 @@ var Tile = /*#__PURE__*/function () {
31
33
  (0, _defineProperty2.default)(this, "visible", true);
32
34
  (0, _defineProperty2.default)(this, "layers", []);
33
35
  (0, _defineProperty2.default)(this, "isLoaded", false);
36
+ (0, _defineProperty2.default)(this, "tileMaskLayers", []);
34
37
  this.parent = parent;
35
38
  this.sourceTile = sourceTile;
36
39
  this.x = sourceTile.x;
@@ -66,30 +69,80 @@ var Tile = /*#__PURE__*/function () {
66
69
  }, {
67
70
  key: "getLayerOptions",
68
71
  value: function getLayerOptions() {
72
+ var _options$maskLayers;
73
+
69
74
  var options = this.parent.getLayerConfig();
70
75
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, options), {}, {
71
76
  autoFit: false,
72
- mask: (0, _util.isNeedMask)(this.parent.type) || options.mask
77
+ maskLayers: this.getMaskLayer(),
78
+ tileMask: (0, _util.isNeedMask)(this.parent.type),
79
+ mask: options.mask || ((_options$maskLayers = options.maskLayers) === null || _options$maskLayers === void 0 ? void 0 : _options$maskLayers.length) !== 0 && options.enableMask
80
+ });
81
+ } // 获取Mask 图层
82
+
83
+ }, {
84
+ key: "getMaskLayer",
85
+ value: function getMaskLayer() {
86
+ var _this = this;
87
+
88
+ var _this$parent$getLayer = this.parent.getLayerConfig(),
89
+ maskLayers = _this$parent$getLayer.maskLayers;
90
+
91
+ var layers = [];
92
+ maskLayers === null || maskLayers === void 0 ? void 0 : maskLayers.forEach(function (layer) {
93
+ if (!layer.tileLayer) {
94
+ // 非瓦片图层返回图层本身,瓦片图层返回对应的行列号图层
95
+ layers.push(layer);
96
+ return layer;
97
+ }
98
+
99
+ var tileLayer = layer.tileLayer;
100
+ var tile = tileLayer.getTile(_this.sourceTile.key);
101
+ var l = tile === null || tile === void 0 ? void 0 : tile.getLayers()[0];
102
+
103
+ if (l) {
104
+ layers.push(l);
105
+ }
73
106
  });
107
+ return layers;
74
108
  }
75
109
  }, {
76
- key: "addMask",
110
+ key: "addTileMask",
77
111
  value: function () {
78
- var _addMask = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(layer, mask) {
79
- var container;
112
+ var _addTileMask = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
113
+ var mask, container, mainLayer;
80
114
  return _regenerator.default.wrap(function _callee$(_context) {
81
115
  while (1) {
82
116
  switch (_context.prev = _context.next) {
83
117
  case 0:
118
+ mask = new _polygon.default({
119
+ visible: false,
120
+ enablePicking: false
121
+ }).source({
122
+ type: 'FeatureCollection',
123
+ features: [this.sourceTile.bboxPolygon]
124
+ }, {
125
+ parser: {
126
+ type: 'geojson',
127
+ featureId: 'id'
128
+ }
129
+ }).shape('fill');
84
130
  container = (0, _l7Core.createLayerContainer)(this.parent.sceneContainer);
85
131
  mask.setContainer(container, this.parent.sceneContainer);
86
- _context.next = 4;
132
+ _context.next = 5;
87
133
  return mask.init();
88
134
 
89
- case 4:
90
- layer.addMaskLayer(mask);
91
-
92
135
  case 5:
136
+ this.tileMask = mask;
137
+ mainLayer = this.getMainLayer();
138
+
139
+ if (mainLayer !== undefined) {
140
+ mainLayer.tileMask = mask;
141
+ }
142
+
143
+ return _context.abrupt("return", mask);
144
+
145
+ case 9:
93
146
  case "end":
94
147
  return _context.stop();
95
148
  }
@@ -97,6 +150,38 @@ var Tile = /*#__PURE__*/function () {
97
150
  }, _callee, this);
98
151
  }));
99
152
 
153
+ function addTileMask() {
154
+ return _addTileMask.apply(this, arguments);
155
+ }
156
+
157
+ return addTileMask;
158
+ }()
159
+ }, {
160
+ key: "addMask",
161
+ value: function () {
162
+ var _addMask = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(layer, mask) {
163
+ var container;
164
+ return _regenerator.default.wrap(function _callee2$(_context2) {
165
+ while (1) {
166
+ switch (_context2.prev = _context2.next) {
167
+ case 0:
168
+ container = (0, _l7Core.createLayerContainer)(this.parent.sceneContainer);
169
+ mask.setContainer(container, this.parent.sceneContainer);
170
+ _context2.next = 4;
171
+ return mask.init();
172
+
173
+ case 4:
174
+ layer.addMask(mask);
175
+ this.tileMaskLayers.push(mask);
176
+
177
+ case 6:
178
+ case "end":
179
+ return _context2.stop();
180
+ }
181
+ }
182
+ }, _callee2, this);
183
+ }));
184
+
100
185
  function addMask(_x, _x2) {
101
186
  return _addMask.apply(this, arguments);
102
187
  }
@@ -106,26 +191,26 @@ var Tile = /*#__PURE__*/function () {
106
191
  }, {
107
192
  key: "addLayer",
108
193
  value: function () {
109
- var _addLayer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(layer) {
194
+ var _addLayer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(layer) {
110
195
  var container;
111
- return _regenerator.default.wrap(function _callee2$(_context2) {
196
+ return _regenerator.default.wrap(function _callee3$(_context3) {
112
197
  while (1) {
113
- switch (_context2.prev = _context2.next) {
198
+ switch (_context3.prev = _context3.next) {
114
199
  case 0:
115
200
  // set flag
116
201
  layer.isTileLayer = true;
117
202
  container = (0, _l7Core.createLayerContainer)(this.parent.sceneContainer);
118
203
  layer.setContainer(container, this.parent.sceneContainer);
119
204
  this.layers.push(layer);
120
- _context2.next = 6;
205
+ _context3.next = 6;
121
206
  return layer.init();
122
207
 
123
208
  case 6:
124
209
  case "end":
125
- return _context2.stop();
210
+ return _context3.stop();
126
211
  }
127
212
  }
128
- }, _callee2, this);
213
+ }, _callee3, this);
129
214
  }));
130
215
 
131
216
  function addLayer(_x3) {
@@ -175,6 +260,9 @@ var Tile = /*#__PURE__*/function () {
175
260
  }, {
176
261
  key: "destroy",
177
262
  value: function destroy() {
263
+ var _this$tileMask;
264
+
265
+ (_this$tileMask = this.tileMask) === null || _this$tileMask === void 0 ? void 0 : _this$tileMask.destroy();
178
266
  this.layers.forEach(function (layer) {
179
267
  return layer.destroy();
180
268
  });
@@ -23,8 +23,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
23
23
 
24
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
25
 
26
- var _mask = _interopRequireDefault(require("../../mask"));
27
-
28
26
  var _Tile2 = _interopRequireDefault(require("./Tile"));
29
27
 
30
28
  var _util = require("./util");
@@ -75,18 +73,17 @@ var VectorTile = /*#__PURE__*/function (_Tile) {
75
73
 
76
74
  layer[attr]((_attributes$attr = attributes[attr]) === null || _attributes$attr === void 0 ? void 0 : _attributes$attr.field, (_attributes$attr2 = attributes[attr]) === null || _attributes$attr2 === void 0 ? void 0 : _attributes$attr2.values);
77
75
  });
76
+ _context.next = 11;
77
+ return this.addLayer(layer);
78
78
 
79
- if (!layerOptions.mask) {
80
- _context.next = 12;
79
+ case 11:
80
+ if (!layerOptions.tileMask) {
81
+ _context.next = 14;
81
82
  break;
82
83
  }
83
84
 
84
- _context.next = 12;
85
- return this.addTileMask(layer);
86
-
87
- case 12:
88
85
  _context.next = 14;
89
- return this.addLayer(layer);
86
+ return this.addTileMask();
90
87
 
91
88
  case 14:
92
89
  this.setLayerMinMaxZoom(layer);
@@ -105,44 +102,6 @@ var VectorTile = /*#__PURE__*/function (_Tile) {
105
102
  }
106
103
 
107
104
  return initTileLayer;
108
- }() // Todo 校验数据有效性
109
-
110
- }, {
111
- key: "addTileMask",
112
- value: function () {
113
- var _addTileMask = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(layer) {
114
- var mask;
115
- return _regenerator.default.wrap(function _callee2$(_context2) {
116
- while (1) {
117
- switch (_context2.prev = _context2.next) {
118
- case 0:
119
- mask = new _mask.default({
120
- layerType: 'MaskLayer'
121
- }).source({
122
- type: 'FeatureCollection',
123
- features: [this.sourceTile.bboxPolygon]
124
- }, {
125
- parser: {
126
- type: 'geojson',
127
- featureId: 'id'
128
- }
129
- });
130
- _context2.next = 3;
131
- return this.addMask(layer, mask);
132
-
133
- case 3:
134
- case "end":
135
- return _context2.stop();
136
- }
137
- }
138
- }, _callee2, this);
139
- }));
140
-
141
- function addTileMask(_x) {
142
- return _addTileMask.apply(this, arguments);
143
- }
144
-
145
- return addTileMask;
146
105
  }()
147
106
  }, {
148
107
  key: "getSourceOption",