我正在寻找一种使用googleway
's进行批量地理编码的方法google_geocode()
,它一次只能返回一个结果。我想使用 tidyverse 函数,而其他答案使用了更旧且更令人困惑apply
的函数系列。
问问题
65 次
1 回答
0
这是我使用 tidyverse 函数的解决方案。
如果您需要,这将获取地理编码和格式化地址(也可以返回结果的其他组件,只需将它们添加到返回的 map 函数的最后一行的表中。
suppressPackageStartupMessages(require(tidyverse))
suppressPackageStartupMessages(require(googleway))
set_key("your key here")
df <- tibble(full_address = c("2379 ADDISON BLVD HIGH POINT 27262",
"1751 W LEXINGTON AVE HIGH POINT 27262", "dljknbkjs"))
df %>%
mutate(geocode_result = map(full_address, function(full_address) {
res <- google_geocode(full_address)
if(res$status == "OK") {
geo <- geocode_coordinates(res) %>% as_tibble()
formatted_address <- geocode_address(res)
geocode <- bind_cols(geo, formatted_address = formatted_address)
}
else geocode <- tibble(lat = NA, lng = NA, formatted_address = NA)
return(geocode)
})) %>%
unnest()
#> # A tibble: 3 x 4
#> full_address lat lng formatted_address
#> <chr> <dbl> <dbl> <chr>
#> 1 2379 ADDISON BLVD HIGH POI… 36.0 -80.0 2379 Addison Blvd, High Point, N…
#> 2 1751 W LEXINGTON AVE HIGH … 36.0 -80.1 1751 W Lexington Ave, High Point…
#> 3 dljknbkjs NA NA <NA>
由reprex 包(v0.2.1)于 2019 年 4 月 14 日创建
于 2019-04-15T00:39:06.457 回答