2010-08-10 10 views
5

vorrei offrire all'utente la possibilità di (manualmente) selezionare lat. e lungo coordinate toccando uno MKMapView. Come posso ottenerlo?iPhone MapKit: selezionare posizione (coordinate) manualmente toccando MKMapView

Ho visto che il delegato MKMapView offre il metodo convertPoint:toCoordinateFromView:. Penso che potrebbe essere un buon inizio, ma non so come creare un punto da un'azione touch.

Apprezzerei qualsiasi aiuto. Grazie.

risposta

6

A UITouch oggetto (vedi here) ha l'API:

- (CGPoint)locationInView:(UIView *)view 

quindi utilizzare il MKMapView API identificato.

10

vwMap è il nome di MKMapview oggetto:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(foundTap:)]; 
tapRecognizer.numberOfTapsRequired = 1; 
tapRecognizer.numberOfTouchesRequired = 1; 
[vwMap addGestureRecognizer:tapRecognizer]; 



-(IBAction)foundTap:(UITapGestureRecognizer *)recognizer { 
    CGPoint point = [recognizer locationInView:vwMap]; 
    CLLocationCoordinate2D tapPoint = [vwMap convertPoint:point toCoordinateFromView:vwMap]; 

    MKPointAnnotation *point1 = [[MKPointAnnotation alloc] init]; 
    point1.coordinate = tapPoint; 

    [vwMap addAnnotation:point1]; 
} 
+1

Molto useful.Thanks. Funziona – Bond

Problemi correlati