机场代码 - iOS

时间:2013-04-02 21:25:01

标签: ios objective-c

我正在开发一个需要检测用户位置的应用程序。

我需要提取用户的国家/地区和城市代码。

我可以使用locationManager: didUpdateToLocation: fromLocation:中的地标获取国家/地区代码,如下所示:

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

    }];

那么,是否有任何解决方案可以帮助我找到用户所在城市的IATA 3-Letter Code

1 个答案:

答案 0 :(得分:0)

我建议您使用OpenFlights提供的数据库:http://openflights.org/data.html(@ Ben-G间接链接)。

有一些网络服务'作为一个表单:http://openflights.org/html/apsearch但我认为考虑到数据库的大小(大约9200个条目),实际上最好在应用程序中导入它并直接查询它,特别是如果你要查询很多(更多)查询...如果使用网络服务会有更多流量,因此会有更多延迟和更少的用户体验等。)

虽然我想知道为什么你不能根据用户的位置计算一个圆圈,然后在数据库中查询某个特定半径范围内的任何机场。这将为您提供所有机场的下落,显然是城市和国家。如果主要由机场提供服务的城市与用户所在城市的位置不对应,则获取给予用户城市的机场代码可能不会给您任何信息。