在Apple的内置语音邮件应用程序中,当它找到您在地址簿中无法识别的电话号码时,它会显示该号码下的大致位置,可能是基于电话号码。他们是怎么做到的??我猜在手机上有一个庞大的区号和交换号码数据库,每个数据库都映射到一个城市或地区名称。有谁知道应用程序是否可以通过公共API访问此映射?
有很多用于将邮政编码映射到城市的样板代码,但我看不到区域代码/交换的情况也是如此。有什么想法吗?
答案 0 :(得分:2)
我创建了一个plist文件,其中包含区号和位置:areacodes.plist。要使用它,请按照以下步骤操作:
如果您不想使用plist文件:
1。将plist文件添加到项目中。
2. :加载文件:
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"
答案 1 :(得分:1)
有许多网站会告诉您某个城市的特定区号。 Verizon has one以及http://www.allareacodes.com/和http://www.411.com/area_zip_codes等其他网站都做同样的事情。您也可以在本地电话簿的前面找到相同的信息。
由于区号代码少于1000个,我会寻找您可以包含在程序中的area code list。这样,无论网络连接是否可用,您应用的这一方面都将有效。
答案 2 :(得分:1)
他们可能会从Telcordia(trainfo.com)等公司购买商品。我在GreatData.com工作,我们维护区号和前缀(也称为'NPA / NXX'),以及主要城市(费率中心)州,时区,运营公司等,但我们不有纬度/经度。 (Telcordia会)。
我不相信您可以在免费产品中找到您要查找的数据。我们花了大量时间手动验证我们的数据。