Assuming you have a Location, get the bearing by doing:
float myBearing = location.getBearing();
To implement overlay, you will use ItemizedOverlay and OverlayItem . You need to subclass OverlayItem to add functionality to rotate Drawable. Something like:
public BitmapDrawable rotateDrawable(float angle) { Bitmap arrowBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.map_pin); // Create blank bitmap of equal size Bitmap canvasBitmap = arrowBitmap.copy(Bitmap.Config.ARGB_8888, true); canvasBitmap.eraseColor(0x00000000); // Create canvas Canvas canvas = new Canvas(canvasBitmap); // Create rotation matrix Matrix rotateMatrix = new Matrix(); rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2); // Draw bitmap onto canvas using matrix canvas.drawBitmap(arrowBitmap, rotateMatrix, null); return new BitmapDrawable(canvasBitmap); }
Then all that remains to be done is apply this new Drawable to OverlayItem. This is done using the setMarker () method.
pheelicks Dec 02 '10 at 6:23 2010-12-02 06:23
source share