@antv/l7-layers 2.8.45 → 2.9.2

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 (171) hide show
  1. package/es/core/BaseLayer.d.ts +3 -1
  2. package/es/core/BaseLayer.js +23 -3
  3. package/es/core/BaseLayer.js.map +1 -1
  4. package/es/core/BaseModel.d.ts +2 -1
  5. package/es/core/BaseModel.js +3 -0
  6. package/es/core/BaseModel.js.map +1 -1
  7. package/es/core/interface.d.ts +12 -0
  8. package/es/core/interface.js.map +1 -1
  9. package/es/image/models/image.js.map +1 -1
  10. package/es/line/index.d.ts +1 -1
  11. package/es/line/index.js +7 -1
  12. package/es/line/index.js.map +1 -1
  13. package/es/line/models/index.d.ts +1 -1
  14. package/es/line/models/index.js +5 -1
  15. package/es/line/models/index.js.map +1 -1
  16. package/es/line/models/tile.d.ts +20 -0
  17. package/es/line/models/tile.js +327 -0
  18. package/es/line/models/tile.js.map +1 -0
  19. package/es/plugins/ShaderUniformPlugin.js +3 -1
  20. package/es/plugins/ShaderUniformPlugin.js.map +1 -1
  21. package/es/point/index.d.ts +1 -1
  22. package/es/point/index.js +8 -2
  23. package/es/point/index.js.map +1 -1
  24. package/es/point/models/index.d.ts +1 -1
  25. package/es/point/models/index.js +5 -1
  26. package/es/point/models/index.js.map +1 -1
  27. package/es/point/models/tile.d.ts +31 -0
  28. package/es/point/models/tile.js +291 -0
  29. package/es/point/models/tile.js.map +1 -0
  30. package/es/polygon/index.js +6 -0
  31. package/es/polygon/index.js.map +1 -1
  32. package/es/polygon/models/index.d.ts +1 -1
  33. package/es/polygon/models/index.js +5 -1
  34. package/es/polygon/models/index.js.map +1 -1
  35. package/es/polygon/models/tile.d.ts +16 -0
  36. package/es/polygon/models/tile.js +137 -0
  37. package/es/polygon/models/tile.js.map +1 -0
  38. package/es/raster/index.d.ts +2 -2
  39. package/es/raster/index.js +4 -4
  40. package/es/raster/index.js.map +1 -1
  41. package/es/raster/models/index.js +1 -1
  42. package/es/raster/models/index.js.map +1 -1
  43. package/es/raster/models/raster.d.ts +1 -0
  44. package/es/raster/models/raster.js +8 -2
  45. package/es/raster/models/raster.js.map +1 -1
  46. package/es/tile/interface.d.ts +28 -0
  47. package/es/tile/interface.js +2 -0
  48. package/es/tile/interface.js.map +1 -0
  49. package/es/tile/manager/tileConfigManager.d.ts +17 -0
  50. package/es/tile/manager/tileConfigManager.js +123 -0
  51. package/es/tile/manager/tileConfigManager.js.map +1 -0
  52. package/es/tile/manager/tileLayerManager.d.ts +34 -0
  53. package/es/tile/manager/tileLayerManager.js +283 -0
  54. package/es/tile/manager/tileLayerManager.js.map +1 -0
  55. package/es/tile/manager/tilePickerManager.d.ts +20 -0
  56. package/es/tile/manager/tilePickerManager.js +167 -0
  57. package/es/tile/manager/tilePickerManager.js.map +1 -0
  58. package/es/tile/models/tileModel.d.ts +8 -0
  59. package/es/tile/models/tileModel.js +61 -0
  60. package/es/tile/models/tileModel.js.map +1 -0
  61. package/es/tile/tileFactory/base.d.ts +41 -0
  62. package/es/tile/tileFactory/base.js +380 -0
  63. package/es/tile/tileFactory/base.js.map +1 -0
  64. package/es/tile/tileFactory/index.d.ts +5 -0
  65. package/es/tile/tileFactory/index.js +30 -0
  66. package/es/tile/tileFactory/index.js.map +1 -0
  67. package/es/tile/tileFactory/line.d.ts +12 -0
  68. package/es/tile/tileFactory/line.js +65 -0
  69. package/es/tile/tileFactory/line.js.map +1 -0
  70. package/es/tile/tileFactory/point.d.ts +12 -0
  71. package/es/tile/tileFactory/point.js +65 -0
  72. package/es/tile/tileFactory/point.js.map +1 -0
  73. package/es/tile/tileFactory/polygon.d.ts +12 -0
  74. package/es/tile/tileFactory/polygon.js +65 -0
  75. package/es/tile/tileFactory/polygon.js.map +1 -0
  76. package/es/tile/tileFactory/raster.d.ts +12 -0
  77. package/es/tile/tileFactory/raster.js +61 -0
  78. package/es/tile/tileFactory/raster.js.map +1 -0
  79. package/es/tile/tileFactory/rasterData.d.ts +12 -0
  80. package/es/tile/tileFactory/rasterData.js +75 -0
  81. package/es/tile/tileFactory/rasterData.js.map +1 -0
  82. package/es/tile/tileFactory/rasterDataLayer.d.ts +19 -0
  83. package/es/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +39 -32
  84. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -0
  85. package/es/tile/tileFactory/vectorLayer.d.ts +27 -0
  86. package/es/tile/tileFactory/vectorLayer.js +131 -0
  87. package/es/tile/tileFactory/vectorLayer.js.map +1 -0
  88. package/es/tile/tileLayer/baseTileLayer.d.ts +51 -0
  89. package/es/tile/tileLayer/baseTileLayer.js +409 -0
  90. package/es/tile/tileLayer/baseTileLayer.js.map +1 -0
  91. package/es/tile/tmsTileLayer.d.ts +7 -0
  92. package/es/tile/tmsTileLayer.js +100 -0
  93. package/es/tile/tmsTileLayer.js.map +1 -0
  94. package/es/tile/utils.d.ts +11 -0
  95. package/es/tile/utils.js +125 -0
  96. package/es/tile/utils.js.map +1 -0
  97. package/lib/core/BaseLayer.js +21 -2
  98. package/lib/core/BaseLayer.js.map +1 -1
  99. package/lib/core/BaseModel.js +2 -0
  100. package/lib/core/BaseModel.js.map +1 -1
  101. package/lib/core/interface.js.map +1 -1
  102. package/lib/image/models/image.js.map +1 -1
  103. package/lib/line/index.js +7 -1
  104. package/lib/line/index.js.map +1 -1
  105. package/lib/line/models/index.js +7 -1
  106. package/lib/line/models/index.js.map +1 -1
  107. package/lib/line/models/tile.js +342 -0
  108. package/lib/line/models/tile.js.map +1 -0
  109. package/lib/plugins/ShaderUniformPlugin.js +3 -1
  110. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  111. package/lib/point/index.js +8 -2
  112. package/lib/point/index.js.map +1 -1
  113. package/lib/point/models/index.js +7 -1
  114. package/lib/point/models/index.js.map +1 -1
  115. package/lib/point/models/tile.js +308 -0
  116. package/lib/point/models/tile.js.map +1 -0
  117. package/lib/polygon/index.js +6 -0
  118. package/lib/polygon/index.js.map +1 -1
  119. package/lib/polygon/models/index.js +7 -1
  120. package/lib/polygon/models/index.js.map +1 -1
  121. package/lib/polygon/models/tile.js +152 -0
  122. package/lib/polygon/models/tile.js.map +1 -0
  123. package/lib/raster/index.js +4 -4
  124. package/lib/raster/index.js.map +1 -1
  125. package/lib/raster/models/index.js +2 -2
  126. package/lib/raster/models/index.js.map +1 -1
  127. package/lib/raster/models/raster.js +8 -2
  128. package/lib/raster/models/raster.js.map +1 -1
  129. package/lib/tile/interface.js +2 -0
  130. package/lib/tile/interface.js.map +1 -0
  131. package/lib/tile/manager/tileConfigManager.js +134 -0
  132. package/lib/tile/manager/tileConfigManager.js.map +1 -0
  133. package/lib/tile/manager/tileLayerManager.js +291 -0
  134. package/lib/tile/manager/tileLayerManager.js.map +1 -0
  135. package/lib/tile/manager/tilePickerManager.js +173 -0
  136. package/lib/tile/manager/tilePickerManager.js.map +1 -0
  137. package/lib/tile/models/tileModel.js +73 -0
  138. package/lib/tile/models/tileModel.js.map +1 -0
  139. package/lib/tile/tileFactory/base.js +395 -0
  140. package/lib/tile/tileFactory/base.js.map +1 -0
  141. package/lib/tile/tileFactory/index.js +60 -0
  142. package/lib/tile/tileFactory/index.js.map +1 -0
  143. package/lib/tile/tileFactory/line.js +76 -0
  144. package/lib/tile/tileFactory/line.js.map +1 -0
  145. package/lib/tile/tileFactory/point.js +76 -0
  146. package/lib/tile/tileFactory/point.js.map +1 -0
  147. package/lib/tile/tileFactory/polygon.js +76 -0
  148. package/lib/tile/tileFactory/polygon.js.map +1 -0
  149. package/lib/tile/tileFactory/raster.js +74 -0
  150. package/lib/tile/tileFactory/raster.js.map +1 -0
  151. package/lib/tile/tileFactory/rasterData.js +88 -0
  152. package/lib/tile/tileFactory/rasterData.js.map +1 -0
  153. package/lib/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +40 -32
  154. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -0
  155. package/lib/tile/tileFactory/vectorLayer.js +145 -0
  156. package/lib/tile/tileFactory/vectorLayer.js.map +1 -0
  157. package/lib/tile/tileLayer/baseTileLayer.js +408 -0
  158. package/lib/tile/tileLayer/baseTileLayer.js.map +1 -0
  159. package/lib/tile/tmsTileLayer.js +116 -0
  160. package/lib/tile/tmsTileLayer.js.map +1 -0
  161. package/lib/tile/utils.js +147 -0
  162. package/lib/tile/utils.js.map +1 -0
  163. package/package.json +7 -5
  164. package/es/core/LayerGroup.d.ts +0 -9
  165. package/es/core/LayerGroup.js.map +0 -1
  166. package/es/raster/models/raste-tile.d.ts +0 -23
  167. package/es/raster/models/raste-tile.js +0 -285
  168. package/es/raster/models/raste-tile.js.map +0 -1
  169. package/lib/core/LayerGroup.js.map +0 -1
  170. package/lib/raster/models/raste-tile.js +0 -294
  171. package/lib/raster/models/raste-tile.js.map +0 -1
@@ -1,285 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/inherits";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
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
-
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
-
13
- import { createLayerContainer } from '@antv/l7-core';
14
- import BaseModel from '../../core/BaseModel';
15
- import ImageLayer from '../../image';
16
- import LineLayer from '../../line';
17
- import PointLayer from '../../point';
18
-
19
- var RasterTileModel = function (_BaseModel) {
20
- _inherits(RasterTileModel, _BaseModel);
21
-
22
- var _super = _createSuper(RasterTileModel);
23
-
24
- function RasterTileModel() {
25
- var _this;
26
-
27
- _classCallCheck(this, RasterTileModel);
28
-
29
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
- args[_key] = arguments[_key];
31
- }
32
-
33
- _this = _super.call.apply(_super, [this].concat(args));
34
-
35
- _defineProperty(_assertThisInitialized(_this), "initedTileset", false);
36
-
37
- _defineProperty(_assertThisInitialized(_this), "tilesetManager", void 0);
38
-
39
- _defineProperty(_assertThisInitialized(_this), "showGrid", false);
40
-
41
- _defineProperty(_assertThisInitialized(_this), "subGridLayer", void 0);
42
-
43
- _defineProperty(_assertThisInitialized(_this), "subTextLayer", void 0);
44
-
45
- _defineProperty(_assertThisInitialized(_this), "lastViewStates", void 0);
46
-
47
- _defineProperty(_assertThisInitialized(_this), "timer", void 0);
48
-
49
- _defineProperty(_assertThisInitialized(_this), "renderSubLayers", function () {
50
- if (!_this.tilesetManager) {
51
- return;
52
- }
53
-
54
- var rasteTileLayer = _this.layer;
55
-
56
- _this.tilesetManager.tiles.filter(function (tile) {
57
- return tile.isLoaded;
58
- }).map(function (tile) {
59
- if (!tile.layer) {
60
- tile.layer = _this.creatSubLayer(tile);
61
- rasteTileLayer.addChild(tile.layer);
62
- } else {
63
- tile.layer.updateLayerConfig({
64
- visible: tile.isVisible
65
- });
66
- }
67
-
68
- return tile.layer;
69
- });
70
-
71
- if (_this.showGrid) {
72
- if (!rasteTileLayer.hasChild(_this.subGridLayer)) {
73
- rasteTileLayer.addChild(_this.subGridLayer);
74
- }
75
-
76
- if (!rasteTileLayer.hasChild(_this.subTextLayer)) {
77
- rasteTileLayer.addChild(_this.subTextLayer);
78
- }
79
- }
80
-
81
- _this.layerService.renderLayers();
82
-
83
- if (_this.tilesetManager.isLoaded) {
84
- rasteTileLayer.emit('tiles-loaded', _this.tilesetManager.currentTiles);
85
- }
86
- });
87
-
88
- return _this;
89
- }
90
-
91
- _createClass(RasterTileModel, [{
92
- key: "getUninforms",
93
- value: function getUninforms() {
94
- return {};
95
- }
96
- }, {
97
- key: "initModels",
98
- value: function initModels() {
99
- var _this$tilesetManager;
100
-
101
- var source = this.layer.getSource();
102
- this.tilesetManager = source.tileset;
103
-
104
- if (!this.initedTileset) {
105
- this.bindTilesetEvent();
106
- this.initedTileset = true;
107
- }
108
-
109
- var _this$getCurrentView = this.getCurrentView(),
110
- latLonBounds = _this$getCurrentView.latLonBounds,
111
- zoom = _this$getCurrentView.zoom;
112
-
113
- (_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
114
-
115
- if (this.showGrid) {
116
- this.renderSubGridLayer();
117
- }
118
-
119
- return this.buildModels();
120
- }
121
- }, {
122
- key: "buildModels",
123
- value: function buildModels() {
124
- return [];
125
- }
126
- }, {
127
- key: "clearModels",
128
- value: function clearModels() {}
129
- }, {
130
- key: "renderSubGridLayer",
131
- value: function renderSubGridLayer() {
132
- if (!this.tilesetManager) {
133
- return;
134
- }
135
-
136
- var features = this.tilesetManager.currentTiles.map(function (tile) {
137
- return tile.bboxPolygon;
138
- });
139
- var data = {
140
- type: 'FeatureCollection',
141
- features: features
142
- };
143
-
144
- if (this.subGridLayer) {
145
- this.subGridLayer.setData(data);
146
- this.subTextLayer.setData(data);
147
- return;
148
- }
149
-
150
- this.subGridLayer = new LineLayer({
151
- autoFit: false
152
- }).source(data).size(1).color('red').shape('simple').style({
153
- lineType: 'dash',
154
- dashArray: [1, 2]
155
- });
156
- this.subTextLayer = new PointLayer({
157
- autoFit: false
158
- }).source(data).size(14).color('red').shape('meta', 'text').style({
159
- opacity: 1,
160
- strokeWidth: 1,
161
- stroke: '#fff'
162
- });
163
- this.subGridLayer.setContainer(createLayerContainer(this.layer.sceneContainer), this.layer.sceneContainer);
164
- this.subTextLayer.setContainer(createLayerContainer(this.layer.sceneContainer), this.layer.sceneContainer);
165
- this.subGridLayer.init();
166
- this.subTextLayer.init();
167
- }
168
- }, {
169
- key: "registerBuiltinAttributes",
170
- value: function registerBuiltinAttributes() {}
171
- }, {
172
- key: "bindTilesetEvent",
173
- value: function bindTilesetEvent() {
174
- var _this2 = this;
175
-
176
- if (!this.tilesetManager) {
177
- return;
178
- }
179
-
180
- this.tilesetManager.on('tile-loaded', function (tile) {});
181
- this.tilesetManager.on('tile-unload', function (tile) {
182
- _this2.destroySubLayer(tile);
183
- });
184
- this.tilesetManager.on('tile-error', function (error, tile) {});
185
- this.tilesetManager.on('tile-update', this.renderSubLayers);
186
- this.mapService.on('mapchange', function (e) {
187
- var _this2$getCurrentView = _this2.getCurrentView(),
188
- latLonBounds = _this2$getCurrentView.latLonBounds,
189
- zoom = _this2$getCurrentView.zoom;
190
-
191
- if (_this2.mapService.version === 'GAODE1.x') {
192
- var _this2$layer$getLayer = _this2.layer.getLayerConfig(),
193
- visible = _this2$layer$getLayer.visible;
194
-
195
- if (zoom < 3 && visible) {
196
- _this2.layer.updateLayerConfig({
197
- visible: false
198
- });
199
-
200
- _this2.layerService.updateLayerRenderList();
201
- } else if (zoom >= 3 && !visible) {
202
- _this2.layer.updateLayerConfig({
203
- visible: true
204
- });
205
-
206
- _this2.layerService.updateLayerRenderList();
207
- }
208
- }
209
-
210
- if (_this2.lastViewStates && _this2.lastViewStates.zoom === zoom && _this2.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
211
- return;
212
- }
213
-
214
- _this2.lastViewStates = {
215
- zoom: zoom,
216
- latLonBounds: latLonBounds
217
- };
218
-
219
- if (_this2.timer) {
220
- clearTimeout(_this2.timer);
221
- _this2.timer = null;
222
- }
223
-
224
- _this2.timer = setTimeout(function () {
225
- var _this2$tilesetManager;
226
-
227
- (_this2$tilesetManager = _this2.tilesetManager) === null || _this2$tilesetManager === void 0 ? void 0 : _this2$tilesetManager.update(zoom, latLonBounds);
228
-
229
- if (_this2.showGrid) {
230
- _this2.renderSubGridLayer();
231
- }
232
- }, 250);
233
- });
234
- }
235
- }, {
236
- key: "creatSubLayer",
237
- value: function creatSubLayer(tile) {
238
- var _ref = this.layer.getLayerConfig(),
239
- _ref$opacity = _ref.opacity,
240
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
241
- _ref$zIndex = _ref.zIndex,
242
- zIndex = _ref$zIndex === void 0 ? 0 : _ref$zIndex;
243
-
244
- var layer = new ImageLayer({
245
- visible: tile.isVisible,
246
- zIndex: zIndex
247
- }).source(tile.data, {
248
- parser: {
249
- type: 'image',
250
- extent: tile.bounds
251
- }
252
- }).style({
253
- opacity: opacity
254
- });
255
- var container = createLayerContainer(this.layer.sceneContainer);
256
- layer.setContainer(container, this.layer.sceneContainer);
257
- layer.init();
258
- return layer;
259
- }
260
- }, {
261
- key: "destroySubLayer",
262
- value: function destroySubLayer(tile) {
263
- if (tile.layer) {
264
- var layerGroup = this.layer;
265
- layerGroup.removeChild(tile.layer);
266
- }
267
- }
268
- }, {
269
- key: "getCurrentView",
270
- value: function getCurrentView() {
271
- var bounds = this.mapService.getBounds();
272
- var latLonBounds = [bounds[0][0], bounds[0][1], bounds[1][0], bounds[1][1]];
273
- var zoom = this.mapService.getZoom();
274
- return {
275
- latLonBounds: latLonBounds,
276
- zoom: zoom
277
- };
278
- }
279
- }]);
280
-
281
- return RasterTileModel;
282
- }(BaseModel);
283
-
284
- export { RasterTileModel as default };
285
- //# sourceMappingURL=raste-tile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/raster/models/raste-tile.ts"],"names":["createLayerContainer","BaseModel","ImageLayer","LineLayer","PointLayer","RasterTileModel","tilesetManager","rasteTileLayer","layer","tiles","filter","tile","isLoaded","map","creatSubLayer","addChild","updateLayerConfig","visible","isVisible","showGrid","hasChild","subGridLayer","subTextLayer","layerService","renderLayers","emit","currentTiles","source","getSource","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","renderSubGridLayer","buildModels","features","bboxPolygon","data","type","setData","autoFit","size","color","shape","style","lineType","dashArray","opacity","strokeWidth","stroke","setContainer","sceneContainer","init","on","destroySubLayer","error","renderSubLayers","mapService","e","version","getLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","setTimeout","zIndex","parser","extent","bounds","container","layerGroup","removeChild","getBounds","getZoom"],"mappings":"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","sourcesContent":["import {\n createLayerContainer,\n ILayer,\n ILayerGroup,\n IModelUniform,\n} from '@antv/l7-core';\nimport { Tile, TilesetManager } from '@antv/l7-utils';\nimport { Container } from 'inversify';\nimport BaseModel from '../../core/BaseModel';\nimport { IRasterTileLayerStyleOptions } from '../../core/interface';\nimport ImageLayer from '../../image';\nimport LineLayer from '../../line';\nimport PointLayer from '../../point';\n\nexport default class RasterTileModel extends BaseModel {\n // 瓦片是否加载成功\n public initedTileset = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n // 是否开启瓦片网格子图层,用于调试\n public showGrid = false;\n // 瓦片网格子图层,用于调试\n private subGridLayer: ILayer;\n // 瓦片网格文本子图层,用于调试\n private subTextLayer: ILayer;\n // 上一次视野状态\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n private timer: any;\n\n public getUninforms(): IModelUniform {\n return {};\n }\n\n public initModels() {\n const source = this.layer.getSource();\n this.tilesetManager = source.tileset;\n\n if (!this.initedTileset) {\n this.bindTilesetEvent();\n this.initedTileset = true;\n }\n\n const { latLonBounds, zoom } = this.getCurrentView();\n this.tilesetManager?.update(zoom, latLonBounds);\n\n if (this.showGrid) {\n this.renderSubGridLayer();\n }\n\n return this.buildModels();\n }\n\n public buildModels() {\n return [];\n }\n\n public clearModels() {\n //\n }\n\n // 渲染瓦片网格图层方便调试\n public renderSubGridLayer() {\n if (!this.tilesetManager) {\n return;\n }\n\n const features = this.tilesetManager.currentTiles.map(\n (tile) => tile.bboxPolygon,\n );\n\n const data = { type: 'FeatureCollection', features };\n\n if (this.subGridLayer) {\n this.subGridLayer.setData(data);\n this.subTextLayer.setData(data);\n return;\n }\n\n this.subGridLayer = new LineLayer({ autoFit: false })\n .source(data)\n .size(1)\n .color('red')\n .shape('simple')\n .style({ lineType: 'dash', dashArray: [1, 2] });\n\n this.subTextLayer = new PointLayer({ autoFit: false })\n .source(data)\n .size(14)\n .color('red')\n .shape('meta', 'text')\n .style({\n opacity: 1,\n strokeWidth: 1,\n stroke: '#fff',\n });\n\n this.subGridLayer.setContainer(\n createLayerContainer(this.layer.sceneContainer as Container),\n this.layer.sceneContainer as Container,\n );\n this.subTextLayer.setContainer(\n createLayerContainer(this.layer.sceneContainer as Container),\n this.layer.sceneContainer as Container,\n );\n this.subGridLayer.init();\n this.subTextLayer.init();\n }\n\n protected registerBuiltinAttributes() {\n //\n }\n\n // 监听瓦片管理器\n private bindTilesetEvent() {\n if (!this.tilesetManager) {\n return;\n }\n // 瓦片数据加载成功\n this.tilesetManager.on('tile-loaded', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片数据从缓存删除或被执行重新加载\n this.tilesetManager.on('tile-unload', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.destroySubLayer(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', this.renderSubLayers);\n\n // 地图视野发生改变\n this.mapService.on('mapchange', (e) => {\n const { latLonBounds, zoom } = this.getCurrentView();\n\n if (this.mapService.version === 'GAODE1.x') {\n const { visible } = this.layer.getLayerConfig();\n if (zoom < 3 && visible) {\n this.layer.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.layer.updateLayerConfig({ visible: true });\n this.layerService.updateLayerRenderList();\n }\n }\n\n if (\n this.lastViewStates &&\n this.lastViewStates.zoom === zoom &&\n this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()\n ) {\n return;\n }\n this.lastViewStates = { zoom, latLonBounds };\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n this.timer = setTimeout(() => {\n this.tilesetManager?.update(zoom, latLonBounds);\n if (this.showGrid) {\n this.renderSubGridLayer();\n }\n }, 250);\n });\n }\n\n // 创建子图层\n private creatSubLayer(tile: Tile) {\n const {\n opacity = 1,\n zIndex = 0,\n } = this.layer.getLayerConfig() as IRasterTileLayerStyleOptions;\n const layer = new ImageLayer({\n visible: tile.isVisible,\n zIndex,\n })\n .source(tile.data, {\n parser: {\n type: 'image',\n extent: tile.bounds,\n },\n })\n .style({\n opacity,\n });\n const container = createLayerContainer(\n this.layer.sceneContainer as Container,\n );\n layer.setContainer(container, this.layer.sceneContainer as Container);\n layer.init();\n\n return layer;\n }\n\n // 更新子图层\n private renderSubLayers = () => {\n if (!this.tilesetManager) {\n return;\n }\n\n const rasteTileLayer = this.layer as ILayerGroup;\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (!tile.layer) {\n tile.layer = this.creatSubLayer(tile);\n rasteTileLayer.addChild(tile.layer);\n } else {\n // 显隐藏控制\n tile.layer.updateLayerConfig({\n visible: tile.isVisible,\n });\n }\n return tile.layer;\n });\n\n if (this.showGrid) {\n if (!rasteTileLayer.hasChild(this.subGridLayer)) {\n rasteTileLayer.addChild(this.subGridLayer);\n }\n if (!rasteTileLayer.hasChild(this.subTextLayer)) {\n rasteTileLayer.addChild(this.subTextLayer);\n }\n }\n\n this.layerService.renderLayers();\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n rasteTileLayer.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n };\n\n // 摧毁子图层\n private destroySubLayer(tile: Tile) {\n if (tile.layer) {\n const layerGroup = this.layer as ILayerGroup;\n layerGroup.removeChild(tile.layer);\n }\n }\n\n // 获取当前视野参数\n private getCurrentView() {\n const bounds = this.mapService.getBounds();\n const latLonBounds: [number, number, number, number] = [\n bounds[0][0],\n bounds[0][1],\n bounds[1][0],\n bounds[1][1],\n ];\n const zoom = this.mapService.getZoom();\n\n return { latLonBounds, zoom };\n }\n}\n"],"file":"raste-tile.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/LayerGroup.ts"],"names":["LayerGroup","layer","layerChildren","push","layerIndex","indexOf","splice","destroy","forEach","includes","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAIqBA,U;;;;;;;;;;;;;;;+FAGY,I;;;;;;WAE/B,kBAAgBC,KAAhB,EAA+B;AAC7B,WAAKC,aAAL,CAAmBC,IAAnB,CAAwBF,KAAxB;AACD;;;WAED,qBAAmBA,KAAnB,EAAkC;AAChC,UAAMG,UAAU,GAAG,KAAKF,aAAL,CAAmBG,OAAnB,CAA2BJ,KAA3B,CAAnB;;AACA,UAAIG,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnB,aAAKF,aAAL,CAAmBI,MAAnB,CAA0BF,UAA1B,EAAsC,CAAtC;AACD;;AACDH,MAAAA,KAAK,CAACM,OAAN;AACD;;;WAED,sBAAoB;AAClB,WAAKL,aAAL,CAAmBM,OAAnB,CAA2B,UAACP,KAAD,EAAgB;AACzCA,QAAAA,KAAK,CAACM,OAAN;AACD,OAFD;AAIA,WAAKL,aAAL,GAAqB,EAArB;AACD;;;WAED,kBAAgBD,KAAhB,EAA+B;AAC7B,aAAO,KAAKC,aAAL,CAAmBO,QAAnB,CAA4BR,KAA5B,CAAP;AACD;;;EA1BOS,mB","sourcesContent":["import { ILayer, ILayerGroup } from '@antv/l7-core';\nimport BaseLayer from './BaseLayer';\n\n// 定义 LayerGroup 继承 Baselayer\n\nexport default class LayerGroup<ChildLayerStyleOptions = {}>\n extends BaseLayer<ChildLayerStyleOptions>\n implements ILayerGroup {\n public isLayerGroup: boolean = true;\n\n public addChild(layer: ILayer) {\n this.layerChildren.push(layer);\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.layerChildren.indexOf(layer);\n if (layerIndex > -1) {\n this.layerChildren.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public clearChild() {\n this.layerChildren.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.layerChildren = [];\n }\n\n public hasChild(layer: ILayer) {\n return this.layerChildren.includes(layer);\n }\n}\n"],"file":"LayerGroup.js"}
@@ -1,294 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _l7Core = require("@antv/l7-core");
25
-
26
- var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
27
-
28
- var _image = _interopRequireDefault(require("../../image"));
29
-
30
- var _line = _interopRequireDefault(require("../../line"));
31
-
32
- var _point = _interopRequireDefault(require("../../point"));
33
-
34
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
35
-
36
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
-
38
- var RasterTileModel = function (_BaseModel) {
39
- (0, _inherits2.default)(RasterTileModel, _BaseModel);
40
-
41
- var _super = _createSuper(RasterTileModel);
42
-
43
- function RasterTileModel() {
44
- var _this;
45
-
46
- (0, _classCallCheck2.default)(this, RasterTileModel);
47
-
48
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
- args[_key] = arguments[_key];
50
- }
51
-
52
- _this = _super.call.apply(_super, [this].concat(args));
53
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "initedTileset", false);
54
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "tilesetManager", void 0);
55
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "showGrid", false);
56
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "subGridLayer", void 0);
57
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "subTextLayer", void 0);
58
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lastViewStates", void 0);
59
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "timer", void 0);
60
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSubLayers", function () {
61
- if (!_this.tilesetManager) {
62
- return;
63
- }
64
-
65
- var rasteTileLayer = _this.layer;
66
-
67
- _this.tilesetManager.tiles.filter(function (tile) {
68
- return tile.isLoaded;
69
- }).map(function (tile) {
70
- if (!tile.layer) {
71
- tile.layer = _this.creatSubLayer(tile);
72
- rasteTileLayer.addChild(tile.layer);
73
- } else {
74
- tile.layer.updateLayerConfig({
75
- visible: tile.isVisible
76
- });
77
- }
78
-
79
- return tile.layer;
80
- });
81
-
82
- if (_this.showGrid) {
83
- if (!rasteTileLayer.hasChild(_this.subGridLayer)) {
84
- rasteTileLayer.addChild(_this.subGridLayer);
85
- }
86
-
87
- if (!rasteTileLayer.hasChild(_this.subTextLayer)) {
88
- rasteTileLayer.addChild(_this.subTextLayer);
89
- }
90
- }
91
-
92
- _this.layerService.renderLayers();
93
-
94
- if (_this.tilesetManager.isLoaded) {
95
- rasteTileLayer.emit('tiles-loaded', _this.tilesetManager.currentTiles);
96
- }
97
- });
98
- return _this;
99
- }
100
-
101
- (0, _createClass2.default)(RasterTileModel, [{
102
- key: "getUninforms",
103
- value: function getUninforms() {
104
- return {};
105
- }
106
- }, {
107
- key: "initModels",
108
- value: function initModels() {
109
- var _this$tilesetManager;
110
-
111
- var source = this.layer.getSource();
112
- this.tilesetManager = source.tileset;
113
-
114
- if (!this.initedTileset) {
115
- this.bindTilesetEvent();
116
- this.initedTileset = true;
117
- }
118
-
119
- var _this$getCurrentView = this.getCurrentView(),
120
- latLonBounds = _this$getCurrentView.latLonBounds,
121
- zoom = _this$getCurrentView.zoom;
122
-
123
- (_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
124
-
125
- if (this.showGrid) {
126
- this.renderSubGridLayer();
127
- }
128
-
129
- return this.buildModels();
130
- }
131
- }, {
132
- key: "buildModels",
133
- value: function buildModels() {
134
- return [];
135
- }
136
- }, {
137
- key: "clearModels",
138
- value: function clearModels() {}
139
- }, {
140
- key: "renderSubGridLayer",
141
- value: function renderSubGridLayer() {
142
- if (!this.tilesetManager) {
143
- return;
144
- }
145
-
146
- var features = this.tilesetManager.currentTiles.map(function (tile) {
147
- return tile.bboxPolygon;
148
- });
149
- var data = {
150
- type: 'FeatureCollection',
151
- features: features
152
- };
153
-
154
- if (this.subGridLayer) {
155
- this.subGridLayer.setData(data);
156
- this.subTextLayer.setData(data);
157
- return;
158
- }
159
-
160
- this.subGridLayer = new _line.default({
161
- autoFit: false
162
- }).source(data).size(1).color('red').shape('simple').style({
163
- lineType: 'dash',
164
- dashArray: [1, 2]
165
- });
166
- this.subTextLayer = new _point.default({
167
- autoFit: false
168
- }).source(data).size(14).color('red').shape('meta', 'text').style({
169
- opacity: 1,
170
- strokeWidth: 1,
171
- stroke: '#fff'
172
- });
173
- this.subGridLayer.setContainer((0, _l7Core.createLayerContainer)(this.layer.sceneContainer), this.layer.sceneContainer);
174
- this.subTextLayer.setContainer((0, _l7Core.createLayerContainer)(this.layer.sceneContainer), this.layer.sceneContainer);
175
- this.subGridLayer.init();
176
- this.subTextLayer.init();
177
- }
178
- }, {
179
- key: "registerBuiltinAttributes",
180
- value: function registerBuiltinAttributes() {}
181
- }, {
182
- key: "bindTilesetEvent",
183
- value: function bindTilesetEvent() {
184
- var _this2 = this;
185
-
186
- if (!this.tilesetManager) {
187
- return;
188
- }
189
-
190
- this.tilesetManager.on('tile-loaded', function (tile) {});
191
- this.tilesetManager.on('tile-unload', function (tile) {
192
- _this2.destroySubLayer(tile);
193
- });
194
- this.tilesetManager.on('tile-error', function (error, tile) {});
195
- this.tilesetManager.on('tile-update', this.renderSubLayers);
196
- this.mapService.on('mapchange', function (e) {
197
- var _this2$getCurrentView = _this2.getCurrentView(),
198
- latLonBounds = _this2$getCurrentView.latLonBounds,
199
- zoom = _this2$getCurrentView.zoom;
200
-
201
- if (_this2.mapService.version === 'GAODE1.x') {
202
- var _this2$layer$getLayer = _this2.layer.getLayerConfig(),
203
- visible = _this2$layer$getLayer.visible;
204
-
205
- if (zoom < 3 && visible) {
206
- _this2.layer.updateLayerConfig({
207
- visible: false
208
- });
209
-
210
- _this2.layerService.updateLayerRenderList();
211
- } else if (zoom >= 3 && !visible) {
212
- _this2.layer.updateLayerConfig({
213
- visible: true
214
- });
215
-
216
- _this2.layerService.updateLayerRenderList();
217
- }
218
- }
219
-
220
- if (_this2.lastViewStates && _this2.lastViewStates.zoom === zoom && _this2.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
221
- return;
222
- }
223
-
224
- _this2.lastViewStates = {
225
- zoom: zoom,
226
- latLonBounds: latLonBounds
227
- };
228
-
229
- if (_this2.timer) {
230
- clearTimeout(_this2.timer);
231
- _this2.timer = null;
232
- }
233
-
234
- _this2.timer = setTimeout(function () {
235
- var _this2$tilesetManager;
236
-
237
- (_this2$tilesetManager = _this2.tilesetManager) === null || _this2$tilesetManager === void 0 ? void 0 : _this2$tilesetManager.update(zoom, latLonBounds);
238
-
239
- if (_this2.showGrid) {
240
- _this2.renderSubGridLayer();
241
- }
242
- }, 250);
243
- });
244
- }
245
- }, {
246
- key: "creatSubLayer",
247
- value: function creatSubLayer(tile) {
248
- var _ref = this.layer.getLayerConfig(),
249
- _ref$opacity = _ref.opacity,
250
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
251
- _ref$zIndex = _ref.zIndex,
252
- zIndex = _ref$zIndex === void 0 ? 0 : _ref$zIndex;
253
-
254
- var layer = new _image.default({
255
- visible: tile.isVisible,
256
- zIndex: zIndex
257
- }).source(tile.data, {
258
- parser: {
259
- type: 'image',
260
- extent: tile.bounds
261
- }
262
- }).style({
263
- opacity: opacity
264
- });
265
- var container = (0, _l7Core.createLayerContainer)(this.layer.sceneContainer);
266
- layer.setContainer(container, this.layer.sceneContainer);
267
- layer.init();
268
- return layer;
269
- }
270
- }, {
271
- key: "destroySubLayer",
272
- value: function destroySubLayer(tile) {
273
- if (tile.layer) {
274
- var layerGroup = this.layer;
275
- layerGroup.removeChild(tile.layer);
276
- }
277
- }
278
- }, {
279
- key: "getCurrentView",
280
- value: function getCurrentView() {
281
- var bounds = this.mapService.getBounds();
282
- var latLonBounds = [bounds[0][0], bounds[0][1], bounds[1][0], bounds[1][1]];
283
- var zoom = this.mapService.getZoom();
284
- return {
285
- latLonBounds: latLonBounds,
286
- zoom: zoom
287
- };
288
- }
289
- }]);
290
- return RasterTileModel;
291
- }(_BaseModel2.default);
292
-
293
- exports.default = RasterTileModel;
294
- //# sourceMappingURL=raste-tile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/raster/models/raste-tile.ts"],"names":["RasterTileModel","tilesetManager","rasteTileLayer","layer","tiles","filter","tile","isLoaded","map","creatSubLayer","addChild","updateLayerConfig","visible","isVisible","showGrid","hasChild","subGridLayer","subTextLayer","layerService","renderLayers","emit","currentTiles","source","getSource","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","renderSubGridLayer","buildModels","features","bboxPolygon","data","type","setData","LineLayer","autoFit","size","color","shape","style","lineType","dashArray","PointLayer","opacity","strokeWidth","stroke","setContainer","sceneContainer","init","on","destroySubLayer","error","renderSubLayers","mapService","e","version","getLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","setTimeout","zIndex","ImageLayer","parser","extent","bounds","container","layerGroup","removeChild","getBounds","getZoom","BaseModel"],"mappings":"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","sourcesContent":["import {\n createLayerContainer,\n ILayer,\n ILayerGroup,\n IModelUniform,\n} from '@antv/l7-core';\nimport { Tile, TilesetManager } from '@antv/l7-utils';\nimport { Container } from 'inversify';\nimport BaseModel from '../../core/BaseModel';\nimport { IRasterTileLayerStyleOptions } from '../../core/interface';\nimport ImageLayer from '../../image';\nimport LineLayer from '../../line';\nimport PointLayer from '../../point';\n\nexport default class RasterTileModel extends BaseModel {\n // 瓦片是否加载成功\n public initedTileset = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n // 是否开启瓦片网格子图层,用于调试\n public showGrid = false;\n // 瓦片网格子图层,用于调试\n private subGridLayer: ILayer;\n // 瓦片网格文本子图层,用于调试\n private subTextLayer: ILayer;\n // 上一次视野状态\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n private timer: any;\n\n public getUninforms(): IModelUniform {\n return {};\n }\n\n public initModels() {\n const source = this.layer.getSource();\n this.tilesetManager = source.tileset;\n\n if (!this.initedTileset) {\n this.bindTilesetEvent();\n this.initedTileset = true;\n }\n\n const { latLonBounds, zoom } = this.getCurrentView();\n this.tilesetManager?.update(zoom, latLonBounds);\n\n if (this.showGrid) {\n this.renderSubGridLayer();\n }\n\n return this.buildModels();\n }\n\n public buildModels() {\n return [];\n }\n\n public clearModels() {\n //\n }\n\n // 渲染瓦片网格图层方便调试\n public renderSubGridLayer() {\n if (!this.tilesetManager) {\n return;\n }\n\n const features = this.tilesetManager.currentTiles.map(\n (tile) => tile.bboxPolygon,\n );\n\n const data = { type: 'FeatureCollection', features };\n\n if (this.subGridLayer) {\n this.subGridLayer.setData(data);\n this.subTextLayer.setData(data);\n return;\n }\n\n this.subGridLayer = new LineLayer({ autoFit: false })\n .source(data)\n .size(1)\n .color('red')\n .shape('simple')\n .style({ lineType: 'dash', dashArray: [1, 2] });\n\n this.subTextLayer = new PointLayer({ autoFit: false })\n .source(data)\n .size(14)\n .color('red')\n .shape('meta', 'text')\n .style({\n opacity: 1,\n strokeWidth: 1,\n stroke: '#fff',\n });\n\n this.subGridLayer.setContainer(\n createLayerContainer(this.layer.sceneContainer as Container),\n this.layer.sceneContainer as Container,\n );\n this.subTextLayer.setContainer(\n createLayerContainer(this.layer.sceneContainer as Container),\n this.layer.sceneContainer as Container,\n );\n this.subGridLayer.init();\n this.subTextLayer.init();\n }\n\n protected registerBuiltinAttributes() {\n //\n }\n\n // 监听瓦片管理器\n private bindTilesetEvent() {\n if (!this.tilesetManager) {\n return;\n }\n // 瓦片数据加载成功\n this.tilesetManager.on('tile-loaded', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片数据从缓存删除或被执行重新加载\n this.tilesetManager.on('tile-unload', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.destroySubLayer(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', this.renderSubLayers);\n\n // 地图视野发生改变\n this.mapService.on('mapchange', (e) => {\n const { latLonBounds, zoom } = this.getCurrentView();\n\n if (this.mapService.version === 'GAODE1.x') {\n const { visible } = this.layer.getLayerConfig();\n if (zoom < 3 && visible) {\n this.layer.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.layer.updateLayerConfig({ visible: true });\n this.layerService.updateLayerRenderList();\n }\n }\n\n if (\n this.lastViewStates &&\n this.lastViewStates.zoom === zoom &&\n this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()\n ) {\n return;\n }\n this.lastViewStates = { zoom, latLonBounds };\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n this.timer = setTimeout(() => {\n this.tilesetManager?.update(zoom, latLonBounds);\n if (this.showGrid) {\n this.renderSubGridLayer();\n }\n }, 250);\n });\n }\n\n // 创建子图层\n private creatSubLayer(tile: Tile) {\n const {\n opacity = 1,\n zIndex = 0,\n } = this.layer.getLayerConfig() as IRasterTileLayerStyleOptions;\n const layer = new ImageLayer({\n visible: tile.isVisible,\n zIndex,\n })\n .source(tile.data, {\n parser: {\n type: 'image',\n extent: tile.bounds,\n },\n })\n .style({\n opacity,\n });\n const container = createLayerContainer(\n this.layer.sceneContainer as Container,\n );\n layer.setContainer(container, this.layer.sceneContainer as Container);\n layer.init();\n\n return layer;\n }\n\n // 更新子图层\n private renderSubLayers = () => {\n if (!this.tilesetManager) {\n return;\n }\n\n const rasteTileLayer = this.layer as ILayerGroup;\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (!tile.layer) {\n tile.layer = this.creatSubLayer(tile);\n rasteTileLayer.addChild(tile.layer);\n } else {\n // 显隐藏控制\n tile.layer.updateLayerConfig({\n visible: tile.isVisible,\n });\n }\n return tile.layer;\n });\n\n if (this.showGrid) {\n if (!rasteTileLayer.hasChild(this.subGridLayer)) {\n rasteTileLayer.addChild(this.subGridLayer);\n }\n if (!rasteTileLayer.hasChild(this.subTextLayer)) {\n rasteTileLayer.addChild(this.subTextLayer);\n }\n }\n\n this.layerService.renderLayers();\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n rasteTileLayer.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n };\n\n // 摧毁子图层\n private destroySubLayer(tile: Tile) {\n if (tile.layer) {\n const layerGroup = this.layer as ILayerGroup;\n layerGroup.removeChild(tile.layer);\n }\n }\n\n // 获取当前视野参数\n private getCurrentView() {\n const bounds = this.mapService.getBounds();\n const latLonBounds: [number, number, number, number] = [\n bounds[0][0],\n bounds[0][1],\n bounds[1][0],\n bounds[1][1],\n ];\n const zoom = this.mapService.getZoom();\n\n return { latLonBounds, zoom };\n }\n}\n"],"file":"raste-tile.js"}