Вычесть два MKCircle или как мне нарисовать кольцо на моей карте в MapKit? - PullRequest
4 голосов
/ 02 апреля 2012

Я пытаюсь добавить наложение кольца на карту в MapKit.

Могу ли я вычесть один MKCircleView из другого MKCircleView или мне нужно кодировать свое собственное наложение?

enter image description here

1 Ответ

2 голосов
/ 02 апреля 2012

Для вида кольца на изображении вам не нужно создавать пользовательское наложение.

Чтобы нарисовать базовое кольцо, добавьте одиночное MKCircle и для его MKCircleView установитеlineWidth в зависимости от того, какое толстое кольцо вы хотите.

//Create the MKCircle (could be in viewDidLoad)...
MKCircle *c = [MKCircle circleWithCenterCoordinate:
                  CLLocationCoordinate2DMake(someLat, someLong) 
                  radius:2000];
[myMapView addOverlay:c];


//In viewForOverlay delegate method, return a MKCircleView...
-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay
{
    if ([overlay isKindOfClass:[MKCircle class]])
    {
        MKCircleView *cv = [[MKCircleView alloc] initWithCircle:overlay];
        cv.lineWidth = 15;  // <-- controls thickness of ring
        cv.strokeColor = [UIColor greenColor];
        cv.alpha = 0.75;
        return cv;
    }

    return nil;
}
...