2012-10-04 15 views
15

Chciałbym użyć lokalizacji mojego użytkownika aplikacji, w szczególności wartości szerokości i długości geograficznej.Jak uzyskać lokalizację (szerokość i długość geograficzna) w zmiennej na iOS?

muszę ich używać w zmiennej, tak że mogę wysłać je url ...

nigdy nie pracował wcześniej miejscach witka na iOS i Xcode i znalazł nic dopasowanie dla mojego problemu w internecie. ..

Więc mam nadzieję, że ktoś może wyjaśnić go do mojego z próbką kodu :)

thx za pomoc u Laurenz z Niemiec

Odpowiedz

48

można użyć CoreLocation uzyskać długości i szerokości geograficznej.

Dołącz ramowa:

kliknij odpowiedni projekt w nawigatorze.

Kliknij przycisk plus pod "link binarnych z bibliotek"

Dodaj Corelocation do projektu.

Importuj plik nagłówka:

#import <CoreLocation/CoreLocation.h> 

Declare CLLocationManager:

CLLocationManager *locationManager; 

zainicjować locationManager:

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

Następnie użyj

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

Perfect, dzięki za szybką pomoc :) –

16

KROK 1: Dodaj CoreLocation ram w projekcie.

  1. Wybierz CELE ->Zbuduj Fazy
  2. Wybierz Łącze binarnych z Biblioteki
  3. Kliknij Plus (+) przycisk. Spowoduje to otwarcie listy ramowej.
  4. Wyszukaj Framework CoreLocation i Dodaj it.

Screenshot 1

Screenshot 2

KROK 2: Wpisz poniżej kod w pliku nagłówkowym widzenia regulatora gdzie lokalizacja ma być pobrana:

#import <CoreLocation/CoreLocation.h> 

Również dodać CLLocationManagerDelegate w interfejsie.

Teraz utworzyć obiekt LocationManager

CLLocationManager *locationManager; 

KROK 3: In, ViewDidLoad metoda zapisu poniżej kodu:

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

    [locationManager requestAlwaysAuthorization]; //Note this one 

Można ustawić wartość desiredAccuracy jak kCLLocationAccuracyBest, kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers

Teraz napisać poniżej kod, aby uzyskać wartość szerokości i długości geograficznej:

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

KROK 4: W systemie iOS 8 kod nie działa po cichu, tzn. Nie będzie żadnych błędów ani ostrzeżeń.

trzeba zrobić dwie rzeczy, aby uzyskać dodatkowe pracę Lokalizacja:

  1. dodać klucz do Info.plist
  2. żądanie autoryzacji z menedżera lokalizacji prosząc go, aby rozpocząć.

Dowolny jeden lub oba poniższe klucze należy dodać w pliku Info.plist.

  1. NSLocationWhenInUseUsageDescription
  2. NSLocationAlwaysUsageDescription

Są typu String i wartość może być dowolny opis wiadomość lub pusta.

Teraz musisz poprosić o autoryzację dla odpowiedniej metody lokalizacji. Użyj dowolnej z poniższych połączeń:

  1. [self.locationManager requestWhenInUseAuthorization]
  2. [self.locationManager requestAlwaysAuthorization]
Powiązane problemy