2009-10-07 125 views
1

我是iPhone编程的新手。我想用CoreLocation和Mapkit API编写应用程序。 我已经能够找到并添加当前位置的针脚。现在,我试图围绕这个位置画一个圆圈,但我不知道如何去做。我会很感激任何指针,谢谢。[iPhone]在Google地图上绘制一个位置的圈子

回答

0

我知道这个原本标记的iOS SDK 3.0,但我认为,这是因为在当时,这是目前的SDK。如果有人正在寻找这个答案,但可以使用iOS 4.0+,那么这就是我的解决方案。

所以,我假设你有一个UIViewController,它拥有MKMapView

@interface MapViewController : UIViewController<MKMapViewDelegate> { 
    @private 
    MKMapView* mapView; 
    } 
    @property (nonatomic, retain) IBOutlet MKMapView* mapView; 
    @end 

,你设置你的Interface Builder中(现在的XCode)连接到实际MKMapView连接到mapView出口。然后你有一些变量,包含你想要绘制一个圆的位置:location。你只需要创建一个MKCircle,并把它添加到您的mapView作为覆盖

CLLocationCoordinate2D location = [self getTheLocationSomehow]; 
    CLLocationDistance radius = 50.0; // in meters 
    MKCircle* circle = [MKCircle circleWithCenterCoordinate: location radius: radius]; 
    [mapView addOverlay:circle]; 

如果你想自定义你的圈子的外观,您的视图控制器可以实现MKMapViewDelegate和实施mapView:viewForOverlay:像这样:

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { 
    MKCircle* circle = overlay; 
    MKCircleView* circleView = [[[MKCircleView alloc] initWithCircle: circle] autorelease]; 
    // make the circle red with some transparency and stroke 
    circleView.fillColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.25]; 
    circleView.strokeColor = [UIColor redColor]; 
    circleView.lineWidth = 2.0; 

    return circleView; 
} 

记得设置mapView.delegate = self在视图控制器代码(例如viewDidLoad)或图形经由界面生成器