Ggmap "dsk" 速率限制
Ggmap "dsk" rate limit
我正在尝试使用 R 库 Ggmap 对矢量进行地理定位。
location_google_10000 <- geocode(first10000_string, output = "latlon",
source = "dsk", messaging = FALSE)
问题是我正在使用 "dsk" - 数据科学工具包 API- 因此它没有 Google 的速率限制(限制为每天 2500 个坐标)。但是,当我尝试 运行 包含超过 2500 的向量时,它会弹出以下消息:
Error: google restricts requests to 2500 requests a day for non-business use.
我已经尝试 运行 具有 1000 个地址的 dsk 代码,稍后检查是否实际使用了 google 或 dsk api:
> geocodeQueryCheck()
2500 geocoding queries remaining.
所以出于某种原因,它不允许我使用超过 2500 的 "dsk",但我确信它没有使用 google。
我刚 运行 遇到了同样的问题并找到了你的 post。我能够通过将 client
和 signature
值设置为虚拟值来解决这个问题,例如
geocode(myLocations, client = "123", signature = "123", output = 'latlon', source = 'dsk')
问题似乎与地理编码功能的这一部分有关...
if (length(location) > 1) {
if (userType == "free") {
limit <- "2500"
}
else if (userType == "business") {
limit <- "100000"
}
s <- paste("google restricts requests to", limit, "requests a day for non-business use.")
if (length(location) > as.numeric(limit))
stop(s, call. = F)
userType
在这部分代码上面设置...
if (client != "" && signature != "") {
if (substr(client, 1, 4) != "gme-")
client <- paste("gme-", client, sep = "")
userType <- "business"
}
else if (client == "" && signature != "") {
stop("if signature argument is specified, client must be as well.",
call. = FALSE)
}
else if (client != "" && signature == "") {
stop("if client argument is specified, signature must be as well.",
call. = FALSE)
}
else {
userType <- "free"
}
因此,如果 client
和 signature
参数为空,则 userType
设置为 "free",进而将限制设置为 2,500。通过为这些参数提供值,您将被视为限制为 100,000 的 'business' 用户。如果假设用户使用 'Google' 而不是 'dsk' 作为来源,这是一个很好的检查,但如果来源是 'dsk' 并且可能应该被覆盖,则它会过分热心。简单点说,可能是...
if (source == "google") {
if (client != "" && signature != "") {
if (substr(client, 1, 4) != "gme-")
client <- paste("gme-", client, sep = "")
userType <- "business"
}
else if (client == "" && signature != "") {
stop("if signature argument is specified, client must be as well.",
call. = FALSE)
}
else if (client != "" && signature == "") {
stop("if client argument is specified, signature must be as well.",
call. = FALSE)
}
else {
userType <- "free"
}
} else {
userType <- "business"
}
如果为其他来源计划了 client
或 signature
参数,那将导致问题。我会 ping 软件包作者。
我正在尝试使用 R 库 Ggmap 对矢量进行地理定位。
location_google_10000 <- geocode(first10000_string, output = "latlon",
source = "dsk", messaging = FALSE)
问题是我正在使用 "dsk" - 数据科学工具包 API- 因此它没有 Google 的速率限制(限制为每天 2500 个坐标)。但是,当我尝试 运行 包含超过 2500 的向量时,它会弹出以下消息:
Error: google restricts requests to 2500 requests a day for non-business use.
我已经尝试 运行 具有 1000 个地址的 dsk 代码,稍后检查是否实际使用了 google 或 dsk api:
> geocodeQueryCheck()
2500 geocoding queries remaining.
所以出于某种原因,它不允许我使用超过 2500 的 "dsk",但我确信它没有使用 google。
我刚 运行 遇到了同样的问题并找到了你的 post。我能够通过将 client
和 signature
值设置为虚拟值来解决这个问题,例如
geocode(myLocations, client = "123", signature = "123", output = 'latlon', source = 'dsk')
问题似乎与地理编码功能的这一部分有关...
if (length(location) > 1) {
if (userType == "free") {
limit <- "2500"
}
else if (userType == "business") {
limit <- "100000"
}
s <- paste("google restricts requests to", limit, "requests a day for non-business use.")
if (length(location) > as.numeric(limit))
stop(s, call. = F)
userType
在这部分代码上面设置...
if (client != "" && signature != "") {
if (substr(client, 1, 4) != "gme-")
client <- paste("gme-", client, sep = "")
userType <- "business"
}
else if (client == "" && signature != "") {
stop("if signature argument is specified, client must be as well.",
call. = FALSE)
}
else if (client != "" && signature == "") {
stop("if client argument is specified, signature must be as well.",
call. = FALSE)
}
else {
userType <- "free"
}
因此,如果 client
和 signature
参数为空,则 userType
设置为 "free",进而将限制设置为 2,500。通过为这些参数提供值,您将被视为限制为 100,000 的 'business' 用户。如果假设用户使用 'Google' 而不是 'dsk' 作为来源,这是一个很好的检查,但如果来源是 'dsk' 并且可能应该被覆盖,则它会过分热心。简单点说,可能是...
if (source == "google") {
if (client != "" && signature != "") {
if (substr(client, 1, 4) != "gme-")
client <- paste("gme-", client, sep = "")
userType <- "business"
}
else if (client == "" && signature != "") {
stop("if signature argument is specified, client must be as well.",
call. = FALSE)
}
else if (client != "" && signature == "") {
stop("if client argument is specified, signature must be as well.",
call. = FALSE)
}
else {
userType <- "free"
}
} else {
userType <- "business"
}
如果为其他来源计划了 client
或 signature
参数,那将导致问题。我会 ping 软件包作者。