X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.maps%2Fsrc%2Forg%2Fsimantics%2Fmaps%2FMapScalingTransform.java;h=e29e8e553fc9fadc90c326dcb28f704c3fabf171;hb=refs%2Fchanges%2F95%2F2895%2F4;hp=e208be71c6eb36e8910b43ee575d84cd10271650;hpb=02ecca5e61d2eb17de40cc058be678b414aaad00;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java b/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java index e208be71..e29e8e55 100644 --- a/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java +++ b/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java @@ -6,8 +6,8 @@ public class MapScalingTransform { private MapScalingTransform() { } - - public static final AffineTransform INSTANCE = new AffineTransform(100000, 0, 0, 100000, 0, 0); + public static final double scale = 256.0d / 360.0d; + public static final AffineTransform INSTANCE = new AffineTransform(scale, 0, 0, scale, 0, 0); public static double getScaleX() { return INSTANCE.getScaleX(); @@ -16,4 +16,15 @@ public class MapScalingTransform { public static double getScaleY() { return INSTANCE.getScaleY(); } + + public static int zoomLevel(AffineTransform current) { + double org = INSTANCE.getScaleX(); + double cur = current.getScaleX(); + double f = cur / org; + double zoomLevel = Math.log10(f) / Math.log10(2); + if (zoomLevel < 0) { + zoomLevel = 0; + } + return (int) zoomLevel; + } }