Jak przekonwertować kody pocztowe na szerokość i długość geograficzną?

12

Mam zestaw danych, który zawiera listę kodów pocztowych. Czy w R istnieje sposób na przekonwertowanie tych kodów pocztowych na współrzędne szerokości i długości geograficznej?

użytkownik9292
źródło
Latlong.net to miłe miejsce na uzyskanie indywidualnych współrzędnych dla jednego kodu pocztowego ...

Odpowiedzi:

15

Nie ma ścisłej zależności algorytmicznej między szerokością i długością geograficzną a kodem pocztowym - wszystkie są obszarami niestandardowymi generowanymi przez pocztę. Potrzebujesz dostępu do zestawu danych, który koduje wielokąty / centroidy wielokątów według kodu pocztowego.

1) Złożony

Tradycyjnie to zadanie (w połączeniu z wyszukiwaniem adresu) nazywa się „Geokodowaniem”. Najwygodniejszą metodą pełnego wyszukiwania adresu jest znalezienie istniejącego geokodera online, czy to za pomocą Google Maps, Bing Maps, czy ESRI.

2) Prostsze

Jednak tylko dla kodów pocztowych w USA dostępne są dane ze Spisu:

http://www.census.gov/geo/www/cob/z52000.html

Nie znam funkcji geoprzestrzennych R, ale wszystko, czego potrzebujesz, to współrzędne wielokąt-> centroid i centroid->.

3) Najprostszy

To zadanie jest na tyle powszechne, że istnieje istniejący zestaw danych centroid: http://coolthingoftheday.blogspot.com/2008/04/free-us-zip-code-database-as-csv.html

Mapowanie jutro
źródło
Link do spisu ludności jest uszkodzony. Prawdopodobnie dotyczyło to ZCTA, które są wynalazkiem biura spisowego. Pierwotnie oparte na kodach pocztowych (które NIE są wielokątami i regularnie się zmieniają) są to wielokąty, które mają być dość stałe. To znaczy. czyniąc je bardziej użytecznymi do celów demograficznych.
wygrał
9

spojrzałeś na zipcodepaczkę ? jest to w zasadzie ramka danych z ~ 45 000 kodów pocztowych wraz z ich miastem, stanem, szerokością i długością geograficzną.

screechOwl
źródło
5

Korzystam z geocodefunkcji w ggmappakiecie.

Wayne
źródło
czy pozwoli to na zip + 4, czy używa tylko centroidów zip?
Korzysta z Google Maps, więc działa jak Google. (Otrzymuj tylko ograniczoną liczbę geokodów dziennie.)
... i najwyraźniej nie możesz przechowywać danych (w zasadzie będziesz musiał zapytać API za każdym razem, gdy będziesz go potrzebować)
Matt
Czy oznaczają, że nie możesz ich przechowywać do przyszłego geokodowania (tj. Stworzyć własną pamięć podręczną mapowań), czy że w ogóle nie możesz przechowywać wyników? Użyłem go do zlokalizowania przestępstw w mojej okolicy i na pewno przechowuję Lat / Lon każdego przestępstwa do wykorzystania w przyszłości. Jednak nie utworzyłem pamięci podręcznej, której używam, aby uniknąć Google do przyszłego geokodowania.
Wayne
1
Moje czytanie TOS (dzięki za link!) Polega na tym, że mają one związek z prezentowaniem map innym osobom. Oznacza to, że nie możesz stworzyć własnej usługi mapowej, która używa Google jako zaplecza i nie przyznaje ich. Wydaje się, że nie ma to nic wspólnego z danymi geokodującymi. Chociaż kto wie w tej epoce spornej ...
Wayne
-2

Wygląda na to, że używasz Ruby on Rails
Wypróbuj ten samouczek od Ryana Batesa http://railscasts.com/episodes/273-geocoder?view=asciicast
Próbowałem już wcześniej i działa idealnie. Po wpisaniu adresu lub kodu pocztowego wyświetli się długość i szerokość geograficzna.

Edy
źródło
2
Prosi o rozwiązanie w języku R , a nie Ruby on Rails.
Fezter