[IPhone] dessiner le cercle autour d'un emplacement sur la carte Google

voix
1

Je suis nouveau à la programmation iPhone. Je veux écrire une application utilisant l'API CoreLocation et MapKit. Je suis en mesure de trouver et d'ajouter des broches pour l'emplacement actuel. Maintenant, je suis en train de dessiner un cercle autour de l'emplacement, mais je ne suis pas sûr de savoir comment s'y prendre pour faire cela. Je vous remercie tous les pointeurs, merci.

Créé 07/10/2009 à 10:47
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Je pensais que j'ai même question avec vous. Et j'ai trouvé cette question réponse, il m'a beaucoup aidé, j'espère que cela sera utile pour vous. Dessin d' un point, la ligne, Polygon au - dessus de MKMapview

Créé 20/10/2009 à 21:24
source utilisateur

voix
0

Je sais que ce fut à l' origine étiqueté 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 à cela, mais peut utiliser iOS 4.0+, alors voici ma solution.

Donc, je suppose que vous avez UIViewController, qui est propriétaire d' une 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 réel MKMapViewà la mapViewsortie. Et puis vous avez une variable qui contient l'emplacement que vous voulez dessiner un cercle autour de : location. Il vous suffit de créer un MKCircle, et l' ajouter à votre mapViewcomme 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 MKMapViewDelegateet 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;
}

Rappelez - vous de définir mapView.delegate = selfle code de contrôleur de vue (par exemple viewDidLoad) ou graphiquement par l' intermédiaire d' Interface Builder .

Créé 11/05/2012 à 11:01
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more