From f15b01abcdccf95257999c93d3456184c4d8a0fd Mon Sep 17 00:00:00 2001 From: Chteufleur Date: Sat, 18 Aug 2018 10:30:27 +0200 Subject: [PATCH] Fix cast problem in distance calculation. --- .../main/java/fr/chteufleur/mytrackingdog/MainActivity.java | 4 ++-- .../fr/chteufleur/mytrackingdog/models/beans/MyLocation.java | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java index 9295889..f4da1ff 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java @@ -76,7 +76,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu private TextView textViewCurrentLocation; private MyLocation lastLocation = null; - private int distance = 0; + private float distance = 0; @RequiresApi(api = Build.VERSION_CODES.M) protected void checkPermissions() { @@ -505,7 +505,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu } private void updateDistance() { - this.textViewCurrentLocation.setText(String.format("Distance: %,dm", distance)); + this.textViewCurrentLocation.setText(String.format("Distance: %,dm", ((int) distance))); this.textViewCurrentLocation.setVisibility(View.VISIBLE); } } diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/models/beans/MyLocation.java b/app/src/main/java/fr/chteufleur/mytrackingdog/models/beans/MyLocation.java index d5879dd..ff8a536 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/models/beans/MyLocation.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/models/beans/MyLocation.java @@ -75,7 +75,7 @@ public class MyLocation { return this.bearing; } - public int distanceTo(MyLocation loc) { + public float distanceTo(MyLocation loc) { double earthRadius = 6371000; //meters double dLat = Math.toRadians(loc.latitude-latitude); double dLng = Math.toRadians(loc.longitude-longitude); @@ -83,9 +83,8 @@ public class MyLocation { Math.cos(Math.toRadians(latitude)) * Math.cos(Math.toRadians(loc.latitude)) * Math.sin(dLng/2) * Math.sin(dLng/2); double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); - float dist = (float) (earthRadius * c); - return (int) dist; + return (float) (earthRadius * c); }