-1

I have one problem about location, my program saves app's location into firebase database, it's ok, I need to compare my location with the locations in database, I used userData object to save coordinates into it:

Location dbLocation = new Location("dbLocation");
dbLocation.setLatitude(userData.lat);
dbLocation.setLongitude(userData.lng);

and I get my location coordinates from GPSTracker service:

Location crntLocation = new Location("crntLocation");
crntLocation.setLongitude(gpstracker.getLongitude());
crntLocation.setLatitude(gpstracker.getLatitude());

I need to compare this coordinates and find distance between 2 locations

float distanceBetween = crntLocation.distanceTo(dbLocation);

but it doesn't work, I don't know why, please can you help fix it?

Andrii Abramov
  • 10,019
  • 9
  • 74
  • 96

2 Answers2

0

After getting location that is current lat,lon, you just can check the distance from origin points (lat,Lon)

float[] results = new float[1];
 Location.distanceBetween(currentlatitude, currentlongitude, originLat, originLon, results);
float distanceInMeters = results[0];
Nikhil Sharma
  • 593
  • 7
  • 23
0

I hope this helps

public static double distance(Location start, Location end) {
    try {
        double distance = start.distanceTo(end);
        DecimalFormat decimalFormat = new DecimalFormat("#.#");
        DecimalFormatSymbols custom = new DecimalFormatSymbols();
        custom.setDecimalSeparator('.');
        decimalFormat.setDecimalFormatSymbols(custom);
        double distanceFormated = 
        Double.parseDouble(decimalFormat.format(distance));
        return distanceFormated;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return 0;
}
Sarthak Gandhi
  • 2,130
  • 1
  • 16
  • 23