2012-10-04 140 views
15

Me gustaría utilizar la ubicación del usuario de mi aplicación, más específicamente el valor de latitud y longitud.¿Cómo obtener ubicación (latitud y longitud) en variable en iOS?

Los necesito para usar en una variable, de modo que pueda enviarlos con una url ...

nunca trabajaron antes ubicaciones de aparentes en iOS y Xcode y no encontró nada coincidente para mi problema en Internet. ..

así que espero que alguien puede explicarlo a mi con un ejemplo de código :)

Thx por u ayudar Laurenz de Alemania

Respuesta

48

puede utilizar CoreLocation para obtener la longitud y latitud.

incluir framework:

Haga clic en su proyecto en el navegador.

Haga clic en el botón más bajo "binario enlace con las bibliotecas"

Añadir CoreLocation a su proyecto.

Importe el archivo de cabecera:

#import <CoreLocation/CoreLocation.h> 

Declarar CLLocationManager:

CLLocationManager *locationManager; 

inicializar locationManager:

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

A continuación, utilice

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

perfecto, gracias por su ayuda rápida :) –

16

PASO 1: Añadir marco CoreLocation en su proyecto.

  1. Seleccionar OBJETIVOS ->Fases Construir
  2. Seleccionar Enlace binario con Bibliotecas
  3. Haga clic en más (+) botón. Esto abrirá la lista de marcos.
  4. Buscar CoreLocation framework y Agregar it.

Screenshot 1

Screenshot 2

PASO 2: escribir a continuación el código en el archivo de cabecera del controlador de vista donde la ubicación es que se debe buscar:

#import <CoreLocation/CoreLocation.h> 

Además, añadir CLLocationManagerDelegate en la interfaz.

Ahora, crear el objeto de LocationManager

CLLocationManager *locationManager; 

PASO 3: En, ViewDidLoad método de escritura por debajo de código:

locationManager = [[CLLocationManager alloc] init]; 
    locationManager.distanceFilter = kCLDistanceFilterNone; 
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; 
    [locationManager startUpdatingLocation]; 

    [locationManager requestAlwaysAuthorization]; //Note this one 

Puede establecer el valor desiredAccuracy como kCLLocationAccuracyBest, kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers

Ahora, escriba a continuación código para obtener el valor de latitud y longitud

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

PASO 4: En iOS 8, este código falla silenciosamente es decir, no recibirá ningún error o advertencia.

que tiene que hacer dos cosas adicionales para obtener la ubicación de trabajo:

  1. agregar una clave a su Info.plist
  2. Solicitar autorización del gerente de locación pidiendo que se inicie.

Cualquiera o ambas claves a continuación deben agregarse en el archivo Info.plist.

  1. NSLocationWhenInUseUsageDescription
  2. NSLocationAlwaysUsageDescription

Estos son de tipo String y el valor puede ser cualquier descripción de mensaje o vacío.

Ahora necesita solicitar autorización para el método de ubicación correspondiente. Utilice cualquiera de las llamadas siguientes:

  1. [self.locationManager requestWhenInUseAuthorization]
  2. [auto.locationManager requestAlwaysAuthorization]
Cuestiones relacionadas