2010-02-01 18 views
5

I "m usando MapKit en mi solicitud y disaply la ubicación del usuario conRecuperar UserLocation Coordinar con MapKit


[mapview setShowUserLocation:YES]; 

Quiero configurar el region.center.latitude y region.center.longitude con la coordenada de la userLocation, cómo hacerlo

Respuesta

10

Aquí es mi respuesta, intento algo por el estilo y su trabajo:


//inside my ViewDidLOad 
locManager = [[CLLocationManager alloc] init]; 
[locManager setDelegate:self]; 
[locManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
[locManager startUpdatingLocation]; 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
CLLocationCoordinate2D loc = [newLocation coordinate]; [maptView setCenterCoordiante:loc]; }
1

Creo que esto responde a su pregunta:? Returning Mapkit Userlocation Coordinates

(utiliza el mapView.userLocation.location.coordinate.latitude y mapView.userLocation.location.coordinate.longitude properties)

y luego inyectar esas coordenadas en el

-(void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated

de la instancia MKMapView.

+0

sí o puedo usar el region.center.latitude = mapView.userLocation.location.coordinate.latitude; Creo que funcionará, ¿verdad? – ludo

+0

Hum, no estoy seguro de si funciona, le recomendaría crear un CLLocationCoordinate2D local e insertarlo en el selector dado. Obtiene control sobre el parámetro de animación que también podría hacer que su aplicación se vea mejor con una animación. – yonel

+0

Realmente no sé cómo usar el selector que me diste, pero lo intentaré, si tienes algún enlace para mostrarme también será bueno. gracias – ludo

2

Por alguna razón, esto no funcionó para mí. Me lleva a las coordenadas (0.0000, 0.0000). A continuación está mi código si tienes la oportunidad de verificarlo. ¡Gracias por la ayuda!

[mapView setMapType:MKMapTypeStandard]; 
[mapView setZoomEnabled:YES]; 
[mapView setScrollEnabled:YES]; 
mapView.showsUserLocation=TRUE; 

MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 

CLLocationCoordinate2D myCoord = {mapView.userLocation.location.coordinate.latitude,mapView.userLocation.location.coordinate.longitude}; 
[mapView setCenterCoordinate:myCoord animated:YES]; 

region.span.longitudeDelta = 0.01f; 
region.span.latitudeDelta = 0.01f; 
[mapView setRegion:region animated:YES]; 

[mapView setDelegate:self]; 
6

Mucho más fácil:

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { 
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.location.coordinate, 1500, 1500); 
[mapView setRegion:region animated:YES]; 
} 
+2

¡No olvides configurar el mapView.delegate! – DAS

+0

Esta es la mejor solución. Gracias chicos. –

Cuestiones relacionadas