This is the method for drawing circles: private Canvas drawCircle(Canvas canvas, GeoPoint gp) { Point p = new Point(); _projection.toPixels(gp, p);
// Create gradient circle int[] gradientColors = new int[]{Color.BLACK,Color.TRANSPARENT}; Shader gradientShader = new RadialGradient(p.x, p.y, _radius, gradientColors, null, TileMode.CLAMP); // Create and setup paint brush Paint paint = new Paint(); paint.setAntiAlias(true); paint.setShader(gradientShader); // Add gradient circle canvas.drawPaint(paint); return canvas; } It works ok, the only thing wrong is that the circles center is at -344668x21990 and that is clearly not on the screen. On 18 Nov., 16:04, Søren <sorni...@fooz.dk> wrote: > But the toPixels is still wrong. > > What I'm doing is, I'm drawing lots of circles on a canvas, then I > take the bitmap and recolours the circles as one blob. I then want to > draw that bitmap to my overlay canvas. > > I can easily draw, but when I transform my GeoPoint to screenPoints I > get the values stated in my second post: > > GeoPoint: 35908138x14500975 > Center of screen: -344668x21990 > > And that's just wrong. > > On 18 Nov., 15:48, Nithin <nithin.war...@gmail.com> wrote: > > > Hi, > > > u try like this.. > > > Point p = new Point(); > > _mapView.getProjection().toPixels(_gp, p); > > > Then, in canvas.drawBitmap(), try like this... > > > canvas.drawBitmap(bmp, p.x, p.y, null); > > > Thanks > > Nithin > > > On Nov 18, 6:50 pm, Søren <sorni...@fooz.dk> wrote: > > > > I think I'm getting there, but it seems like my projection isn't > > > working. This is my onCreate-method in my MapActivity: > > > > public void onCreate(Bundle savedInstanceState) > > > { > > > super.onCreate(savedInstanceState); > > > setContentView(R.layout.map); > > > > _mapView = (MapView)findViewById(R.id.mapView); > > > _mapView.setBuiltInZoomControls(true); > > > > _mapController = _mapView.getController(); > > > double lat = 35.908138*1E6; > > > double lng = 14.500975*1E6; > > > > _gp = new GeoPoint((int)lat,(int)lng); > > > Point p = _mapView.getProjection().toPixels(_gp, null); > > > > // Add overlay > > > _moodOverlay = new MoodOverlay(); > > > List<Overlay> overlays = _mapView.getOverlays(); > > > overlays.add(_moodOverlay); > > > > _mapController.animateTo(_gp); > > > _mapController.setZoom(17); > > > > System.out.println("GeoPoint: " + _gp.getLatitudeE6() + "x" + > > > _gp.getLongitudeE6()); > > > System.out.println("Center of screen: " + p.x + "x" + p.y); > > > } > > > > The problem is that the toPixels is totally wrong. It print's the > > > following: > > > > GeoPoint: 35908138x14500975 > > > Center of screen: -344668x21990 > > > > What is wrong here? > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en