You should not return nil for this delegate function. The map displays a render for each of the overlays. In your case, you should do the following:
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer { assert(overlay is MKCircle, "overlay must be circle") let circleRenderer = MKCircleRenderer(overlay: overlay) circleRenderer.lineWidth = 1.0 circleRenderer.strokeColor = UIColor.purpleColor() circleRenderer.fillColor = UIColor.purpleColor().colorWithAlphaComponent(0.4) return circleRenderer }
I do not think that you should return MKPolylineRenderer() , because this may hide your error.
source share