Aller au contenu

Problème développement appli GoogleMap


laura69

Recommended Posts

Bonjour,

J'ai un problème dans la compilation de mon projet googleMap sous Eclipse (android).

Mon projet permet de géolocaliser instantanément ma position, trace mon trajet sur un googleMap, affiche la vitesse instantanée et la distance parcourue.

Si quelqu'un a la possibilité de m'aider, ce serait vraiment super !! Car je tourne en rond depuis un bout de temps.

L'émulateur ne se lance pas.

Voici mes fichiers sources:

 "MapActivity"

import java.util.ArrayList;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.Point;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Projection;

public class GpsGoogleMapActivity extends MapActivity {
protected MapView map;
protected MapController mapController;
protected GeoPoint pointAvt = null;
protected ArrayList<GeoPoint> geoPoints = new ArrayList<GeoPoint>();
protected ArrayList<Location> loc = new ArrayList<Location>();
protected double distance= 0;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    map = (MapView) findViewById(R.id.map);
    mapController = map.getController();

    PositionCouranteListener positionListener = new PositionCouranteListener(this);
    LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, positionListener);

    GeoPoint point = this.dernierePositionConnue();
    geoPoints.add(point); // Ajout des geopoints à l'arrayList:geopoints
    mapController.setCenter(point);
    mapController.setZoom(17);
    mapController.animateTo(point);
    map.invalidate();

   }

   public GeoPoint dernierePositionConnue(){
 LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
 Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
 loc.add(location); //ajout de la location à l'arrayList:loc
 location.getSpeed(); // Vitesse instantannée, à afficher dans le textView correspondant
 GeoPoint point = new GeoPoint ((int)(location.getLatitude()*1E6),(int)(location.getLongitude()*1E6));
 return point;
   }

   public void changerPosition(GeoPoint point){
 map.getController().setCenter(point);
 map.invalidate();
   }

   /* Méthode pour Tracer le chemin
 *
 */
   public void draw(Canvas canvas, MapView map, boolean shadow) {

 Projection projection = map.getProjection();

    Path p = new Path();
    for (int i = 0; i < geoPoints.size(); i++) {
    if (i == geoPoints.size() - 1) {
	    break;
    }
    Point from = new Point();
    Point to = new Point();
    projection.toPixels(geoPoints.get(i), from);
    projection.toPixels(geoPoints.get(i + 1), to);
    p.moveTo(from.x, from.y);
    p.lineTo(to.x, to.y);
    }
    Paint mPaint = new Paint();
    mPaint.setStyle(Style.FILL);
    mPaint.setColor(0xFFFF0000);
    mPaint.setAntiAlias(true);
    canvas.drawPath(p, mPaint);

   }

   /* Calcul la distance parcourue
 *
 */
   public double distanceParcourue(){
 for( int i=0; i < loc.size(); i++ ){
  distance= distance + (loc.get(i).distanceTo(loc.get(i+1)));
 }
 return distance;
   }

   @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }
}

2eme fichier:

import com.google.android.maps.GeoPoint;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import android.widget.Toast;
public class PositionCouranteListener implements LocationListener {

protected GpsGoogleMapActivity maps;

public PositionCouranteListener(GpsGoogleMapActivity maps) {
 this.maps = maps;

}

@Override
public void onLocationChanged(Location location) {
 GeoPoint point = new GeoPoint((int)(location.getLatitude()*1E6),(int)(location.getLongitude()*1E6));
  maps.changerPosition(point);
}


@Override
public void onProviderDisabled(String provider){
 Toast.makeText(maps, "gpsdésactivé", Toast.LENGTH_LONG);
}

@Override
public void onProviderEnabled(String provider){
 Toast.makeText(maps, "gps activé", Toast.LENGTH_LONG);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
 // TODO Auto-generated method stub
}
}

D'avance je vous remercie.

J'ai vraiment besoin d'aide !!!

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...