我是IOS编程的新手。
我知道如何在给定坐标和半径的地图上绘制MKCirlcle。但是,我想绘制一个像形状一样的圆形但不是圆形。我想在MKRoute周围的地图上画一个像椭圆一样的形状。此形状将从用户位置前一英里的位置开始,到目的地后一英里的位置结束。椭圆的高度将是两英里。路线上方一英里,下方一英里。这种形状应该沿着路线方向进行。
这是所需的形状。
http://i.stack.imgur.com/18QyV.png
在我的家庭控制器中,我正在这样做。
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay
{
double ppm = MKMapPointsPerMeterAtLatitude(RouteDisplayed.polyline.coordinate.latitude);
CustomOverlayRenderer *renderer = [[CustomOverlayRenderer
alloc] initWithOverlay:overlay];
renderer.ppm =[NSNumber numberWithDouble:ppm];
renderer.strokeColor = [UIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:.3];
return renderer;
}
以下是从MKPolylineRenderer扩展的CustomOverlayRenderer.h。
#import <MapKit/MapKit.h>
@interface CustomOverlayRenderer : MKPolylineRenderer
- (void)drawMapRect:(MKMapRect)mapRect
zoomScale:(MKZoomScale)zoomScale
inContext:(CGContextRef)context;
@property(nonatomic, strong) NSNumber * ppm;
@end
以下CustomOverleyRenderer.m
@implementation CustomOverlayRenderer
- (void)drawMapRect:(MKMapRect)mapRect
zoomScale:(MKZoomScale)zoomScale
inContext:(CGContextRef)context
{
[super drawMapRect:mapRect zoomScale:zoomScale inContext:context];
double p = [self.ppm doubleValue];
CGContextSetLineWidth(context, (p * 3200)/zoomScale);
}
@end
希望,我很好地解释了我的问题。
如果有任何歧义,你可以问我。
提前致谢。