2009-10-07 5 views
1

저는 iPhone 프로그래밍을 처음 사용합니다. CoreLocation 및 Mapkit API를 사용하여 응용 프로그램을 작성하려고합니다. 현재 위치에 대한 핀을 찾아 추가 할 수있었습니다. 이제는 그 위치를 중심으로 원을 그려 나가려고합니다.하지만 그 일을 어떻게 수행해야할지 모르겠습니다. 고마워요, 감사합니다.[iPhone] Google지도의 위치 주변에 원을 그립니다.

답변

1

나는 당신과 같은 질문을 가지고 있다고 생각했습니다. 그리고 나는이 질문에 답을 찾았습니다. 제게 많은 도움을주었습니다. 이것이 당신에게 도움이되기를 바랍니다. 즉 현재 SDK했다, 나는이 원래 있었는지 Drawing a Point, Line, Polygon on top of MKMapview

0

는 아이폰 OS SDK를 3.0 태그,하지만 난 그 때문에 당시 가정합니다. 누군가가 이에 대한 답을 찾고 있지만 iOS 4.0 이상을 사용할 수 있다면 여기에 내 해결책이 있습니다.

그러므로 MKMapView을 소유 한 UIViewController이 있다고 가정합니다.

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

당신은 설정 인터페이스 빌더 (엑스 코드 현재)에 연결이 mapView 콘센트에 실제 MKMapView을 연결합니다. 그런 다음 원을 그리려는 위치가 포함 된 변수가 있습니다 (location). 당신이 당신의 원의 모양을 사용자 정의하려면

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

, 뷰 컨트롤러가 MKMapViewDelegate를 구현과 같이 mapView:viewForOverlay:을 구현할 수 있습니다 : 당신은 단순히 MKCircle를 생성 및 오버레이mapView에 추가해야합니다 :

- (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) 나.