2013-04-02 25 views
6

Kullanıcının konumunu tespit etmesi gereken bir uygulama üzerinde çalışıyorum.Havaalanı kodları - iOS

Kullanıcı ülke ve şehir kodlarını ayıklamam gerekir.

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); 

    }]; 

Yani, beni kullanıcının şehir için bir IATA 3-Letter Code bulmanıza yardımcı herhangi bir çözüm yoktur şu şekildedir:

Ben locationManager: didUpdateToLocation: fromLocation: bir işareti kullanarak ülke kodunu elde edebildi?

+13

Tek çözümün, konumunuzu bir IATA'ya bağlamak/eşleştirmek için kullanılabilir bir dış veritabanı kullanmasıdır. Bu Konu, mevcut hizmetlerden bahseder: http://stackoverflow.com/questions/787782/where-can-i-find-a-worldwide-list-of-iata-cities-with-airports İşte kullanabileceğiniz başka bir DB http://www.partow.net/miscellaneous/airportdatabase/, maalesef bir web servisi değil. –

+0

Teşekkür ederim @ Ben-G, global havaalanı veritabanını kullanacağım. – Roula

cevap

0

OpenFlights: http://openflights.org/data.html (hangi @ Ben-G dolaylı olarak bağlantılı) kullanılabilir veritabanını kullanmanızı öneririm.

Form olarak bir 'web hizmeti' var: http://openflights.org/html/apsearch Veritabanının boyutu (yaklaşık 9200 giriş) verildiğinde, aslında bunu uygulamada içe aktarmak ve doğrudan sorgulamak, özellikle de çok fazla sorgulayacaktır (daha fazla sorgulama ... bir web servisini kullanırken daha fazla trafik, ve daha fazla gecikme ve azaltılmış kullanıcı deneyimi, vb.).

Neden kullanıcı pozisyonu verilen bir daireyi hesaplayamadığınızı ve belirli bir yarıçap içinde herhangi bir havalimanı için veri tabanını sorgulamadığınızı merak ediyorum. Bu size tüm havalimanlarını nerede olduğu ve açıkça şehirler ve ülke hakkında bilgi verecektir. Kullanıcının şehri verilen havalimanı kodunun/kodlarının alınması, şehrin bir havalimanı tarafından hizmet vermesi durumunda, kullanıcının bulunduğu yere karşılık gelmezse size hiçbir şey vermeyebilir.