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
Je pensais avoir la même question avec vous. Et j'ai trouvé cette réponse, elle m'a beaucoup aidé, j'espère que cela vous sera utile. Drawing a Point, Line, Polygon on top of MKMapview
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.