@antv/l7-scene 2.9.36 → 2.9.37

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.
package/es/index.d.ts CHANGED
@@ -42,6 +42,7 @@ declare class Scene implements IPostProcessingPassPluggable, IMapController, ILa
42
42
  registerRenderService(render: any): void;
43
43
  setBgColor(color: string): void;
44
44
  addLayer(layer: ILayer): void;
45
+ initMask(layer: ILayer): ILayer | undefined;
45
46
  addMask(mask: ILayer, layerId: string): void;
46
47
  getPickedLayer(): number;
47
48
  getLayers(): ILayer[];
package/es/index.js CHANGED
@@ -141,36 +141,47 @@ var Scene = /*#__PURE__*/function () {
141
141
  }, {
142
142
  key: "addLayer",
143
143
  value: function addLayer(layer) {
144
+ var _this2 = this;
145
+
144
146
  // 为当前图层创建一个容器
145
147
  // TODO: 初始化的时候设置 容器
146
148
  var layerContainer = createLayerContainer(this.container);
147
149
  layer.setContainer(layerContainer, this.container);
148
- this.sceneService.addLayer(layer);
149
- var layerConfig = layer.getLayerConfig();
150
-
151
- if (layerConfig) {
152
- // layer 未初始化成功,则 layerConfig 为 undefined (scene loaded 尚未执行完成)
153
- var mask = layerConfig.mask,
154
- maskfence = layerConfig.maskfence,
155
- _layerConfig$maskColo = layerConfig.maskColor,
156
- maskColor = _layerConfig$maskColo === void 0 ? '#000' : _layerConfig$maskColo,
157
- _layerConfig$maskOpac = layerConfig.maskOpacity,
158
- maskOpacity = _layerConfig$maskOpac === void 0 ? 0 : _layerConfig$maskOpac;
159
-
160
- if (mask && maskfence) {
161
- var maskInstance = new MaskLayer().source(maskfence).shape('fill').style({
162
- color: maskColor,
163
- opacity: maskOpacity
164
- });
165
- this.addMask(maskInstance, layer.id);
166
- }
150
+ this.sceneService.addLayer(layer); // mask 在 scene loaded 之后执行
151
+
152
+ if (layer.inited) {
153
+ var maskInstance = this.initMask(layer);
154
+ this.addMask(maskInstance, layer.id);
167
155
  } else {
168
- console.warn('addLayer should run after scene loaded!');
156
+ layer.on('inited', function () {
157
+ var maskInstance = _this2.initMask(layer);
158
+
159
+ _this2.addMask(maskInstance, layer.id);
160
+ });
169
161
  }
170
162
  }
163
+ }, {
164
+ key: "initMask",
165
+ value: function initMask(layer) {
166
+ var _layer$getLayerConfig = layer.getLayerConfig(),
167
+ mask = _layer$getLayerConfig.mask,
168
+ maskfence = _layer$getLayerConfig.maskfence,
169
+ _layer$getLayerConfig2 = _layer$getLayerConfig.maskColor,
170
+ maskColor = _layer$getLayerConfig2 === void 0 ? '#000' : _layer$getLayerConfig2,
171
+ _layer$getLayerConfig3 = _layer$getLayerConfig.maskOpacity,
172
+ maskOpacity = _layer$getLayerConfig3 === void 0 ? 0 : _layer$getLayerConfig3;
173
+
174
+ if (!mask) return undefined;
175
+ var maskInstance = new MaskLayer().source(maskfence).shape('fill').style({
176
+ color: maskColor,
177
+ opacity: maskOpacity
178
+ });
179
+ return maskInstance;
180
+ }
171
181
  }, {
172
182
  key: "addMask",
173
183
  value: function addMask(mask, layerId) {
184
+ if (!mask) return;
174
185
  var parent = this.getLayer(layerId);
175
186
 
176
187
  if (parent) {
@@ -237,14 +248,14 @@ var Scene = /*#__PURE__*/function () {
237
248
  }, {
238
249
  key: "addIconFonts",
239
250
  value: function addIconFonts(options) {
240
- var _this2 = this;
251
+ var _this3 = this;
241
252
 
242
253
  options.forEach(function (_ref) {
243
254
  var _ref2 = _slicedToArray(_ref, 2),
244
255
  name = _ref2[0],
245
256
  fontUnicode = _ref2[1];
246
257
 
247
- _this2.fontService.addIconFont(name, fontUnicode);
258
+ _this3.fontService.addIconFont(name, fontUnicode);
248
259
  });
249
260
  }
250
261
  /**
@@ -256,10 +267,10 @@ var Scene = /*#__PURE__*/function () {
256
267
  }, {
257
268
  key: "addFontFace",
258
269
  value: function addFontFace(fontFamily, fontPath) {
259
- var _this3 = this;
270
+ var _this4 = this;
260
271
 
261
272
  this.fontService.once('fontloaded', function (e) {
262
- _this3.emit('fontloaded', e);
273
+ _this4.emit('fontloaded', e);
263
274
  });
264
275
  this.fontService.addFontFace(fontFamily, fontPath);
265
276
  }
package/lib/index.js CHANGED
@@ -105,26 +105,34 @@ var Scene = class {
105
105
  const layerContainer = (0, import_l7_core.createLayerContainer)(this.container);
106
106
  layer.setContainer(layerContainer, this.container);
107
107
  this.sceneService.addLayer(layer);
108
- const layerConfig = layer.getLayerConfig();
109
- if (layerConfig) {
110
- const {
111
- mask,
112
- maskfence,
113
- maskColor = "#000",
114
- maskOpacity = 0
115
- } = layerConfig;
116
- if (mask && maskfence) {
117
- const maskInstance = new import_l7_layers.MaskLayer().source(maskfence).shape("fill").style({
118
- color: maskColor,
119
- opacity: maskOpacity
120
- });
121
- this.addMask(maskInstance, layer.id);
122
- }
108
+ if (layer.inited) {
109
+ const maskInstance = this.initMask(layer);
110
+ this.addMask(maskInstance, layer.id);
123
111
  } else {
124
- console.warn("addLayer should run after scene loaded!");
112
+ layer.on("inited", () => {
113
+ const maskInstance = this.initMask(layer);
114
+ this.addMask(maskInstance, layer.id);
115
+ });
125
116
  }
126
117
  }
118
+ initMask(layer) {
119
+ const {
120
+ mask,
121
+ maskfence,
122
+ maskColor = "#000",
123
+ maskOpacity = 0
124
+ } = layer.getLayerConfig();
125
+ if (!mask)
126
+ return void 0;
127
+ const maskInstance = new import_l7_layers.MaskLayer().source(maskfence).shape("fill").style({
128
+ color: maskColor,
129
+ opacity: maskOpacity
130
+ });
131
+ return maskInstance;
132
+ }
127
133
  addMask(mask, layerId) {
134
+ if (!mask)
135
+ return;
128
136
  const parent = this.getLayer(layerId);
129
137
  if (parent) {
130
138
  const layerContainer = (0, import_l7_core.createLayerContainer)(this.container);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/l7-scene",
3
- "version": "2.9.36",
3
+ "version": "2.9.37",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -23,21 +23,21 @@
23
23
  "author": "xiaoiver",
24
24
  "license": "ISC",
25
25
  "dependencies": {
26
- "@antv/l7-component": "2.9.36",
27
- "@antv/l7-core": "2.9.36",
28
- "@antv/l7-layers": "2.9.36",
29
- "@antv/l7-maps": "2.9.36",
30
- "@antv/l7-renderer": "2.9.36",
31
- "@antv/l7-utils": "2.9.36",
26
+ "@antv/l7-component": "2.9.37",
27
+ "@antv/l7-core": "2.9.37",
28
+ "@antv/l7-layers": "2.9.37",
29
+ "@antv/l7-maps": "2.9.37",
30
+ "@antv/l7-renderer": "2.9.37",
31
+ "@antv/l7-utils": "2.9.37",
32
32
  "@babel/runtime": "^7.7.7",
33
33
  "inversify": "^5.0.1",
34
34
  "mapbox-gl": "^1.2.1",
35
35
  "reflect-metadata": "^0.1.13"
36
36
  },
37
37
  "devDependencies": {
38
- "@antv/l7-test-utils": "2.9.36"
38
+ "@antv/l7-test-utils": "2.9.37"
39
39
  },
40
- "gitHead": "31c164f88bfa31eeed98c0b074236493b0b2f78b",
40
+ "gitHead": "18d479150376cbcb0d616f921036173460293c38",
41
41
  "publishConfig": {
42
42
  "access": "public"
43
43
  }