2010-11-17 5 views
3

J'ai besoin de faire défiler un MapView par programme pour m'assurer que quelque chose est visible. Je sais combien de pixels il faut faire défiler dans chaque direction. Je vois des méthodes (dans MapController) pour l'animer sur un GeoPoint particulier, et pour le faire défiler par pixels sans animation. Mais rien à faire par pixels, avec une animation.défilement animé de mapview (par pixels, pas lat long)

Qu'est-ce qu'un moyen facile de faire cela?

Répondre

9

Eh bien, puisque personne n'a répondu, je vais y répondre moi-même. Cela semble fonctionner correctement:

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); 
} 
Questions connexes