Mercurial > gemma
changeset 4077:d34e9b8ad396 pdfscaling
fix scaling issues
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Thu, 25 Jul 2019 15:33:59 +0200 |
parents | 0507a9e4772b |
children | 2db1124c32f7 |
files | client/src/components/Pdftool.vue |
diffstat | 1 files changed, 11 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/Pdftool.vue Thu Jul 25 15:10:27 2019 +0200 +++ b/client/src/components/Pdftool.vue Thu Jul 25 15:33:59 2019 +0200 @@ -299,7 +299,13 @@ this.rendercompleteListener = map.once("rendercomplete", event => { let canvas = event.context.canvas; let scaleDenominator = Math.round( - 1000 * pixelsPerMapMillimeter * this.getMeterPerPixel() + 1000 * + pixelsPerMapMillimeter * + this.getMeterPerPixel( + this.openLayersMap() + .getView() + .getResolution() + ) ); console.log("scaleDenominator = ", scaleDenominator); var snapshot = canvas.toDataURL("image/jpeg"); @@ -444,16 +450,15 @@ ); }, getResolutionFromScale() { - var pixelsPerMapMillimeter = this.form.resolution / 25.4; - return this.form.scale / (1000 * pixelsPerMapMillimeter); + const scaling = Math.round(this.form.scale / 1000); + return scaling / this.getMeterPerPixel(this.form.resolution / 25.4); }, - getMeterPerPixel() { + getMeterPerPixel(f) { var map = this.openLayersMap(); let view = map.getView(); let proj = view.getProjection(); return ( - getPointResolution(proj, view.getResolution(), view.getCenter()) * - proj.getMetersPerUnit() + getPointResolution(proj, f, view.getCenter()) * proj.getMetersPerUnit() ); }, cancel() {