2011-05-18 6 views
3

Dans mon application, j'essaie d'obtenir les coordonnées du centre de la carte lorsque l'utilisateur fait défiler la carte.Obtenez les coordonnées du centre de carte dans Android Mapview

Je souhaite obtenir les coordonnées et les définir dans la vue de texte.

Voici mon code pour que:

public boolean onTouchEvent(MotionEvent event) { 
     int action=event.getAction(); 
     projection=mapView.getProjection(); 
     int X = (int)event.getX();   
     int Y = (int)event.getY(); 
     if(action==MotionEvent.ACTION_MOVE) 
     { 


      metrics = new DisplayMetrics(); 
      getWindowManager().getDefaultDisplay().getMetrics(metrics); 

      GeoPoint G = projection.fromPixels(metrics.heightPixels/2, metrics.widthPixels/2); 
     //GeoPoint p= mapView.getMapCenter(); 
      int lati=p.getLatitudeE6(); 
      Log.i("Lat : ",""+lati); 
      Toast.makeText(this,""+lati,Toast.LENGTH_LONG); 

      int longi=p.getLongitudeE6(); 
      Log.i("Lon : ",""+longi); 
      Toast.makeText(this,""+longi,Toast.LENGTH_LONG); 
      lat.setText(""+lati); 
      lon.setText(""+longi); 
     } 
     return true; 
    } 
+0

Pouvez-vous expliquer ce qui ne fonctionne pas? –

Répondre

4

Utilisez cet article:

http://mobiforge.com/developing/story/using-google-maps-android

Il répondra à (la plupart du temps tout) à toutes vos questions sur l'utilisation MapView.. Plus pour votre besoin particulier:

recherche de "Obtention de l'emplacement qui a été touché" sur la page.

+1

avez-vous trouvé comment le faire? J'essaie de réaliser la même chose. Merci – Thiago

+1

@Thiago La question a déjà été mise à jour avec la réponse. Semblable à ce que j'utilise: projection = mapView.getProjection(); GeoPoint coordinatesOfMapCenter = projection.fromPixels (mapView.getWidth()/2, mapView.getHeight()/2); –

2

L'OP a inclus la bonne réponse dans sa question. Voici comment le faire:

GeoPoint mapCenter = mapView.getProjection().fromPixels(
     mapView.getWidth()/2, 
     mapView.getHeight()/2); 

int lat = mapCenter.getLatitudeE6(); 
int lon = mapCenter.getLongitudeE6(); 
Questions connexes