Відповіді:
Не існує чіткого алгоритмічного взаємозв'язку між широтою та довготою та поштовим індексом - це всі спеціальні області, створені поштовою службою. Вам потрібен доступ до набору даних, який кодує багатокутники / центроїди полігонів за поштовим індексом.
1) Складний
Традиційно це завдання (разом із пошуком адреси) називається "Геокодування". Найзручніший спосіб повного пошуку адрес - це пошук існуючого онлайн-геокодера, чи то за допомогою Google Maps, Bing Maps чи ESRI.
2) Простіше
Щодо американських поштових індексів, однак, є дані, отримані з перепису:
http://www.census.gov/geo/www/cob/z52000.html
Я не знайомий з геопросторовими можливостями R, але все, що вам потрібно, - це координати полігонів-> центроїд і центроїд>.
3) Найпростіший
Це завдання є загальним для того, що існує вже наявний набір даних про центроїди: http://coolthingoftheday.blogspot.com/2008/04/free-us-zip-code-database-as-csv.html
Ви подивилися на zipcode
пакет ? це в основному кадр даних із ~ 45 000 поштовими індексами разом із їхнім містом, штатом, широтою та довготою.
Я використовую geocode
функцію в ggmap
пакеті.
Схоже, ви користуєтеся Ruby on Rails.
Спробуйте цей підручник від Райана Бейтса
http://railscasts.com/episodes/273-geocoder?view=asciicast
Я спробував це раніше, і він відмінно працює. Коли ви вводите адресу або поштовий індекс, він відображатиме довготу та широту.