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

问题描述 投票:1回答:3

抱歉重复一个问题,但我找不到解决问题的答案。我正在使用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")register_google(key = "my_api_key") https://developers.google.com/maps/documentation/geocoding/get-api-key,但我仍然遇到同样的错误。不知道还有什么要检查或尝试。

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

r google-geocoder google-geocoding-api
3个回答
2
投票

这可能有两个原因:

1)如果您使用的是免费版本的Google API,则可能超过了24-hour limit。您可以选择高级服务或查看使用here的服务限制政策

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


2
投票

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

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


2
投票

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

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

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

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

祝好运。

© www.soinside.com 2019 - 2024. All rights reserved.