2010-11-17 49 views
3

我需要以編程方式滾動MapView以確保某些東西在視圖中。我知道它需要在每個方向上滾動多少個像素。我看到方法(在MapController中)將其設置爲一個特定的GeoPoint,並通過像素滾動它而不需要動畫。但沒有什麼可以通過像素來實現,只需要一個動畫。mapview的動畫滾動(按像素,而不是lat長)

什麼是一個簡單的方法來做到這一點?

回答

9

好吧,因爲沒有人回答我會自己回答。這似乎工作正常:

public static void panMap (int x, int y, MapView map) { 
    Point ptPixels = new Point(); 
    GeoPoint geoPt = map.getMapCenter(); 
    Projection projection = map.getProjection(); 
    projection.toPixels(geoPt, ptPixels); 
    ptPixels.x += x; 
    ptPixels.y += y; 
    geoPt = projection.fromPixels(ptPixels.x, ptPixels.y); 
    map.getController().animateTo(geoPt); 
}