@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
@@ -0,0 +1,173 @@
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 _eventemitter = require("eventemitter3");
25
+
26
+ 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); }; }
27
+
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
+
30
+ var TilePickManager = function (_EventEmitter) {
31
+ (0, _inherits2.default)(TilePickManager, _EventEmitter);
32
+
33
+ var _super = _createSuper(TilePickManager);
34
+
35
+ function TilePickManager(parent, rendererService, pickingService, children, layerService) {
36
+ var _this;
37
+
38
+ (0, _classCallCheck2.default)(this, TilePickManager);
39
+ _this = _super.call(this);
40
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isLastPicked", false);
41
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "rendererService", void 0);
42
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "pickingService", void 0);
43
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "layerService", void 0);
44
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "children", void 0);
45
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parent", void 0);
46
+ _this.parent = parent;
47
+ _this.rendererService = rendererService;
48
+ _this.pickingService = pickingService;
49
+ _this.layerService = layerService;
50
+ _this.children = children;
51
+ return _this;
52
+ }
53
+
54
+ (0, _createClass2.default)(TilePickManager, [{
55
+ key: "normalRender",
56
+ value: function normalRender(layers) {
57
+ var _this2 = this;
58
+
59
+ layers.filter(function (layer) {
60
+ return layer.inited;
61
+ }).filter(function (layer) {
62
+ return layer.isVisible();
63
+ }).map(function (layer) {
64
+ layer.hooks.beforeRenderData.call();
65
+ layer.hooks.beforeRender.call();
66
+
67
+ if (layer.masks.length > 0) {
68
+ _this2.rendererService.clear({
69
+ stencil: 0,
70
+ depth: 1,
71
+ framebuffer: null
72
+ });
73
+
74
+ layer.masks.map(function (m) {
75
+ m.hooks.beforeRender.call();
76
+ m.render();
77
+ m.hooks.afterRender.call();
78
+ });
79
+ }
80
+
81
+ layer.render();
82
+ layer.hooks.afterRender.call();
83
+ });
84
+ }
85
+ }, {
86
+ key: "pickRender",
87
+ value: function pickRender(layers, target) {
88
+ var _this3 = this;
89
+
90
+ if (this.parent.type === 'RasterLayer') {
91
+ this.normalRender([this.parent]);
92
+ }
93
+
94
+ var isPicked = layers.filter(function (layer) {
95
+ return _this3.parent.needPick(target.type) && layer.inited && layer.isVisible();
96
+ }).some(function (layer) {
97
+ layer.hooks.beforePickingEncode.call();
98
+
99
+ if (layer.masks.length > 0) {
100
+ _this3.rendererService.clear({
101
+ stencil: 0,
102
+ depth: 1,
103
+ framebuffer: null
104
+ });
105
+
106
+ layer.masks.map(function (m) {
107
+ m.hooks.beforeRender.call();
108
+ m.render();
109
+ m.hooks.afterRender.call();
110
+ });
111
+ }
112
+
113
+ layer.renderModels(true);
114
+ layer.hooks.afterPickingEncode.call();
115
+
116
+ var layerPicked = _this3.pickingService.pickFromPickingFBO(layer, target);
117
+
118
+ if (layerPicked) {
119
+ _this3.emit('pick', {
120
+ type: target.type,
121
+ pickedColors: _this3.pickingService.pickedColors,
122
+ layer: layer
123
+ });
124
+
125
+ _this3.pickingService.pickedTileLayers = [_this3.parent];
126
+ }
127
+
128
+ return layerPicked;
129
+ });
130
+
131
+ if (!isPicked && this.isLastPicked && target.type !== 'click') {
132
+ this.pickingService.pickedTileLayers = [];
133
+ this.emit('unpick', {});
134
+ this.beforeHighlight([0, 0, 0]);
135
+ }
136
+
137
+ this.isLastPicked = isPicked;
138
+ return isPicked;
139
+ }
140
+ }, {
141
+ key: "clearPick",
142
+ value: function clearPick() {
143
+ this.children.filter(function (child) {
144
+ return child.inited && child.isVisible();
145
+ }).map(function (layer) {
146
+ layer.hooks.beforeSelect.call([0, 0, 0]);
147
+ });
148
+ this.pickingService.pickedTileLayers = [];
149
+ }
150
+ }, {
151
+ key: "beforeHighlight",
152
+ value: function beforeHighlight(pickedColors) {
153
+ this.children.filter(function (child) {
154
+ return child.inited && child.isVisible();
155
+ }).map(function (child) {
156
+ child.hooks.beforeHighlight.call(pickedColors);
157
+ });
158
+ }
159
+ }, {
160
+ key: "beforeSelect",
161
+ value: function beforeSelect(pickedColors) {
162
+ this.children.filter(function (child) {
163
+ return child.inited && child.isVisible();
164
+ }).map(function (layer) {
165
+ layer.hooks.beforeSelect.call(pickedColors);
166
+ });
167
+ }
168
+ }]);
169
+ return TilePickManager;
170
+ }(_eventemitter.EventEmitter);
171
+
172
+ exports.default = TilePickManager;
173
+ //# sourceMappingURL=tilePickerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tile/manager/tilePickerManager.ts"],"names":["TilePickManager","parent","rendererService","pickingService","children","layerService","layers","filter","layer","inited","isVisible","map","hooks","beforeRenderData","call","beforeRender","masks","length","clear","stencil","depth","framebuffer","m","render","afterRender","target","type","normalRender","isPicked","needPick","some","beforePickingEncode","renderModels","afterPickingEncode","layerPicked","pickFromPickingFBO","emit","pickedColors","pickedTileLayers","isLastPicked","beforeHighlight","child","beforeSelect","EventEmitter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA;;;;;;IACqBA,e;;;;;AASnB,2BACEC,MADF,EAEEC,eAFF,EAGEC,cAHF,EAIEC,QAJF,EAKEC,YALF,EAME;AAAA;;AAAA;AACA;AADA,+FAb6B,KAa7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,UAAKJ,MAAL,GAAcA,MAAd;AACA,UAAKC,eAAL,GAAuBA,eAAvB;AACA,UAAKC,cAAL,GAAsBA,cAAtB;AACA,UAAKE,YAAL,GAAoBA,YAApB;AACA,UAAKD,QAAL,GAAgBA,QAAhB;AANA;AAOD;;;;WAMD,sBAAoBE,MAApB,EAAsC;AAAA;;AACpCA,MAAAA,MAAM,CACHC,MADH,CACU,UAACC,KAAD;AAAA,eAAWA,KAAK,CAACC,MAAjB;AAAA,OADV,EAEGF,MAFH,CAEU,UAACC,KAAD;AAAA,eAAWA,KAAK,CAACE,SAAN,EAAX;AAAA,OAFV,EAGGC,GAHH,CAGO,UAACH,KAAD,EAAW;AACdA,QAAAA,KAAK,CAACI,KAAN,CAAYC,gBAAZ,CAA6BC,IAA7B;AACAN,QAAAA,KAAK,CAACI,KAAN,CAAYG,YAAZ,CAAyBD,IAAzB;;AACA,YAAIN,KAAK,CAACQ,KAAN,CAAYC,MAAZ,GAAqB,CAAzB,EAA4B;AAE1B,UAAA,MAAI,CAACf,eAAL,CAAqBgB,KAArB,CAA2B;AACzBC,YAAAA,OAAO,EAAE,CADgB;AAEzBC,YAAAA,KAAK,EAAE,CAFkB;AAGzBC,YAAAA,WAAW,EAAE;AAHY,WAA3B;;AAKAb,UAAAA,KAAK,CAACQ,KAAN,CAAYL,GAAZ,CAAgB,UAACW,CAAD,EAAe;AAC7BA,YAAAA,CAAC,CAACV,KAAF,CAAQG,YAAR,CAAqBD,IAArB;AACAQ,YAAAA,CAAC,CAACC,MAAF;AACAD,YAAAA,CAAC,CAACV,KAAF,CAAQY,WAAR,CAAoBV,IAApB;AACD,WAJD;AAKD;;AACDN,QAAAA,KAAK,CAACe,MAAN;AACAf,QAAAA,KAAK,CAACI,KAAN,CAAYY,WAAZ,CAAwBV,IAAxB;AACD,OArBH;AAsBD;;;WAED,oBAAkBR,MAAlB,EAAoCmB,MAApC,EAAgE;AAAA;;AAG9D,UAAI,KAAKxB,MAAL,CAAYyB,IAAZ,KAAqB,aAAzB,EAAwC;AACtC,aAAKC,YAAL,CAAkB,CAAC,KAAK1B,MAAN,CAAlB;AACD;;AACD,UAAM2B,QAAQ,GAAGtB,MAAM,CACpBC,MADc,CAEb,UAACC,KAAD;AAAA,eACE,MAAI,CAACP,MAAL,CAAY4B,QAAZ,CAAqBJ,MAAM,CAACC,IAA5B,KACAlB,KAAK,CAACC,MADN,IAEAD,KAAK,CAACE,SAAN,EAHF;AAAA,OAFa,EAOdoB,IAPc,CAOT,UAACtB,KAAD,EAAW;AACfA,QAAAA,KAAK,CAACI,KAAN,CAAYmB,mBAAZ,CAAgCjB,IAAhC;;AACA,YAAIN,KAAK,CAACQ,KAAN,CAAYC,MAAZ,GAAqB,CAAzB,EAA4B;AAE1B,UAAA,MAAI,CAACf,eAAL,CAAqBgB,KAArB,CAA2B;AACzBC,YAAAA,OAAO,EAAE,CADgB;AAEzBC,YAAAA,KAAK,EAAE,CAFkB;AAGzBC,YAAAA,WAAW,EAAE;AAHY,WAA3B;;AAMAb,UAAAA,KAAK,CAACQ,KAAN,CAAYL,GAAZ,CAAgB,UAACW,CAAD,EAAe;AAC7BA,YAAAA,CAAC,CAACV,KAAF,CAAQG,YAAR,CAAqBD,IAArB;AACAQ,YAAAA,CAAC,CAACC,MAAF;AACAD,YAAAA,CAAC,CAACV,KAAF,CAAQY,WAAR,CAAoBV,IAApB;AACD,WAJD;AAKD;;AACDN,QAAAA,KAAK,CAACwB,YAAN,CAAmB,IAAnB;AACAxB,QAAAA,KAAK,CAACI,KAAN,CAAYqB,kBAAZ,CAA+BnB,IAA/B;;AACA,YAAMoB,WAAW,GAAG,MAAI,CAAC/B,cAAL,CAAoBgC,kBAApB,CAClB3B,KADkB,EAElBiB,MAFkB,CAApB;;AAIA,YAAIS,WAAJ,EAAiB;AACf,UAAA,MAAI,CAACE,IAAL,CAAU,MAAV,EAAkB;AAChBV,YAAAA,IAAI,EAAED,MAAM,CAACC,IADG;AAEhBW,YAAAA,YAAY,EAAE,MAAI,CAAClC,cAAL,CAAoBkC,YAFlB;AAGhB7B,YAAAA,KAAK,EAALA;AAHgB,WAAlB;;AAKA,UAAA,MAAI,CAACL,cAAL,CAAoBmC,gBAApB,GAAuC,CAAC,MAAI,CAACrC,MAAN,CAAvC;AACD;;AAED,eAAOiC,WAAP;AACD,OAvCc,CAAjB;;AAwCA,UAAI,CAACN,QAAD,IAAa,KAAKW,YAAlB,IAAkCd,MAAM,CAACC,IAAP,KAAgB,OAAtD,EAA+D;AAE7D,aAAKvB,cAAL,CAAoBmC,gBAApB,GAAuC,EAAvC;AACA,aAAKF,IAAL,CAAU,QAAV,EAAoB,EAApB;AACA,aAAKI,eAAL,CAAqB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAArB;AACD;;AACD,WAAKD,YAAL,GAAoBX,QAApB;AACA,aAAOA,QAAP;AACD;;;WAED,qBAAmB;AACjB,WAAKxB,QAAL,CACGG,MADH,CACU,UAACkC,KAAD;AAAA,eAAWA,KAAK,CAAChC,MAAN,IAAgBgC,KAAK,CAAC/B,SAAN,EAA3B;AAAA,OADV,EAEGC,GAFH,CAEO,UAACH,KAAD,EAAW;AACdA,QAAAA,KAAK,CAACI,KAAN,CAAY8B,YAAZ,CAAyB5B,IAAzB,CAA8B,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAA9B;AACD,OAJH;AAKA,WAAKX,cAAL,CAAoBmC,gBAApB,GAAuC,EAAvC;AACD;;;WAED,yBAAuBD,YAAvB,EAA0C;AACxC,WAAKjC,QAAL,CACGG,MADH,CACU,UAACkC,KAAD;AAAA,eAAWA,KAAK,CAAChC,MAAN,IAAgBgC,KAAK,CAAC/B,SAAN,EAA3B;AAAA,OADV,EAEGC,GAFH,CAEO,UAAC8B,KAAD,EAAW;AACdA,QAAAA,KAAK,CAAC7B,KAAN,CAAY4B,eAAZ,CAA4B1B,IAA5B,CAAiCuB,YAAjC;AACD,OAJH;AAKD;;;WAED,sBAAoBA,YAApB,EAAuC;AACrC,WAAKjC,QAAL,CACGG,MADH,CACU,UAACkC,KAAD;AAAA,eAAWA,KAAK,CAAChC,MAAN,IAAgBgC,KAAK,CAAC/B,SAAN,EAA3B;AAAA,OADV,EAEGC,GAFH,CAEO,UAACH,KAAD,EAAW;AACdA,QAAAA,KAAK,CAACI,KAAN,CAAY8B,YAAZ,CAAyB5B,IAAzB,CAA8BuB,YAA9B;AACD,OAJH;AAKD;;;EApI0CM,0B","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IPickingService,\n IRendererService,\n ITilePickManager,\n} from '@antv/l7-core';\nimport { EventEmitter } from 'eventemitter3';\nexport default class TilePickManager extends EventEmitter\n implements ITilePickManager {\n public isLastPicked: boolean = false;\n private rendererService: IRendererService;\n private pickingService: IPickingService;\n private layerService: ILayerService;\n private children: ILayer[];\n private parent: ILayer;\n\n constructor(\n parent: ILayer,\n rendererService: IRendererService,\n pickingService: IPickingService,\n children: ILayer[],\n layerService: ILayerService,\n ) {\n super();\n this.parent = parent;\n this.rendererService = rendererService;\n this.pickingService = pickingService;\n this.layerService = layerService;\n this.children = children;\n }\n\n /**\n *\n * @param layers\n */\n public normalRender(layers: ILayer[]) {\n layers\n .filter((layer) => layer.inited)\n .filter((layer) => layer.isVisible())\n .map((layer) => {\n layer.hooks.beforeRenderData.call();\n layer.hooks.beforeRender.call();\n if (layer.masks.length > 0) {\n // 清除上一次的模版缓存\n this.rendererService.clear({\n stencil: 0,\n depth: 1,\n framebuffer: null,\n });\n layer.masks.map((m: ILayer) => {\n m.hooks.beforeRender.call();\n m.render();\n m.hooks.afterRender.call();\n });\n }\n layer.render();\n layer.hooks.afterRender.call();\n });\n }\n\n public pickRender(layers: ILayer[], target: IInteractionTarget) {\n // Tip: 在进行拾取渲染的时候也需要先渲染一遍父组件然后再渲染子组件\n // 如需要在 栅格瓦片存在 Mask 的时候发生的拾取,那么就需要先渲染父组件(渲染父组件的帧缓冲)\n if (this.parent.type === 'RasterLayer') {\n this.normalRender([this.parent]);\n }\n const isPicked = layers\n .filter(\n (layer) =>\n this.parent.needPick(target.type) &&\n layer.inited &&\n layer.isVisible(),\n )\n .some((layer) => {\n layer.hooks.beforePickingEncode.call();\n if (layer.masks.length > 0) {\n // 清除上一次的模版缓存\n this.rendererService.clear({\n stencil: 0,\n depth: 1,\n framebuffer: null,\n });\n\n layer.masks.map((m: ILayer) => {\n m.hooks.beforeRender.call();\n m.render();\n m.hooks.afterRender.call();\n });\n }\n layer.renderModels(true);\n layer.hooks.afterPickingEncode.call();\n const layerPicked = this.pickingService.pickFromPickingFBO(\n layer,\n target,\n );\n if (layerPicked) {\n this.emit('pick', {\n type: target.type,\n pickedColors: this.pickingService.pickedColors,\n layer,\n });\n this.pickingService.pickedTileLayers = [this.parent];\n }\n\n return layerPicked;\n });\n if (!isPicked && this.isLastPicked && target.type !== 'click') {\n // 只有上一次有被高亮选中,本次未选中的时候才需要清除选中状态\n this.pickingService.pickedTileLayers = [];\n this.emit('unpick', {});\n this.beforeHighlight([0, 0, 0]);\n }\n this.isLastPicked = isPicked;\n return isPicked;\n }\n\n public clearPick() {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .map((layer) => {\n layer.hooks.beforeSelect.call([0, 0, 0]);\n });\n this.pickingService.pickedTileLayers = [];\n }\n\n public beforeHighlight(pickedColors: any) {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .map((child) => {\n child.hooks.beforeHighlight.call(pickedColors);\n });\n }\n\n public beforeSelect(pickedColors: any) {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .map((layer) => {\n layer.hooks.beforeSelect.call(pickedColors);\n });\n }\n}\n"],"file":"tilePickerManager.js"}
@@ -0,0 +1,73 @@
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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
21
+
22
+ var _tmsTileLayer = require("../tmsTileLayer");
23
+
24
+ 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); }; }
25
+
26
+ 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; } }
27
+
28
+ var RasterTileModel = function (_BaseModel) {
29
+ (0, _inherits2.default)(RasterTileModel, _BaseModel);
30
+
31
+ var _super = _createSuper(RasterTileModel);
32
+
33
+ function RasterTileModel() {
34
+ (0, _classCallCheck2.default)(this, RasterTileModel);
35
+ return _super.apply(this, arguments);
36
+ }
37
+
38
+ (0, _createClass2.default)(RasterTileModel, [{
39
+ key: "getUninforms",
40
+ value: function getUninforms() {
41
+ return {};
42
+ }
43
+ }, {
44
+ key: "initModels",
45
+ value: function initModels() {
46
+ var _this$layer$getSource;
47
+
48
+ if ((_this$layer$getSource = this.layer.getSource()) !== null && _this$layer$getSource !== void 0 && _this$layer$getSource.data.isTile) {
49
+ this.layer.tileLayer = new _tmsTileLayer.TMSTileLayer({
50
+ parent: this.layer,
51
+ rendererService: this.rendererService,
52
+ mapService: this.mapService,
53
+ layerService: this.layerService,
54
+ pickingService: this.pickingService
55
+ });
56
+ }
57
+
58
+ return this.buildModels();
59
+ }
60
+ }, {
61
+ key: "buildModels",
62
+ value: function buildModels() {
63
+ return [];
64
+ }
65
+ }, {
66
+ key: "registerBuiltinAttributes",
67
+ value: function registerBuiltinAttributes() {}
68
+ }]);
69
+ return RasterTileModel;
70
+ }(_BaseModel2.default);
71
+
72
+ exports.default = RasterTileModel;
73
+ //# sourceMappingURL=tileModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tile/models/tileModel.ts"],"names":["RasterTileModel","layer","getSource","data","isTile","tileLayer","TMSTileLayer","parent","rendererService","mapService","layerService","pickingService","buildModels","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;IACqBA,e;;;;;;;;;;;;WACnB,wBAAqC;AACnC,aAAO,EAAP;AACD;;;WAED,sBAAoB;AAAA;;AAClB,mCAAI,KAAKC,KAAL,CAAWC,SAAX,EAAJ,kDAAI,sBAAwBC,IAAxB,CAA6BC,MAAjC,EAAyC;AACvC,aAAKH,KAAL,CAAWI,SAAX,GAAuB,IAAIC,0BAAJ,CAAiB;AACtCC,UAAAA,MAAM,EAAE,KAAKN,KADyB;AAEtCO,UAAAA,eAAe,EAAE,KAAKA,eAFgB;AAGtCC,UAAAA,UAAU,EAAE,KAAKA,UAHqB;AAItCC,UAAAA,YAAY,EAAE,KAAKA,YAJmB;AAKtCC,UAAAA,cAAc,EAAE,KAAKA;AALiB,SAAjB,CAAvB;AAOD;;AAED,aAAO,KAAKC,WAAL,EAAP;AACD;;;WAED,uBAAqB;AACnB,aAAO,EAAP;AACD;;;WAED,qCAAsC,CAErC;;;EAzB0CC,mB","sourcesContent":["import { IModelUniform } from '@antv/l7-core';\nimport BaseModel from '../../core/BaseModel';\nimport { TMSTileLayer } from '../tmsTileLayer';\nexport default class RasterTileModel extends BaseModel {\n public getUninforms(): IModelUniform {\n return {};\n }\n\n public initModels() {\n if (this.layer.getSource()?.data.isTile) {\n this.layer.tileLayer = new TMSTileLayer({\n parent: this.layer,\n rendererService: this.rendererService,\n mapService: this.mapService,\n layerService: this.layerService,\n pickingService: this.pickingService,\n });\n }\n\n return this.buildModels();\n }\n\n public buildModels() {\n return [];\n }\n\n protected registerBuiltinAttributes() {\n //\n }\n}\n"],"file":"tileModel.js"}
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+
20
+ var _l7Source = _interopRequireDefault(require("@antv/l7-source"));
21
+
22
+ var _l7Utils = require("@antv/l7-utils");
23
+
24
+ var _mask = _interopRequireDefault(require("../../mask"));
25
+
26
+ var _utils = require("../utils");
27
+
28
+ var _vectorLayer = _interopRequireDefault(require("./vectorLayer"));
29
+
30
+ var turf = _interopRequireWildcard(require("@turf/helpers"));
31
+
32
+ var _union = _interopRequireDefault(require("@turf/union"));
33
+
34
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
+
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
+
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
+
42
+ var TileFactory = function () {
43
+ function TileFactory(option) {
44
+ (0, _classCallCheck2.default)(this, TileFactory);
45
+ (0, _defineProperty2.default)(this, "type", void 0);
46
+ (0, _defineProperty2.default)(this, "parentLayer", void 0);
47
+ (0, _defineProperty2.default)(this, "mapService", void 0);
48
+ (0, _defineProperty2.default)(this, "rendererService", void 0);
49
+ (0, _defineProperty2.default)(this, "outSideEventTimer", null);
50
+ (0, _defineProperty2.default)(this, "layers", void 0);
51
+ (0, _defineProperty2.default)(this, "eventCache", {
52
+ click: 0,
53
+ mousemove: 0,
54
+ mouseup: 0,
55
+ mousedown: 0,
56
+ contextmenu: 0
57
+ });
58
+ this.parentLayer = option.parent;
59
+ this.mapService = option.mapService;
60
+ this.rendererService = option.rendererService;
61
+ }
62
+
63
+ (0, _createClass2.default)(TileFactory, [{
64
+ key: "createTile",
65
+ value: function createTile(tile, initOptions) {
66
+ return {
67
+ layers: [],
68
+ layerIDList: []
69
+ };
70
+ }
71
+ }, {
72
+ key: "getFeatureData",
73
+ value: function getFeatureData(tile, initOptions) {
74
+ var emptyData = {
75
+ features: [],
76
+ featureId: null,
77
+ vectorTileLayer: null,
78
+ source: null
79
+ };
80
+ var sourceLayer = initOptions.sourceLayer,
81
+ featureId = initOptions.featureId;
82
+
83
+ if (!sourceLayer) {
84
+ return emptyData;
85
+ }
86
+
87
+ var vectorTileLayer = tile.data.layers[sourceLayer];
88
+ var features = vectorTileLayer === null || vectorTileLayer === void 0 ? void 0 : vectorTileLayer.features;
89
+
90
+ if (!(Array.isArray(features) && features.length > 0)) {
91
+ return emptyData;
92
+ } else {
93
+ var source = new _l7Source.default({
94
+ type: 'FeatureCollection',
95
+ features: features
96
+ }, {
97
+ parser: {
98
+ type: 'geojson',
99
+ featureId: featureId
100
+ }
101
+ });
102
+ return {
103
+ features: features,
104
+ featureId: featureId,
105
+ vectorTileLayer: vectorTileLayer,
106
+ source: source
107
+ };
108
+ }
109
+ }
110
+ }, {
111
+ key: "createLayer",
112
+ value: function createLayer(tileLayerOption) {
113
+ var L7Layer = tileLayerOption.L7Layer,
114
+ tile = tileLayerOption.tile,
115
+ initOptions = tileLayerOption.initOptions,
116
+ vectorTileLayer = tileLayerOption.vectorTileLayer,
117
+ source = tileLayerOption.source;
118
+ var mask = initOptions.mask,
119
+ color = initOptions.color,
120
+ layerType = initOptions.layerType,
121
+ size = initOptions.size,
122
+ shape = initOptions.shape;
123
+ var FactoryTileLayer = L7Layer ? L7Layer : _vectorLayer.default;
124
+ var layer = new FactoryTileLayer(_objectSpread({
125
+ visible: tile.isVisible,
126
+ tileOrigin: vectorTileLayer === null || vectorTileLayer === void 0 ? void 0 : vectorTileLayer.l7TileOrigin,
127
+ coord: vectorTileLayer === null || vectorTileLayer === void 0 ? void 0 : vectorTileLayer.l7TileCoord
128
+ }, this.getLayerInitOption(initOptions)));
129
+
130
+ if (layer.isVector) {
131
+ this.emitEvent([layer]);
132
+ layer.type = layerType;
133
+ layer.select(true);
134
+ }
135
+
136
+ layer.source(source);
137
+ this.setStyleAttributeField(layer, 'shape', shape);
138
+ this.setStyleAttributeField(layer, 'color', color);
139
+ this.setStyleAttributeField(layer, 'size', size);
140
+ var layers = [layer];
141
+
142
+ if (mask && layer.isVector) {
143
+ var masklayer = new _mask.default().source({
144
+ type: 'FeatureCollection',
145
+ features: [tile.bboxPolygon]
146
+ }).shape('fill');
147
+ layers.push(masklayer);
148
+ layer.addMaskLayer(masklayer);
149
+ }
150
+
151
+ (0, _utils.registerLayers)(this.parentLayer, layers);
152
+ this.layers = [layer];
153
+ return layer;
154
+ }
155
+ }, {
156
+ key: "updateStyle",
157
+ value: function updateStyle(styles) {
158
+ return '';
159
+ }
160
+ }, {
161
+ key: "getDefautStyleAttributeField",
162
+ value: function getDefautStyleAttributeField(layer, type) {
163
+ switch (type) {
164
+ case 'size':
165
+ return 2;
166
+
167
+ case 'color':
168
+ return '#fff';
169
+
170
+ case 'shape':
171
+ return (0, _utils.getLayerShape)(this.parentLayer.type, layer);
172
+
173
+ default:
174
+ return '';
175
+ }
176
+ }
177
+ }, {
178
+ key: "setStyleAttributeField",
179
+ value: function setStyleAttributeField(layer, type, value) {
180
+ if (Array.isArray(value)) {
181
+ layer[type].apply(layer, (0, _toConsumableArray2.default)(value));
182
+ return;
183
+ }
184
+
185
+ if (typeof value === 'string') {
186
+ layer[type](value);
187
+ return;
188
+ }
189
+
190
+ var defaultValue = this.getDefautStyleAttributeField(layer, type);
191
+
192
+ if (!value) {
193
+ layer[type](defaultValue);
194
+ return layer;
195
+ }
196
+
197
+ var params = this.parseScaleValue(value, type);
198
+
199
+ if (params.length === 0) {
200
+ layer[type](defaultValue);
201
+ } else {
202
+ layer[type].apply(layer, (0, _toConsumableArray2.default)(params));
203
+ }
204
+ }
205
+ }, {
206
+ key: "parseScaleValue",
207
+ value: function parseScaleValue(value, type) {
208
+ if (type === 'shape') {
209
+ if (typeof value === 'string') {
210
+ return [value];
211
+ } else if (value !== null && value !== void 0 && value.field) {
212
+ return [value === null || value === void 0 ? void 0 : value.field];
213
+ } else {
214
+ return [];
215
+ }
216
+ }
217
+
218
+ var _ref = value,
219
+ field = _ref.field,
220
+ values = _ref.values,
221
+ callback = _ref.callback;
222
+
223
+ if (field && values && Array.isArray(values)) {
224
+ return [field, values];
225
+ } else if (field && callback) {
226
+ return [field, callback];
227
+ } else if (field) {
228
+ return [field];
229
+ }
230
+
231
+ return [];
232
+ }
233
+ }, {
234
+ key: "getTile",
235
+ value: function getTile(lng, lat) {
236
+ var source = this.parentLayer.getSource();
237
+ var zoomOffset = source.parser.zoomOffset || 0;
238
+ var tilesetManager = source.tileset;
239
+ var zoom = this.mapService.getZoom();
240
+ var z = Math.ceil(zoom) + zoomOffset;
241
+ var xy = (0, _l7Utils.osmLonLat2TileXY)(lng, lat, z);
242
+ var tiles = tilesetManager.tiles.filter(function (t) {
243
+ return t.key === "".concat(xy[0], ",").concat(xy[1], ",").concat(z);
244
+ });
245
+ var tile = tiles[0];
246
+ return tile;
247
+ }
248
+ }, {
249
+ key: "emitEvent",
250
+ value: function emitEvent(layers, isVector) {
251
+ var _this = this;
252
+
253
+ layers.map(function (layer) {
254
+ layer.once('inited', function () {
255
+ layer.on('click', function (e) {
256
+ var _e$lngLat = e.lngLat,
257
+ lng = _e$lngLat.lng,
258
+ lat = _e$lngLat.lat;
259
+
260
+ var tile = _this.getTile(lng, lat);
261
+
262
+ _this.eventCache.click = 1;
263
+
264
+ _this.getFeatureAndEmitEvent(layer, 'subLayerClick', e, isVector, tile);
265
+ });
266
+ layer.on('mousemove', function (e) {
267
+ var _e$lngLat2 = e.lngLat,
268
+ lng = _e$lngLat2.lng,
269
+ lat = _e$lngLat2.lat;
270
+
271
+ var tile = _this.getTile(lng, lat);
272
+
273
+ _this.eventCache.mousemove = 1;
274
+
275
+ _this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e, isVector, tile);
276
+ });
277
+ layer.on('mouseup', function (e) {
278
+ _this.eventCache.mouseup = 1;
279
+
280
+ _this.getFeatureAndEmitEvent(layer, 'subLayerMouseUp', e);
281
+ });
282
+ layer.on('mouseenter', function (e) {
283
+ _this.getFeatureAndEmitEvent(layer, 'subLayerMouseEnter', e);
284
+ });
285
+ layer.on('mouseout', function (e) {
286
+ _this.getFeatureAndEmitEvent(layer, 'subLayerMouseOut', e);
287
+ });
288
+ layer.on('mousedown', function (e) {
289
+ _this.eventCache.mousedown = 1;
290
+
291
+ _this.getFeatureAndEmitEvent(layer, 'subLayerMouseDown', e);
292
+ });
293
+ layer.on('contextmenu', function (e) {
294
+ _this.eventCache.contextmenu = 1;
295
+
296
+ _this.getFeatureAndEmitEvent(layer, 'subLayerContextmenu', e);
297
+ });
298
+ layer.on('unclick', function (e) {
299
+ return _this.handleOutsideEvent('click', 'subLayerUnClick', layer, e);
300
+ });
301
+ layer.on('unmouseup', function (e) {
302
+ return _this.handleOutsideEvent('mouseup', 'subLayerUnMouseUp', layer, e);
303
+ });
304
+ layer.on('unmousedown', function (e) {
305
+ return _this.handleOutsideEvent('mousedown', 'subLayerUnMouseDown', layer, e);
306
+ });
307
+ layer.on('uncontextmenu', function (e) {
308
+ return _this.handleOutsideEvent('contextmenu', 'subLayerUnContextmenu', layer, e);
309
+ });
310
+ });
311
+ });
312
+ }
313
+ }, {
314
+ key: "getCombineFeature",
315
+ value: function getCombineFeature(features) {
316
+ var p = null;
317
+ features.map(function (feature) {
318
+ var polygon = turf.polygon(feature.coordinates);
319
+
320
+ if (p === null) {
321
+ p = polygon;
322
+ }
323
+
324
+ {
325
+ p = (0, _union.default)(p, polygon);
326
+ }
327
+ });
328
+ return p;
329
+ }
330
+ }, {
331
+ key: "getFeatureAndEmitEvent",
332
+ value: function getFeatureAndEmitEvent(layer, eventName, e, isVector, tile) {
333
+ var featureId = e.featureId;
334
+ var features = this.getAllFeatures(featureId);
335
+ e.feature = this.getCombineFeature(features);
336
+
337
+ if (isVector === false) {
338
+ e.pickedColors = (0, _utils.readPixel)(e.x, e.y, this.rendererService);
339
+ e.value = (0, _utils.readRasterValue)(tile, this.mapService, e.x, e.y);
340
+ }
341
+
342
+ this.parentLayer.emit(eventName, e);
343
+ }
344
+ }, {
345
+ key: "getAllFeatures",
346
+ value: function getAllFeatures(featureId) {
347
+ var allLayers = this.parentLayer.tileLayer.children;
348
+ var features = [];
349
+ allLayers.map(function (layer) {
350
+ var source = layer.getSource();
351
+ source.data.dataArray.map(function (feature) {
352
+ if (feature._id === featureId) {
353
+ features.push(feature);
354
+ }
355
+ });
356
+ });
357
+ return features;
358
+ }
359
+ }, {
360
+ key: "getLayerInitOption",
361
+ value: function getLayerInitOption(initOptions) {
362
+ var option = _objectSpread({}, initOptions);
363
+
364
+ delete option.color;
365
+ delete option.shape;
366
+ delete option.size;
367
+ delete option.coords;
368
+ delete option.sourceLayer;
369
+ delete option.coords;
370
+ return option;
371
+ }
372
+ }, {
373
+ key: "handleOutsideEvent",
374
+ value: function handleOutsideEvent(type, emitType, layer, e) {
375
+ var _this2 = this;
376
+
377
+ if (this.outSideEventTimer) {
378
+ clearTimeout(this.outSideEventTimer);
379
+ this.outSideEventTimer = null;
380
+ }
381
+
382
+ this.outSideEventTimer = setTimeout(function () {
383
+ if (_this2.eventCache[type] > 0) {
384
+ _this2.eventCache[type] = 0;
385
+ } else {
386
+ _this2.getFeatureAndEmitEvent(layer, emitType, e);
387
+ }
388
+ }, 64);
389
+ }
390
+ }]);
391
+ return TileFactory;
392
+ }();
393
+
394
+ exports.default = TileFactory;
395
+ //# sourceMappingURL=base.js.map