nakarte

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

commit f0dd5a11b8e5b3ac2a3cdcb2ba16606db262fe4d
parent 526ba9e306e49eff9454afb2631748d1be2b288e
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Sun, 26 Feb 2017 22:00:20 +0300

[print] better progress increment for canvas markers and track lines

Diffstat:
Msrc/lib/leaflet.control.printPages/map-render.js | 9+++++++--
Msrc/lib/leaflet.layer.rasterize/CanvasMarkers.js | 2++
Msrc/lib/leaflet.layer.rasterize/MeasuredLine.js | 1+
3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/lib/leaflet.control.printPages/map-render.js b/src/lib/leaflet.control.printPages/map-render.js @@ -200,8 +200,9 @@ async function* iterateLayersTiles(layers, latLngBounds, destPixelSize, resoluti let layerPromises = []; for (let tilePromise of iterateTilePromises()) { layerPromises.push(tilePromise.tilePromise); + let progressInc = (layer._printProgressWeight || 1) / count; tilePromise.tilePromise = - tilePromise.tilePromise.then((tileInfo) => Object.assign({zoom, progressInc: 1 / count}, tileInfo)); + tilePromise.tilePromise.then((tileInfo) => Object.assign({zoom, progressInc}, tileInfo)); doStop = yield tilePromise; if (doStop) { tilePromise.abortLoading(); @@ -251,7 +252,11 @@ async function* promiseQueueBuffer(source, maxActive) { async function renderPages({map, pages, zooms, resolution, scale, progressCallback}) { const xhrQueue = new XHRQueue(); const layers = getLayersForPrint(map, xhrQueue); - const progressRange = pages.length * layers.length; + let progressRange = 0; + for (let layer of layers) { + progressRange += layer._printProgressWeight || 1; + } + progressRange *= pages.length; const pageImagesInfo = []; for (let page of pages) { let destPixelSize = page.printSize.multiplyBy(resolution / 25.4).round(); diff --git a/src/lib/leaflet.layer.rasterize/CanvasMarkers.js b/src/lib/leaflet.layer.rasterize/CanvasMarkers.js @@ -4,6 +4,8 @@ import {CanvasLayerGrabMixin} from './TileLayer'; L.Layer.CanvasMarkers.include(CanvasLayerGrabMixin); L.Layer.CanvasMarkers.include({ + _printProgressWeight: 0.1, + cloneMarkers: function() { const markers = this.rtree.all(); diff --git a/src/lib/leaflet.layer.rasterize/MeasuredLine.js b/src/lib/leaflet.layer.rasterize/MeasuredLine.js @@ -2,6 +2,7 @@ import L from 'leaflet'; import 'lib/leaflet.polyline-measure'; L.Polyline.include({ + _printProgressWeight: 0.1, printWidthMm: 1, cloneForPrint: function(options) {