@antv/l7-layers 2.8.43 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) 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/extrude.js +1 -5
  33. package/es/polygon/models/extrude.js.map +1 -1
  34. package/es/polygon/models/fill.js +0 -4
  35. package/es/polygon/models/fill.js.map +1 -1
  36. package/es/polygon/models/index.d.ts +1 -1
  37. package/es/polygon/models/index.js +5 -1
  38. package/es/polygon/models/index.js.map +1 -1
  39. package/es/polygon/models/tile.d.ts +16 -0
  40. package/es/polygon/models/tile.js +137 -0
  41. package/es/polygon/models/tile.js.map +1 -0
  42. package/es/raster/index.d.ts +2 -2
  43. package/es/raster/index.js +4 -4
  44. package/es/raster/index.js.map +1 -1
  45. package/es/raster/models/index.js +1 -1
  46. package/es/raster/models/index.js.map +1 -1
  47. package/es/raster/models/raster.d.ts +1 -0
  48. package/es/raster/models/raster.js +8 -2
  49. package/es/raster/models/raster.js.map +1 -1
  50. package/es/tile/interface.d.ts +28 -0
  51. package/es/tile/interface.js +2 -0
  52. package/es/tile/interface.js.map +1 -0
  53. package/es/tile/manager/tileConfigManager.d.ts +17 -0
  54. package/es/tile/manager/tileConfigManager.js +123 -0
  55. package/es/tile/manager/tileConfigManager.js.map +1 -0
  56. package/es/tile/manager/tileLayerManager.d.ts +34 -0
  57. package/es/tile/manager/tileLayerManager.js +283 -0
  58. package/es/tile/manager/tileLayerManager.js.map +1 -0
  59. package/es/tile/manager/tilePickerManager.d.ts +20 -0
  60. package/es/tile/manager/tilePickerManager.js +164 -0
  61. package/es/tile/manager/tilePickerManager.js.map +1 -0
  62. package/es/tile/models/tileModel.d.ts +8 -0
  63. package/es/tile/models/tileModel.js +61 -0
  64. package/es/tile/models/tileModel.js.map +1 -0
  65. package/es/tile/tileFactory/base.d.ts +40 -0
  66. package/es/tile/tileFactory/base.js +352 -0
  67. package/es/tile/tileFactory/base.js.map +1 -0
  68. package/es/tile/tileFactory/index.d.ts +5 -0
  69. package/es/tile/tileFactory/index.js +30 -0
  70. package/es/tile/tileFactory/index.js.map +1 -0
  71. package/es/tile/tileFactory/line.d.ts +12 -0
  72. package/es/tile/tileFactory/line.js +65 -0
  73. package/es/tile/tileFactory/line.js.map +1 -0
  74. package/es/tile/tileFactory/point.d.ts +12 -0
  75. package/es/tile/tileFactory/point.js +65 -0
  76. package/es/tile/tileFactory/point.js.map +1 -0
  77. package/es/tile/tileFactory/polygon.d.ts +12 -0
  78. package/es/tile/tileFactory/polygon.js +65 -0
  79. package/es/tile/tileFactory/polygon.js.map +1 -0
  80. package/es/tile/tileFactory/raster.d.ts +12 -0
  81. package/es/tile/tileFactory/raster.js +61 -0
  82. package/es/tile/tileFactory/raster.js.map +1 -0
  83. package/es/tile/tileFactory/rasterData.d.ts +12 -0
  84. package/es/tile/tileFactory/rasterData.js +75 -0
  85. package/es/tile/tileFactory/rasterData.js.map +1 -0
  86. package/es/tile/tileFactory/rasterDataLayer.d.ts +19 -0
  87. package/es/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +39 -32
  88. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -0
  89. package/es/tile/tileFactory/vectorLayer.d.ts +27 -0
  90. package/es/tile/tileFactory/vectorLayer.js +131 -0
  91. package/es/tile/tileFactory/vectorLayer.js.map +1 -0
  92. package/es/tile/tileLayer/baseTileLayer.d.ts +51 -0
  93. package/es/tile/tileLayer/baseTileLayer.js +409 -0
  94. package/es/tile/tileLayer/baseTileLayer.js.map +1 -0
  95. package/es/tile/tmsTileLayer.d.ts +7 -0
  96. package/es/tile/tmsTileLayer.js +94 -0
  97. package/es/tile/tmsTileLayer.js.map +1 -0
  98. package/es/tile/utils.d.ts +11 -0
  99. package/es/tile/utils.js +120 -0
  100. package/es/tile/utils.js.map +1 -0
  101. package/lib/core/BaseLayer.js +21 -2
  102. package/lib/core/BaseLayer.js.map +1 -1
  103. package/lib/core/BaseModel.js +2 -0
  104. package/lib/core/BaseModel.js.map +1 -1
  105. package/lib/core/interface.js.map +1 -1
  106. package/lib/image/models/image.js.map +1 -1
  107. package/lib/line/index.js +7 -1
  108. package/lib/line/index.js.map +1 -1
  109. package/lib/line/models/index.js +7 -1
  110. package/lib/line/models/index.js.map +1 -1
  111. package/lib/line/models/tile.js +342 -0
  112. package/lib/line/models/tile.js.map +1 -0
  113. package/lib/plugins/ShaderUniformPlugin.js +3 -1
  114. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  115. package/lib/point/index.js +8 -2
  116. package/lib/point/index.js.map +1 -1
  117. package/lib/point/models/index.js +7 -1
  118. package/lib/point/models/index.js.map +1 -1
  119. package/lib/point/models/tile.js +308 -0
  120. package/lib/point/models/tile.js.map +1 -0
  121. package/lib/polygon/index.js +6 -0
  122. package/lib/polygon/index.js.map +1 -1
  123. package/lib/polygon/models/extrude.js +1 -5
  124. package/lib/polygon/models/extrude.js.map +1 -1
  125. package/lib/polygon/models/fill.js +0 -4
  126. package/lib/polygon/models/fill.js.map +1 -1
  127. package/lib/polygon/models/index.js +7 -1
  128. package/lib/polygon/models/index.js.map +1 -1
  129. package/lib/polygon/models/tile.js +152 -0
  130. package/lib/polygon/models/tile.js.map +1 -0
  131. package/lib/raster/index.js +4 -4
  132. package/lib/raster/index.js.map +1 -1
  133. package/lib/raster/models/index.js +2 -2
  134. package/lib/raster/models/index.js.map +1 -1
  135. package/lib/raster/models/raster.js +8 -2
  136. package/lib/raster/models/raster.js.map +1 -1
  137. package/lib/tile/interface.js +2 -0
  138. package/lib/tile/interface.js.map +1 -0
  139. package/lib/tile/manager/tileConfigManager.js +134 -0
  140. package/lib/tile/manager/tileConfigManager.js.map +1 -0
  141. package/lib/tile/manager/tileLayerManager.js +291 -0
  142. package/lib/tile/manager/tileLayerManager.js.map +1 -0
  143. package/lib/tile/manager/tilePickerManager.js +170 -0
  144. package/lib/tile/manager/tilePickerManager.js.map +1 -0
  145. package/lib/tile/models/tileModel.js +73 -0
  146. package/lib/tile/models/tileModel.js.map +1 -0
  147. package/lib/tile/tileFactory/base.js +366 -0
  148. package/lib/tile/tileFactory/base.js.map +1 -0
  149. package/lib/tile/tileFactory/index.js +60 -0
  150. package/lib/tile/tileFactory/index.js.map +1 -0
  151. package/lib/tile/tileFactory/line.js +76 -0
  152. package/lib/tile/tileFactory/line.js.map +1 -0
  153. package/lib/tile/tileFactory/point.js +76 -0
  154. package/lib/tile/tileFactory/point.js.map +1 -0
  155. package/lib/tile/tileFactory/polygon.js +76 -0
  156. package/lib/tile/tileFactory/polygon.js.map +1 -0
  157. package/lib/tile/tileFactory/raster.js +74 -0
  158. package/lib/tile/tileFactory/raster.js.map +1 -0
  159. package/lib/tile/tileFactory/rasterData.js +88 -0
  160. package/lib/tile/tileFactory/rasterData.js.map +1 -0
  161. package/lib/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +40 -32
  162. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -0
  163. package/lib/tile/tileFactory/vectorLayer.js +145 -0
  164. package/lib/tile/tileFactory/vectorLayer.js.map +1 -0
  165. package/lib/tile/tileLayer/baseTileLayer.js +408 -0
  166. package/lib/tile/tileLayer/baseTileLayer.js.map +1 -0
  167. package/lib/tile/tmsTileLayer.js +109 -0
  168. package/lib/tile/tmsTileLayer.js.map +1 -0
  169. package/lib/tile/utils.js +142 -0
  170. package/lib/tile/utils.js.map +1 -0
  171. package/package.json +7 -5
  172. package/es/core/LayerGroup.d.ts +0 -9
  173. package/es/core/LayerGroup.js.map +0 -1
  174. package/es/raster/models/raste-tile.d.ts +0 -23
  175. package/es/raster/models/raste-tile.js +0 -285
  176. package/es/raster/models/raste-tile.js.map +0 -1
  177. package/lib/core/LayerGroup.js.map +0 -1
  178. package/lib/raster/models/raste-tile.js +0 -294
  179. package/lib/raster/models/raste-tile.js.map +0 -1
@@ -0,0 +1,123 @@
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
+ import _isEqual from "lodash/isEqual";
9
+
10
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
+
12
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
+
14
+ import EventEmitter from 'eventemitter3';
15
+
16
+ var TileConfigManager = function (_EventEmitter) {
17
+ _inherits(TileConfigManager, _EventEmitter);
18
+
19
+ var _super = _createSuper(TileConfigManager);
20
+
21
+ function TileConfigManager() {
22
+ var _this;
23
+
24
+ _classCallCheck(this, TileConfigManager);
25
+
26
+ _this = _super.call(this);
27
+
28
+ _defineProperty(_assertThisInitialized(_this), "cacheConfig", void 0);
29
+
30
+ _defineProperty(_assertThisInitialized(_this), "checkConfigList", []);
31
+
32
+ _this.cacheConfig = new Map();
33
+ return _this;
34
+ }
35
+
36
+ _createClass(TileConfigManager, [{
37
+ key: "setConfig",
38
+ value: function setConfig(key, value) {
39
+ if (!this.checkConfigList.includes(key)) {
40
+ this.checkConfigList.push(key);
41
+ }
42
+
43
+ this.cacheConfig.set(key, value);
44
+ }
45
+ }, {
46
+ key: "removeConfig",
47
+ value: function removeConfig(key) {
48
+ var configIndex = this.checkConfigList.indexOf(key);
49
+
50
+ if (configIndex > -1) {
51
+ this.cacheConfig.delete(key);
52
+ this.checkConfigList.splice(configIndex, 1);
53
+ }
54
+ }
55
+ }, {
56
+ key: "checkConfig",
57
+ value: function checkConfig(layer) {
58
+ var _this2 = this;
59
+
60
+ if (!layer.inited) {
61
+ return;
62
+ }
63
+
64
+ var layerConfig = layer.getLayerConfig();
65
+ var updateConfigs = [];
66
+ this.checkConfigList.map(function (key) {
67
+ var cacheConfig = _this2.cacheConfig.get(key);
68
+
69
+ var currentConfig;
70
+
71
+ if (['color', 'size', 'shape'].includes(key)) {
72
+ var _layer$getAttribute;
73
+
74
+ currentConfig = (_layer$getAttribute = layer.getAttribute(key)) === null || _layer$getAttribute === void 0 ? void 0 : _layer$getAttribute.scale;
75
+ } else {
76
+ if (!(key in layerConfig)) {
77
+ return;
78
+ }
79
+
80
+ currentConfig = layerConfig[key];
81
+ }
82
+
83
+ if (!_isEqual(cacheConfig, currentConfig)) {
84
+ updateConfigs.push(key);
85
+
86
+ _this2.setConfig(key, currentConfig);
87
+ }
88
+ });
89
+
90
+ if (updateConfigs.length > 0) {
91
+ console.warn('tile config cache update!', updateConfigs);
92
+ this.emit('updateConfig', updateConfigs);
93
+ }
94
+ }
95
+ }, {
96
+ key: "getAttributeScale",
97
+ value: function getAttributeScale(layer, name) {
98
+ var attribute = layer.getAttribute(name);
99
+ var scaleValue = {
100
+ field: undefined,
101
+ values: undefined,
102
+ callback: undefined
103
+ };
104
+
105
+ if (attribute && attribute.scale) {
106
+ var _attribute$scale = attribute.scale,
107
+ field = _attribute$scale.field,
108
+ values = _attribute$scale.values,
109
+ callback = _attribute$scale.callback;
110
+ scaleValue.field = field;
111
+ scaleValue.values = values;
112
+ scaleValue.callback = callback;
113
+ }
114
+
115
+ return scaleValue;
116
+ }
117
+ }]);
118
+
119
+ return TileConfigManager;
120
+ }(EventEmitter);
121
+
122
+ export { TileConfigManager as default };
123
+ //# sourceMappingURL=tileConfigManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tile/manager/tileConfigManager.ts"],"names":["EventEmitter","TileConfigManager","cacheConfig","Map","key","value","checkConfigList","includes","push","set","configIndex","indexOf","delete","splice","layer","inited","layerConfig","getLayerConfig","updateConfigs","map","get","currentConfig","getAttribute","scale","setConfig","length","console","warn","emit","name","attribute","scaleValue","field","undefined","values","callback"],"mappings":"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","sourcesContent":["import { ILayer, IScaleValue, ISubLayerInitOptions } from '@antv/l7-core';\nimport EventEmitter from 'eventemitter3';\nimport { isEqual } from 'lodash';\nexport interface ITileConfigManager {\n setConfig(key: string, value: any): void;\n checkConfig(layer: ILayer): void;\n on(event: string, fn: (...args: any[]) => void): void;\n getAttributeScale(layer: ILayer, name: string): IScaleValue;\n}\n\nexport default class TileConfigManager extends EventEmitter {\n public cacheConfig: Map<string, any>;\n public checkConfigList: string[] = [];\n constructor() {\n super();\n this.cacheConfig = new Map();\n }\n\n public setConfig(key: string, value: any) {\n if (!this.checkConfigList.includes(key)) {\n this.checkConfigList.push(key);\n }\n this.cacheConfig.set(key, value);\n }\n\n public removeConfig(key: string) {\n const configIndex = this.checkConfigList.indexOf(key);\n if (configIndex > -1) {\n this.cacheConfig.delete(key);\n this.checkConfigList.splice(configIndex, 1);\n }\n }\n\n public checkConfig(layer: ILayer) {\n if (!layer.inited) {\n return;\n }\n\n const layerConfig = layer.getLayerConfig() as ISubLayerInitOptions;\n const updateConfigs: string[] = [];\n this.checkConfigList.map((key) => {\n const cacheConfig = this.cacheConfig.get(key);\n\n let currentConfig;\n if (['color', 'size', 'shape'].includes(key)) {\n currentConfig = layer.getAttribute(key)?.scale;\n } else {\n if (!(key in layerConfig)) {\n return;\n }\n // @ts-ignore\n currentConfig = layerConfig[key];\n }\n\n if (!isEqual(cacheConfig, currentConfig)) {\n updateConfigs.push(key);\n this.setConfig(key, currentConfig);\n }\n });\n if (updateConfigs.length > 0) {\n console.warn('tile config cache update!', updateConfigs);\n this.emit('updateConfig', updateConfigs);\n }\n }\n\n public getAttributeScale(layer: ILayer, name: string): IScaleValue {\n const attribute = layer.getAttribute(name);\n const scaleValue: IScaleValue = {\n field: undefined,\n values: undefined,\n callback: undefined,\n };\n if (attribute && attribute.scale) {\n const { field, values, callback } = attribute.scale;\n scaleValue.field = field;\n scaleValue.values = values;\n scaleValue.callback = callback;\n }\n return scaleValue;\n }\n}\n"],"file":"tileConfigManager.js"}
@@ -0,0 +1,34 @@
1
+ import { IInteractionTarget, ILayer, ILayerService, IMapService, IPickingService, IRendererService, ITileLayerManager, ITilePickManager } from '@antv/l7-core';
2
+ import { Tile } from '@antv/l7-utils';
3
+ import { ITileConfigManager } from './tileConfigManager';
4
+ export declare class TileLayerManager implements ITileLayerManager {
5
+ sourceLayer: string;
6
+ parent: ILayer;
7
+ children: ILayer[];
8
+ mapService: IMapService;
9
+ rendererService: IRendererService;
10
+ tilePickManager: ITilePickManager;
11
+ tileConfigManager: ITileConfigManager;
12
+ private tileFactory;
13
+ private initOptions;
14
+ constructor(parent: ILayer, mapService: IMapService, rendererService: IRendererService, pickingService: IPickingService, layerService: ILayerService);
15
+ createTile(tile: Tile): {
16
+ layers: ILayer[];
17
+ layerIDList: string[];
18
+ };
19
+ updateLayersConfig(layers: ILayer[], key: string, value: any): void;
20
+ addChild(layer: ILayer): void;
21
+ addChilds(layers: ILayer[]): void;
22
+ removeChilds(layerIDList: string[]): void;
23
+ removeChild(layer: ILayer): void;
24
+ getChilds(layerIDList: string[]): ILayer[];
25
+ getChild(layerID: string): ILayer;
26
+ clearChild(): void;
27
+ hasChild(layer: ILayer): boolean;
28
+ render(): void;
29
+ pickLayers(target: IInteractionTarget): boolean;
30
+ private setSubLayerInitOptipn;
31
+ private setConfigListener;
32
+ private updateStyle;
33
+ private initTileFactory;
34
+ }
@@ -0,0 +1,283 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ import { getTileFactory } from '../tileFactory';
6
+ import { getLayerShape, getMaskValue } from '../utils';
7
+ import TileConfigManager from './tileConfigManager';
8
+ import TilePickManager from './tilePickerManager';
9
+ export var TileLayerManager = function () {
10
+ function TileLayerManager(parent, mapService, rendererService, pickingService, layerService) {
11
+ _classCallCheck(this, TileLayerManager);
12
+
13
+ _defineProperty(this, "sourceLayer", void 0);
14
+
15
+ _defineProperty(this, "parent", void 0);
16
+
17
+ _defineProperty(this, "children", void 0);
18
+
19
+ _defineProperty(this, "mapService", void 0);
20
+
21
+ _defineProperty(this, "rendererService", void 0);
22
+
23
+ _defineProperty(this, "tilePickManager", void 0);
24
+
25
+ _defineProperty(this, "tileConfigManager", void 0);
26
+
27
+ _defineProperty(this, "tileFactory", void 0);
28
+
29
+ _defineProperty(this, "initOptions", void 0);
30
+
31
+ this.parent = parent;
32
+ this.children = parent.layerChildren;
33
+ this.mapService = mapService;
34
+ this.rendererService = rendererService;
35
+ this.tilePickManager = new TilePickManager(parent, rendererService, pickingService, this.children, layerService);
36
+ this.tileConfigManager = new TileConfigManager();
37
+ this.setSubLayerInitOptipn();
38
+ this.setConfigListener();
39
+ this.initTileFactory();
40
+ }
41
+
42
+ _createClass(TileLayerManager, [{
43
+ key: "createTile",
44
+ value: function createTile(tile) {
45
+ return this.tileFactory.createTile(tile, this.initOptions);
46
+ }
47
+ }, {
48
+ key: "updateLayersConfig",
49
+ value: function updateLayersConfig(layers, key, value) {
50
+ layers.map(function (layer) {
51
+ if (key === 'mask') {
52
+ layer.style({
53
+ mask: value
54
+ });
55
+ } else {
56
+ layer.updateLayerConfig(_defineProperty({}, key, value));
57
+ }
58
+ });
59
+ }
60
+ }, {
61
+ key: "addChild",
62
+ value: function addChild(layer) {
63
+ this.children.push(layer);
64
+ }
65
+ }, {
66
+ key: "addChilds",
67
+ value: function addChilds(layers) {
68
+ var _this$children;
69
+
70
+ (_this$children = this.children).push.apply(_this$children, _toConsumableArray(layers));
71
+ }
72
+ }, {
73
+ key: "removeChilds",
74
+ value: function removeChilds(layerIDList) {
75
+ var remveLayerList = [];
76
+ var cacheLayerList = [];
77
+ this.children.filter(function (child) {
78
+ layerIDList.includes(child.id) ? remveLayerList.push(child) : cacheLayerList.push(child);
79
+ });
80
+ remveLayerList.map(function (layer) {
81
+ return layer.destroy();
82
+ });
83
+ this.children = cacheLayerList;
84
+ }
85
+ }, {
86
+ key: "removeChild",
87
+ value: function removeChild(layer) {
88
+ var layerIndex = this.children.indexOf(layer);
89
+
90
+ if (layerIndex > -1) {
91
+ this.children.splice(layerIndex, 1);
92
+ }
93
+
94
+ layer.destroy();
95
+ }
96
+ }, {
97
+ key: "getChilds",
98
+ value: function getChilds(layerIDList) {
99
+ return this.children.filter(function (child) {
100
+ return layerIDList.includes(child.id);
101
+ });
102
+ }
103
+ }, {
104
+ key: "getChild",
105
+ value: function getChild(layerID) {
106
+ return this.children.filter(function (child) {
107
+ return child.id === layerID;
108
+ })[0];
109
+ }
110
+ }, {
111
+ key: "clearChild",
112
+ value: function clearChild() {
113
+ this.children.forEach(function (layer) {
114
+ layer.destroy();
115
+ });
116
+ this.children.slice(0, this.children.length);
117
+ }
118
+ }, {
119
+ key: "hasChild",
120
+ value: function hasChild(layer) {
121
+ return this.children.includes(layer);
122
+ }
123
+ }, {
124
+ key: "render",
125
+ value: function render() {
126
+ var _this$tileConfigManag, _this$tilePickManager;
127
+
128
+ (_this$tileConfigManag = this.tileConfigManager) === null || _this$tileConfigManag === void 0 ? void 0 : _this$tileConfigManag.checkConfig(this.parent);
129
+ (_this$tilePickManager = this.tilePickManager) === null || _this$tilePickManager === void 0 ? void 0 : _this$tilePickManager.normalRender(this.children);
130
+ }
131
+ }, {
132
+ key: "pickLayers",
133
+ value: function pickLayers(target) {
134
+ var _this$tilePickManager2;
135
+
136
+ return (_this$tilePickManager2 = this.tilePickManager) === null || _this$tilePickManager2 === void 0 ? void 0 : _this$tilePickManager2.pickRender(this.children, target);
137
+ }
138
+ }, {
139
+ key: "setSubLayerInitOptipn",
140
+ value: function setSubLayerInitOptipn() {
141
+ var _source$data;
142
+
143
+ var _ref = this.parent.getLayerConfig(),
144
+ _ref$zIndex = _ref.zIndex,
145
+ zIndex = _ref$zIndex === void 0 ? 0 : _ref$zIndex,
146
+ _ref$opacity = _ref.opacity,
147
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
148
+ _ref$mask = _ref.mask,
149
+ mask = _ref$mask === void 0 ? false : _ref$mask,
150
+ _ref$stroke = _ref.stroke,
151
+ stroke = _ref$stroke === void 0 ? '#fff' : _ref$stroke,
152
+ _ref$strokeWidth = _ref.strokeWidth,
153
+ strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
154
+ _ref$strokeOpacity = _ref.strokeOpacity,
155
+ strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
156
+ _ref$clampLow = _ref.clampLow,
157
+ clampLow = _ref$clampLow === void 0 ? true : _ref$clampLow,
158
+ _ref$clampHigh = _ref.clampHigh,
159
+ clampHigh = _ref$clampHigh === void 0 ? true : _ref$clampHigh,
160
+ _ref$domain = _ref.domain,
161
+ domain = _ref$domain === void 0 ? [0, 1] : _ref$domain,
162
+ _ref$rampColors = _ref.rampColors,
163
+ rampColors = _ref$rampColors === void 0 ? {
164
+ colors: ['rgb(166,97,26)', 'rgb(223,194,125)', 'rgb(245,245,245)', 'rgb(128,205,193)', 'rgb(1,133,113)'],
165
+ positions: [0, 0.25, 0.5, 0.75, 1.0]
166
+ } : _ref$rampColors,
167
+ _ref$featureId = _ref.featureId,
168
+ featureId = _ref$featureId === void 0 ? 'id' : _ref$featureId,
169
+ sourceLayer = _ref.sourceLayer;
170
+
171
+ var colorValue = this.tileConfigManager.getAttributeScale(this.parent, 'color');
172
+ var sizeValue = this.tileConfigManager.getAttributeScale(this.parent, 'size');
173
+ var source = this.parent.getSource();
174
+
175
+ var _ref2 = (source === null || source === void 0 ? void 0 : (_source$data = source.data) === null || _source$data === void 0 ? void 0 : _source$data.tilesetOptions) || {},
176
+ coords = _ref2.coords;
177
+
178
+ var layerShape = getLayerShape(this.parent.type, this.parent);
179
+ this.initOptions = {
180
+ layerType: this.parent.type,
181
+ shape: layerShape,
182
+ zIndex: zIndex,
183
+ opacity: opacity,
184
+ sourceLayer: sourceLayer,
185
+ coords: coords,
186
+ featureId: featureId,
187
+ color: colorValue,
188
+ size: sizeValue,
189
+ mask: getMaskValue(this.parent.type, mask),
190
+ stroke: stroke,
191
+ strokeWidth: strokeWidth,
192
+ strokeOpacity: strokeOpacity,
193
+ clampLow: clampLow,
194
+ clampHigh: clampHigh,
195
+ domain: domain,
196
+ rampColors: rampColors
197
+ };
198
+ }
199
+ }, {
200
+ key: "setConfigListener",
201
+ value: function setConfigListener() {
202
+ var _this = this;
203
+
204
+ this.tileConfigManager.setConfig('opacity', this.initOptions.opacity);
205
+ this.tileConfigManager.setConfig('zIndex', this.initOptions.zIndex);
206
+ this.tileConfigManager.setConfig('mask', this.initOptions.mask);
207
+
208
+ if (this.parent.type === 'RasterLayer') {
209
+ this.tileConfigManager.setConfig('rampColors', this.initOptions.rampColors);
210
+ this.tileConfigManager.setConfig('domain', this.initOptions.domain);
211
+ this.tileConfigManager.setConfig('clampHigh', this.initOptions.clampHigh);
212
+ this.tileConfigManager.setConfig('clampLow', this.initOptions.clampLow);
213
+ } else {
214
+ var _this$parent$getAttri, _this$parent$getAttri2, _this$parent$getAttri3;
215
+
216
+ this.tileConfigManager.setConfig('stroke', this.initOptions.stroke);
217
+ this.tileConfigManager.setConfig('strokeWidth', this.initOptions.strokeWidth);
218
+ this.tileConfigManager.setConfig('strokeOpacity', this.initOptions.strokeOpacity);
219
+ this.tileConfigManager.setConfig('color', (_this$parent$getAttri = this.parent.getAttribute('color')) === null || _this$parent$getAttri === void 0 ? void 0 : _this$parent$getAttri.scale);
220
+ this.tileConfigManager.setConfig('shape', (_this$parent$getAttri2 = this.parent.getAttribute('shape')) === null || _this$parent$getAttri2 === void 0 ? void 0 : _this$parent$getAttri2.scale);
221
+ this.tileConfigManager.setConfig('size', (_this$parent$getAttri3 = this.parent.getAttribute('size')) === null || _this$parent$getAttri3 === void 0 ? void 0 : _this$parent$getAttri3.scale);
222
+ }
223
+
224
+ this.tileConfigManager.on('updateConfig', function (updateConfigs) {
225
+ updateConfigs.map(function (key) {
226
+ _this.updateStyle(key);
227
+
228
+ return '';
229
+ });
230
+ });
231
+ }
232
+ }, {
233
+ key: "updateStyle",
234
+ value: function updateStyle(style) {
235
+ var _this2 = this;
236
+
237
+ var updateValue = null;
238
+
239
+ if (['size', 'color', 'shape'].includes(style)) {
240
+ var _this$parent$getAttri4;
241
+
242
+ var scaleValue = (_this$parent$getAttri4 = this.parent.getAttribute(style)) === null || _this$parent$getAttri4 === void 0 ? void 0 : _this$parent$getAttri4.scale;
243
+
244
+ if (!scaleValue) {
245
+ return;
246
+ }
247
+
248
+ updateValue = scaleValue;
249
+ this.children.map(function (child) {
250
+ _this2.tileFactory.setStyleAttributeField(child, style, scaleValue);
251
+
252
+ return '';
253
+ });
254
+ } else {
255
+ var layerConfig = this.parent.getLayerConfig();
256
+
257
+ if (!(style in layerConfig)) {
258
+ return;
259
+ }
260
+
261
+ var config = layerConfig[style];
262
+ updateValue = config;
263
+ this.updateLayersConfig(this.children, style, config);
264
+ }
265
+
266
+ this.initOptions[style] = updateValue;
267
+ }
268
+ }, {
269
+ key: "initTileFactory",
270
+ value: function initTileFactory() {
271
+ var source = this.parent.getSource();
272
+ var TileFactory = getTileFactory(this.parent.type, source.parser);
273
+ this.tileFactory = new TileFactory({
274
+ parent: this.parent,
275
+ mapService: this.mapService,
276
+ rendererService: this.rendererService
277
+ });
278
+ }
279
+ }]);
280
+
281
+ return TileLayerManager;
282
+ }();
283
+ //# sourceMappingURL=tileLayerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tile/manager/tileLayerManager.ts"],"names":["getTileFactory","getLayerShape","getMaskValue","TileConfigManager","TilePickManager","TileLayerManager","parent","mapService","rendererService","pickingService","layerService","children","layerChildren","tilePickManager","tileConfigManager","setSubLayerInitOptipn","setConfigListener","initTileFactory","tile","tileFactory","createTile","initOptions","layers","key","value","map","layer","style","mask","updateLayerConfig","push","layerIDList","remveLayerList","cacheLayerList","filter","child","includes","id","destroy","layerIndex","indexOf","splice","layerID","forEach","slice","length","checkConfig","normalRender","target","pickRender","getLayerConfig","zIndex","opacity","stroke","strokeWidth","strokeOpacity","clampLow","clampHigh","domain","rampColors","colors","positions","featureId","sourceLayer","colorValue","getAttributeScale","sizeValue","source","getSource","data","tilesetOptions","coords","layerShape","type","layerType","shape","color","size","setConfig","getAttribute","scale","on","updateConfigs","updateStyle","updateValue","scaleValue","setStyleAttributeField","layerConfig","config","updateLayersConfig","TileFactory","parser"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IPickingService,\n IRendererService,\n ISubLayerInitOptions,\n ITileLayerManager,\n ITilePickManager,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport { Tile } from '@antv/l7-utils';\nimport { getTileFactory, ITileFactory, TileType } from '../tileFactory';\nimport { getLayerShape, getMaskValue } from '../utils';\nimport TileConfigManager, { ITileConfigManager } from './tileConfigManager';\nimport TilePickManager from './tilePickerManager';\nexport class TileLayerManager implements ITileLayerManager {\n public sourceLayer: string;\n public parent: ILayer;\n public children: ILayer[];\n public mapService: IMapService;\n public rendererService: IRendererService;\n public tilePickManager: ITilePickManager;\n public tileConfigManager: ITileConfigManager;\n private tileFactory: ITileFactory;\n private initOptions: ISubLayerInitOptions;\n constructor(\n parent: ILayer,\n mapService: IMapService,\n rendererService: IRendererService,\n pickingService: IPickingService,\n layerService: ILayerService,\n ) {\n this.parent = parent;\n this.children = parent.layerChildren;\n this.mapService = mapService;\n this.rendererService = rendererService;\n this.tilePickManager = new TilePickManager(\n parent,\n rendererService,\n pickingService,\n this.children,\n layerService,\n );\n this.tileConfigManager = new TileConfigManager();\n\n this.setSubLayerInitOptipn();\n this.setConfigListener();\n this.initTileFactory();\n }\n\n public createTile(tile: Tile) {\n return this.tileFactory.createTile(tile, this.initOptions);\n }\n\n public updateLayersConfig(layers: ILayer[], key: string, value: any) {\n layers.map((layer) => {\n if (key === 'mask') {\n // Tip: 栅格瓦片生效、设置全局的 mask、瓦片被全局的 mask 影响\n layer.style({\n mask: value,\n });\n } else {\n layer.updateLayerConfig({\n [key]: value,\n });\n }\n });\n }\n\n public addChild(layer: ILayer) {\n this.children.push(layer);\n }\n\n public addChilds(layers: ILayer[]) {\n this.children.push(...layers);\n }\n\n public removeChilds(layerIDList: string[]) {\n const remveLayerList: ILayer[] = [];\n const cacheLayerList: ILayer[] = [];\n this.children.filter((child) => {\n layerIDList.includes(child.id)\n ? remveLayerList.push(child)\n : cacheLayerList.push(child);\n });\n remveLayerList.map((layer) => layer.destroy());\n this.children = cacheLayerList;\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.children.indexOf(layer);\n if (layerIndex > -1) {\n this.children.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public getChilds(layerIDList: string[]) {\n return this.children.filter((child) => layerIDList.includes(child.id));\n }\n\n public getChild(layerID: string) {\n return this.children.filter((child) => child.id === layerID)[0];\n }\n\n public clearChild() {\n this.children.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.children.slice(0, this.children.length);\n }\n\n public hasChild(layer: ILayer) {\n return this.children.includes(layer);\n }\n\n public render(): void {\n this.tileConfigManager?.checkConfig(this.parent);\n this.tilePickManager?.normalRender(this.children);\n }\n\n public pickLayers(target: IInteractionTarget) {\n return this.tilePickManager?.pickRender(this.children, target);\n }\n\n private setSubLayerInitOptipn() {\n const {\n zIndex = 0,\n opacity = 1,\n mask = false,\n stroke = '#fff',\n strokeWidth = 0,\n strokeOpacity = 1,\n\n clampLow = true,\n clampHigh = true,\n domain = [0, 1],\n rampColors = {\n colors: [\n 'rgb(166,97,26)',\n 'rgb(223,194,125)',\n 'rgb(245,245,245)',\n 'rgb(128,205,193)',\n 'rgb(1,133,113)',\n ],\n positions: [0, 0.25, 0.5, 0.75, 1.0],\n },\n featureId = 'id',\n sourceLayer,\n } = this.parent.getLayerConfig() as ISubLayerInitOptions;\n\n const colorValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'color',\n );\n const sizeValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'size',\n );\n const source = this.parent.getSource();\n const { coords } = source?.data?.tilesetOptions || {};\n\n const layerShape = getLayerShape(this.parent.type, this.parent);\n\n this.initOptions = {\n layerType: this.parent.type,\n shape: layerShape,\n zIndex,\n opacity,\n sourceLayer,\n coords,\n featureId,\n color: colorValue,\n size: sizeValue,\n mask: getMaskValue(this.parent.type, mask),\n stroke,\n strokeWidth,\n strokeOpacity,\n // raster tiff\n clampLow,\n clampHigh,\n domain,\n rampColors,\n };\n }\n\n private setConfigListener() {\n // RasterLayer PolygonLayer LineLayer PointLayer\n // All Tile Layer Need Listen\n this.tileConfigManager.setConfig('opacity', this.initOptions.opacity);\n this.tileConfigManager.setConfig('zIndex', this.initOptions.zIndex);\n this.tileConfigManager.setConfig('mask', this.initOptions.mask);\n\n if (this.parent.type === 'RasterLayer') {\n // Raster Tile Layer Need Listen\n this.tileConfigManager.setConfig(\n 'rampColors',\n this.initOptions.rampColors,\n );\n this.tileConfigManager.setConfig('domain', this.initOptions.domain);\n this.tileConfigManager.setConfig('clampHigh', this.initOptions.clampHigh);\n this.tileConfigManager.setConfig('clampLow', this.initOptions.clampLow);\n } else {\n // Vector Tile Layer Need Listen\n this.tileConfigManager.setConfig('stroke', this.initOptions.stroke);\n this.tileConfigManager.setConfig(\n 'strokeWidth',\n this.initOptions.strokeWidth,\n );\n this.tileConfigManager.setConfig(\n 'strokeOpacity',\n this.initOptions.strokeOpacity,\n );\n this.tileConfigManager.setConfig(\n 'color',\n this.parent.getAttribute('color')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'shape',\n this.parent.getAttribute('shape')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'size',\n this.parent.getAttribute('size')?.scale,\n );\n }\n\n this.tileConfigManager.on('updateConfig', (updateConfigs) => {\n updateConfigs.map((key: string) => {\n this.updateStyle(key);\n return '';\n });\n });\n }\n\n private updateStyle(style: string) {\n let updateValue = null;\n if (['size', 'color', 'shape'].includes(style)) {\n const scaleValue = this.parent.getAttribute(style)?.scale;\n if (!scaleValue) {\n return;\n }\n updateValue = scaleValue;\n this.children.map((child) => {\n this.tileFactory.setStyleAttributeField(\n child,\n style as ScaleAttributeType,\n scaleValue,\n );\n return '';\n });\n } else {\n const layerConfig = this.parent.getLayerConfig() as ISubLayerInitOptions;\n if (!(style in layerConfig)) {\n return;\n }\n // @ts-ignore\n const config = layerConfig[style];\n updateValue = config;\n this.updateLayersConfig(this.children, style, config);\n }\n // @ts-ignore\n this.initOptions[style] = updateValue;\n }\n\n private initTileFactory() {\n const source = this.parent.getSource();\n const TileFactory = getTileFactory(\n this.parent.type as TileType,\n source.parser,\n );\n this.tileFactory = new TileFactory({\n parent: this.parent,\n mapService: this.mapService,\n rendererService: this.rendererService,\n });\n }\n}\n"],"file":"tileLayerManager.js"}
@@ -0,0 +1,20 @@
1
+ import { IInteractionTarget, ILayer, ILayerService, IPickingService, IRendererService, ITilePickManager } from '@antv/l7-core';
2
+ import { EventEmitter } from 'eventemitter3';
3
+ export default class TilePickManager extends EventEmitter implements ITilePickManager {
4
+ isLastPicked: boolean;
5
+ private rendererService;
6
+ private pickingService;
7
+ private layerService;
8
+ private children;
9
+ private parent;
10
+ constructor(parent: ILayer, rendererService: IRendererService, pickingService: IPickingService, children: ILayer[], layerService: ILayerService);
11
+ /**
12
+ *
13
+ * @param layers
14
+ */
15
+ normalRender(layers: ILayer[]): void;
16
+ pickRender(layers: ILayer[], target: IInteractionTarget): boolean;
17
+ clearPick(): void;
18
+ beforeHighlight(pickedColors: any): void;
19
+ beforeSelect(pickedColors: any): void;
20
+ }
@@ -0,0 +1,164 @@
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 { EventEmitter } from 'eventemitter3';
14
+
15
+ var TilePickManager = function (_EventEmitter) {
16
+ _inherits(TilePickManager, _EventEmitter);
17
+
18
+ var _super = _createSuper(TilePickManager);
19
+
20
+ function TilePickManager(parent, rendererService, pickingService, children, layerService) {
21
+ var _this;
22
+
23
+ _classCallCheck(this, TilePickManager);
24
+
25
+ _this = _super.call(this);
26
+
27
+ _defineProperty(_assertThisInitialized(_this), "isLastPicked", false);
28
+
29
+ _defineProperty(_assertThisInitialized(_this), "rendererService", void 0);
30
+
31
+ _defineProperty(_assertThisInitialized(_this), "pickingService", void 0);
32
+
33
+ _defineProperty(_assertThisInitialized(_this), "layerService", void 0);
34
+
35
+ _defineProperty(_assertThisInitialized(_this), "children", void 0);
36
+
37
+ _defineProperty(_assertThisInitialized(_this), "parent", void 0);
38
+
39
+ _this.parent = parent;
40
+ _this.rendererService = rendererService;
41
+ _this.pickingService = pickingService;
42
+ _this.layerService = layerService;
43
+ _this.children = children;
44
+ return _this;
45
+ }
46
+
47
+ _createClass(TilePickManager, [{
48
+ key: "normalRender",
49
+ value: function normalRender(layers) {
50
+ var _this2 = this;
51
+
52
+ layers.filter(function (layer) {
53
+ return layer.inited;
54
+ }).filter(function (layer) {
55
+ return layer.isVisible();
56
+ }).map(function (layer) {
57
+ layer.hooks.beforeRenderData.call();
58
+ layer.hooks.beforeRender.call();
59
+
60
+ if (layer.masks.length > 0) {
61
+ _this2.rendererService.clear({
62
+ stencil: 0,
63
+ depth: 1,
64
+ framebuffer: null
65
+ });
66
+
67
+ layer.masks.map(function (m) {
68
+ m.hooks.beforeRender.call();
69
+ m.render();
70
+ m.hooks.afterRender.call();
71
+ });
72
+ }
73
+
74
+ layer.render();
75
+ layer.hooks.afterRender.call();
76
+ });
77
+ }
78
+ }, {
79
+ key: "pickRender",
80
+ value: function pickRender(layers, target) {
81
+ var _this3 = this;
82
+
83
+ this.normalRender([this.parent]);
84
+ var isPicked = layers.filter(function (layer) {
85
+ return _this3.parent.needPick(target.type) && layer.inited && layer.isVisible();
86
+ }).some(function (layer) {
87
+ layer.hooks.beforePickingEncode.call();
88
+
89
+ if (layer.masks.length > 0) {
90
+ _this3.rendererService.clear({
91
+ stencil: 0,
92
+ depth: 1,
93
+ framebuffer: null
94
+ });
95
+
96
+ layer.masks.map(function (m) {
97
+ m.hooks.beforeRender.call();
98
+ m.render();
99
+ m.hooks.afterRender.call();
100
+ });
101
+ }
102
+
103
+ layer.renderModels(true);
104
+ layer.hooks.afterPickingEncode.call();
105
+
106
+ var layerPicked = _this3.pickingService.pickFromPickingFBO(layer, target);
107
+
108
+ if (layerPicked) {
109
+ _this3.emit('pick', {
110
+ type: target.type,
111
+ pickedColors: _this3.pickingService.pickedColors,
112
+ layer: layer
113
+ });
114
+
115
+ _this3.pickingService.pickedTileLayers = [_this3.parent];
116
+ }
117
+
118
+ return layerPicked;
119
+ });
120
+
121
+ if (!isPicked && this.isLastPicked && target.type !== 'click') {
122
+ this.pickingService.pickedTileLayers = [];
123
+ this.emit('unpick', {});
124
+ this.beforeHighlight([0, 0, 0]);
125
+ }
126
+
127
+ this.isLastPicked = isPicked;
128
+ return isPicked;
129
+ }
130
+ }, {
131
+ key: "clearPick",
132
+ value: function clearPick() {
133
+ this.children.filter(function (child) {
134
+ return child.inited && child.isVisible();
135
+ }).map(function (layer) {
136
+ layer.hooks.beforeSelect.call([0, 0, 0]);
137
+ });
138
+ this.pickingService.pickedTileLayers = [];
139
+ }
140
+ }, {
141
+ key: "beforeHighlight",
142
+ value: function beforeHighlight(pickedColors) {
143
+ this.children.filter(function (child) {
144
+ return child.inited && child.isVisible();
145
+ }).map(function (child) {
146
+ child.hooks.beforeHighlight.call(pickedColors);
147
+ });
148
+ }
149
+ }, {
150
+ key: "beforeSelect",
151
+ value: function beforeSelect(pickedColors) {
152
+ this.children.filter(function (child) {
153
+ return child.inited && child.isVisible();
154
+ }).map(function (layer) {
155
+ layer.hooks.beforeSelect.call(pickedColors);
156
+ });
157
+ }
158
+ }]);
159
+
160
+ return TilePickManager;
161
+ }(EventEmitter);
162
+
163
+ export { TilePickManager as default };
164
+ //# sourceMappingURL=tilePickerManager.js.map