7

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

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

我能够使用地标获取国家代码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 字母代码

4

1 回答 1

0

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

有一个有点“网络服务”的形式: http: //openflights.org/html/apsearch但我认为考虑到数据库的大小(大约 9200 个条目),实际上最好将其导入应用程序并查询它直接,特别是如果你要查询很多(更多的查询......如果使用网络服务更多的流量,所以更多的延迟和降低的用户体验等)。

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

于 2014-03-11T19:32:14.957 回答