Skip to content

Commit cdfca80

Browse files
authored
fix GroupTileLayer's tilesize (#1429)
* fix GroupTileLayer's tilesize, fix #1425 * fixing specs * fixing specs
1 parent b2d2869 commit cdfca80

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

src/layer/tile/GroupTileLayer.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
import { pushIn } from '../../core/util';
22
import Layer from '../Layer';
33
import TileLayer from './TileLayer';
4+
import Size from '../../geo/Size';
45

56
const options = {
67
'maxCacheSize': 1024
78
};
89

10+
11+
const DEFAULT_TILESIZE = new Size(256, 256);
12+
913
/**
1014
* @classdesc
1115
* A layer used to display a group of tile layers. <br>
@@ -88,6 +92,14 @@ class GroupTileLayer extends TileLayer {
8892
return profile;
8993
}
9094

95+
getTileSize(id) {
96+
const layer = this.getLayer(id);
97+
if (!layer) {
98+
return DEFAULT_TILESIZE;
99+
}
100+
return layer.getTileSize();
101+
}
102+
91103
/**
92104
* Get tiles at zoom (or current zoom)
93105
* @param {Number} z
@@ -139,6 +151,10 @@ class GroupTileLayer extends TileLayer {
139151
super.onRemove();
140152
}
141153

154+
getLayer(id) {
155+
return this.getChildLayer(id);
156+
}
157+
142158
getChildLayer(id) {
143159
const layer = this.layerMap[id];
144160
if (layer) {

src/renderer/layer/tilelayer/TileLayerCanvasRenderer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ class TileLayerCanvasRenderer extends CanvasRenderer {
345345
}
346346

347347
loadTile(tile) {
348-
const tileSize = this.layer.getTileSize();
348+
const tileSize = this.layer.getTileSize(tile.layer);
349349
const tileImage = new Image();
350350

351351
tileImage.width = tileSize['width'];
@@ -446,7 +446,7 @@ class TileLayerCanvasRenderer extends CanvasRenderer {
446446
tileZoom = tileInfo.z,
447447
tileId = tileInfo.id;
448448
const map = this.getMap(),
449-
tileSize = this.layer.getTileSize(),
449+
tileSize = this.layer.getTileSize(tileInfo.layer),
450450
zoom = map.getZoom(),
451451
ctx = this.context,
452452
cp = map._pointToContainerPoint(point, tileZoom, 0, TEMP_POINT),

src/renderer/layer/tilelayer/TileLayerGLRenderer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class TileLayerGLRenderer extends ImageGLRenderable(TileLayerCanvasRenderer) {
3636
}
3737

3838
const scale = tileInfo._glScale = tileInfo._glScale || map.getGLScale(tileInfo.z);
39-
const size = this.layer.getTileSize();
39+
const size = this.layer.getTileSize(tileInfo.layer);
4040
const w = size.width;
4141
const h = size.height;
4242
if (tileInfo.cache !== false) {

0 commit comments

Comments
 (0)