Как часто обновлять местоположение GPS? - PullRequest
4 голосов
/ 30 ноября 2011

Я пишу приложение, которое показывает ваше местоположение на карте Google ... пока все хорошо ... показывает мое местоположение правильно

Проблема в том, что этот gps не обновляется, если я двигаюсь (или делает, но только через некоторое время)

Кто-нибудь знает, как это сделать так, как это делают нативные карты Google (для Android)? Это если вы нажмете на «мое местоположение», и на нем появится мигающая синяя точка, которая меняется при перемещении ...

Это мой код:

//Initializing the listeners        
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 35000, 10, networkLocationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 35000, 10, gpsLocationListener);



//and now, in both 'networkLocationListener' and 'gpsLocationListener'
//I overwrite the method 'onLocationChanged':

@Override
public void onLocationChanged(Location location) {
    Log.i("test", "New network location: "+location.getLatitude()+
                  " , "+location.getLongitude());
    myLongitude= location.getLongitude();
    myLatitude= location.getLatitude(); 
}

//and the variables myLongitude and myLatitude are the only ones that I need to display my
//position in the map...

Кто-нибудь знает, если я что-то упустил?

Ответы [ 2 ]

5 голосов
/ 30 ноября 2011

Вызов метода, который вы используете: requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener), и вы говорите, что вы будете получать обновления только каждые 35000 мс или каждые 35 секунд.Попробуйте понизить это число до того, что вам подходит.Меньшее число будет означать большее использование батареи.

Если вы хотите индикатор на MapView, посмотрите на MyLocationOverlay.

1 голос
/ 30 ноября 2011

Вы не хотели бы оставлять это навсегда, но, возможно, стоит установить значения minTime и minDistance на ноль, если вы еще не сделали этого.

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, gpsLocationListener);

Если minTime больше 0, LocationManager потенциально может отдыхать в течение minTime миллисекунд между обновлениями местоположения для экономии энергии. Если minDistance больше 0, местоположение будет транслироваться только в том случае, если устройство перемещается на счетчики minDistance. Чтобы получать уведомления как можно чаще, установите оба параметра на 0.

- ссылка requestLocationUpdates

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