Ответы:
Не существует строгой алгоритмической связи между широтой и долготой и почтовым индексом - все они являются пользовательскими областями, генерируемыми почтовой службой. Вам необходим доступ к набору данных, который кодирует полигоны / центроиды полигонов по почтовому индексу.
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.
Я пробовал его раньше, и он отлично работает. Когда вы вводите адрес или почтовый индекс, он покажет долготу и широту.