commit 223cfa80bb9938810ce6f6d879d302e8a69eca14 parent 33c729c272f88a42239325ee4b96029e44c13ba8 Author: Sergej Orlov <wladimirych@gmail.com> Date: Wed, 15 Mar 2017 11:43:25 +0300 [print] workaround for high-detail scale printing when target zoom could exceed 18 level Diffstat:
M | src/lib/leaflet.control.printPages/control.js | | | 6 | ++++-- |
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/lib/leaflet.control.printPages/control.js b/src/lib/leaflet.control.printPages/control.js @@ -317,11 +317,13 @@ L.Control.PrintPages = L.Control.extend({ } let targetMetersPerPixel = scale / (resolution / 2.54); let mapUnitsPerPixel = targetMetersPerPixel / Math.cos(referenceLat * Math.PI / 180); - const satZoom = Math.ceil(Math.log(40075016.4 / 256 / mapUnitsPerPixel) / Math.LN2); + let satZoom = Math.ceil(Math.log(40075016.4 / 256 / mapUnitsPerPixel) / Math.LN2); targetMetersPerPixel = scale / (90 / 2.54) / 1.5; mapUnitsPerPixel = targetMetersPerPixel / Math.cos(referenceLat * Math.PI / 180); - const mapZoom = Math.round(Math.log(40075016.4 / 256 / mapUnitsPerPixel) / Math.LN2); + let mapZoom = Math.round(Math.log(40075016.4 / 256 / mapUnitsPerPixel) / Math.LN2); + mapZoom = Math.min(mapZoom, 18); + satZoom = Math.min(satZoom, 18); return {mapZoom, satZoom}; },