MapView latitudeSpan / longtitudeSpan не работает - PullRequest
2 голосов
/ 22 ноября 2010

Я пытаюсь получить границы моего обзора карты, но у меня была проблема, что широта всегда установлена ​​в 0, а долгота всегда установлена ​​в 360 * 1E6.Согласно этой ссылке, это потому, что она будет предлагать правильные координаты, только когда карта полностью загружена: MapView getLatitudeSpan и getLongitudeSpan не работают

Теперь я полностью запутался в решении,Я сделал этот метод, который я вызываю из onCreate моей основной деятельности (представление карты):

public int[][] getBounds()
{
 GeoPoint center = this.mapView.getMapCenter();
 int latitudeSpan = this.mapView.getLatitudeSpan();
 int longtitudeSpan = this.mapView.getLongitudeSpan();
 int[][] bounds = new int[2][2];

 bounds[0][0] = center.getLatitudeE6() + (latitudeSpan/2);
 bounds[0][1] = center.getLongitudeE6() + (longtitudeSpan/2);

 bounds[1][0] = center.getLatitudeE6() - (latitudeSpan/2);
 bounds[1][1] = center.getLongitudeE6() - (longtitudeSpan/2);
 return bounds;
}

Как заставить это ожидание загрузки просмотра карты?Я посмотрел в API для postDelayed, но я не могу заставить его работать.

Прости меня, если я тупой o.o '

1 Ответ

3 голосов
/ 22 ноября 2010

Правильный способ создания «Таймера» в Android - использовать android.os.Handler:

private Handler updateHandler = new Handler(); 

updateHandler.postDelayed(waitForMapTimeTask, TIME_TO_WAIT_IN_MS);

private Runnable waitForMapTimeTask = new Runnable() {
    public void run() {
        getBounds();
        // Read the bounds to see if something reasonable is returned
        if (!mapIsLoaded) {
            updateHandler.postDelayed(waitForMapTimeTask, TIME_TO_WAIT_IN_MS);
        }
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...