Проверьте, имеют ли два экземпляра местоположения одинаковое значение? - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу проверить, совпадают ли два экземпляра местоположения.Я просто не уверен, как это сделать?

Я получаю первое местоположение, используя сервис для постоянной проверки местоположения в фоновом режиме.Второй экземпляр Location объявлен внутри действия, и я использую метод getAddress(), чтобы получить адрес из найденного местоположения.

Я подумал, что что-то вроде этого может работать, но это не так:

  // Initialization of First Location 
    LocationManager mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, this);
    Location FirstLocation =mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

    //Initialization of Second Location
     Location SecondLocation = LocationServices.FusedLocationApi
            .getLastLocation(mGoogleApiClient);

    //Checking if they are the same

    if (FirstLocation ==SecondLocation){
        System.out.println("It worked");
    }
    else{
        System.out.println("It didn't work");
    }

Всегда возвращается «Это не сработало».

Просто интересно, как я могу решить эту проблему или есть лучший способ?

Любые отзывы или ответы будут наиболееоценили!

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Возможно, попытайтесь использовать distanceTo() метод, который возвращает приблизительное расстояние в метрах между точками, что-то вроде:

SecondLocation.distanceTo(FirstLocation) < 1;

Надеюсь, это поможет

0 голосов
/ 10 декабря 2018

двойное равенство используется для примитивных типов (целые, двойные, ...), для объектов используется метод equals(), поэтому у вас будет if (FirstLocation.equals(SecondLocation))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...