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() {