найти расстояние в километрах в Android с помощью Google Places Api

Я хочу отобразить расстояние в двух местах в километрах, для этого я пишу следующий код:

hyd(17.38,78.48) eluru(16.7,81.1)
 private String getDistance(double lat1, double lat2, double lon1, double lon2) {
               double Radius = 6371;
               double dLat = Math.toRadians(lat2 - lat1);
                double dLon = Math.toRadians(lon2 - lon1);
                double a = Math.sin(dLat / 5) * Math.sin(dLat / 5)
                        + Math.cos(Math.toRadians(lat1))
                        * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 5)
                        * Math.sin(dLon / 5);
                double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
                double km = Radius * c;

                String kms=Double.toString(km);
                return kms;

                }

Выход = 2995,8772

Правильный o/p = 330 км

как я могу получить точное расстояние между двумя местами в Android заранее спасибо .....


person user1787493    schedule 03.11.2012    source источник
comment
Возможный дубликат вопроса ОП ранее: stackoverflow.com/q/13208501/450534   -  person Siddharth Lele    schedule 03.11.2012
comment
но я не получил фактический результат, вы можете предположить?   -  person user1787493    schedule 03.11.2012
comment
Прочитайте это: Что делать, если я не получу хорошего ответа? Не создавайте из-за этого дубликаты сообщений. Продолжайте общаться с Chirag, опубликовавшим ответ.   -  person Siddharth Lele    schedule 03.11.2012


Ответы (1)


Используйте этот метод

public static void distanceBetween (double startLatitude, double startLongitude, double endLatitude, double endLongitude, float[] results);

пример

 public static double CalculateDistance(double lat1, double lng1, double lat2, double lng2) {
 float[] result=new float[1];
 Location.distanceBetween (lat1,lng1,lat2, lng2,  result);
 return (double)result[0]/1000; // in km
}
person Sunny    schedule 03.11.2012
comment
я не получаю точное расстояние, которое показывает неправильное расстояние? - person user1787493; 05.11.2012
comment
потому что Google дает расстояние по кратчайшему пути и не следует вашему пути для вычисления расстояния. для вашей ссылки - developer.android.com/reference/android/ местоположение/, двойное, двойное, двойное, плавающее[]) - person Sagar Nayak; 10.03.2016