2010-10-20 2 views

Répondre

18

Dans le simulateur, l'emplacement actuel de l'utilisateur est toujours à Cupertino, en Californie.

Si vous utilisez Interface Builder pour ajouter votre affichage de la carte, cochez simplement la case "Afficher l'emplacement de l'utilisateur" dans l'inspecteur des attributs pour l'affichage de la carte. (Sélectionnez l'affichage de la carte et tapez command-1 pour afficher l'inspecteur des attributs.)

Si vous ajoutez ou manipuler la vue de la carte programme, définissez la propriété showsUserLocation de la vue de la carte à YES.


Mise à jour: Il se trouve que cela est possible, mais pas en utilisant la fonctionnalité intégrée de vue de la carte, et il ne fonctionne pas toujours.

Les versions récentes du SDK (qui doivent s'exécuter sur Snow Leopard) peuvent obtenir l'emplacement de la machine sur laquelle s'exécute le simulateur à l'aide de CLLocationManager. Vous pouvez ensuite utiliser cet emplacement pour créer une annotation à afficher sur la carte. Il ne se comportera pas comme "l'indicateur d'emplacement de l'utilisateur" intégré (du moins pas sans travail), mais il indiquera l'emplacement actuel de l'utilisateur.

Voir this post pour plus de détails sur le moment où cette technique ne fonctionnera pas. Reportez-vous à la section "Exemple de code associé" du CLLocationManager documentation pour obtenir un exemple de code qui utilise CLLocationManager et CLLocationManagerDelegate, puis affiche l'emplacement de l'utilisateur dans une vue de carte.

+0

+1 ---- OK I a repris ma réponse et heureux de savoir si c'est possible .... je nouvelle chose à faire .... merci ... – Saawan

+0

s'il vous plaît donner un coup d'oeil à ma question et suggérer quelque chose ---- et http: //stackoverflow.com/questions/3966796/are-there-any-libraries-or-examples-of-how-to-handle-ofx-on-the-iphone – Saawan

10
self.mapView.delegate = self; 
self.mapView.showsUserLocation = YES; 

Ceci affichera l'emplacement actuel dans MkMapview. Si vous utilisez Interface Builder, Dans l'inspecteur d'attributs, nous avons une option Behaviour qui a une option Show User Location, en cochant cette option fera également la même chose.

Si vous n'êtes pas en mesure de voir dans le simulateur,

  1. Ouvrez l'application dans le simulateur.
  2. Dans la barre de menu, sélectionnez Déboguer -> Emplacement -> (Si l'option "Aucun" est sélectionnée, remplacez-la par "Emplacement personnalisé") et définissez l'emplacement.

Avec CLLocationManager nous pouvons également obtenir l'emplacement actuel, importation Corelocation FrameWork au projet

Dans .h fichier

#import <CoreLocation/CoreLocation.h> 
@property (nonatomic, strong) CLLocationManager *locationManager; 
@property (nonatomic, strong) CLLocation* currentLocation; 

Dans .m fichier

if ([CLLocationManager locationServicesEnabled]) 
    { 
     if (self.locationManager == nil) 
     { 
      self.locationManager = [[CLLocationManager alloc] init]; 
      self.locationManager.delegate = self; 
      self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
      self.locationManager.distanceFilter = kDistanceFilter; //kCLDistanceFilterNone// kDistanceFilter; 
     } 

     [self.locationManager startUpdatingLocation]; 
    } 

La fonction délégué :

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
{ 
    self.currentLocation = [locations lastObject]; 
    // here we get the current location 
} 

Espérons que cette réponse puisse vous aider.

0

Le simulateur n'affichera pas l'emplacement actuel de l'utilisateur, que ce soit iOS 6, 6.1 ou iOS 7. Pour simuler l'emplacement, vous pouvez voir here. Si vous voulez montrer l'utilisateur emplacement actuel puis exécutez votre application dans l'appareil ou modifier le réglage du simulateur -

du menu simulateur choisissez Debug> Lieu> Emplacement personnalisé ....

Questions connexes