2012-04-02 3 views

答えて

2

、カスタムオーバーレイを作成する必要はありません。

基本的なリングを描くには、MKCircleを1つ追加し、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; 
} 
+0

ピクセルでの線幅は? – TimoP

+0

私はそれがポイントだと思うが、本質的にはそうだ。ズームレベルに基づいて自動的に拡大/縮小されます。 – Anna

+0

よろしくお願いいたします。私はマップ上のポイントまで30mの距離で10m幅の領域を必要とします。私はこれを試してみる。 – TimoP

関連する問題