Найти ближайшее место среди мест из нашего местоположения

Я разрабатываю приложение для Android.

Я получаю список широт и долгот с сервера.

Я должен расположить эти значения в зависимости от моего местоположения. Я имею в виду первую широту / долготу, а затем следующую и т. Д.

У меня есть широта и долгота и список широты и долготы. Как я могу найти ближайший?

3 ответа

Решение

Это может быть не лучшим способом, но это работает:)

public static final double PI = 3.14159265;
    public static final double deg2radians = PI/180.0;
    public static final double miles = 0.000621371192;
    public static final double kms = 0.001;

    public static double getDistance(double latitude1, double longitude1, double latitude2,double longitude2) {

         double distance;  

         Location locationA = new Location("point A");  

         locationA.setLatitude(latitude1);  
         locationA.setLongitude(longitude1);  

         Location locationB = new Location("point B");  

         locationB.setLatitude(latitude2);  
         locationB.setLongitude(longitude2);  

         distance = locationA.distanceTo(locationB); 
         double radd = distance * kms;

         return radd;
    }

Псевдокод:

location.distanceTo (locFromServer);
и для сортировки  
Colection.sort(listOfLocations; новый Comparator(){
сравнить с(){
// location.distanceTo(locFromServer) 
}
}

Вы можете просто рассчитать расстояния от позиции пользователя до загруженных местоположений и выбрать наименьшее.

Посмотрите здесь: более быстрый способ расчета географического расстояния между двумя точками.

Другие вопросы по тегам