我想计算大约之间的距离。 100,000种不同的邮政编码。我知道mapdist
包中的ggmap
函数
mapdist
完美无缺:
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
但是,mapdist
依赖于Google地理编码API,该API每天需要查询限制2,500个地理定位请求。
您是否了解使用具有更高请求限制的其他服务(例如诺基亚地图或Bing)计算两点之间距离的替代r代码?
答案 0 :(得分:14)
taRifx.geo::georoute
(仅提供here,直到我推出另一个更新,此时可通过install.packages
提供)可以使用Bing地图(支持我相信每天25k)并且可以返回一段距离。
georoute( c("3817 Spruce St, Philadelphia, PA 19104",
"9000 Rockville Pike, Bethesda, Maryland 20892"),
verbose=TRUE, returntype="time",
service="bing" )
您必须获取Bing Maps API密钥并将其设置在R全局选项中(理想位置位于.Rprofile
),但密钥是免费的:
options(BingMapsKey="whateverBingGivesYouForYourKey")
答案 1 :(得分:1)
这可能是微不足道的,但一个完全免费的选择是使用Census ZCTA geography data来获取每个邮政编码的坐标,然后计算坐标之间的Haversine distances(或一些类似的距离度量)。 / p>
答案 2 :(得分:0)
如果您开始新的R会话并在新会话中运行library(ggmap)
,则可以再进行2500次查询。
函数distQueryCheck()
显示剩余的查询数。