@antv/l7-layers 2.8.44 → 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +40 -0
  62. package/es/tile/tileFactory/base.js +352 -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 +120 -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 +366 -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 +142 -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 @@
1
+ {"version":3,"sources":["../../../src/tile/tileFactory/rasterDataLayer.ts"],"names":["RasterTiffLayer","layerType","model","getModelType","layerModel","models","initModels","buildModels","RasterModel","properties","opacity","type","minimum","maximum","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IAEqBA,e;;;;;;;;;;;;;;;uFAGG,MAAKC,S;;;;;;WAC3B,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIF,KAAJ,CAAU,IAAV,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WAED,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WAED,wBAAyB;AACvB,aAAOC,eAAP;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,4BAA6B;AAC3B,aAAO,EAAP;AACD;;;EA/B0CC,mB","sourcesContent":["import BaseLayer from '../../core/BaseLayer';\nimport { IRasterLayerStyleOptions } from '../../core/interface';\nimport RasterModel from '../../raster/models/raster';\n\nexport default class RasterTiffLayer extends BaseLayer<\n Partial<IRasterLayerStyleOptions>\n> {\n public type: string = this.layerType as string;\n public buildModels() {\n const model = this.getModelType();\n this.layerModel = new model(this);\n this.models = this.layerModel.initModels();\n }\n\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n protected getModelType() {\n return RasterModel;\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected getDefaultConfig() {\n return {};\n }\n}\n"],"file":"rasterDataLayer.js"}
@@ -0,0 +1,145 @@
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 _BaseLayer2 = _interopRequireDefault(require("../../core/BaseLayer"));
25
+
26
+ var _tile = _interopRequireDefault(require("../../line/models/tile"));
27
+
28
+ var _text = _interopRequireDefault(require("../../point/models/text"));
29
+
30
+ var _tile2 = _interopRequireDefault(require("../../point/models/tile"));
31
+
32
+ var _tile3 = _interopRequireDefault(require("../../polygon/models/tile"));
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 VectorLayer = function (_BaseLayer) {
39
+ (0, _inherits2.default)(VectorLayer, _BaseLayer);
40
+
41
+ var _super = _createSuper(VectorLayer);
42
+
43
+ function VectorLayer() {
44
+ var _this;
45
+
46
+ (0, _classCallCheck2.default)(this, VectorLayer);
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), "isVector", true);
54
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", _this.layerType);
55
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "pickedID", null);
56
+ return _this;
57
+ }
58
+
59
+ (0, _createClass2.default)(VectorLayer, [{
60
+ key: "getPickID",
61
+ value: function getPickID() {
62
+ return this.pickedID;
63
+ }
64
+ }, {
65
+ key: "setPickID",
66
+ value: function setPickID() {
67
+ return this.pickedID;
68
+ }
69
+ }, {
70
+ key: "buildModels",
71
+ value: function buildModels() {
72
+ var model = this.getModelType();
73
+ this.layerModel = new model(this);
74
+ this.models = this.layerModel.initModels();
75
+ }
76
+ }, {
77
+ key: "rebuildModels",
78
+ value: function rebuildModels() {
79
+ this.models = this.layerModel.buildModels();
80
+ }
81
+ }, {
82
+ key: "getModelType",
83
+ value: function getModelType() {
84
+ switch (this.layerType) {
85
+ case 'PolygonLayer':
86
+ return _tile3.default;
87
+
88
+ case 'LineLayer':
89
+ return _tile.default;
90
+
91
+ case 'PointLayer':
92
+ return this.getPointModel();
93
+
94
+ default:
95
+ return _tile2.default;
96
+ }
97
+ }
98
+ }, {
99
+ key: "getPointModel",
100
+ value: function getPointModel() {
101
+ var layerData = this.getEncodedData();
102
+
103
+ var _this$getLayerConfig = this.getLayerConfig(),
104
+ shape2d = _this$getLayerConfig.shape2d;
105
+
106
+ var item = layerData.find(function (fe) {
107
+ return fe.hasOwnProperty('shape');
108
+ });
109
+
110
+ if (item) {
111
+ var shape = item.shape;
112
+
113
+ if ((shape2d === null || shape2d === void 0 ? void 0 : shape2d.indexOf(shape)) !== -1) {
114
+ return _tile2.default;
115
+ } else {
116
+ return _text.default;
117
+ }
118
+ } else {
119
+ return _tile2.default;
120
+ }
121
+ }
122
+ }, {
123
+ key: "getConfigSchema",
124
+ value: function getConfigSchema() {
125
+ return {
126
+ properties: {
127
+ opacity: {
128
+ type: 'number',
129
+ minimum: 0,
130
+ maximum: 1
131
+ }
132
+ }
133
+ };
134
+ }
135
+ }, {
136
+ key: "getDefaultConfig",
137
+ value: function getDefaultConfig() {
138
+ return {};
139
+ }
140
+ }]);
141
+ return VectorLayer;
142
+ }(_BaseLayer2.default);
143
+
144
+ exports.default = VectorLayer;
145
+ //# sourceMappingURL=vectorLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tile/tileFactory/vectorLayer.ts"],"names":["VectorLayer","layerType","pickedID","model","getModelType","layerModel","models","initModels","buildModels","polygonFillModel","lineFillModel","getPointModel","pointFillModel","layerData","getEncodedData","getLayerConfig","shape2d","item","find","fe","hasOwnProperty","shape","indexOf","pointTextModel","properties","opacity","type","minimum","maximum","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AAMA;;AACA;;AACA;;AACA;;;;;;IAEqBA,W;;;;;;;;;;;;;;;2FAKQ,I;uFACL,MAAKC,S;2FAEO,I;;;;;;WAElC,qBAAmB;AACjB,aAAO,KAAKC,QAAZ;AACD;;;WAED,qBAAmB;AACjB,aAAO,KAAKA,QAAZ;AACD;;;WAED,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIF,KAAJ,CAAU,IAAV,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WAED,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WAED,wBAAyB;AACvB,cAAQ,KAAKP,SAAb;AACE,aAAK,cAAL;AACE,iBAAOQ,cAAP;;AACF,aAAK,WAAL;AACE,iBAAOC,aAAP;;AACF,aAAK,YAAL;AACE,iBAAO,KAAKC,aAAL,EAAP;;AACF;AACE,iBAAOC,cAAP;AARJ;AAUD;;;WAED,yBAA0B;AACxB,UAAMC,SAAS,GAAG,KAAKC,cAAL,EAAlB;;AACA,iCAAoB,KAAKC,cAAL,EAApB;AAAA,UAAQC,OAAR,wBAAQA,OAAR;;AACA,UAAMC,IAAI,GAAGJ,SAAS,CAACK,IAAV,CAAe,UAACC,EAAD,EAAwB;AAClD,eAAOA,EAAE,CAACC,cAAH,CAAkB,OAAlB,CAAP;AACD,OAFY,CAAb;;AAIA,UAAIH,IAAJ,EAAU;AACR,YAAMI,KAAK,GAAGJ,IAAI,CAACI,KAAnB;;AACA,YAAI,CAAAL,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,OAAT,CAAiBD,KAAjB,OAAsC,CAAC,CAA3C,EAA8C;AAC5C,iBAAOT,cAAP;AACD,SAFD,MAEO;AACL,iBAAOW,aAAP;AACD;AACF,OAPD,MAOO;AACL,eAAOX,cAAP;AACD;AACF;;;WAED,2BAA4B;AAC1B,aAAO;AACLY,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,4BAA6B;AAC3B,aAAO,EAAP;AACD;;;EA1EsCC,mB","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../../core/BaseLayer';\nimport {\n ILineLayerStyleOptions,\n IPointLayerStyleOptions,\n IPolygonLayerStyleOptions,\n} from '../../core/interface';\nimport lineFillModel from '../../line/models/tile';\nimport pointTextModel from '../../point/models/text';\nimport pointFillModel from '../../point/models/tile';\nimport polygonFillModel from '../../polygon/models/tile';\n\nexport default class VectorLayer extends BaseLayer<\n Partial<\n IPolygonLayerStyleOptions & ILineLayerStyleOptions & IPointLayerStyleOptions\n >\n> {\n public isVector: boolean = true;\n public type: string = this.layerType as string;\n // Tip: 单独被 tile 瓦片的渲染链路使用(用于优化性能)\n private pickedID: number | null = null;\n\n public getPickID() {\n return this.pickedID;\n }\n\n public setPickID() {\n return this.pickedID;\n }\n\n public buildModels() {\n const model = this.getModelType();\n this.layerModel = new model(this);\n this.models = this.layerModel.initModels();\n }\n\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n protected getModelType() {\n switch (this.layerType) {\n case 'PolygonLayer':\n return polygonFillModel;\n case 'LineLayer':\n return lineFillModel;\n case 'PointLayer':\n return this.getPointModel();\n default:\n return pointFillModel;\n }\n }\n\n protected getPointModel() {\n const layerData = this.getEncodedData();\n const { shape2d } = this.getLayerConfig();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n // only support pointFill & pointText now\n if (item) {\n const shape = item.shape;\n if (shape2d?.indexOf(shape as string) !== -1) {\n return pointFillModel;\n } else {\n return pointTextModel;\n }\n } else {\n return pointFillModel;\n }\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected getDefaultConfig() {\n return {};\n }\n}\n"],"file":"vectorLayer.js"}
@@ -0,0 +1,408 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
18
+ var _l7Utils = require("@antv/l7-utils");
19
+
20
+ var _tileLayerManager = require("../manager/tileLayerManager");
21
+
22
+ 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; }
23
+
24
+ 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; }
25
+
26
+ var BaseTileLayer = function () {
27
+ function BaseTileLayer(_ref) {
28
+ var _parentSource$data;
29
+
30
+ var parent = _ref.parent,
31
+ rendererService = _ref.rendererService,
32
+ mapService = _ref.mapService,
33
+ layerService = _ref.layerService,
34
+ pickingService = _ref.pickingService;
35
+ (0, _classCallCheck2.default)(this, BaseTileLayer);
36
+ (0, _defineProperty2.default)(this, "type", 'baseTile');
37
+ (0, _defineProperty2.default)(this, "sourceLayer", void 0);
38
+ (0, _defineProperty2.default)(this, "parent", void 0);
39
+ (0, _defineProperty2.default)(this, "initedTileset", false);
40
+ (0, _defineProperty2.default)(this, "tilesetManager", void 0);
41
+ (0, _defineProperty2.default)(this, "tileLayerManager", void 0);
42
+ (0, _defineProperty2.default)(this, "lastViewStates", void 0);
43
+ (0, _defineProperty2.default)(this, "timer", void 0);
44
+ (0, _defineProperty2.default)(this, "mapService", void 0);
45
+ (0, _defineProperty2.default)(this, "layerService", void 0);
46
+ (0, _defineProperty2.default)(this, "pickColors", {
47
+ select: null,
48
+ active: null
49
+ });
50
+ var parentSource = parent.getSource();
51
+
52
+ var _ref2 = (parentSource === null || parentSource === void 0 ? void 0 : (_parentSource$data = parentSource.data) === null || _parentSource$data === void 0 ? void 0 : _parentSource$data.tilesetOptions) || {},
53
+ sourceLayer = _ref2.sourceLayer,
54
+ coords = _ref2.coords,
55
+ featureId = _ref2.featureId;
56
+
57
+ this.sourceLayer = sourceLayer;
58
+ this.parent = parent;
59
+ this.mapService = mapService;
60
+ this.layerService = layerService;
61
+ this.tileLayerManager = new _tileLayerManager.TileLayerManager(parent, mapService, rendererService, pickingService, layerService);
62
+ this.initTileSetManager();
63
+ this.bindSubLayerEvent();
64
+ this.bindSubLayerPick();
65
+ }
66
+
67
+ (0, _createClass2.default)(BaseTileLayer, [{
68
+ key: "children",
69
+ get: function get() {
70
+ return this.tileLayerManager.children;
71
+ }
72
+ }, {
73
+ key: "scale",
74
+ value: function scale(field, cfg) {
75
+ this.children.map(function (child) {
76
+ child.scale(field, cfg);
77
+ });
78
+ }
79
+ }, {
80
+ key: "render",
81
+ value: function render() {
82
+ if (this.tileLayerManager) {
83
+ this.tileLayerManager.render();
84
+ }
85
+ }
86
+ }, {
87
+ key: "clearPick",
88
+ value: function clearPick(type) {
89
+ if (type === 'mousemove') {
90
+ this.tileLayerManager.tilePickManager.clearPick();
91
+ }
92
+ }
93
+ }, {
94
+ key: "clearPickState",
95
+ value: function clearPickState() {
96
+ var _this = this;
97
+
98
+ this.children.filter(function (child) {
99
+ return child.inited && child.isVisible();
100
+ }).filter(function (child) {
101
+ return child.getCurrentSelectedId() !== null;
102
+ }).map(function (child) {
103
+ _this.selectFeature(child, new Uint8Array([0, 0, 0, 0]));
104
+
105
+ child.setCurrentSelectedId(null);
106
+ });
107
+ }
108
+ }, {
109
+ key: "pickLayers",
110
+ value: function pickLayers(target) {
111
+ return this.tileLayerManager.pickLayers(target);
112
+ }
113
+ }, {
114
+ key: "tileLoaded",
115
+ value: function tileLoaded(tile) {}
116
+ }, {
117
+ key: "tileError",
118
+ value: function tileError(error) {
119
+ console.warn('error:', error);
120
+ }
121
+ }, {
122
+ key: "tileUnLoad",
123
+ value: function tileUnLoad(tile) {
124
+ this.tileLayerManager.removeChilds(tile.layerIDList);
125
+ }
126
+ }, {
127
+ key: "tileUpdate",
128
+ value: function tileUpdate() {
129
+ var _this2 = this;
130
+
131
+ if (!this.tilesetManager) {
132
+ return;
133
+ }
134
+
135
+ this.tilesetManager.tiles.filter(function (tile) {
136
+ return tile.isLoaded;
137
+ }).map(function (tile) {
138
+ if (tile.layerIDList.length === 0) {
139
+ var _this2$tileLayerManag = _this2.tileLayerManager.createTile(tile),
140
+ layers = _this2$tileLayerManag.layers,
141
+ layerIDList = _this2$tileLayerManag.layerIDList;
142
+
143
+ tile.layerIDList = layerIDList;
144
+
145
+ _this2.tileLayerManager.addChilds(layers);
146
+ } else {
147
+ if (!tile.isVisibleChanged) {
148
+ return;
149
+ }
150
+
151
+ var _layers = _this2.tileLayerManager.getChilds(tile.layerIDList);
152
+
153
+ _this2.tileLayerManager.updateLayersConfig(_layers, 'visible', tile.isVisible);
154
+ }
155
+ });
156
+
157
+ if (this.tilesetManager.isLoaded) {
158
+ this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);
159
+ }
160
+ }
161
+ }, {
162
+ key: "setPickState",
163
+ value: function setPickState(layers) {
164
+ var _this3 = this;
165
+
166
+ if (this.pickColors.select) {
167
+ var selectedId = (0, _l7Utils.decodePickingColor)(this.pickColors.select);
168
+ layers.map(function (layer) {
169
+ _this3.selectFeature(layer, _this3.pickColors.select);
170
+
171
+ layer.setCurrentSelectedId(selectedId);
172
+ });
173
+ }
174
+
175
+ if (this.pickColors.active) {
176
+ var _selectedId = (0, _l7Utils.decodePickingColor)(this.pickColors.active);
177
+
178
+ layers.filter(function (layer) {
179
+ return layer.inited && layer.isVisible();
180
+ }).map(function (layer) {
181
+ layer.hooks.beforeHighlight.call(_this3.pickColors.active);
182
+ layer.setCurrentPickId(_selectedId);
183
+ });
184
+ }
185
+ }
186
+ }, {
187
+ key: "bindSubLayerPick",
188
+ value: function bindSubLayerPick() {
189
+ var _this4 = this;
190
+
191
+ this.tileLayerManager.tilePickManager.on('pick', function (e) {
192
+ var _e$pickedColors = (0, _slicedToArray2.default)(e.pickedColors, 3),
193
+ r = _e$pickedColors[0],
194
+ g = _e$pickedColors[1],
195
+ b = _e$pickedColors[2];
196
+
197
+ if (e.type === 'click') {
198
+ var restLayers = _this4.children.filter(function (child) {
199
+ return child.inited && child.isVisible() && child.isVector;
200
+ }).filter(function (child) {
201
+ return child !== e.layer;
202
+ });
203
+
204
+ _this4.setSelect(restLayers, [r, g, b]);
205
+ } else {
206
+ _this4.setHighlight([r, g, b]);
207
+ }
208
+ });
209
+ this.tileLayerManager.tilePickManager.on('unpick', function () {
210
+ _this4.pickColors.active = null;
211
+ });
212
+ }
213
+ }, {
214
+ key: "setHighlight",
215
+ value: function setHighlight(pickedColors) {
216
+ var pickId = (0, _l7Utils.decodePickingColor)(pickedColors);
217
+ this.pickColors.active = pickedColors;
218
+ this.children.filter(function (child) {
219
+ return child.inited && child.isVisible() && child.isVector;
220
+ }).filter(function (child) {
221
+ return child.getPickID() !== pickId;
222
+ }).map(function (child) {
223
+ child.setPickID(pickId);
224
+ child.hooks.beforeHighlight.call(pickedColors);
225
+ });
226
+ }
227
+ }, {
228
+ key: "setSelect",
229
+ value: function setSelect(layers, pickedColors) {
230
+ var _this5 = this;
231
+
232
+ var selectedId = (0, _l7Utils.decodePickingColor)(pickedColors);
233
+ layers.map(function (layer) {
234
+ if (layer.getCurrentSelectedId() === null || selectedId !== layer.getCurrentSelectedId()) {
235
+ _this5.selectFeature(layer, pickedColors);
236
+
237
+ layer.setCurrentSelectedId(selectedId);
238
+ _this5.pickColors.select = pickedColors;
239
+ } else {
240
+ _this5.selectFeature(layer, new Uint8Array([0, 0, 0, 0]));
241
+
242
+ layer.setCurrentSelectedId(null);
243
+ _this5.pickColors.select = null;
244
+ }
245
+ });
246
+ var renderList = this.layerService.getRenderList();
247
+ renderList.filter(function (layer) {
248
+ return layer.inited && !layer.isVector && layer.isVisible() && layer.needPick('click');
249
+ }).filter(function (layer) {
250
+ return layer.getCurrentSelectedId() !== null;
251
+ }).map(function (layer) {
252
+ _this5.selectFeature(layer, new Uint8Array([0, 0, 0, 0]));
253
+
254
+ layer.setCurrentSelectedId(null);
255
+ });
256
+ }
257
+ }, {
258
+ key: "selectFeature",
259
+ value: function selectFeature(layer, pickedColors) {
260
+ var _pickedColors = (0, _slicedToArray2.default)(pickedColors, 3),
261
+ r = _pickedColors[0],
262
+ g = _pickedColors[1],
263
+ b = _pickedColors[2];
264
+
265
+ layer.hooks.beforeSelect.call([r, g, b]);
266
+ }
267
+ }, {
268
+ key: "bindSubLayerEvent",
269
+ value: function bindSubLayerEvent() {
270
+ var _this6 = this;
271
+
272
+ this.parent.on('subLayerClick', function (e) {
273
+ _this6.parent.emit('click', _objectSpread({}, e));
274
+ });
275
+ this.parent.on('subLayerMouseMove', function (e) {
276
+ return _this6.parent.emit('mousemove', _objectSpread({}, e));
277
+ });
278
+ this.parent.on('subLayerMouseUp', function (e) {
279
+ return _this6.parent.emit('mouseup', _objectSpread({}, e));
280
+ });
281
+ this.parent.on('subLayerMouseEnter', function (e) {
282
+ return _this6.parent.emit('mouseenter', _objectSpread({}, e));
283
+ });
284
+ this.parent.on('subLayerMouseOut', function (e) {
285
+ return _this6.parent.emit('mouseout', _objectSpread({}, e));
286
+ });
287
+ this.parent.on('subLayerMouseDown', function (e) {
288
+ return _this6.parent.emit('mousedown', _objectSpread({}, e));
289
+ });
290
+ this.parent.on('subLayerContextmenu', function (e) {
291
+ return _this6.parent.emit('contextmenu', _objectSpread({}, e));
292
+ });
293
+ this.parent.on('subLayerUnClick', function (e) {
294
+ return _this6.parent.emit('unclick', _objectSpread({}, e));
295
+ });
296
+ this.parent.on('subLayerUnMouseMove', function (e) {
297
+ return _this6.parent.emit('unmousemove', _objectSpread({}, e));
298
+ });
299
+ this.parent.on('subLayerUnMouseUp', function (e) {
300
+ return _this6.parent.emit('unmouseup', _objectSpread({}, e));
301
+ });
302
+ this.parent.on('subLayerUnMouseDown', function (e) {
303
+ return _this6.parent.emit('unmousedown', _objectSpread({}, e));
304
+ });
305
+ this.parent.on('subLayerUnContextmenu', function (e) {
306
+ return _this6.parent.emit('uncontextmenu', _objectSpread({}, e));
307
+ });
308
+ }
309
+ }, {
310
+ key: "initTileSetManager",
311
+ value: function initTileSetManager() {
312
+ var _this$tilesetManager;
313
+
314
+ var source = this.parent.getSource();
315
+ this.tilesetManager = source.tileset;
316
+
317
+ if (!this.initedTileset) {
318
+ this.bindTilesetEvent();
319
+ this.initedTileset = true;
320
+ }
321
+
322
+ var _this$getCurrentView = this.getCurrentView(),
323
+ latLonBounds = _this$getCurrentView.latLonBounds,
324
+ zoom = _this$getCurrentView.zoom;
325
+
326
+ (_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
327
+ }
328
+ }, {
329
+ key: "bindTilesetEvent",
330
+ value: function bindTilesetEvent() {
331
+ var _this7 = this;
332
+
333
+ if (!this.tilesetManager) {
334
+ return;
335
+ }
336
+
337
+ this.tilesetManager.on('tile-loaded', function (tile) {});
338
+ this.tilesetManager.on('tile-unload', function (tile) {
339
+ _this7.tileUnLoad(tile);
340
+ });
341
+ this.tilesetManager.on('tile-error', function (error, tile) {
342
+ _this7.tileError(error);
343
+ });
344
+ this.tilesetManager.on('tile-update', function () {
345
+ _this7.tileUpdate();
346
+ });
347
+ this.mapService.on('mapchange', function (e) {
348
+ var _this7$getCurrentView = _this7.getCurrentView(),
349
+ latLonBounds = _this7$getCurrentView.latLonBounds,
350
+ zoom = _this7$getCurrentView.zoom;
351
+
352
+ if (_this7.mapService.version === 'GAODE1.x') {
353
+ var _this7$parent$getLaye = _this7.parent.getLayerConfig(),
354
+ visible = _this7$parent$getLaye.visible;
355
+
356
+ if (zoom < 3 && visible) {
357
+ _this7.parent.updateLayerConfig({
358
+ visible: false
359
+ });
360
+
361
+ _this7.layerService.updateLayerRenderList();
362
+ } else if (zoom >= 3 && !visible) {
363
+ _this7.parent.updateLayerConfig({
364
+ visible: true
365
+ });
366
+
367
+ _this7.layerService.updateLayerRenderList();
368
+ }
369
+ }
370
+
371
+ if (_this7.lastViewStates && _this7.lastViewStates.zoom === zoom && _this7.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
372
+ return;
373
+ }
374
+
375
+ _this7.lastViewStates = {
376
+ zoom: zoom,
377
+ latLonBounds: latLonBounds
378
+ };
379
+
380
+ if (_this7.timer) {
381
+ clearTimeout(_this7.timer);
382
+ _this7.timer = null;
383
+ }
384
+
385
+ _this7.timer = setTimeout(function () {
386
+ var _this7$tilesetManager;
387
+
388
+ (_this7$tilesetManager = _this7.tilesetManager) === null || _this7$tilesetManager === void 0 ? void 0 : _this7$tilesetManager.update(zoom, latLonBounds);
389
+ }, 250);
390
+ });
391
+ }
392
+ }, {
393
+ key: "getCurrentView",
394
+ value: function getCurrentView() {
395
+ var bounds = this.mapService.getBounds();
396
+ var latLonBounds = [bounds[0][0], bounds[0][1], bounds[1][0], bounds[1][1]];
397
+ var zoom = this.mapService.getZoom();
398
+ return {
399
+ latLonBounds: latLonBounds,
400
+ zoom: zoom
401
+ };
402
+ }
403
+ }]);
404
+ return BaseTileLayer;
405
+ }();
406
+
407
+ exports.default = BaseTileLayer;
408
+ //# sourceMappingURL=baseTileLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tile/tileLayer/baseTileLayer.ts"],"names":["BaseTileLayer","parent","rendererService","mapService","layerService","pickingService","select","active","parentSource","getSource","data","tilesetOptions","sourceLayer","coords","featureId","tileLayerManager","TileLayerManager","initTileSetManager","bindSubLayerEvent","bindSubLayerPick","children","field","cfg","map","child","scale","render","type","tilePickManager","clearPick","filter","inited","isVisible","getCurrentSelectedId","selectFeature","Uint8Array","setCurrentSelectedId","target","pickLayers","tile","error","console","warn","removeChilds","layerIDList","tilesetManager","tiles","isLoaded","length","createTile","layers","addChilds","isVisibleChanged","getChilds","updateLayersConfig","emit","currentTiles","pickColors","selectedId","layer","hooks","beforeHighlight","call","setCurrentPickId","on","e","pickedColors","r","g","b","restLayers","isVector","setSelect","setHighlight","pickId","getPickID","setPickID","renderList","getRenderList","needPick","beforeSelect","source","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","tileUnLoad","tileError","tileUpdate","version","getLayerConfig","visible","updateLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","setTimeout","bounds","getBounds","getZoom"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IScale,\n IScaleOptions,\n ISource,\n ITileLayer,\n ITileLayerManager,\n ITileLayerOPtions,\n} from '@antv/l7-core';\nimport { decodePickingColor, Tile, TilesetManager } from '@antv/l7-utils';\nimport { TileLayerManager } from '../manager/tileLayerManager';\n\nexport default class BaseTileLayer implements ITileLayer {\n public get children() {\n return this.tileLayerManager.children;\n }\n public type: string = 'baseTile';\n public sourceLayer: string;\n public parent: ILayer;\n // 瓦片是否加载成功\n public initedTileset: boolean = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n public tileLayerManager: ITileLayerManager;\n\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n\n private timer: any;\n private mapService: IMapService;\n private layerService: ILayerService;\n private pickColors: {\n select: any;\n active: any;\n } = {\n select: null,\n active: null,\n };\n\n constructor({\n parent,\n rendererService,\n mapService,\n layerService,\n pickingService,\n }: ITileLayerOPtions) {\n const parentSource = parent.getSource();\n const { sourceLayer, coords, featureId } =\n parentSource?.data?.tilesetOptions || {};\n this.sourceLayer = sourceLayer;\n this.parent = parent;\n this.mapService = mapService;\n this.layerService = layerService;\n\n this.tileLayerManager = new TileLayerManager(\n parent,\n mapService,\n rendererService,\n pickingService,\n layerService,\n );\n\n this.initTileSetManager();\n this.bindSubLayerEvent();\n this.bindSubLayerPick();\n }\n\n /**\n * 直接透传 scale 方法\n * @param field\n * @param cfg\n */\n public scale(field: string | number | IScaleOptions, cfg?: IScale) {\n this.children.map((child) => {\n child.scale(field, cfg);\n });\n }\n\n /**\n * 渲染瓦片的图层\n */\n public render() {\n if (this.tileLayerManager) {\n this.tileLayerManager.render();\n }\n }\n\n public clearPick(type: string) {\n if (type === 'mousemove') {\n this.tileLayerManager.tilePickManager.clearPick();\n }\n }\n\n /**\n * 清除 select 的选中状态\n */\n public clearPickState() {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .filter((child) => child.getCurrentSelectedId() !== null)\n .map((child) => {\n this.selectFeature(child, new Uint8Array([0, 0, 0, 0]));\n child.setCurrentSelectedId(null);\n });\n }\n\n /**\n * 瓦片图层独立的拾取逻辑\n * @param target\n * @returns\n */\n public pickLayers(target: IInteractionTarget) {\n return this.tileLayerManager.pickLayers(target);\n }\n\n public tileLoaded(tile: Tile) {\n //\n }\n\n public tileError(error: Error) {\n console.warn('error:', error);\n }\n\n public tileUnLoad(tile: Tile) {\n this.tileLayerManager.removeChilds(tile.layerIDList);\n }\n\n public tileUpdate() {\n // Base Function\n if (!this.tilesetManager) {\n return;\n }\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (tile.layerIDList.length === 0) {\n const { layers, layerIDList } = this.tileLayerManager.createTile(\n tile,\n );\n tile.layerIDList = layerIDList;\n this.tileLayerManager.addChilds(layers);\n } else {\n if (!tile.isVisibleChanged) {\n return;\n }\n const layers = this.tileLayerManager.getChilds(tile.layerIDList);\n this.tileLayerManager.updateLayersConfig(\n layers,\n 'visible',\n tile.isVisible,\n );\n }\n });\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n }\n\n protected setPickState(layers: ILayer[]) {\n if (this.pickColors.select) {\n const selectedId = decodePickingColor(this.pickColors.select);\n layers.map((layer) => {\n this.selectFeature(layer, this.pickColors.select);\n layer.setCurrentSelectedId(selectedId);\n });\n }\n\n if (this.pickColors.active) {\n const selectedId = decodePickingColor(this.pickColors.active);\n layers\n .filter((layer) => layer.inited && layer.isVisible())\n .map((layer) => {\n layer.hooks.beforeHighlight.call(this.pickColors.active);\n layer.setCurrentPickId(selectedId);\n });\n }\n }\n\n private bindSubLayerPick() {\n this.tileLayerManager.tilePickManager.on('pick', (e) => {\n // @ts-ignore\n const [r, g, b] = e.pickedColors;\n\n if (e.type === 'click') {\n const restLayers = this.children\n .filter(\n (child) => child.inited && child.isVisible() && child.isVector,\n )\n .filter((child) => child !== e.layer);\n this.setSelect(restLayers, [r, g, b]);\n } else {\n this.setHighlight([r, g, b]);\n }\n });\n\n this.tileLayerManager.tilePickManager.on('unpick', () => {\n this.pickColors.active = null;\n });\n }\n\n private setHighlight(pickedColors: any) {\n const pickId = decodePickingColor(pickedColors);\n this.pickColors.active = pickedColors;\n this.children\n .filter((child) => child.inited && child.isVisible() && child.isVector)\n // Tip: 使用 vectorLayer 上的 pickID 优化高亮操作(过滤重复操作)\n // @ts-ignore\n .filter((child) => child.getPickID() !== pickId)\n .map((child) => {\n // @ts-ignore\n child.setPickID(pickId);\n child.hooks.beforeHighlight.call(pickedColors);\n });\n }\n\n private setSelect(layers: ILayer[], pickedColors: any) {\n const selectedId = decodePickingColor(pickedColors);\n layers.map((layer) => {\n if (\n layer.getCurrentSelectedId() === null ||\n selectedId !== layer.getCurrentSelectedId()\n ) {\n this.selectFeature(layer, pickedColors);\n layer.setCurrentSelectedId(selectedId);\n this.pickColors.select = pickedColors;\n } else {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0])); // toggle select\n layer.setCurrentSelectedId(null);\n this.pickColors.select = null;\n }\n });\n // unselect normal layer\n const renderList = this.layerService.getRenderList();\n renderList\n .filter(\n (layer) =>\n layer.inited &&\n !layer.isVector &&\n layer.isVisible() &&\n layer.needPick('click'),\n )\n .filter((layer) => layer.getCurrentSelectedId() !== null)\n .map((layer) => {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0]));\n layer.setCurrentSelectedId(null);\n });\n }\n\n private selectFeature(layer: ILayer, pickedColors: Uint8Array | undefined) {\n // @ts-ignore\n const [r, g, b] = pickedColors;\n layer.hooks.beforeSelect.call([r, g, b]);\n }\n\n private bindSubLayerEvent() {\n /**\n * layer.on('click', (ev) => {}); // 鼠标左键点击图层事件\n * layer.on('mouseenter', (ev) => {}); // 鼠标进入图层要素\n * layer.on('mousemove', (ev) => {}); // 鼠标在图层上移动时触发\n * layer.on('mouseout', (ev) => {}); // 鼠标移出图层要素时触发\n * layer.on('mouseup', (ev) => {}); // 鼠标在图层上单击抬起时触发\n * layer.on('mousedown', (ev) => {}); // 鼠标在图层上单击按下时触发\n * layer.on('contextmenu', (ev) => {}); // 图层要素点击右键菜单\n *\n * 鼠标在图层外的事件\n * layer.on('unclick', (ev) => {}); // 图层外点击\n * layer.on('unmousemove', (ev) => {}); // 图层外移动\n * layer.on('unmouseup', (ev) => {}); // 图层外鼠标抬起\n * layer.on('unmousedown', (ev) => {}); // 图层外单击按下时触发\n * layer.on('uncontextmenu', (ev) => {}); // 图层外点击右键\n * layer.on('unpick', (ev) => {}); // 图层外的操作的所有事件\n */\n this.parent.on('subLayerClick', (e) => {\n this.parent.emit('click', { ...e });\n });\n this.parent.on('subLayerMouseMove', (e) =>\n this.parent.emit('mousemove', { ...e }),\n );\n this.parent.on('subLayerMouseUp', (e) =>\n this.parent.emit('mouseup', { ...e }),\n );\n this.parent.on('subLayerMouseEnter', (e) =>\n this.parent.emit('mouseenter', { ...e }),\n );\n this.parent.on('subLayerMouseOut', (e) =>\n this.parent.emit('mouseout', { ...e }),\n );\n this.parent.on('subLayerMouseDown', (e) =>\n this.parent.emit('mousedown', { ...e }),\n );\n this.parent.on('subLayerContextmenu', (e) =>\n this.parent.emit('contextmenu', { ...e }),\n );\n\n // vector layer 图层外事件\n this.parent.on('subLayerUnClick', (e) =>\n this.parent.emit('unclick', { ...e }),\n );\n this.parent.on('subLayerUnMouseMove', (e) =>\n this.parent.emit('unmousemove', { ...e }),\n );\n this.parent.on('subLayerUnMouseUp', (e) =>\n this.parent.emit('unmouseup', { ...e }),\n );\n this.parent.on('subLayerUnMouseDown', (e) =>\n this.parent.emit('unmousedown', { ...e }),\n );\n this.parent.on('subLayerUnContextmenu', (e) =>\n this.parent.emit('uncontextmenu', { ...e }),\n );\n }\n\n private initTileSetManager() {\n const source: ISource = this.parent.getSource();\n this.tilesetManager = source.tileset as TilesetManager;\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\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.tileUnLoad(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileError(error);\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', () => {\n this.tileUpdate();\n });\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.parent.getLayerConfig();\n if (zoom < 3 && visible) {\n this.parent.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.parent.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 }, 250);\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":"baseTileLayer.js"}