2010-11-22 5 views
2

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

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

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»

ответ

3

Правильный путь для создания„Таймер“в 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); 
     } 
    } 
}; 
+0

Спасибо, что работал как шарм :) – shokora 2010-11-22 17:22:29