I think the projection is causing the problem. Here's a copy of my
Projection-object:

projection      PixelConverter  (id=830060753840)
+       mInverse        Matrix  (id=830060753992)
+       mMap    Map  (id=830060693368)
                biller  MapBiller  (id=830060694872)
                centerPixelX    2610768
                centerPixelY    1626375
                completeTilesInViewport 0
                displayHeight   0
                displayWidth    0
                earliestTileNeededTime  0
                halfHeight      0
                halfWidth       0
                isViewportAllNew        false
                lastPaintStartTime      0
                layerServices   Vector  (id=830060693664)
                mapService      MapService  (id=830060696344)
                mapState        MapState  (id=830060726304)
                pixelMapper     null
                running true
                tileOverlayRenderer     AndroidTileOverlayRenderer  
(id=830060769480)
                tiles   null
                topLeftTile     Tile  (id=830060726360)
                xTiles  0
                yTiles  0
+       mMatrix Matrix  (id=830060753976)
+       mTempFloats     float[2]  (id=830060754008)
+       mTempPoint      Point  (id=830060754320)

If you need any further information please say so.

On 18 Nov., 16:15, Søren <sorni...@fooz.dk> wrote:
> 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

Reply via email to