我已经使用 package ggmapsinRstudio绘制空间分布图几个月了。
用于绘制地图的基本代码terrain-background行如下:
### Load packages ####
library(tidyverse); library(googlesheets4); library(openintro)
library(maps); library(ggmap); library(ggthemes); library(Cairo)
#### Set bounding box of Africa ####
bbox2 <- c(left = -18.63,
right = 52.03,
bottom = -35.32,
top = 38.96)
Africa <- get_stamenmap(
bbox = bbox2,
maptype = c("terrain-background"),
zoom = 7)
Run Code Online (Sandbox Code Playgroud)
从今天早上开始,返回如下错误:
Error in f(init, x[[i]]) :
number of rows of matrices must match (see arg 2)
Run Code Online (Sandbox Code Playgroud)
正如我所提到的,这些代码行在过去几个月中一直运行良好(于 2023 年 10 月 2 日绘制了同一区域)。我还尝试过之前绘制的先前区域(例如欧洲)并返回相同的错误。
我尝试了几种解决方案:重新启动 R 会话、更新 R 和 RStudio、重新安装 ggmpas 和关联的软件包....它们都不起作用
Stadia Maps, Inc.的这份“ Stamen 地图图块用户迁移指南”看起来很有前途。
简而言之,主要步骤ggmap(对于其他库,请参阅上面的链接):
- 创建一个 Stadia 地图帐户。入门流程将引导您完成设置域身份验证或 API 密钥。
- 有一个针对 ggmap 的开放拉取请求,预计 4.0.0 版本将完全支持这些更改,但在此之前,人们可以安装 ggmap 的 Stadia Maps 分支:
Run Code Online (Sandbox Code Playgroud)remove.packages("ggmap") devtools::install_github("stadiamaps/ggmap")
- 您现在可以使用
get_stadiamap(替换该get_stamenmap函数)或qmplot像以前一样使用。请注意,maptype雄蕊样式的参数与我们的样式名称相匹配并包含stamen_前缀。这是一个使用 get_stadiamap 显示美国地图的最小示例。请务必注册一个帐户以获取 API 密钥。write = TRUE您可以选择通过传递到 来保留密钥register_stadiamaps。Run Code Online (Sandbox Code Playgroud)library("ggmap") register_stadiamaps("YOUR-API-KEY-HERE") us <- c(left = -125, bottom = 25.75, right = -67, top = 49) get_stadiamap(us, zoom = 5, maptype = "stamen_toner") %>% ggmap()