Aller au contenu

Context, DrawCircle et Gps !


arnaoke

Recommended Posts

Bonjour à tous !

Tout d'abord une question, en cherchant un peu sur le net je suis tombé sur ce code :

public Ball(Context context, float x, float y, int r) {

super(context);

mPaint.setColor(0xFFFF0000);

this.x = x;

this.y = y;

this.r = r;

}

ma première est question est la suivante, qu'est ce que la variables Context ?

pour ce qui s'agit de la 2° question, je voudrais afficher la carte gps, afficher un overlays à une certaine localisation, puis un cercle dont je pourrais régler le rayon avec une seekBar.

Pour le moment mon problème se situe au niveau du cercle.

J'ai réussi à implémenter la fonction me permettant de tracer le cercle (on modifiant/copiant/collant des boutes de code trouver sur le net)

Je me suis deja creer une classe :

public class ball extends View {
   private final float x;
   private final float y;
   private final float r;
   private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);


   public ball(Context context, float x, float y, float r) {
       super(context);
       mPaint.setColor(0xFFFF0000);
       this.x = x;
       this.y = y;
       this.r = r;
       }


   @Override
  protected void onDraw(Canvas canvas) {
      super.onDraw(canvas);
      canvas.drawCircle(x, y, r, mPaint);
  }
}

celle ci me permettant de dessiner le cercle, dont l'intérieur sera coloré en rouge.

mon main est le suivant

public class Overlay extends MapActivity {
   //public String canvas = null;
   /** Called when the activity is first created. */

   MapView maMap;
   MapController monControler;
   float latitude = (float) 48.875536;
   float longitude = (float) 2.335796;

   public Canvas canvas = new Canvas();




   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);


       float radius = (float)32.3 ;//CERCLE


       maMap = (MapView) findViewById(R.id.myGmap);
       maMap.setBuiltInZoomControls(true);
       maMap.addView(new ball(this,microdegrees(latitude),microdegrees(longitude), radius));//BALLE

       //OVERLAY
       GeoPoint point = new GeoPoint(microdegrees(latitude), microdegrees(longitude));

       MonOverlay object = new MonOverlay(getResources().getDrawable(R.drawable.marker));
       object.addPoint(point);
       maMap.getOverlays().add(object);

       monControler = maMap.getController();
       monControler.setZoom(12);
       monControler.setCenter(point); 

   }

   private int microdegrees(double val){
       return (int) (val *  1000000);
   }

Jusque maintenant ok, je réussi à afficher le cercle sur la carte, mon problème est maintenant de l'afficher autour de l'overlay ... et en rentrant les meme coordonnées les 2 images ne sont pas cocentriques .... :(

que faire ?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...