2012-02-13 3 views
5

В встроенном приложении голосовой почты Apple, когда он находит номер телефона, который он не распознает в вашей адресной книге, он отображает приблизительное местоположение под номером, предположительно исходя из номера телефона. Как они это сделали? Я бы предположил, что на телефоне имеется большая база данных с кодами областей и номерами обмена, каждый из которых соответствует названию города или региона. Кто-нибудь знает, доступно ли это сопоставление приложениям через открытый API?Код зоны телефона для имени города на iOS

Существует много шаблонов кода для отображения почтового индекса в город, но я не вижу многого, что делает то же самое с региональным кодом/обменом. Есть идеи?

+0

Аналогичный вопрос был задан один день после этого один: http://stackoverflow.com/questions/9284212/how-to -locate-any-mobile-number-using-iphone-application/18930785 # 18930785 – newenglander

ответ

1

Существует несколько веб-сайтов, которые расскажут вам о городе или городах для данного кода города. Verizon has one, и другие сайты, такие как http://www.allareacodes.com/ и http://www.411.com/area_zip_codes сделать примерно одно и то же. Вероятно, вы можете найти ту же информацию и перед вашим местным телефонным справочником.

Поскольку существует менее 1000 возможных кодов областей, я бы искал area code list, которые вы можете включить в свою программу. Таким образом, этот аспект вашего приложения будет работать независимо от того, доступно ли сетевое соединение или нет.

1

Возможно, они купили бы коммерческий продукт от компании, такой как Telcordia (trainfo.com). Я работаю на GreatData.com, и мы поддерживаем коды и префиксы (также называемые «NPA/NXX»), а также основное состояние города (центр тарифов), часовой пояс, управляющая компания и т. Д., Но мы не имеют широту/долготу. (Telcordia будет).

Я не верю, что вы можете найти данные, которые вы ищете в бесплатном продукте. Мы потратили много времени на ручную проверку наших данных.

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" 
+0

это БОЛЬШОЕ .. за исключением того, что файл не существует .. помогите мне upvote ... помогите файлу! –

+0

@alexgray Спасибо, что указали это. Я исправил ссылку и добавил несколько исходных файлов. – Jbryson

 Смежные вопросы

  • Нет связанных вопросов^_^