Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get Distance Kilometer in android?

I am very new to Google maps I want calculate the distance between two places in android.

For that I get the two places lat and lag positions for that I write the following code:

private double getDistance(double lat1, double lat2, double lon1, double lon2) {
    double dLat = Math.toRadians(lat2 - lat1);
    double dLon = Math.toRadians(lon2 - lon1);
    double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double temp = 6371 * c;
    temp=temp*0.621;
    return temp;
}

The above code can't give the accurate distance between two places. What is the another way to find distance please give me any suggestions.

like image 355
user1787493 Avatar asked Nov 03 '12 10:11

user1787493


2 Answers

@Chirag Patel

double distance;
Location locationA = new Location(“Point A”);
locationA.setLatitude(latA);
locationA.setLongitude(lngA);

Location locationB = new Location(“Point B”);
locationB.setLatitude(latB);
locationB.setLongitude(lngB);

// distance = locationA.distanceTo(locationB);   // in meters
distance = locationA.distanceTo(locationB)/1000;   // in km
like image 137
Barış Çırıka Avatar answered Oct 11 '22 00:10

Barış Çırıka


Using following this code you find distance but you want to convert in kilometer.

double distance;
Location locationA = new Location("point A");
locationA.setLatitude(latA);
locationA.setLongitude(lngA);

Location locationB = new Location("point B");
locationB.setLatitude(latB);
locationB.setLongitude(lngB);

distance = locationA.distanceTo(locationB);
like image 29
ckpatel Avatar answered Oct 10 '22 22:10

ckpatel