地理编码失败,状态为OVER_QUERY_LIMIT R studio

时间:2018-03-05 10:51:12

标签: r google-geocoder google-geocoding-api

抱歉重复一个问题,但我找不到解决问题的答案。我正在使用transport-workshop.Rmd来自这个回购:https://github.com/nickbearman/transport-workshop。我使用qmap进行的前3个查询没有问题qmap('Leeds')qmap('LS2 9JT')qmap('LS2 9JT', zoom = 17)。但接下来我继续研讨会并尝试qmap('LS2 9JT', zoom = 17, maptype = 'satellite'),这会给我带来这个错误:

geocode failed with status OVER_QUERY_LIMIT, location = "LS2 9JT"Error in data.frame(ll.lat = ll[1], ll.lon = ll[2], ur.lat = ur[1], ur.lon = ur[2]) : arguments imply differing number of rows: 0, 1

检查时: > geocodeQueryCheck() 2495 geocoding queries remaining.

发现指定Google Maps API密钥可能会将其排序: devtools::install_github("dkahle/ggmap") 来自https://developers.google.com/maps/documentation/geocoding/get-api-keyregister_google(key = "my_api_key"),但我一直收到同样的错误。不知道还有什么要检查或尝试。

使用R版本3.4.3(2017-11-30),Windows 10。

3 个答案:

答案 0 :(得分:2)

这可能有两个原因:

1)如果您使用的是免费版本的Google API,则可能已超过public async Task DoWork() { await DoSomeWorkAsync(); DoSomeMoreWork(); } 。您可以选择高级服务,也可以查看您使用的服务限制政策here

2)您通过在一秒钟内多次点击地理编码来超越24-hour limit的限制。因此,您可以更改代码并在下次请求之前添加等待时间以避免此错误。

答案 1 :(得分:2)

我也一次又一次地遇到同样的问题。如果您在循环中运行多个查询,则可以插入类似Sys.sleep(5)的暂停。

但根据我的经验,对于所有与Google相关的查询,我发现包googlewayggmap好得多。也许你试试这个?注意:在这里您需要一个密钥,在Google注册后很容易获得。

答案 2 :(得分:2)

我也有过这样的经历。有时甚至Rohan Kadu和DatamineR提出的有用修复都无法解决问题(尽管我没有尝试googleway)。

您也可以尝试将ggmap源代码更改为Data Science Toolkit的“dsk”,如下所示:

result <- geocode(df$Address, output = "latlona", source = "dsk")

这对我有用。 (虽然dsk有一些限制。请查看ggmap文档。)

祝你好运。