How to get Distance Kilometer in android?

浪子不回头ぞ 提交于 2019-11-28 03:53:08

问题


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.


回答1:


@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



回答2:


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);



回答3:


Just use Location.distanceTo(Location) it will give you a really distance between two different Locations.




回答4:


Use code find distance meters to km and km to miles

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
distance = locationA.distanceTo(locationB)/1609.344;   // in miles



回答5:


            Location locationA = new Location("Point A");
            locationA.setLatitude(fromLatitude);
            locationA.setLongitude(fromLongitude);


            Location locationB = new Location("point B");
            locationB.setLatitude(toLatitude);
            locationB.setLongitude(toLongitude);


            distance = locationA.distanceTo(locationB);


来源:https://stackoverflow.com/questions/13208501/how-to-get-distance-kilometer-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!