MapKit のマップにリング オーバーレイを追加しようとしています。
ある MKCircleView を別の MKCircleView から差し引くことはできますか? または、独自のカスタム オーバーレイをコーディングする必要がありますか?
写真のようなリングの場合、カスタム オーバーレイを作成する必要はありません。
基本的なリングを描くには、シングル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;
}