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:
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)
+ }
}
}