Местоположение не обновляется в новом гео-исправлении в эмуляторе Android - PullRequest
0 голосов
/ 05 октября 2010

Я пытаюсь сделать так, чтобы MapView увеличивал текущее местоположение на основе GeoPoint.Я устанавливаю местоположение с помощью команды geo fix в telnet.Моя проблема заключается в том, что при первом вводе местоположения с помощью геофикса мой код будет правильно перемещаться к местоположению на карте.Если я пытаюсь установить другое местоположение с помощью гео-исправления, оно не обновляется.Вот код для обновления:

public void updateLocation(Location loc) {
    p = new GeoPoint((int)(loc.getLongitude() * 1E6),(int)(loc.getLatitude() * 1E6));

    mc = mapView.getController();

    mc.animateTo(p);
}

и вот мой код для вызова обновления:

LocationListener onLocationChange=new LocationListener() {
    public void onLocationChanged(Location location) {
        updateLocation(location);
    }

и т. Д.

У меня есть следующее вonResume ():

    super.onResume();
    myLocationManager.requestLocationUpdates("gps", 0, 200, onLocationChange);

Точки, которые я пытаюсь исправить, находятся достаточно далеко друг от друга, чтобы соответствовать требованию о минимальном расстоянии.У кого-нибудь есть идеи о том, что мне не хватает?

Ответы [ 2 ]

3 голосов
/ 01 ноября 2012

Вызов mapView.invalidate(); (см. Просмотр: недействителен () ) или mapView.postInvalidate(); (см. Просмотр: postInvalidate () ) , в зависимости от того, работает он в потоке пользовательского интерфейса или нет, после

mc.animateTo(p);
0 голосов
/ 05 октября 2010

Предполагая, что ваша MapActivity реализует LocationListener, затем измените

myLocationManager.requestLocationUpdates("gps", 0, 200, onLocationChange);

до

myLocationManager.requestLocationUpdates("gps", 0, 200, this);

«this» содержит слушателя местоположения

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