Расположение Объект имеет широту и долготу другого города

Я пытаюсь разработать простое приложение, которое вычисляет расстояние путешествия на основе текущей широты и долготы.

Основная проблема, с которой я сталкиваюсь, заключается в том, что иногда новые Широта и Долгота находятся далеко от 3-2000 км.

есть ли что-то, что я делаю неправильно? пожалуйста посоветуй

Вот что я делаю...

 protected void startLocationUpdates() {
    if (mGoogleApiClient != null) {
        if (mGoogleApiClient.isConnected()) {
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission
                    .ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
                    ActivityCompat

                            .checkSelfPermission(this, Manifest.permission
                                    .ACCESS_COARSE_LOCATION) !=
                            PackageManager.PERMISSION_GRANTED) {
                // TODO: Consider calling
                //    ActivityCompat#requestPermissions
                // here to request the missing permissions, and then overriding
                //   public void onRequestPermissionsResult(int requestCode, String[]
                // permissions,
                //                                          int[] grantResults)
                // to handle the case where the user grants the permission. See the
                // documentation
                // for ActivityCompat#requestPermissions for more details.
                return;
            }
            LocationServices.FusedLocationApi.requestLocationUpdates(
                    mGoogleApiClient, mLocationRequest, this);
        }
    } else {
        buildGoogleApiClient();
    }
}





 @Override
public void onLocationChanged(Location location) {
    if(oldLocation!=null)}{
    double oldLatitude = oldLocation.getLatitude(); 
    double oldLongitude = oldLocation.getLongitude();
    double currentLatitude = location.getLatitude();
    double currentLongitude = location.getLongitude();

    float[] f = new float[1];
     Location.distanceBetween(oldLatitude, oldLongitude, currentLatitude 
                            currentLongitude, f);
    }

person Faizan Ahmed    schedule 10.03.2017    source источник
comment
Взгляните на stackoverflow.com/questions/37225838/   -  person antonio    schedule 10.03.2017
comment
@antonio Спасибо, братан.. с небольшой модификацией все работает нормально   -  person Faizan Ahmed    schedule 10.03.2017


Ответы (1)


Попробуйте метод distanceTo.

Пример:

@Override
public void onLocationChanged(Location location) {
    if(oldLocation!=null)}{
        float f = oldLocation.distanceTo(location);
    }
person Sudarshan    schedule 10.03.2017
comment
тоже пробовал.. проблема в значениях широты и долготы, а не в расстоянии - person Faizan Ahmed; 10.03.2017
comment
@FaizanAhmed: Не могли бы вы подробнее рассказать о проблеме? Вы не можете получить правильные значения широты и долготы? - person Sudarshan; 10.03.2017
comment
вы можете сказать ... позвольте мне рассказать вам со сценарием .. Предположим, что есть местоположение A, которое имеет x, y широту и долготу в изменении местоположения, следующее местоположение B, которое я получаю, имеет широту и логарифм гораздо дальше, чем местоположение A.. в то время как самый быстрый интервал составляет всего 5 секунд.. но это происходит не каждый раз.. и когда это происходит, это нарушает расчет расстояния - person Faizan Ahmed; 10.03.2017