nakarte

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

commit 7cef1cdcee2cc53367fb8b99fa2d2f3dafae6798
parent cda41450ef00bc7b9dedc468418b8278af12ebdc
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Wed, 17 Jun 2026 22:24:47 +0200

print: increase print resolution for hi-res custom layers

Automatically detect tileScale for TileLayer

Diffstat:
Msrc/lib/leaflet.control.printPages/map-render.js | 4++--
Msrc/lib/leaflet.layer.rasterize/RetinaTileLayer.js | 6------
Msrc/lib/leaflet.layer.rasterize/TileLayer.js | 8+++++++-
Msrc/lib/leaflet.layer.rasterize/Yandex.js | 2+-
4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/lib/leaflet.control.printPages/map-render.js b/src/lib/leaflet.control.printPages/map-render.js @@ -219,7 +219,7 @@ async function* iterateLayersTiles( map = getTempMap(zoom, layer._rasterizeNeedsFullSizeMap, pixelBounds); map.addLayer(layer); } - let {iterateTilePromises, count, tileScale = 1} = await layer.getTilesInfo({ + let {iterateTilePromises, count, overrideTileScale} = await layer.getTilesInfo({ xhrOptions: defaultXHROptions, pixelBounds, latLngBounds, @@ -239,8 +239,8 @@ async function* iterateLayersTiles( zoom, progressInc, layer, - tileScale, ...tileInfo, + tileScale: overrideTileScale ?? tileInfo.tileScale, })); doStop = yield tilePromise; if (doStop) { diff --git a/src/lib/leaflet.layer.rasterize/RetinaTileLayer.js b/src/lib/leaflet.layer.rasterize/RetinaTileLayer.js @@ -8,10 +8,4 @@ RetinaTileLayer.include({ const newOptions = L.Util.extend({}, this.options, options); return new RetinaTileLayer(this.urls, newOptions, newOptions.scaleDependent); }, - - getTilesInfo: async function(printOptions) { - const tilesInfo = await L.TileLayer.prototype.getTilesInfo.call(this, printOptions); - tilesInfo.tileScale = this.tileSizeMultiplicator; - return tilesInfo; - }, }); diff --git a/src/lib/leaflet.layer.rasterize/TileLayer.js b/src/lib/leaflet.layer.rasterize/TileLayer.js @@ -40,7 +40,13 @@ const GridLayerGrabMixin = { let {tilePromise, abortLoading} = this.tileImagePromiseFromCoords( this._wrapCoords(coords), printOptions); yield { - tilePromise: tilePromise.then((image) => ({image, tilePos, tileSize, latLngBounds})), + tilePromise: tilePromise.then((image) => ({ + image, + tilePos, + tileSize, + latLngBounds, + tileScale: (image.width > this.getTileSize().x) ? 2 : 1, + })), abortLoading }; } diff --git a/src/lib/leaflet.layer.rasterize/Yandex.js b/src/lib/leaflet.layer.rasterize/Yandex.js @@ -8,7 +8,7 @@ L.Layer.Yandex.Map.include({ getTilesInfo: async function(printOptions) { const tilesInfo = await L.TileLayer.prototype.getTilesInfo.call(this, printOptions); - tilesInfo.tileScale = 2; + tilesInfo.overrideTileScale = 2; return tilesInfo; }, });