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:
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:
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