@antv/l7-layers 2.9.36 → 2.9.37-alpha.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 (196) hide show
  1. package/es/Geometry/index.d.ts +0 -9
  2. package/es/Geometry/index.js +0 -13
  3. package/es/Geometry/models/billboard.d.ts +0 -9
  4. package/es/Geometry/models/billboard.js +0 -13
  5. package/es/Geometry/models/plane.d.ts +0 -9
  6. package/es/Geometry/models/plane.js +0 -13
  7. package/es/Geometry/models/sprite.d.ts +0 -9
  8. package/es/Geometry/models/sprite.js +0 -13
  9. package/es/canvas/index.d.ts +0 -9
  10. package/es/canvas/index.js +0 -13
  11. package/es/citybuliding/building.d.ts +0 -9
  12. package/es/citybuliding/building.js +0 -13
  13. package/es/core/BaseLayer.d.ts +2 -2
  14. package/es/core/BaseLayer.js +22 -13
  15. package/es/core/BaseModel.js +1 -0
  16. package/es/core/triangulation.d.ts +2 -0
  17. package/es/core/triangulation.js +2 -3
  18. package/es/glsl.d.ts +5 -0
  19. package/es/heatmap/index.d.ts +0 -9
  20. package/es/heatmap/index.js +0 -13
  21. package/es/heatmap/models/heatmap.js +1 -3
  22. package/es/image/index.d.ts +0 -9
  23. package/es/image/index.js +0 -13
  24. package/es/image/models/dataImage.d.ts +0 -9
  25. package/es/image/models/dataImage.js +1 -15
  26. package/es/image/models/image.d.ts +0 -9
  27. package/es/image/models/image.js +1 -15
  28. package/es/image/models/tileDataImage.d.ts +0 -9
  29. package/es/image/models/tileDataImage.js +1 -15
  30. package/es/index.d.ts +1 -1
  31. package/es/index.js +1 -1
  32. package/es/line/index.d.ts +0 -9
  33. package/es/line/index.js +0 -13
  34. package/es/line/models/great_circle.js +3 -3
  35. package/es/mask/index.d.ts +0 -9
  36. package/es/mask/index.js +0 -13
  37. package/es/plugins/DataMappingPlugin.js +2 -2
  38. package/es/plugins/DataSourcePlugin.js +1 -1
  39. package/es/plugins/FeatureScalePlugin.js +5 -3
  40. package/es/plugins/LayerModelPlugin.js +1 -1
  41. package/es/plugins/LightingPlugin.js +1 -1
  42. package/es/plugins/RegisterStyleAttributePlugin.js +8 -13
  43. package/es/plugins/UpdateStyleAttributePlugin.js +1 -1
  44. package/es/point/index.d.ts +0 -9
  45. package/es/point/index.js +0 -13
  46. package/es/point/models/earthFill.js +2 -2
  47. package/es/point/models/image.js +1 -1
  48. package/es/polygon/index.d.ts +0 -9
  49. package/es/polygon/index.js +0 -13
  50. package/es/polygon/models/ocean.js +1 -2
  51. package/es/polygon/models/water.js +1 -2
  52. package/es/raster/index.d.ts +0 -9
  53. package/es/raster/index.js +0 -13
  54. package/es/raster/models/raster.js +1 -2
  55. package/es/raster/models/rasterRgb.js +1 -2
  56. package/es/raster/models/rasterTile.js +1 -2
  57. package/es/raster/raster.d.ts +0 -9
  58. package/es/raster/raster.js +0 -13
  59. package/es/tile/interaction/TilePickService.d.ts +16 -0
  60. package/es/tile/{manager/tilePickerManager.js → interaction/TilePickService.js} +19 -84
  61. package/es/tile/interaction/getFeatureData.d.ts +0 -0
  62. package/es/tile/interaction/getFeatureData.js +0 -0
  63. package/es/tile/interaction/getRasterData.d.ts +4 -0
  64. package/es/tile/interaction/getRasterData.js +70 -0
  65. package/es/tile/interaction/utils.d.ts +11 -0
  66. package/es/tile/interaction/utils.js +97 -0
  67. package/es/tile/interface.d.ts +1 -2
  68. package/es/tile/manager/{baseTileManager.d.ts → base.d.ts} +8 -5
  69. package/es/tile/manager/{baseTileManager.js → base.js} +53 -14
  70. package/es/tile/manager/layerManager.d.ts +19 -0
  71. package/es/tile/manager/{tileLayerManager.js → layerManager.js} +75 -76
  72. package/es/tile/manager/{baseMapTileLayerManager.d.ts → mapLayerManager.d.ts} +2 -2
  73. package/es/tile/manager/{baseMapTileLayerManager.js → mapLayerManager.js} +4 -4
  74. package/es/tile/models/tileModel.js +4 -4
  75. package/es/tile/render/TileRenderService.d.ts +10 -0
  76. package/es/tile/render/TileRenderService.js +68 -0
  77. package/es/tile/{manager/tileConfigManager.d.ts → style/TileStyleService.d.ts} +2 -2
  78. package/es/tile/{manager/tileConfigManager.js → style/TileStyleService.js} +8 -11
  79. package/es/tile/style/constants.d.ts +13 -0
  80. package/es/tile/style/constants.js +17 -0
  81. package/es/tile/style/utils.d.ts +9 -0
  82. package/es/tile/style/utils.js +139 -0
  83. package/es/tile/tileFactory/base.d.ts +8 -7
  84. package/es/tile/tileFactory/base.js +116 -187
  85. package/es/tile/tileFactory/layers/rasterDataLayer.d.ts +11 -0
  86. package/es/tile/tileFactory/{rasterDataLayer.js → layers/rasterDataLayer.js} +3 -16
  87. package/es/tile/{tileTest.d.ts → tileFactory/layers/tileTest.d.ts} +2 -2
  88. package/es/tile/{tileTest.js → tileFactory/layers/tileTest.js} +2 -2
  89. package/es/tile/tileFactory/{vectorLayer.d.ts → layers/vectorLayer.d.ts} +9 -17
  90. package/es/tile/tileFactory/{vectorLayer.js → layers/vectorLayer.js} +9 -20
  91. package/es/tile/tileFactory/line.js +0 -3
  92. package/es/tile/tileFactory/mask.js +0 -3
  93. package/es/tile/tileFactory/point.js +0 -3
  94. package/es/tile/tileFactory/polygon.js +0 -3
  95. package/es/tile/tileFactory/raster.js +0 -3
  96. package/es/tile/tileFactory/rasterData.js +2 -7
  97. package/es/tile/tileFactory/test.js +1 -12
  98. package/es/tile/tileLayer/MapTileLayer.d.ts +6 -0
  99. package/es/tile/tileLayer/MapTileLayer.js +48 -0
  100. package/es/tile/tileLayer/TileLayer.d.ts +22 -0
  101. package/es/tile/tileLayer/TileLayer.js +198 -0
  102. package/es/tile/tileLayer/{baseMapTileLayer.d.ts → base.d.ts} +19 -16
  103. package/es/tile/tileLayer/{baseMapTileLayer.js → base.js} +118 -101
  104. package/es/tile/utils.d.ts +7 -4
  105. package/es/tile/utils.js +14 -74
  106. package/es/utils/dataMappingStyle.js +0 -3
  107. package/es/utils/extrude_polyline.d.ts +1 -0
  108. package/es/utils/extrude_polyline.js +5 -3
  109. package/es/utils/multiPassRender.js +0 -1
  110. package/es/wind/index.d.ts +0 -9
  111. package/es/wind/index.js +0 -13
  112. package/es/wind/models/wind.d.ts +0 -9
  113. package/es/wind/models/wind.js +1 -15
  114. package/lib/Geometry/index.js +0 -13
  115. package/lib/Geometry/models/billboard.js +0 -13
  116. package/lib/Geometry/models/plane.js +0 -13
  117. package/lib/Geometry/models/sprite.js +0 -13
  118. package/lib/canvas/index.js +0 -13
  119. package/lib/citybuliding/building.js +0 -13
  120. package/lib/core/BaseLayer.js +22 -13
  121. package/lib/core/BaseModel.js +1 -0
  122. package/lib/core/triangulation.js +2 -1
  123. package/lib/glsl.d.ts +5 -0
  124. package/lib/heatmap/index.js +0 -13
  125. package/lib/heatmap/models/heatmap.js +1 -3
  126. package/lib/image/index.js +0 -13
  127. package/lib/image/models/dataImage.js +1 -15
  128. package/lib/image/models/image.js +1 -15
  129. package/lib/image/models/tileDataImage.js +1 -15
  130. package/lib/index.js +1 -1
  131. package/lib/line/index.js +0 -13
  132. package/lib/line/models/great_circle.js +3 -3
  133. package/lib/mask/index.js +0 -13
  134. package/lib/plugins/DataMappingPlugin.js +2 -2
  135. package/lib/plugins/DataSourcePlugin.js +1 -1
  136. package/lib/plugins/FeatureScalePlugin.js +5 -3
  137. package/lib/plugins/LayerModelPlugin.js +1 -1
  138. package/lib/plugins/LightingPlugin.js +1 -1
  139. package/lib/plugins/RegisterStyleAttributePlugin.js +9 -13
  140. package/lib/plugins/UpdateStyleAttributePlugin.js +1 -1
  141. package/lib/point/index.js +0 -13
  142. package/lib/point/models/earthFill.js +2 -2
  143. package/lib/point/models/image.js +1 -1
  144. package/lib/polygon/index.js +0 -13
  145. package/lib/polygon/models/ocean.js +1 -2
  146. package/lib/polygon/models/water.js +1 -2
  147. package/lib/raster/index.js +0 -13
  148. package/lib/raster/models/raster.js +1 -2
  149. package/lib/raster/models/rasterRgb.js +1 -2
  150. package/lib/raster/models/rasterTile.js +1 -2
  151. package/lib/raster/raster.js +0 -13
  152. package/lib/tile/{manager/tilePickerManager.js → interaction/TilePickService.js} +20 -82
  153. package/lib/tile/interaction/getFeatureData.js +1 -0
  154. package/lib/tile/interaction/getRasterData.js +83 -0
  155. package/lib/tile/interaction/utils.js +120 -0
  156. package/lib/tile/manager/{baseTileManager.js → base.js} +56 -16
  157. package/lib/tile/manager/{tileLayerManager.js → layerManager.js} +77 -75
  158. package/lib/tile/manager/{baseMapTileLayerManager.js → mapLayerManager.js} +4 -4
  159. package/lib/tile/models/tileModel.js +4 -4
  160. package/lib/tile/render/TileRenderService.js +78 -0
  161. package/lib/tile/{manager/tileConfigManager.js → style/TileStyleService.js} +9 -9
  162. package/lib/tile/style/constants.js +26 -0
  163. package/lib/tile/style/utils.js +163 -0
  164. package/lib/tile/tileFactory/base.js +117 -187
  165. package/lib/tile/tileFactory/{rasterDataLayer.js → layers/rasterDataLayer.js} +3 -16
  166. package/lib/tile/{tileTest.js → tileFactory/layers/tileTest.js} +2 -2
  167. package/lib/tile/tileFactory/{vectorLayer.js → layers/vectorLayer.js} +8 -20
  168. package/lib/tile/tileFactory/line.js +0 -3
  169. package/lib/tile/tileFactory/mask.js +0 -3
  170. package/lib/tile/tileFactory/point.js +0 -3
  171. package/lib/tile/tileFactory/polygon.js +0 -3
  172. package/lib/tile/tileFactory/raster.js +0 -3
  173. package/lib/tile/tileFactory/rasterData.js +2 -8
  174. package/lib/tile/tileFactory/test.js +1 -13
  175. package/lib/tile/tileLayer/MapTileLayer.js +63 -0
  176. package/lib/tile/tileLayer/TileLayer.js +215 -0
  177. package/lib/tile/tileLayer/{baseMapTileLayer.js → base.js} +119 -96
  178. package/lib/tile/utils.js +19 -86
  179. package/lib/utils/dataMappingStyle.js +0 -3
  180. package/lib/utils/extrude_polyline.js +5 -2
  181. package/lib/utils/multiPassRender.js +0 -1
  182. package/lib/wind/index.js +0 -13
  183. package/lib/wind/models/wind.js +1 -15
  184. package/package.json +6 -6
  185. package/es/tile/manager/tileLayerManager.d.ts +0 -15
  186. package/es/tile/manager/tilePickerManager.d.ts +0 -21
  187. package/es/tile/tileFactory/rasterDataLayer.d.ts +0 -20
  188. package/es/tile/tileLayer/baseTileLayer.d.ts +0 -48
  189. package/es/tile/tileLayer/baseTileLayer.js +0 -420
  190. package/es/tile/tmsMapTileLayer.d.ts +0 -7
  191. package/es/tile/tmsMapTileLayer.js +0 -97
  192. package/es/tile/tmsTileLayer.d.ts +0 -7
  193. package/es/tile/tmsTileLayer.js +0 -101
  194. package/lib/tile/tileLayer/baseTileLayer.js +0 -429
  195. package/lib/tile/tmsMapTileLayer.js +0 -114
  196. package/lib/tile/tmsTileLayer.js +0 -118
package/lib/line/index.js CHANGED
@@ -88,19 +88,6 @@ var LineLayer = /*#__PURE__*/function (_BaseLayer) {
88
88
  _this3.dispatchModelLoad(models);
89
89
  });
90
90
  }
91
- }, {
92
- key: "getConfigSchema",
93
- value: function getConfigSchema() {
94
- return {
95
- properties: {
96
- opacity: {
97
- type: 'number',
98
- minimum: 0,
99
- maximum: 1
100
- }
101
- }
102
- };
103
- }
104
91
  }, {
105
92
  key: "getDefaultConfig",
106
93
  value: function getDefaultConfig() {
@@ -250,7 +250,7 @@ var GreatCircleModel = /*#__PURE__*/function (_BaseModel) {
250
250
  type: _l7Core.gl.FLOAT
251
251
  },
252
252
  size: 1,
253
- update: function update(feature, featureIdx, vertex, attributeIdx) {
253
+ update: function update(feature) {
254
254
  var _feature$size = feature.size,
255
255
  size = _feature$size === void 0 ? 1 : _feature$size;
256
256
  return Array.isArray(size) ? [size[0]] : [size];
@@ -269,7 +269,7 @@ var GreatCircleModel = /*#__PURE__*/function (_BaseModel) {
269
269
  type: _l7Core.gl.FLOAT
270
270
  },
271
271
  size: 4,
272
- update: function update(feature, featureIdx, vertex, attributeIdx) {
272
+ update: function update(feature, featureIdx, vertex) {
273
273
  return [vertex[3], vertex[4], vertex[5], vertex[6]];
274
274
  }
275
275
  }
@@ -286,7 +286,7 @@ var GreatCircleModel = /*#__PURE__*/function (_BaseModel) {
286
286
  type: _l7Core.gl.FLOAT
287
287
  },
288
288
  size: 2,
289
- update: function update(feature, featureIdx, vertex, attributeIdx) {
289
+ update: function update(feature) {
290
290
  var iconMap = _this2.iconService.getIconMap();
291
291
 
292
292
  var texture = feature.texture; // console.log('icon feature', feature)
package/lib/mask/index.js CHANGED
@@ -145,19 +145,6 @@ var MaskLayer = /*#__PURE__*/function (_BaseLayer) {
145
145
  _this4.dispatchModelLoad(models);
146
146
  });
147
147
  }
148
- }, {
149
- key: "getConfigSchema",
150
- value: function getConfigSchema() {
151
- return {
152
- properties: {
153
- opacity: {
154
- type: 'number',
155
- minimum: 0,
156
- maximum: 1
157
- }
158
- }
159
- };
160
- }
161
148
  }, {
162
149
  key: "getModelType",
163
150
  value: function getModelType() {
@@ -57,7 +57,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
57
57
  styleAttributeService: styleAttributeService
58
58
  });
59
59
  } else {
60
- source.once('sourceUpdate', function () {
60
+ source.once('update', function () {
61
61
  _this.generateMaping(layer, {
62
62
  styleAttributeService: styleAttributeService
63
63
  });
@@ -73,7 +73,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
73
73
  styleAttributeService: styleAttributeService
74
74
  });
75
75
  } else {
76
- source.once('sourceUpdate', function () {
76
+ source.once('update', function () {
77
77
  _this.generateMaping(layer, {
78
78
  styleAttributeService: styleAttributeService
79
79
  });
@@ -48,7 +48,7 @@ var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__
48
48
  if (source.inited) {
49
49
  _this.updateClusterData(layer);
50
50
  } else {
51
- source.once('sourceUpdate', function () {
51
+ source.once('update', function () {
52
52
  _this.updateClusterData(layer);
53
53
  });
54
54
  }
@@ -57,7 +57,7 @@ var FeatureScalePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#
57
57
  if (source.inited) {
58
58
  callback(source.data);
59
59
  } else {
60
- source.once('sourceUpdate', function () {
60
+ source.once('update', function () {
61
61
  callback(source.data);
62
62
  });
63
63
  }
@@ -144,7 +144,8 @@ var FeatureScalePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#
144
144
  attributes.forEach(function (attribute) {
145
145
  if (attribute.scale) {
146
146
  // 创建Scale
147
- var attributeScale = attribute.scale;
147
+ var attributeScale = attribute.scale; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
148
+
148
149
  attributeScale.names = _this2.parseFields(attribute.scale.field || []);
149
150
  var scales = []; // 为每个字段创建 Scale
150
151
 
@@ -262,7 +263,8 @@ var FeatureScalePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#
262
263
  }
263
264
 
264
265
  return styleScale;
265
- }
266
+ } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
267
+
266
268
 
267
269
  var firstValue = (_find = data.find(function (d) {
268
270
  return !(0, _lodash.isNil)(d[field]);
@@ -69,7 +69,7 @@ _dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function () {
69
69
  if (source.inited) {
70
70
  _this.prepareLayerModel(layer);
71
71
  } else {
72
- source.once('sourceUpdate', function () {
72
+ source.once('update', function () {
73
73
  _this.prepareLayerModel(layer);
74
74
  });
75
75
  }
@@ -72,7 +72,7 @@ function generateLightingUniforms(lights) {
72
72
  lights = [DEFAULT_LIGHT];
73
73
  }
74
74
 
75
- lights.forEach(function (_ref, i) {
75
+ lights.forEach(function (_ref) {
76
76
  var _ref$type = _ref.type,
77
77
  type = _ref$type === void 0 ? 'directional' : _ref$type,
78
78
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -17,6 +17,8 @@ var _inversify = require("inversify");
17
17
 
18
18
  require("reflect-metadata");
19
19
 
20
+ var _utils = require("../tile/utils");
21
+
20
22
  var _dec, _class;
21
23
 
22
24
  var RegisterStyleAttributePlugin = (
@@ -35,32 +37,26 @@ _dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function () {
35
37
 
36
38
  var styleAttributeService = _ref.styleAttributeService;
37
39
  layer.hooks.init.tap('RegisterStyleAttributePlugin', function () {
40
+ // 过滤 tileGroup layer (瓦片图层不需要注册)
41
+ if ((0, _utils.isTileGroup)(layer)) return;
42
+
38
43
  _this.registerBuiltinAttributes(styleAttributeService, layer);
39
44
  });
40
45
  }
41
46
  }, {
42
47
  key: "registerBuiltinAttributes",
43
48
  value: function registerBuiltinAttributes(styleAttributeService, layer) {
44
- // 过滤 tileGroup layer (瓦片图层)
45
- var source = layer.getSource();
46
-
47
- switch (source.parser.type) {
48
- case 'mvt':
49
- case 'testTile':
50
- case 'rasterTile':
51
- // layer 仅作为 group 使用
52
- return;
53
- }
54
-
49
+ // MaskLayer 只需要注册 a_Position
55
50
  if (layer.type === 'MaskLayer') {
56
51
  this.registerPositionAttribute(styleAttributeService);
57
52
  return;
58
- }
53
+ } // 用途为 basemap 的 Layer 也只需要注册 a_Position
54
+
59
55
 
60
56
  var _layer$getLayerConfig = layer.getLayerConfig(),
61
57
  usage = _layer$getLayerConfig.usage;
62
58
 
63
- if (usage === 'basemap ') {
59
+ if (usage === 'basemap') {
64
60
  this.registerPositionAttribute(styleAttributeService);
65
61
  return;
66
62
  }
@@ -70,7 +70,7 @@ _dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function () {
70
70
  }).forEach(function (attribute) {
71
71
  // 精确更新某个/某些 feature(s),需要传入 featureIdx d
72
72
  styleAttributeService.updateAttributeByFeatureRange(attribute.name, layer.getEncodedData(), // 获取经过 mapping 最新的数据
73
- attribute.featureRange.startIndex, attribute.featureRange.endIndex);
73
+ attribute.featureRange.startIndex, attribute.featureRange.endIndex, layer);
74
74
  attribute.needRegenerateVertices = false;
75
75
  });
76
76
  }
@@ -130,19 +130,6 @@ var PointLayer = /*#__PURE__*/function (_BaseLayer) {
130
130
 
131
131
  return 'normal';
132
132
  }
133
- }, {
134
- key: "getConfigSchema",
135
- value: function getConfigSchema() {
136
- return {
137
- properties: {
138
- opacity: {
139
- type: 'number',
140
- minimum: 0,
141
- maximum: 1
142
- }
143
- }
144
- };
145
- }
146
133
  }, {
147
134
  key: "getDefaultConfig",
148
135
  value: function getDefaultConfig() {
@@ -254,7 +254,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
254
254
  type: _l7Core.gl.FLOAT
255
255
  },
256
256
  size: 1,
257
- update: function update(feature, featureIdx, vertex, attributeIdx) {
257
+ update: function update(feature) {
258
258
  var _feature$size = feature.size,
259
259
  size = _feature$size === void 0 ? 5 : _feature$size;
260
260
  return Array.isArray(size) ? [size[0]] : [size];
@@ -274,7 +274,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
274
274
  type: _l7Core.gl.FLOAT
275
275
  },
276
276
  size: 1,
277
- update: function update(feature, featureIdx, vertex, attributeIdx) {
277
+ update: function update(feature) {
278
278
  var _feature$shape = feature.shape,
279
279
  shape = _feature$shape === void 0 ? 2 : _feature$shape;
280
280
 
@@ -231,7 +231,7 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
231
231
  type: _l7Core.gl.FLOAT
232
232
  },
233
233
  size: 2,
234
- update: function update(feature, featureIdx, vertex, attributeIdx) {
234
+ update: function update(feature) {
235
235
  var iconMap = _this2.iconService.getIconMap();
236
236
 
237
237
  var shape = feature.shape;
@@ -70,19 +70,6 @@ var PolygonLayer = /*#__PURE__*/function (_BaseLayer) {
70
70
  _this3.dispatchModelLoad(models);
71
71
  });
72
72
  }
73
- }, {
74
- key: "getConfigSchema",
75
- value: function getConfigSchema() {
76
- return {
77
- properties: {
78
- opacity: {
79
- type: 'number',
80
- minimum: 0,
81
- maximum: 1
82
- }
83
- }
84
- };
85
- }
86
73
  }, {
87
74
  key: "getModelType",
88
75
  value: function getModelType() {
@@ -102,8 +102,7 @@ var OceanModel = /*#__PURE__*/function (_BaseModel) {
102
102
  depth: {
103
103
  enable: false
104
104
  },
105
- stencil: (0, _l7Utils.getMask)(mask, maskInside),
106
- pick: false
105
+ stencil: (0, _l7Utils.getMask)(mask, maskInside)
107
106
  }).then(function (model) {
108
107
  callbackModel([model]);
109
108
  }).catch(function (err) {
@@ -97,8 +97,7 @@ var WaterModel = /*#__PURE__*/function (_BaseModel) {
97
97
  depth: {
98
98
  enable: false
99
99
  },
100
- stencil: (0, _l7Utils.getMask)(mask, maskInside),
101
- pick: false
100
+ stencil: (0, _l7Utils.getMask)(mask, maskInside)
102
101
  }).then(function (model) {
103
102
  callbackModel([model]);
104
103
  }).catch(function (err) {
@@ -68,19 +68,6 @@ var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
68
68
  _this3.dispatchModelLoad(models);
69
69
  });
70
70
  }
71
- }, {
72
- key: "getConfigSchema",
73
- value: function getConfigSchema() {
74
- return {
75
- properties: {
76
- opacity: {
77
- type: 'number',
78
- minimum: 0,
79
- maximum: 1
80
- }
81
- }
82
- };
83
- }
84
71
  }, {
85
72
  key: "getDefaultConfig",
86
73
  value: function getDefaultConfig() {
@@ -178,8 +178,7 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
178
178
  depth: {
179
179
  enable: false
180
180
  },
181
- stencil: (0, _l7Utils.getMask)(mask, maskInside),
182
- pick: false
181
+ stencil: (0, _l7Utils.getMask)(mask, maskInside)
183
182
  }).then(function (model) {
184
183
  callbackModel([model]);
185
184
  }).catch(function (err) {
@@ -177,8 +177,7 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
177
177
  depth: {
178
178
  enable: false
179
179
  },
180
- stencil: (0, _l7Utils.getMask)(mask, maskInside),
181
- pick: false
180
+ stencil: (0, _l7Utils.getMask)(mask, maskInside)
182
181
  }).then(function (model) {
183
182
  callbackModel([model]);
184
183
  }).catch(function (err) {
@@ -106,8 +106,7 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
106
106
  depth: {
107
107
  enable: false
108
108
  },
109
- stencil: (0, _l7Utils.getMask)(mask, maskInside),
110
- pick: false
109
+ stencil: (0, _l7Utils.getMask)(mask, maskInside)
111
110
  }).then(function (model) {
112
111
  callbackModel([model]);
113
112
  }).catch(function (err) {
@@ -126,19 +126,6 @@ var RasterLayer = /*#__PURE__*/function (_BaseLayer) {
126
126
  });
127
127
  return this;
128
128
  }
129
- }, {
130
- key: "getConfigSchema",
131
- value: function getConfigSchema() {
132
- return {
133
- properties: {
134
- opacity: {
135
- type: 'number',
136
- minimum: 0,
137
- maximum: 1
138
- }
139
- }
140
- };
141
- }
142
129
  }, {
143
130
  key: "buildRasterModel",
144
131
  value: function buildRasterModel() {
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.TilePickService = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -27,81 +27,41 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
27
27
 
28
28
  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; } }
29
29
 
30
- var TilePickManager = /*#__PURE__*/function (_EventEmitter) {
31
- (0, _inherits2.default)(TilePickManager, _EventEmitter);
30
+ var TilePickService = /*#__PURE__*/function (_EventEmitter) {
31
+ (0, _inherits2.default)(TilePickService, _EventEmitter);
32
32
 
33
- var _super = _createSuper(TilePickManager);
33
+ var _super = _createSuper(TilePickService);
34
34
 
35
- function TilePickManager(parent, rendererService, pickingService, children) {
35
+ function TilePickService(parent, rendererService, pickingService, children, tileRenderService) {
36
36
  var _this;
37
37
 
38
- (0, _classCallCheck2.default)(this, TilePickManager);
38
+ (0, _classCallCheck2.default)(this, TilePickService);
39
39
  _this = _super.call(this);
40
40
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isLastPicked", false);
41
41
  _this.parent = parent;
42
42
  _this.rendererService = rendererService;
43
43
  _this.pickingService = pickingService;
44
44
  _this.children = children;
45
+ _this.tileRenderService = tileRenderService;
45
46
  return _this;
46
47
  }
47
- /**
48
- *
49
- * @param layers
50
- */
51
48
 
52
-
53
- (0, _createClass2.default)(TilePickManager, [{
54
- key: "normalRender",
55
- value: function normalRender(layers) {
49
+ (0, _createClass2.default)(TilePickService, [{
50
+ key: "pick",
51
+ value: function pick(layers, target) {
56
52
  var _this2 = this;
57
53
 
58
- layers.filter(function (layer) {
59
- return layer.inited;
60
- }).filter(function (layer) {
61
- return layer.isVisible();
62
- }).map(function (layer) {
63
- layer.hooks.beforeRenderData.call();
64
- layer.hooks.beforeRender.call();
65
-
66
- if (layer.masks.length > 0) {
67
- // 清除上一次的模版缓存
68
- _this2.rendererService.clear({
69
- stencil: 0,
70
- depth: 1,
71
- framebuffer: null
72
- });
73
-
74
- layer.masks.map(function (m) {
75
- m.hooks.beforeRenderData.call();
76
- m.hooks.beforeRender.call();
77
- m.render();
78
- m.hooks.afterRender.call();
79
- });
80
- }
81
-
82
- layer.render();
83
- layer.hooks.afterRender.call();
84
- });
85
- }
86
- }, {
87
- key: "pickRender",
88
- value: function pickRender(layers, target) {
89
- var _this3 = this;
90
-
91
54
  // Tip: 在进行拾取渲染的时候也需要先渲染一遍父组件然后再渲染子组件
92
55
  // 如需要在 栅格瓦片存在 Mask 的时候发生的拾取,那么就需要先渲染父组件(渲染父组件的帧缓冲)
93
- if (this.parent.type === 'RasterLayer') {
94
- this.renderMask(this.parent);
95
- }
96
-
56
+ this.tileRenderService.renderMask(this.parent);
97
57
  var isPicked = layers.filter(function (layer) {
98
- return _this3.parent.needPick(target.type) && layer.inited && layer.isVisible();
58
+ return _this2.parent.needPick(target.type) && layer.inited && layer.isVisible();
99
59
  }).some(function (layer) {
100
60
  layer.hooks.beforePickingEncode.call();
101
61
 
102
62
  if (layer.masks.length > 0) {
103
63
  // 清除上一次的模版缓存
104
- _this3.rendererService.clear({
64
+ _this2.rendererService.clear({
105
65
  stencil: 0,
106
66
  depth: 1,
107
67
  framebuffer: null
@@ -117,17 +77,17 @@ var TilePickManager = /*#__PURE__*/function (_EventEmitter) {
117
77
  layer.renderModels(true);
118
78
  layer.hooks.afterPickingEncode.call();
119
79
 
120
- var layerPicked = _this3.pickingService.pickFromPickingFBO(layer, target); // RasterLayer 不参与拾取后的 shader 计算
80
+ var layerPicked = _this2.pickingService.pickFromPickingFBO(layer, target); // RasterLayer 不参与拾取后的 shader 计算
121
81
 
122
82
 
123
- if (layerPicked && _this3.parent.type !== 'RasterLayer') {
124
- _this3.emit('pick', {
83
+ if (layerPicked && _this2.parent.type !== 'RasterLayer') {
84
+ _this2.emit('pick', {
125
85
  type: target.type,
126
- pickedColors: _this3.pickingService.pickedColors,
86
+ pickedColors: _this2.pickingService.pickedColors,
127
87
  layer: layer
128
88
  });
129
89
 
130
- _this3.pickingService.pickedTileLayers = [_this3.parent];
90
+ _this2.pickingService.pickedTileLayers = [_this2.parent];
131
91
  }
132
92
 
133
93
  return layerPicked;
@@ -171,35 +131,13 @@ var TilePickManager = /*#__PURE__*/function (_EventEmitter) {
171
131
  layer.hooks.beforeSelect.call(pickedColors);
172
132
  });
173
133
  }
174
- }, {
175
- key: "renderMask",
176
- value: function renderMask(layer) {
177
- if (layer.inited && layer.isVisible()) {
178
- layer.hooks.beforeRender.call();
179
-
180
- if (layer.masks.length > 0) {
181
- this.rendererService.clear({
182
- stencil: 0,
183
- depth: 1,
184
- framebuffer: null
185
- });
186
- layer.masks.map(function (m) {
187
- m.hooks.beforeRender.call();
188
- m.render();
189
- m.hooks.afterRender.call();
190
- });
191
- }
192
-
193
- layer.hooks.afterRender.call();
194
- }
195
- }
196
134
  }, {
197
135
  key: "destroy",
198
136
  value: function destroy() {
199
137
  this.removeAllListeners();
200
138
  }
201
139
  }]);
202
- return TilePickManager;
140
+ return TilePickService;
203
141
  }(_eventemitter.EventEmitter);
204
142
 
205
- exports.default = TilePickManager;
143
+ exports.TilePickService = TilePickService;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.readPixel = readPixel;
9
+ exports.readRasterValue = readRasterValue;
10
+
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+
13
+ var _l7Utils = require("@antv/l7-utils");
14
+
15
+ function readRasterValue(tile, mapService, x, y) {
16
+ var _tile$bboxPolygon, _tile$data, _tile$data2, _tile$data3;
17
+
18
+ var bbox = (tile === null || tile === void 0 ? void 0 : (_tile$bboxPolygon = tile.bboxPolygon) === null || _tile$bboxPolygon === void 0 ? void 0 : _tile$bboxPolygon.bbox) || [0, 0, 10, -10];
19
+
20
+ var _bbox = (0, _slicedToArray2.default)(bbox, 4),
21
+ _bbox$ = _bbox[0],
22
+ minLng = _bbox$ === void 0 ? 0 : _bbox$,
23
+ _bbox$2 = _bbox[1],
24
+ minLat = _bbox$2 === void 0 ? 0 : _bbox$2,
25
+ _bbox$3 = _bbox[2],
26
+ maxLng = _bbox$3 === void 0 ? 10 : _bbox$3,
27
+ _bbox$4 = _bbox[3],
28
+ maxLat = _bbox$4 === void 0 ? -10 : _bbox$4;
29
+
30
+ var tileXY = mapService.lngLatToContainer([minLng, minLat]);
31
+ var tileMaxXY = mapService.lngLatToContainer([maxLng, maxLat]);
32
+ var tilePixelWidth = tileMaxXY.x - tileXY.x;
33
+ var tilePixelHeight = tileXY.y - tileMaxXY.y;
34
+ var pos = [(x - tileXY.x) / tilePixelWidth, // x
35
+ (y - tileMaxXY.y) / tilePixelHeight // y
36
+ ];
37
+ var tileWidth = (tile === null || tile === void 0 ? void 0 : (_tile$data = tile.data) === null || _tile$data === void 0 ? void 0 : _tile$data.width) || 1;
38
+ var tileHeight = (tile === null || tile === void 0 ? void 0 : (_tile$data2 = tile.data) === null || _tile$data2 === void 0 ? void 0 : _tile$data2.height) || 1;
39
+ var indexX = Math.floor(pos[0] * tileWidth);
40
+ var indexY = Math.floor(pos[1] * tileHeight);
41
+ var index = Math.max(0, indexY - 1) * tileWidth + indexX;
42
+ var data = tile === null || tile === void 0 ? void 0 : (_tile$data3 = tile.data) === null || _tile$data3 === void 0 ? void 0 : _tile$data3.data[index];
43
+ return data;
44
+ }
45
+
46
+ function readPixel(x, y, rendererService) {
47
+ var readPixels = rendererService.readPixels,
48
+ getContainer = rendererService.getContainer;
49
+ var xInDevicePixel = x * _l7Utils.DOM.DPR;
50
+ var yInDevicePixel = y * _l7Utils.DOM.DPR;
51
+
52
+ var _getContainerSize = getContainerSize(getContainer()),
53
+ width = _getContainerSize.width,
54
+ height = _getContainerSize.height;
55
+
56
+ width *= _l7Utils.DOM.DPR;
57
+ height *= _l7Utils.DOM.DPR;
58
+
59
+ if (xInDevicePixel > width - 1 * _l7Utils.DOM.DPR || xInDevicePixel < 0 || yInDevicePixel > height - 1 * _l7Utils.DOM.DPR || yInDevicePixel < 0) {
60
+ return false;
61
+ }
62
+
63
+ var pickedColors = readPixels({
64
+ x: Math.floor(xInDevicePixel),
65
+ // 视口坐标系原点在左上,而 WebGL 在左下,需要翻转 Y 轴
66
+ y: Math.floor(height - (y + 1) * _l7Utils.DOM.DPR),
67
+ width: 1,
68
+ height: 1,
69
+ data: new Uint8Array(1 * 1 * 4)
70
+ });
71
+ return pickedColors;
72
+ }
73
+
74
+ function getContainerSize(container) {
75
+ if (container.getContext) {
76
+ return {
77
+ width: container.width / _l7Utils.DOM.DPR,
78
+ height: container.height / _l7Utils.DOM.DPR
79
+ };
80
+ } else {
81
+ return container.getBoundingClientRect();
82
+ }
83
+ }