- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
总结:如何使用 SpatRaster 对象作为 ggmap 的 basemap ?
您好,我正在使用 ggplot 在 R 中绘制 map 。我想要 OpenStreetMaps 的 basemap ,然后我想在上面绘制多边形等。
ggmap 包曾经非常适合这个,但是现在使用 Google map 太复杂了,而且 OpenStreetMaps 根本不起作用。
我遇到过 ggspatial::annotation_map_tile()
,但它不允许那么多 map 类型,而且速度也非常慢,所以我想尽可能避免使用它.
我也遇到过 maptiles::get_tiles()
,它有更多的选项而且看起来更快。 👍
问题是它返回的 SpatRaster 对象(来自 terra 包)不会自动用作 ggmap 的 basemap 。 有办法转换吗?
通过查看 ggmap 的 get_stamenmap()
中发生的情况,我已经设法完成了部分工作,但 map 显示为绿色。我假设这是因为 raster::raster()
和 raster::as.raster()
没有像我希望的那样在这个对象类型上工作,但是我对这些类(class)一无所知,所以我不知道下一步该去哪里。
library(dplyr)
library(ggmap)
library(sf)
library(maptiles)
nc <- st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
nc_osm <- get_tiles(nc, crop = TRUE)
# This is what it should look like
plot_tiles(nc_osm)
# I don't know these data types I'm trying to convert to
nc_ggmap <- nc_osm %>%
raster::raster() %>%
raster::as.raster()
# Set attributes manually, like in get_stamenmap()
class(nc_ggmap) <- c("ggmap", "raster")
attr(nc_ggmap, "bb") <- data.frame(ll.lat = 33.8,
ll.lon = -84.3,
ur.lat = 36.5,
ur.lon = -75.4)
attr(nc_ggmap, "source") <- ""
# Try to map it... green 💚
nc_ggmap %>%
ggmap()
顺便说一句,我已经设法使用 ggplot 绘制对象,方法是计算每个像素的颜色并将它们用于 fill
美学,但稍后我需要将这种美学用于我的多边形上,这就是为什么我非常热衷于使用 ggmap 方法。
nc_osm %>%
terra::as.data.frame(xy = TRUE) %>%
as_tibble() %>%
mutate(hex = rgb(lyr.1, lyr.2, lyr.3, maxColorValue = 255)) %>%
ggplot(aes(x, y, fill = hex)) +
geom_tile() +
scale_fill_identity() +
coord_fixed() +
theme_void()
最佳答案
我不太明白你的问题,因为在我看来你要求的东西,然后你写道你设法找到了你一开始提出的问题的解决方法。
也就是说,如果您只需要不止一种填充美学,您可以使用 ggnewscale
包,here .通过这种方式,您可以为每一层绘制具有不同填充(或颜色,如果需要)美学的多个层。
关于r - 使用 terra SpatRaster 作为 ggmap basemap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66867465/
前几天我或多或少偶然发现,可以根据一般时间属性(c.f. here)从 SpatRaster 对象查询图层,例如基于年份(r[ "2017"]) 和年月 (r["2017-10"])。 现在我想深入探
我已经使用出色的 terra 将单变量 .nc 文件作为 SpatRaster 对象读入 R包,目的是根据像元质心拟合地质统计模型。为此,我需要使用来自 SpatRaster 的数据构建一个数据框,其
总结:如何使用 SpatRaster 对象作为 ggmap 的 basemap ? 您好,我正在使用 ggplot 在 R 中绘制 map 。我想要 OpenStreetMaps 的 basemap
我是一名优秀的程序员,十分优秀!