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 :

Distance entre un MapOverlays Item et ma position


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Distance entre un MapOverlays Item et ma position
    Bonjour a tous,

    Je ne viens pas vous demander comment calculer la distance entre 2 points, ca j'ai trouvé...
    Là ou j'ai un probleme c'est pour l'appel de mes informations en fait.
    Je m'explique

    J'ai une activité DisplayMap (je resume aux parties importantes hein...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    public class DisplayMap extends MapActivity implements LocationListener {
    	private double lat = 0;
    	private double lng = 0;
     
    new_lat = maverif.getLat();
    				new_lng = maverif.getLng();
     
    				GeoPoint geoPoint = new GeoPoint((int) ((new_lat + lat) * 1E6),(int) ((new_lng + lng) * 1E6));
    				OverlayItem overlayitem = new OverlayItem(geoPoint,maverif.getUId(), maverif.toString());
    				itemizedoverlay.addOverlayItem(overlayitem);
    Et j'ai ma classe ListItimizedOverlay
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    public class ListItimizedOverlay extends ItemizedOverlay {
    	private ArrayList<OverlayItem>  arrayListOverlayItem = new ArrayList<OverlayItem>();
    	private static Context context;
    	
    	@Override
    	protected boolean onTap(int index)
    	{
    	 OverlayItem item = arrayListOverlayItem.get(index);
    	AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    	dialog.setTitle(item.getTitle());
    	dialog.setMessage(item.getSnippet());
    	final String UId = item.getTitle();
    	dialog.setPositiveButton("Distance", new DialogInterface.OnClickListener() {
    	        public void onClick(DialogInterface dialog, int which) {
    	        	
    	        	MaBDD maBdd = new MaBDD(context);
    	  		  	//Connection a la BDD
    	  		  	maBdd.open();
    	  		  	MaClasse maverif = maBdd.getMonUID(UId);
    
                	//On affiche dans un Toast le texte contenu dans l'EditText de notre AlertDialog
    	        	double R = 6378;
    	        	double distance=0;
    	        	double destLat = maverif.getLat()*Math.PI/180;
    	        	double sourceLat=MAPOSITIONLat*Math.PI/180;
    	        	double destLong=maverif.getLat()*Math.PI/180;
    	        	double sourceLong=MAPOSITIONLng*Math.PI/180;
    	        	
    	        	distance = R * (Math.PI/2 - Math.asin( Math.sin(destLat) * Math.sin(sourceLat) + Math.cos(destLong - sourceLong) * Math.cos(destLat) * Math.cos(sourceLat)));
                	Toast.makeText(ListItimizedOverlay.context,"En cours d'implentation, distance approx :" + distance, Toast.LENGTH_SHORT).show();
    	        return;
    	      } });
    	dialog.show();
    
    	return true;
    	}
    Mon souci, c'est que je ne sais pas comment recuperer MAPOSITIONLng /Lat depuis mon activité (classe mere en fait)
    Je pensais creer une instanciation de ma classe mere DisplayMap mais je doute que ca marche....
    Bref, je ne sais pas parler a mon "parent"
    Si vous pouviez m'orienter ...

    Merci

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Si j'ai bien compris tu aimerais pouvoir récupérer ta postion de DisplayMap ?

    Pourquoi ne pas créer une nouvelle méthode dans ListItimizedOverlay où tu lui passeras la longitude et latitude courant de ton activité ?

    Tu crées deux variables depuis ListItimizedOverlay que tu mettras à jour via cette méthode.

    Le mieux c'est d'avoir une valeur dans le contructeur de cette classe pour ne pas avoir ces variables nulles.

    Du style
    Depuis ton activité à chaque changement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    itemizedoverlay.UpdatePos(lon,lat);
    Depuis ta liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class ListItimizedOverlay extends ItemizedOverlay {
    	private ArrayList<OverlayItem>  arrayListOverlayItem = new ArrayList<OverlayItem>();
    	private static Context context;
               private long MaPositionLat;
               private long MaPositionLon;
     
              void UpdatePos(long lon , long lat) 
             {
                 MaPositionLat = lat;
                 MaPositionLon = lon;
             }
    Par contre vu ton code ta variable Context en static sans initialisation, me fais peur ...

    Déjà tu n'as pas besoin de static, et tu ne l'initialises jamais.

    Cela serait plus propre d'utiliser le context parent.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. Distance entre deux positions GPS/NETWORK
    Par bza88 dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 30/06/2013, 12h54
  2. [3D] Trouver la distance entre 2 vecteurs3d
    Par Happy dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 10/01/2006, 11h30
  3. Aucune distance entre les colones d'un tableau
    Par FrankOVD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/06/2005, 12h05
  4. Mesure distance entre 2 points d'une image
    Par vexal dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2005, 14h29

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