nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 269f86733d66991f02079a1638e70facb59d085e
parent 15928b9db9939506612ee9bad291530c4aff4ce3
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Tue, 14 Mar 2017 10:19:07 +0300

[wikimapia] fixed loading at low zoom levels

Diffstat:
Msrc/lib/leaflet.layer.wikimapia/wikimapia-loader.js | 6+++++-
Msrc/lib/tiled-data-loader/index.js | 16+++++++++-------
2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/lib/leaflet.layer.wikimapia/wikimapia-loader.js b/src/lib/leaflet.layer.wikimapia/wikimapia-loader.js @@ -43,7 +43,11 @@ class WikimapiaLoader extends TiledDataLoader { y: Math.floor(layerTileCoords.y / multiplier), z: z2 } - } else { + } + else { + if (z < 0) { + return {z: 0, x: 0, y: 0}; + } return {z, x: layerTileCoords.x, y: layerTileCoords.y} } } diff --git a/src/lib/tiled-data-loader/index.js b/src/lib/tiled-data-loader/index.js @@ -47,13 +47,15 @@ class TiledDataLoader { return null; } if (dataTileCoords.z > layerTileCoords.z) { - throw new Error('Data tile zoom > map tile zoom'); - } - const multiplier = 1 << (layerTileCoords.z - dataTileCoords.z); - return { - multiplier, - offsetX: (layerTileCoords.x - dataTileCoords.x * multiplier), - offsetY: (layerTileCoords.y - dataTileCoords.y * multiplier) + const multiplier = 1 << (dataTileCoords.z - layerTileCoords.z); + return {multiplier: 1 / multiplier, offsetX: 0, offsetY: 0} + } else { + const multiplier = 1 << (layerTileCoords.z - dataTileCoords.z); + return { + multiplier, + offsetX: (layerTileCoords.x - dataTileCoords.x * multiplier), + offsetY: (layerTileCoords.y - dataTileCoords.y * multiplier) + } } }