2

Is it possible to do this? Im no good at painting stuff out got a very basic "Dot class" which draws a circle based on x and y but the cavas is in a FrameLayout the size of about half my emulated 3,7 in screen. Needless to say ive only got about 150 on the y and something like 200 on the x (guess its pixels). Is there a way to scale the canvas to paint coordinates?

Preferably my lociation gets drawn in the center and other locations in my viewing "range" gets painted based on my location.

So im basically asking if there is a way to scale a canvas to coordinates and allow me to specify that scale. so if Im at 32.345 and -212.988765 thats the center and I can see other locations within say a 10km range or something like that.

My current Dot class:

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

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

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        canvas.drawCircle(x, y, r, mPaint);
    }


}

The reporting of gps coordinates is working and painting is working but only if its within the range of the canvas right now.

Just to make it clear, everything in my app is working and the correct coordinates are being passed around, the last part I need is a visual representation and I have no idea on how to get the canvas to act like a map.

Edit Another problem im having is the drawing, when the position updates it sure does redraw but it appends a new circle leaving the old one still there. How do I refresh it completely so the circle "moves" instead of appending a new one? I tried calling invalidate on the view but that didnt do anything.

nejs
  • 43
  • 1
  • 2
  • 8
  • No I am not just a plain black background on which I paint dots representing people – nejs Mar 10 '12 at 16:33

1 Answers1

0

You need to come up with a formula for translating the GPS coordinates to the coordinates of your canvas. It looks like this question is close to what you need: Mercator longitude and latitude calculations to x and y on a cropped map (of the UK)

Community
  • 1
  • 1
Eric Levine
  • 13,536
  • 5
  • 49
  • 49
  • Yea that looks like something along the lines of what im after just by reading through. Im gonna go and test it out and see what I get. – nejs Mar 10 '12 at 16:34