MKMapKit no muestra la ubicación del usuario

Necesito ayuda para mostrar la ubicación del usuario en mi MapView. Hice todo lo que pude encontrar en línea, pero todavía no funciona.

Tengo un CLLocationManager en mi AppDelegate que llama a locationUpdate en mi viewController.

La (void)locationUpdate:(CLLocation *)location se llama al método cada vez y el location coordenadas es correcta cuando se registra con el NSLog(). Aún así, no hay "Blue Dot" en la pantalla de mi iPhone. La región tampoco está configurada.

Por favor, eche un vistazo y dígame si me falta algo.

Este es mi archivo de encabezado:

//My .h file
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <MapKit/MKAnnotation.h>
#import <MapKit/MKReverseGeocoder.h>
@interface FirstViewController : UIViewController <MKMapViewDelegate>
{
    MKMapView *mapView;
}
-(void)locationUpdate:(CLLocation *)location;
-(void)locationError:(NSError *)error;
@end

Esta es mi parte de mi archivo de implementación:

//My .m file
#import "FirstViewController.h"
@implementation FirstViewController
- (void)viewDidLoad
{
    mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
    mapView.showsUserLocation = YES;
    mapView.mapType = MKMapTypeStandard;
    mapView.delegate = self;

    CLLocationCoordinate2D location;
    MKCoordinateRegion region;// = {{0.0,0.0},{0.0,0.0}};
    location.latitude = -33.8771;
    location.longitude = 18.6155;
    MKCoordinateSpan span;
    span.latitudeDelta = 0.01;
    span.longitudeDelta = 0.01;
    region.span = span;
    region.center = location;
    [mapView setRegion:region animated:TRUE];
    [mapView regionThatFits:region];
    [super viewDidLoad];
}
-(void)locationUpdate:(CLLocation *)location
{
    CLLocationCoordinate2D loc = [location coordinate];
    [mapView setCenterCoordinate:loc];
    if([mapView showsUserLocation] == NO)
    [mapView setShowsUserLocation:YES];
    NSLog(@"User Loc: %f, %f", mapView.userLocation.location.coordinate.latitude,
                     mapView.userLocation.location.coordinate.longitude);
    NSLog(@"In MapView: %@",[location description]);
}
@end

¡Gracias por tu tiempo! ¡Es muy apreciado!

preguntado el 16 de mayo de 11 a las 16:05

¿Ves algún mapa en absoluto? ¿Por qué no está haciendo addSubView en mapView? ¿Estás corriendo en el simulador? -

Estoy viendo el mapa del mundo completamente alejado. Luego amplíe manualmente mi oficina. Parece mapas normales en la vista "Mapa". MapView está en uno de los paneles de un TabBarController. Estoy ejecutando tanto en el simulador como en mi iPhone 4. -

Creo que el mapa que ves es uno que creaste en Interface Builder pero no está conectado al declarado en tu controlador de vista. -

Posible solución: en mi HeaderFile, debería "MKMapView * mapView;" no ser "IBOutlet MKMapView * mapView;" y luego adjunto el mapView al MKMapView en IB? -

Si elige usar el de IB, sí (y elimine alloc + init en viewDidLoad). De lo contrario, elimínelo de IB y agregue [self.view addSubview:mapView]; después de alloc + init en viewDidLoad. -

1 Respuestas

¡¡Su kit de mapas en Interface Builder necesita tener marcada (Buscar ubicación de usuario) !!

Respondido 09 Jul 12, 07:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.