2013-04-02 16 views
6

Pracuję nad aplikacją, która musi wykryć lokalizację użytkownika.Kody portów lotniczych - iOS

Potrzebuję wyodrębnić kody kraju i miasta użytkownika.

udało mi się dostać kod kraju za pomocą oznaczenia miejsca w locationManager: didUpdateToLocation: fromLocation: następująco:

CLGeocoder * geoCoder = [[CLGeocoder alloc] init]; 
    [geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { 

     MKPlacemark * mark = [[MKPlacemark alloc] initWithPlacemark:[placemarks objectAtIndex:0]]; 
     NSString * code = mark.countryCode; 

     NSLog(@"country code: %@", code); 

    }]; 

Więc, czy istnieje rozwiązanie, które pomaga mi znaleźć IATA 3-Letter Code city użytkownika?

+13

Przypuszczam, że jedynym rozwiązaniem jest użycie dostępnej zewnętrznej bazy danych w celu połączenia/dopasowania twojej pozycji do IATA. W tym wątku wymieniono dostępne usługi: http://stackoverflow.com/questions/787782/where-can-i-find-a-worldwide-list-of-iata-cities-with-airports Oto kolejna baza danych, której można użyć http://www.partow.net/miscellaneous/airportdatabase/, niestety nie jest to usługa internetowa. –

+0

Dziękuję @ Ben-G, będę korzystać z bazy danych globalnego lotniska. – Roula

Odpowiedz

0

Proponuję skorzystać z bazy danych dostępnej na OpenFlights: http://openflights.org/data.html (która @ Ben-G jest pośrednio związana).

Istnieje "usługa sieciowa" jako forma: http://openflights.org/html/apsearch, ale myślę, że biorąc pod uwagę rozmiar bazy danych (około 9200 wpisów), lepiej jest zaimportować ją do aplikacji i bezpośrednio zapytać, szczególnie jeśli zamierzają dużo zapytać (więcej zapytań ... więcej ruchu w przypadku korzystania z usługi sieciowej, a więc więcej opóźnień i mniejszej satysfakcji użytkownika, itp.).

Chociaż zastanawiam się, dlaczego nie obliczyć krąg biorąc pod uwagę pozycję użytkownika, a następnie zapytaj bazy danych dla dowolnego lotniska w określonym promieniu. To da ci wszystkie lotniska w miejscu pobytu i oczywiście w miastach i kraju. Uzyskanie kodu lotniska podanego w mieście użytkownika może nie dać ci nic, jeśli miasto obsługiwane głównie przez lotnisko nie odpowiada miastu lokalizacji użytkownika.