From 11076bf0c59c21db8d97111d2c81414629869cab Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 25 Jul 2018 15:11:43 -0400 Subject: [PATCH] Calculate correct scale in tiler() for non-256px tile sizes --- modules/renderer/tile_layer.js | 5 ++--- modules/util/tiler.js | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/renderer/tile_layer.js b/modules/renderer/tile_layer.js index 454e71400..3df159d3f 100644 --- a/modules/renderer/tile_layer.js +++ b/modules/renderer/tile_layer.js @@ -18,7 +18,7 @@ export function rendererTileLayer(context) { function tileSizeAtZoom(d, z) { - var EPSILON = 0.002; + var EPSILON = 0.002; // close seams return ((_tileSize * Math.pow(2, z - d[2])) / _tileSize) + EPSILON; } @@ -272,8 +272,7 @@ export function rendererTileLayer(context) { _source = _; _tileSize = _source.tileSize; _cache = {}; - // tiler.tileSize(_source.tileSize).zoomExtent(_source.zoomExtent); // not yet - tiler.zoomExtent(_source.zoomExtent); + tiler.tileSize(_source.tileSize).zoomExtent(_source.zoomExtent); return background; }; diff --git a/modules/util/tiler.js b/modules/util/tiler.js index 03686c9c9..80f1989f5 100644 --- a/modules/util/tiler.js +++ b/modules/util/tiler.js @@ -35,7 +35,8 @@ export function utilTiler() { function tiler() { var z = geoScaleToZoom(_scale / (2 * Math.PI), _tileSize); var z0 = bound(Math.round(z)); - var k = Math.pow(2, z - z0 + 8); + var log2ts = Math.log(_tileSize) * Math.LOG2E; + var k = Math.pow(2, z - z0 + log2ts); var origin = [ (_translate[0] - _scale / 2) / k, (_translate[1] - _scale / 2) / k