Location.getBearing всегда 0.0 - PullRequest
       0

Location.getBearing всегда 0.0

1 голос
/ 14 февраля 2012

Я использую LocationListener и вернул Местоположение всегда имеет Подшипник как 0.0

Что еще мне нужно сделать?

Я также заметил, что с обновлением 4.0.3 я редко сообщаю о скорости. Теперь я просто получаю позиции и точность / высота

public void onLocationChanged(Location loc)
    {
        Log.d(LOG_TAG, "onLocationChanged");

        Position position  = new Position();

            position.PositionGKey = UUID.randomUUID();
            position.GPSTime = new Date(loc.getTime());
            position.DeviceTime = new Date();
            position.Latitude = loc.getLatitude();
            position.Longitude = loc.getLongitude();
            position.Altitude = loc.getAltitude();
            position.Speed = loc.hasSpeed() ? loc.getSpeed() * 2.23693629 : 0;
            position.Accuracy = (int)loc.getAccuracy();
            position.Bearing = loc.hasBearing() ? loc.getBearing() : 0;

            // There was cases with speed reported 1000+. Just make it real here, round of obvious errors.
            if (position.Speed > 120)
            {
                position.Speed = 0.0;
            }

            PositionData.InsertPosition(getApplicationContext(), position);

    }

1 Ответ

0 голосов
/ 18 октября 2016

При использовании поставщика GPS, Bearing обычно не обновляется / не возвращается, если устройство физически не перемещается и не набирает скорость (проверьте getSpeed ​​()).На практике скорость выше 1 м / с должна давать точные подшипники.Я также обнаружил, что мне приходилось время от времени опрашивать и проверять последнее известное местоположение у провайдера GPS и получать его обновленные подшипники, чтобы получить правильные показания.

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