2012-02-13 54 views
5

在苹果公司的内置语音邮件应用程序,当它发现它并没有在你的地址簿中识别电话号码,它显示在编号的大致位置,大概是基于电话号码。他们是怎么做到的??我猜想手机上有一个区号和交换号码的大型数据库,每个数据库都映射到城市或地区名称。有谁知道这个映射是否可以通过公共API访问应用程序?电话区号城市名在iOS

有大量的样板代码在那里映射邮政编码城市,但我看不到太多,做带区号/交换相同。有任何想法吗?

+0

类似的问题被要求在一天后这一个:http://stackoverflow.com/questions/9284212/how-to -locate-任何移动,使用数字 - - iPhone应用程序/ 18930785#18930785 – newenglander 2013-09-21 09:00:29

回答

1

他们会买了大概一个商业产品从公司如Telcordia公司(trainfo.com)。我为GreatData.com工作,我们与主要城市(费率中心)州,时区,运营公司等一起维护区号和前缀(也称为'NPA/NXX'),但我们不有经度/纬度。 (Telcordia会)。

我不相信你会发现你正在寻找一个免费的产品数据。我们花费大量时间手动验证我们的数据。

2

我已经创建了具有区域代码和位置中有一个plist文件:areacodes.plist。要使用它,请按照下列步骤操作:

如果你是不会使用的plist文件:

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 

使用附带的类:

添加下载的文件夹到您的项目。

2.使用附带的类来访问的plist信息:

#import "AreaCodes.h" 
... 
AreaCodes *areaCodes = [[AreaCodes alloc] init]; 
NSString *location = [areaCodes getLocationForCode:@"801"]; 
NSLog(@"%@",location); 
// prints "Utah" 
+0

这是伟大的..除了文件不存在..帮我给予好评...帮助文件! – 2014-08-17 20:29:57

+0

@alexgray感谢您指出。我已修复链接并添加了一些源文件。 – Jbryson 2014-08-18 16:40:30