我正在开发一个需要检测用户位置的应用程序。
我需要提取用户的国家/地区和城市代码。
我可以使用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?
答案 0 :(得分:0)
我建议您使用OpenFlights提供的数据库:http://openflights.org/data.html(@ Ben-G间接链接)。
有一些网络服务'作为一个表单:http://openflights.org/html/apsearch但我认为考虑到数据库的大小(大约9200个条目),实际上最好在应用程序中导入它并直接查询它,特别是如果你要查询很多(更多)查询...如果使用网络服务会有更多流量,因此会有更多延迟和更少的用户体验等。)
虽然我想知道为什么你不能根据用户的位置计算一个圆圈,然后在数据库中查询某个特定半径范围内的任何机场。这将为您提供所有机场的下落,显然是城市和国家。如果主要由机场提供服务的城市与用户所在城市的位置不对应,则获取给予用户城市的机场代码可能不会给您任何信息。