1

我已经使用 googleway 库通过 Google Maps API 运行了大量 google_reverse_geocode 调用,我有几个问题。

我最初的电话如下:

loczip <- lapply(seq(nrow(LonLat)), function(i){
google_reverse_geocode(location = c(LonLat$`Centerlat`[i],LonLat$`Center Long`[i]),
                       result_type=c("street_address"),
                       location_type="rooftop",
                       key = "**API KEY HERE**",
                       simplify = TRUE)
})

其中 LonLat 是一个包含 12,207 个观测值和 2 个变量的列表,即中心纬度和中心长度。这个电话是基于我在这里找到的答案

我的输出包含 12,207 个元素。到目前为止,我一直在将这些数据导出为干净的格式时遇到问题。

我想知道是否有更好的方法来格式化输出,所以我得到的值不是列表,而是数据框或矩阵。除此之外,我想知道是否有一种好方法可以将现有输出解析为数据框或类似有用的东西。我的最终目标是将这些数据导出到 .csv。

我的输出示例如下:

> loczipShort[5]
[[1]]
[[1]]$results
address_components
1 1309, South Cushman Avenue, Central Tacoma, Tacoma, Pierce County,
Washington, United States, 98405, 3527, 1309, S Cushman Ave, Central
Tacoma, Tacoma, Pierce County, WA, US, 98405, 3527, street_number,
route, neighborhood, political, locality, political,
administrative_area_level_2, political, administrative_area_level_1,
political, country, political, postal_code, postal_code_suffix
formatted_address geometry.location.lat
geometry.location.lng geometry.location_type

1 1309 S Cushman Ave, Tacoma, WA 98405, USA              47.24899            
-122.4566                ROOFTOP
geometry.viewport.northeast.lat geometry.viewport.northeast.lng
geometry.viewport.southwest.lat

1                        47.25034                       -122.4552                       
47.24764
geometry.viewport.southwest.lng                    place_id     
types

1                       -122.4579 ChIJccNG8BJVkFQRUvDLCQI9Qtc
street_address
[[1]]$status
[1] "OK"

另一个复杂之处是,在使用“屋顶”位置类型时,有一些输出包含“零结果”,所以我想确保我要么为这些返回一个空行,要么返回一些其他类型的填充物,以便我以后可以清理它们.

有关此项目的更多背景信息:我已支付 API 访问费用,因此进行 12k 次调用不是问题。出于某种原因,我的帐户没有设置为可以使用 ggmaps 及其 revgeocode() 函数,即使使用 ggmaps 2.7,也不能更改我的帐户状态。

如果有什么我可以澄清的,请告诉我,并提前感谢您!

编辑:

df <- structure(list(Longitude = c(-122.4568254, -122.4568254, -122.4568254, 
-122.4568254), Latitude = c(47.249256, 47.249256, 47.24917901, 
47.24910202)), .Names = c("Longitude", "Latitude"), class = "data.frame", row.names = c(NA, 
-4L))

我的数据中的 4 个样本点。前两个应该产生零结果,第二个付费应该有数据。据我了解,前两个结果为零,因为这些点不在任何规范地址的“屋顶”范围内。

4

0 回答 0