From f6dbeba3d8f37fd089504e0bb99fd574e5c868b9 Mon Sep 17 00:00:00 2001 From: Izumi Kawashima <schedul.xor@gmail.com> Date: Tue, 22 Nov 2016 01:32:43 +0900 Subject: [PATCH] Check and clamp bearing range each time it's set (#248) --- vtm/src/org/oscim/core/MapPosition.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/vtm/src/org/oscim/core/MapPosition.java b/vtm/src/org/oscim/core/MapPosition.java index d595fd6d..c98e17bd 100644 --- a/vtm/src/org/oscim/core/MapPosition.java +++ b/vtm/src/org/oscim/core/MapPosition.java @@ -90,7 +90,7 @@ public class MapPosition { } public MapPosition setBearing(float bearing) { - this.bearing = bearing; + this.bearing = clampBearing(bearing); return this; } @@ -149,14 +149,17 @@ public class MapPosition { this.y = y; this.scale = scale; + this.bearing = clampBearing(bearing); + this.tilt = tilt; + this.zoomLevel = FastMath.log2((int) scale); + } + + private static float clampBearing(float bearing) { while (bearing > 180) bearing -= 360; while (bearing < -180) bearing += 360; - this.bearing = bearing; - - this.tilt = tilt; - this.zoomLevel = FastMath.log2((int) scale); + return bearing; } /**