I am trying to figure out how to use a new MKOverlayPathRenderer class.
In my app I previously used MKOverlayPathView when building with iOS 6 SDK,
but it does not seem to work with iOS 7 SDK unfortunately.
So I am trying to move my app from MKOverlayPathView to
MKOverlayPathRenderer, but have no success so far.
MKPolylineRenderer works OK, but MKOverlayPathRenderer does not.
The code gets called, but no overlay is drawn on a map.
Does anybody have a working example for MKOverlayPathRenderer?
First you have to make sure that you set lineWidth and strokeColor
polylineRenderer.lineWidth = 8.0f;
polylineRenderer.strokeColor = [UIColor redColor];
Then In your renderer class, you have to override -(void) createPath method
-(void) createPath{
CGMutablePathRef path = CGPathCreateMutable();
BOOL pathIsEmpty = YES;
for (int i=0;i< polyline.pointCount;i++){
CGPoint point = [self pointForMapPoint:polyline.points[i]];
if (pathIsEmpty){
CGPathMoveToPoint(path, nil, point.x, point.y);
pathIsEmpty = NO;
} else {
CGPathAddLineToPoint(path, nil, point.x, point.y);
}
}
self.path = path; //<—— don't forget this line.
}
if you want custom drawing, you would like to override this
-(void) drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With