4

MapKit のマップにリング オーバーレイを追加しようとしています。

ある MKCircleView を別の MKCircleView から差し引くことはできますか? または、独自のカスタム オーバーレイをコーディングする必要がありますか?

ここに画像の説明を入力

4

1 に答える 1

2

写真のようなリングの場合、カスタム オーバーレイを作成する必要はありません。

基本的なリングを描くには、シングル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;
}
于 2012-04-02T12:36:31.940 に答える