Skip to content

Commit 4b1c4dc

Browse files
authored
TileLayer add options.bufferPixel for custom tile buffer size (#2078)
1 parent 633f240 commit 4b1c4dc

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/layer/tile/TileLayer.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class TileHashset {
8686
* @property {String} [options.token=null] - token to replace {token} in template http://foo/bar/{z}/{x}/{y}?token={token}
8787
* @property {Object} [options.fetchOptions=object] - fetch params,such as fetchOptions: { 'headers': { 'accept': '' } }, about accept value more info https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values
8888
* @property {Boolean} [options.awareOfTerrain=true] - if the tile layer is aware of terrain.
89+
* @property {Number} [options.bufferPixel=0.5] - tile buffer size,the unit is pixel
8990
* @memberOf TileLayer
9091
* @instance
9192
*/
@@ -146,7 +147,8 @@ const options = {
146147
'tileStackStartDepth': 7,
147148
'tileStackDepth': 3,
148149

149-
'awareOfTerrain': true
150+
'awareOfTerrain': true,
151+
'bufferPixel': 0.5
150152
};
151153

152154
const URL_PATTERN = /\{ *([\w_]+) *\}/g;

src/renderer/layer/tilelayer/TileLayerCanvasRenderer.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -695,14 +695,16 @@ class TileLayerCanvasRenderer extends CanvasRenderer {
695695
y = cp.y;
696696
let w = tileInfo.extent2d.xmax - tileInfo.extent2d.xmin;
697697
let h = tileInfo.extent2d.ymax - tileInfo.extent2d.ymin;
698+
const layer = this.layer;
699+
const bufferPixel = (layer ? layer.options.bufferPixel : 0);
698700
if (transformed) {
699701
ctx.save();
700702
ctx.translate(x, y);
701703
if (bearing) {
702704
ctx.rotate(-bearing * Math.PI / 180);
703705
}
704-
w += 0.5;
705-
h += 0.5;
706+
w += bufferPixel;
707+
h += bufferPixel;
706708
const res = map._getResolution();
707709
if (res !== tileInfo.res) {
708710
const scale = tileInfo.res / res;

0 commit comments

Comments
 (0)