抱歉重复一个问题,但我找不到解决问题的答案。我正在使用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-key的register_google(key = "my_api_key")
,但我一直收到同样的错误。不知道还有什么要检查或尝试。
使用R版本3.4.3(2017-11-30),Windows 10。
答案 0 :(得分:2)
这可能有两个原因:
1)如果您使用的是免费版本的Google API,则可能已超过public async Task DoWork()
{
await DoSomeWorkAsync();
DoSomeMoreWork();
}
。您可以选择高级服务,也可以查看您使用的服务限制政策here
2)您通过在一秒钟内多次点击地理编码来超越24-hour limit
的限制。因此,您可以更改代码并在下次请求之前添加等待时间以避免此错误。
答案 1 :(得分:2)
我也一次又一次地遇到同样的问题。如果您在循环中运行多个查询,则可以插入类似Sys.sleep(5)
的暂停。
但根据我的经验,对于所有与Google相关的查询,我发现包googleway
比ggmap
好得多。也许你试试这个?注意:在这里您需要一个密钥,在Google注册后很容易获得。
答案 2 :(得分:2)
我也有过这样的经历。有时甚至Rohan Kadu和DatamineR提出的有用修复都无法解决问题(尽管我没有尝试googleway
)。
您也可以尝试将ggmap源代码更改为Data Science Toolkit的“dsk”,如下所示:
result <- geocode(df$Address, output = "latlona", source = "dsk")
这对我有用。 (虽然dsk
有一些限制。请查看ggmap
文档。)