2010-07-05 3 views
0

Je regarde simplement mapKit et j'ai décidé de faire un petit bouton pour afficher ma position actuelle, cependant quand j'appuie sur le bouton ma latitude/longitude s'affiche toujours comme [0.000000] [0.000000]. La carte mapView est chargée car je peux voir la carte sur le simulateur avant que j'appuie sur le bouton. Auparavant, je l'ai fait en utilisant coreLocation.framework et en utilisant CLLocationManager et en demandant l'emplacement de l'appareil de cette façon. Je suis juste curieux de savoir pourquoi cette façon ne fonctionne pas correctement, est-ce que je ferais mieux de le faire via CLLocationManager?userLocation: latitude/longitude renvoie zéro?

-(IBAction)findMePressed { 
    MKUserLocation *myLocation = [myMapView userLocation]; 
    CLLocationCoordinate2D coord = [[myLocation location] coordinate]; 
    [myMapView setCenterCoordinate:coord animated:YES]; 
    NSLog(@"findMePressed ...[%f][%f]", coord.latitude, coord.longitude); 
} 

EDIT: Ajout ...

-(IBAction)findMePressed { 
    MKUserLocation *myLocation = [myMapView userLocation]; 
    CLLocationCoordinate2D coord = [[myLocation location] coordinate]; 
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 350, 350); 
    [myMapView setRegion:region animated:YES]; 
} 

-(void)viewDidLoad { 
    [super viewDidLoad]; 
    [myMapView setShowsUserLocation:YES]; 
} 

Gary.

Répondre

1

Soit le userLocation n'est pas visible sur la carte (voir la propriété userLocationVisible) ou il y a un problème mise en place de la propriété myMapView et il est nul (non connecté au constructeur d'interface)

+0

Salut Dean, userLocationVisible est [0] donc je suppose que c'est le problème. myMapView est connecté dans IB donc il pointe correctement vers mon iVar. – fuzzygoat

+0

La façon dont mon plan affichait Cupertino était juste à gauche de l'écran. Définir showUserLocation et faire une région a fait ce que j'attendais, très apprécié. – fuzzygoat

1
[...] comme Je peux voir la carte sur le simulateur [...]

Testez-le sur l'appareil. Par défaut, sur le simulateur, les coordonnées que vous obtenez sont le siège d'Apple. Cf. doc.

Voir cette autre question SO pour des solutions de contournement et les services publics utiles: Testing CoreLocation on iPhone Simulator

+0

Bonjour Guillaume, très apprécié. – fuzzygoat

Questions connexes