Determining the distance between two ZIP codes (alternatives to mapdist)
Solution 1
taRifx.geo::georoute
(only available here until I push out another update, at which point it will be available via install.packages
) can use Bing Maps (which supports I believe 25k per day) and can return a distance.
georoute( c("3817 Spruce St, Philadelphia, PA 19104",
"9000 Rockville Pike, Bethesda, Maryland 20892"),
verbose=TRUE, returntype="time",
service="bing" )
You'll have to get a Bing Maps API key and set it in your R global options (ideal placement is in .Rprofile
), but the key is free:
options(BingMapsKey="whateverBingGivesYouForYourKey")
Solution 2
This might be trivial, but one completely free option is to use Census ZCTA geography data to get co-ordinates for each zip code, and then calculate Haversine distances (or some similar distance metric) between coordinates.
majom
Updated on April 21, 2020Comments
-
majom about 4 years
I want to calculate the distance between approx. 100,000 different ZIP codes. I know about the
mapdist
function in theggmap
packagemapdist
works perfectly:library(ggmap) mapdist('Washington', 'New York', mode = 'driving') # from to m km miles seconds minutes hours # 1 Washington New York 366284 366.284 227.6089 13997 233.2833 3.888056 mapdist('20001', '10001', mode = 'driving') # from to m km miles seconds minutes hours # 1 20001 10001 363119 363.119 225.6421 13713 228.55 3.809167
However,
mapdist
relies on the Google Geocoding API which is subject to a query limit of 2,500 geolocation requests per day.Are you aware of any alternative r code to calculate the distance between two points using another service which has a higher request limit (such as Nokia Maps or Bing)?
-
agstudy almost 11 years+1! good stuff. and 25k a day is really a good point for Bing.
-
Ari B. Friedman almost 11 yearsYou can use
taRifx.geo::geocode
to use Bing for geocoding also. -
agstudy almost 11 yearsGeocoding is it the process of finding (lat/lon)? Sorry I don't know geos terms...
-
Ari B. Friedman almost 11 yearsYup. Turns addresses into lat/lon pairs.
ggmaps
has a function that's more complete in some ways but Google Maps-only.