Comment get l'location (latitude et longitude) en variable sur iOS?

Je voudrais utiliser l'location de mon user de l'application, plus précisément la valeur de la latitude et de la longitude.

J'ai besoin d'eux pour utiliser une variable, afin que je puisse les envoyer avec une url …

Je n'ai jamais travaillé auparavant sur iOS et Xcode et je n'ai rien trouvé correspondant à mon problème sur Internet …

Donc j'espère que quelqu'un peut l'expliquer à mon avec un exemple de code 🙂

Merci d'aider Laurenz d'Allemagne

Vous pouvez utiliser CoreLocation pour get la longitude et la latitude.

Inclure le cadre:

Cliquez sur votre projet dans le browser.

Cliquez sur le button plus sous "link binary with libraries"

Ajoutez Corelocation à votre projet.

Importez le file d'en-tête:

#import <CoreLocation/CoreLocation.h> 

Déclarez CLLocationManager:

 CLLocationManager *locationManager; 

initialiser locationManager:

 - (void)viewDidLoad { locationManager = [[CLLocationManager alloc] init]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; [locationManager startUpdatingLocation]; } 

Ensuite, utilisez

 float latitude = locationManager.location.coordinate.latitude; float longitude = locationManager.location.coordinate.longitude; 

ÉTAPE 1: Ajoutez l'infrastructure CoreLocation dans votre projet.

  1. Sélectionnez TARGETS -> Phases de construction
  2. Sélectionner un lien binary avec des bibliothèques
  3. Cliquez sur le button plus (+) . Cette list contextuelle apparaîtra.
  4. Recherchez le framework CoreLocation et ajoutez- le.

Capture d'écran 1

Capture d'écran 2

ÉTAPE 2: Écrivez le code ci-dessous dans le file d'en-tête du controller de vue où l'location doit être récupéré:

 #import <CoreLocation/CoreLocation.h> 

En outre, ajoutez CLLocationManagerDelegate dans l'interface.

Maintenant, créez l'object de LocationManager

  CLLocationManager *locationManager; 

ÉTAPE 3: Dans, méthode ViewDidLoad écrivez ci-dessous le code:

  locationManager = [[CLLocationManager alloc] init]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; [locationManager startUpdatingLocation]; [locationManager requestAlwaysAuthorization]; //Note this one 

Vous pouvez définir la valeur desireAccuracy comme kCLLocationAccuracyBest, kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers

Maintenant, écrivez le code ci-dessous pour get la valeur de latitude et de longitude

  float Lat = locationManager.location.coordinate.latitude; float Long = locationManager.location.coordinate.longitude; NSLog(@"Lat : %f Long : %f",Lat,Long); 

ÉTAPE 4: Dans iOS 8, ce code échoue silencieusement, c'est-à-dire que vous n'obtiendrez aucune erreur ou avertissement.

Vous devez faire deux choses supplémentaires pour que l'location fonctionne:

  1. Ajouter une key à votre Info.plist
  2. Demande l'autorisation du gestionnaire d'location en lui demandant de démarrer.

Une ou les deux keys ci-dessous doivent être ajoutées dans le file Info.plist.

  1. NSLocationWhenInUseUsageDescription
  2. NSLocationAlwaysUsageDescription

Ceux-ci sont de type Ssortingng et la valeur peut être n'importe quelle description de message ou vide.

Vous devez maintenant requestr une autorisation pour la méthode de localization correspondante. Utilisez l'un des appels ci-dessous:

  1. [self.locationManager requestWhenInUseAuthorization]
  2. [self.locationManager requestAlwaysAuthorization]

Rapide:

 var locationManager = CLLocationManager() locationManager.distanceFilter = kCLDistanceFilterNone locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters locationManager.startUpdatingLocation() 

Plus d'informations ici: https://developer.apple.com/library/mac/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/cl/CLLocationManager