R:来自 ggmap 的 get_map()/get_googlemap() 错误
R: Error in get_map()/get_googlemap() from ggmap
我正在尝试使用 GGmap 按州创建车辆碰撞图。地图上的圆点大小取决于该州的车祸数量。
特别是我正在尝试重新创建此 blog post 的可视化集群部分中显示的美国情节。
但是,每当我尝试创建地图时,我都会收到此错误消息。
Error in aperm.default(map, c(2, 1, 3)) :
invalid first argument, must be an array
我已经设置了 Google API 并看到它正在接收点击。我也启用了它并拥有密钥。
此外,我使用以下命令从 github 帐户安装了 GGmap:
devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)
因为 CRAN 没有更新。
我也重新启动并退出 R 几次,但错误仍然存在。
即使我只是简单地 运行:
get_map()
它仍然导致错误:
Error in aperm.default(map, c(2, 1, 3)) :
invalid first argument, must be an array
下面是我的代码,和博客里的代码差不多post:
mydata$State <- as.character(mydata$State)
mydata$MV.Number = as.numeric(mydata$MV.Number)
mydata = mydata[mydata$State != "Alaska", ]
mydata = mydata[mydata$State != "Hawaii", ]
devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)
library(ggmap)
ggmap::register_google(key = "...") #my key is here
for (i in 1:nrow(mydata)) {
latlon = geocode(mydata[i,1])
mydata$lon[i] = as.numeric(latlon[1])
mydata$lat[i] = as.numeric(latlon[2])
}
mv_num_collisions = data.frame(mydata$MV.Number, mydata$lon, mydata$lat)
colnames(mv_num_collisions) = c('collisions','lon','lat')
usa_center = as.numeric(geocode("United States"))
USAMap = ggmap(get_googlemap(center=usa_center, scale=2, zoom=4),
extent="normal")
USAMap +
geom_point(aes(x=lon, y=lat), data=mv_num_collisions, col="orange",
alpha=0.4, size=mv_num_collisions$collisions*circle_scale_amt) +
scale_size_continuous(range=range(mv_num_collisions$collisions))
我希望地图输出像 this
但是我似乎无法通过这个错误。
如果有人能提供帮助那就太好了。
如果您需要更多信息,请告诉我。
谢谢。
此错误是由于 google 键没有为该键启用适当的 API activity。
进入 google API 控制台并启用 API“静态地图 API”,它应该适合您。
编辑:2020 年 1 月——我在做一些类似的工作,发现类似的 API 失败了,因为必须先将计费信息添加到 Google 云控制台中的项目中工作。
需要在GoogleAPI中确认您的信用卡,这样,您的API密钥就被激活了,您就可以正常使用ggmap了
确保启用计费。您不必限制 api,但请确保您需要的所有 api 都已启用。如果您想搜索位置名称,除了静态地图之外,您还需要地理编码 api。来自 CRAN 的 ggmap 现在可以了(不需要 github 版本)。
我正在尝试使用 GGmap 按州创建车辆碰撞图。地图上的圆点大小取决于该州的车祸数量。
特别是我正在尝试重新创建此 blog post 的可视化集群部分中显示的美国情节。
但是,每当我尝试创建地图时,我都会收到此错误消息。
Error in aperm.default(map, c(2, 1, 3)) :
invalid first argument, must be an array
我已经设置了 Google API 并看到它正在接收点击。我也启用了它并拥有密钥。
此外,我使用以下命令从 github 帐户安装了 GGmap:
devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)
因为 CRAN 没有更新。
我也重新启动并退出 R 几次,但错误仍然存在。
即使我只是简单地 运行:
get_map()
它仍然导致错误:
Error in aperm.default(map, c(2, 1, 3)) :
invalid first argument, must be an array
下面是我的代码,和博客里的代码差不多post:
mydata$State <- as.character(mydata$State)
mydata$MV.Number = as.numeric(mydata$MV.Number)
mydata = mydata[mydata$State != "Alaska", ]
mydata = mydata[mydata$State != "Hawaii", ]
devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)
library(ggmap)
ggmap::register_google(key = "...") #my key is here
for (i in 1:nrow(mydata)) {
latlon = geocode(mydata[i,1])
mydata$lon[i] = as.numeric(latlon[1])
mydata$lat[i] = as.numeric(latlon[2])
}
mv_num_collisions = data.frame(mydata$MV.Number, mydata$lon, mydata$lat)
colnames(mv_num_collisions) = c('collisions','lon','lat')
usa_center = as.numeric(geocode("United States"))
USAMap = ggmap(get_googlemap(center=usa_center, scale=2, zoom=4),
extent="normal")
USAMap +
geom_point(aes(x=lon, y=lat), data=mv_num_collisions, col="orange",
alpha=0.4, size=mv_num_collisions$collisions*circle_scale_amt) +
scale_size_continuous(range=range(mv_num_collisions$collisions))
我希望地图输出像 this
但是我似乎无法通过这个错误。
如果有人能提供帮助那就太好了。
如果您需要更多信息,请告诉我。
谢谢。
此错误是由于 google 键没有为该键启用适当的 API activity。
进入 google API 控制台并启用 API“静态地图 API”,它应该适合您。
编辑:2020 年 1 月——我在做一些类似的工作,发现类似的 API 失败了,因为必须先将计费信息添加到 Google 云控制台中的项目中工作。
需要在GoogleAPI中确认您的信用卡,这样,您的API密钥就被激活了,您就可以正常使用ggmap了
确保启用计费。您不必限制 api,但请确保您需要的所有 api 都已启用。如果您想搜索位置名称,除了静态地图之外,您还需要地理编码 api。来自 CRAN 的 ggmap 现在可以了(不需要 github 版本)。