在栅格上绘制ggmap图像

时间:2017-05-28 08:02:26

标签: r ggplot2 ggmap

我正在尝试从栅格前面的ggmap绘制地图。这张地图有很多白色区域,所以我想让白色区域透明,这样我就可以使用ggplot绘制彩色光栅顶部的剩余元素。这是地图:

Fulanus_bbox <- c(left = 17.250000, bottom = -3.916667, right = 36.916667, top = 8.416667)
Fulanus_big <- ggmap::get_map(location = Fulanus_bbox, source = "stamen", maptype = "toner-lite")
map <- ggmap::ggmap(Fulanus_big)
map

所有我能想到的是这两种解决方案,我没想到会解决这些问题。我试过替换地图上的十六进制代码:

map_colors <- map$layers[[2]]$geom_params$raster
map_colors[map_colors == '#FFFFFF'] <- '#00FFFFFF'
map$layers[[2]]$geom_params$raster <- map_colors
map

我还尝试将颜色转换为栅格以查看是否保留了模式:

maprow <- nrow(map_colors)
mapcol <- ncol(map_colors)
map_factors <- as.factor(map_colors)
map_numeric <- as.numeric(map_factors)
map_matrix <- matrix(map_numeric, nrow = maprow, ncol = mapcol)
map_raster <- raster::raster(map_matrix)
map_raster <- raster::setExtent(map_raster, Fulanus_bbox)
raster::crs(map_raster) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 "
raster::plot(map_raster)

这可能吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

  

这张地图有很多白色区域,所以我想制作白色区域   透明[...]

这似乎有效:

map <- ggmap::ggmap(Fulanus_big)
r <- map$layers[[2]]$geom_params$raster
r[r=="#FFFFFF"] <- NA
map$layers[[2]]$geom_params$raster <- r
map

enter image description here