Sono nuovo di programmazione iPhone. Voglio scrivere un'applicazione utilizzando CoreLocation e MapKit API. Sono stato in grado di trovare e aggiungere i pin per la posizione corrente. Ora, sto cercando di disegnare un cerchio attorno alla posizione, ma non sono sicuro di come fare per farlo. Apprezzerei tutti i puntatori, grazie.
[IPhone] disegnare il cerchio intorno a una posizione sulla mappa di google
fonte dall'utente Sinh Nguyen
In altre lingue...
Ho pensato che ce l'ho con te stessa domanda. E ho trovato questa domanda risposta, mi ha aiutato molto, spero che questo sarà aiuto a voi. Disegno di una Punto, Linea, Poligono in cima MKMapview
So che questo era originariamente etichettato iOS SDK 3.0 , ma suppongo che era perché, al momento, che era l'SDK corrente. Se qualcuno è alla ricerca di una risposta a questo, ma può utilizzare iOS 4.0+, allora ecco la mia soluzione.
Quindi, suppongo che voi avete una UIViewController, che possiede una MKMapView.
@interface MapViewController : UIViewController<MKMapViewDelegate> {
@private
MKMapView* mapView;
}
@property (nonatomic, retain) IBOutlet MKMapView* mapView;
@end
e si imposta le connessioni in Interface Builder (XCode ora) per collegare il reale MKMapViewalla mapViewpresa di corrente. E poi ci sono alcune variabili che contiene la posizione che si desidera disegnare un cerchio intorno: location. Hai semplicemente bisogno di creare una MKCircle, e aggiungerlo alla tua mapViewcome un overlay :
CLLocationCoordinate2D location = [self getTheLocationSomehow];
CLLocationDistance radius = 50.0; // in meters
MKCircle* circle = [MKCircle circleWithCenterCoordinate: location radius: radius];
[mapView addOverlay:circle];
Se si desidera personalizzare l'aspetto del vostro cerchio, il controller di vista potrebbe implementare MKMapViewDelegatee realizzare mapView:viewForOverlay:in questo modo:
- (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;
}
Ricordate di impostare mapView.delegate = selfil codice View Controller (ad esempio viewDidLoad) oppure graficamente tramite Interface Builder .