2009-10-07 6 views
1

Je suis nouveau à la programmation iPhone. Je veux écrire une application en utilisant CoreLocation et Mapkit API. J'ai été en mesure de trouver et d'ajouter des broches pour l'emplacement actuel. Maintenant, j'essaye de dessiner un cercle autour de l'emplacement, mais je ne suis pas sûr de savoir comment faire cela. J'apprécierais n'importe quel pointeur, merci.[iPhone] dessiner le cercle autour d'un emplacement sur google map

Répondre

0

Je sais que ce fut à l'origine taggés iOS SDK 3.0 , mais je suppose que c'était parce qu'à l'époque, c'était le SDK actuel. Si quelqu'un cherche la réponse à cette question, mais peut utiliser iOS 4.0+, alors voici ma solution. Donc, je suppose que vous avez un UIViewController, qui possède un MKMapView.

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

et vous configurez vos connexions dans Interface Builder (XCode maintenant) pour connecter le MKMapView réelle à la sortie mapView. Et puis vous avez une variable qui contient l'emplacement que vous voulez dessiner un cercle: location. Il vous suffit de créer un MKCircle, et l'ajouter à votre mapView comme une superposition :

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

Si vous voulez personnaliser l'apparence de votre cercle, votre contrôleur de vue pourrait mettre en œuvre MKMapViewDelegate et mettre en œuvre mapView:viewForOverlay: comme ceci:

- (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; 
} 

rappeler de régler mapView.delegate = self dans le code de contrôleur de vue (par exemple viewDidLoad) ou graphiquement via Interface Builder.

Questions connexes