IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

localiser le centre d'un MapView


Sujet :

Android

  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut localiser le centre d'un MapView
    Bonjour,
    j'ai une fenêtre dans la quelle d'affiche un mapView, mon problème est que je veux récupéré les coordonnées d'un point sélectionné par l'user
    j'ai pu le faire en implementant la méthode onTap de la classe ItemizedOverlay. mais elle ne fonctionne pas par le click sur le bouton central du tel.
    j'ai pensé à recupérer le centre du mapView en cliquant sur le centre donc j'ai implementé la fonction onClick de ma mapView
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    mapView.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				MapView myView = (MapView) v;
     
    				GeoPoint m = itemizedOverlay.getCenter();
    				String s = "latitude=" + String.valueOf(m.getLatitudeE6());
    				Toast.makeText(currentcontext, s, Toast.LENGTH_SHORT).show();
     
    			}
    		});
    sauf que je reçois le même centre.

    Merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut
    J'arrive pas trop à comprendre en fait, l'utilisateur choisis le point dans une liste? ou c'est en clickant sur la map que l'utilisateur choisi le point?
    Dans tout les cas pour centrer la map sur le point choisis il faut que tu crée une variable de type MapController, que tu crée une variable GeoPoint dans laquelle tu définiras ton nouveau point par sa latitude et longtitude et que tu fasses: monMapController.setCenter(monGeoPoint);

    Exemple:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MapController mc = this.mapView.getController();
    double lat = location.getLatitude();
    double lng = location.getLongitude();
    GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
    mc.setCenter(p);
    Enfin bien sur c'est juste une portion de code pour te donner une idée essaye de l'adapter pour ton code, dit moi si j'ai mal compris ou si j'ai tort.A plus.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    Merci pour votre réponse,
    en effet, l'utilisateur doit choisis le point en clickant sur la touche centrale. (l'utilisateur a bien sur la possibilité de naviguer sur le map)
    mon problème est de récupérer la position du point sélectionné.
    pour cela, j'ai pensé à récupérer le centre du mapView en implémentant la méthode onClick du mapView,

    Votre méthode me semble intéressante sauf que comment je peux récupérer la variable location. c'est ça se que je cherche. j'ai pu récupérer la position sélectionnée par utilisateur en implémentant onTap(), mais elle ne fonctionne pas avec la touche centrale

  4. #4
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    Bonjour,
    La solution que j'ai trouvé est d'utiliser la méthode getMapCenter de mapView dans la méthode onClick du mapView.
    en effet pour recupèrer la position selectionnée par l'utilistaeur (qui est le centre du maps), on peux utiliser ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    mapView.setOnClickListener(new MapView.OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				MapView myView = (MapView) v;
     
    				GeoPoint m = myView.getMapCenter();
     
     
    			}
    		});
    ma première idée était d'appeler la méthode getCenter de mon objet itemizedOverlay. donc mon code était
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    mapView.setOnClickListener(new MapView.OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				MapView myView = (MapView) v;
     
    				GeoPoint m = myView.itemizedOverlay.getCenter();//la différence
     
     
    			}
    		});
    or cette méthode retourne le centre origine du maps( que j'ai positionner lors du l'initialisation du mapView)
    J'espère que j'ai bien expliqué la solution
    et je vous remercie pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  2. Réponses: 3
    Dernier message: 26/03/2010, 22h55
  3. Réponses: 19
    Dernier message: 31/10/2005, 15h04
  4. Rotation d'un rectangle autour du centre de gravité
    Par bucheron dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 22/06/2004, 11h01
  5. Localisation d'une base Postgresql sur mdk 9.1
    Par Gregco dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 10/06/2003, 18h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo