在苹果内置的语音信箱应用程序中,当它在你的通讯录中找不到一个电话号码时,它会在该号码下显示一个大致位置,可能是根据电话号码确定的。他们是怎么做到的呢?我猜手机上有一个区号和交换机号的大型数据库,每个都映射到一个城市或地区名称。有人知道是否可以通过公共API访问此映射吗?
虽然有很多模板代码用于将邮政编码映射到城市,但我没有看到有多少代码将区号/交换机号转化为城市。有什么想法吗?
虽然有很多模板代码用于将邮政编码映射到城市,但我没有看到有多少代码将区号/交换机号转化为城市。有什么想法吗?
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@"areacodes" ofType:@"plist"];
NSDictionary *areaCodeDict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
3. 使用已加载的字典。键是区号,值是位置:
NSString *areaCode = @"801";
NSString *location = [self.areaCodeConversion objectForKey:areaCode];
NSLog(@"%@",location); // prints utah
使用包含的类:
1. 将下载的文件夹添加到您的项目中。
2. 使用包含的类来访问plist信息:
#import "AreaCodes.h"
...
AreaCodes *areaCodes = [[AreaCodes alloc] init];
NSString *location = [areaCodes getLocationForCode:@"801"];
NSLog(@"%@",location);
// prints "Utah"
他们可能会从像Telcordia(trainfo.com)这样的公司购买商业产品。我在GreatData.com工作,我们维护区号和前缀(也称为“NPA / NXX”),以及主要城市(速率中心)状态,时区,运营公司等,但我们没有纬度/经度信息(Telcordia有)。
我不认为您可以在免费产品中找到您要查找的数据。我们花费了大量时间手动验证我们的数据。
有许多网站可以告诉您特定区号的城市或城市。Verizon有一个, 其他网站如 http://www.allareacodes.com/ 和 http://www.411.com/area_zip_codes 做同样的事情。您也可以在当地电话簿的前面找到相同的信息。
由于可能的区号少于1000个,我建议您寻找一个区号列表,并将其包含在您的程序中。这样,无论是否有网络连接,您的应用程序的这个方面都能正常工作。