2010-08-10 13 views
5

Me gustaría ofrecerle al usuario la posibilidad de (manualmente) seleccionar lat. y largo. coordenadas tocando un MKMapView. ¿Cómo puedo lograr eso?iPhone MapKit: seleccione la ubicación (coordenadas) manualmente tocando MKMapView

He visto que el delegado MKMapView ofrece el método convertPoint:toCoordinateFromView:. Creo que podría ser un buen comienzo, pero no sé cómo crear un punto a partir de una acción táctil.

Agradeceria cualquier ayuda. Gracias.

Respuesta

6

Un UITouch objeto (ver here) tiene la API:

- (CGPoint)locationInView:(UIView *)view 

A continuación, utilice la API MKMapView que ha identificado.

10

vwMap es el nombre de MKMapview objeto:

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

Muy useful.Thanks. Funciona – Bond

Cuestiones relacionadas