2009-10-07 74 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)或圖形經由界面生成器

相關問題