I found out how to draw a cricle around map annotation.
I do it like this:
MKCircle *circle = [MKCircle circleWithCenterCoordinate:theCoordinate radius:15000];
[myMap addOverlay:circle];
-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id)overlay
{
MKCircleView *circleView = [[MKCircleView alloc] initWithOverlay:overlay];
circleView.fillColor =[UIColor redColor];
return circleView;
}
It works ok but i would like to draw a circle whose fill color is not solid like this:

To draw a circle with a gradient, you have to provide an own annotation view class, as none of the existing ones support that. What you can do is you can override the method
- (void)fillPath:(CGPathRef)path inContext:(CGContextRef)contextin a subclass ofMKCircleView. Here is some code (non-optimized, with hardcoded fill parameters) to get you started:To use it, just replace
MKCircleViewwithTWOGradientCircleView:If you would like to use an image instead of drawing the gradient, you can replace the gradient drawing above with image drawing. As zooming in would then blur the image, you should either disable zoom, or tile the image as Apple demonstrated in a session at WWDC10 (see here for a repository with their sample code). Setting a
UIColorwith a pattern image does not work for a radius of 15000 (unless you use a really, really huge image ;)).