RDSTK:反向地理编码lat/lon到city(使用coordinate2politics)

Bog*_*Rau 4 maps r reverse-geocoding

我正在研究R的Shiny应用程序,我正在尝试使用RDSTK软件包来反转地理编码lat/lon对的列表,并从json结果中获取CITY并将其保存到列表中.工作流程是:

  1. SQLDF用于选择日期范围内的所有记录.
  2. 反转地理编码记录并将列添加到具有特定城市的数据框.
  3. 再次使用SQLDF来获取城市计数.

我在理解如何获取JSON输出,将其转换为数据帧,然后将其重新绑定到原始数​​据框时遇到了很多麻烦.任何帮助将非常感激!见下面的代码供参考:

数据框:

df <- data.frame(lat=c(34.048381, 37.757836, 40.729855, 42.356391),
             lon=c(-118.266164, -122.441033, -73.987921, -71.062307))
Run Code Online (Sandbox Code Playgroud)

我能够从返回的JSON列表中提取城市,但我不能为我的生活,找出如何多次为更大的纬度/经度对列表做这件事.搜索stackoverflow主要导致在R之外的dstk.

我理想的输出是:

lat        lon           city
34.048381  -118.266164   Los Angeles
37.757836  -122.441033   San Francisco
40.729855  -73.987921    New York
42.356391  -71.062307    Boston
Run Code Online (Sandbox Code Playgroud)

我也试过这个例子:R:如何使用Data Science Toolbox GeoCode一个简单的地址,虽然我似乎无法为coordinate2politics重新设计它.

有什么输入?

luk*_*keA 5

FWIW,这是使用Google API的一个简单替代方案:

library(ggmap)
res <- lapply(with(df, paste(lat, lon, sep = ",")), geocode, output = "more")
transform(df, city = sapply(res, "[[", "locality"))
# lat        lon          city
# 1 34.04838 -118.26616   los angeles
# 2 37.75784 -122.44103 san francisco
# 3 40.72986  -73.98792      new york
# 4 42.35639  -71.06231        boston
Run Code Online (Sandbox Code Playgroud)