Как рассчитать расстояние, используя координаты из LocationManager - PullRequest
0 голосов
/ 28 декабря 2010

Я использую LocationManager для получения значений широты и долготы пользователя.Эти значения регулярно обновляются в базе данных.

Теперь я хочу выяснить расстояние между двумя пользователями на основе сохраненных значений широты и долготы.Я хочу отобразить сообщение, когда расстояние между двумя пользователями меньше (скажем, 100 метров).Может кто-нибудь, пожалуйста, сообщите мне учебник или пример кода, как этого добиться.

Ответы [ 2 ]

1 голос
/ 28 декабря 2010

Вы можете взглянуть на Location class.Вы можете установить долготу и широту, и есть метод distanceTo , который вы можете использовать

0 голосов
/ 13 марта 2013

Ou pode utilizar este metodo que eu desenvolvi ... Или вы можете использовать этот метод, который я разработал ...

public static Double distance(latitudeA, latitudeB, longitudeA, longitudeB) {
        double radius = 3958.75;
        double dlat = ToRadians(Double.parseDouble(String.valueOf(latitudeB))
                - Double.parseDouble(String.valueOf(latitudeA)));
        double dlon = ToRadians(Double.parseDouble(String.valueOf(longitudeB))
                - Double.parseDouble(String.valueOf(longitudeA)));
        double a = Math.sin(dlat / 2)
                * Math.sin(dlat / 2)
                + Math.cos(ToRadians(Double.parseDouble(String.valueOf(latitudeA))))
                * Math.cos(ToRadians(Double.parseDouble(String.valueOf(latitudeB)))) * Math.sin(dlon / 2)
                * Math.sin(dlon / 2);
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        Double d = radius * c;
        double meterConversion = 1609.00;
        return d * meterConversion;
    }

    private static double ToRadians(double degrees) {
        double radians = degrees * 3.1415926535897932385 / 180;
        return radians;
    }
...