gpt4 book ai didi

r - 自定义 tm_compass() 背景

转载 作者:行者123 更新时间:2023-12-05 03:07:01 27 4
gpt4 key购买 nike

在下面的代码中,如何为tm_compass()设置背景颜色和透明度,就像我可以为 map 标题做的那样?

library(tmap)
library(dismo)

ny.map <- gmap(x = "New York", zoom = 13, type = "satellite")

print(tm_shape(shp = ny.map) +
tm_raster() +
tm_compass(position = c("right", "top"),
type = "4star",
show.labels = 2) +
tm_layout(title = "New York",
title.bg.color = "white",
title.bg.alpha = 0.5))

enter image description here谢谢

最佳答案

看了CRAN手册,还以为做不成呢。我的解决方法是手动创建一个覆盖罗盘的多边形。这是一项乏味的工作,但这也许是现在要走的路。第一步是创建多边形。 extent() 为您提供经度和纬度的最小值和最大值。我使用 xmax 和 ymax 为多边形指定五个点。 (我试过值并找到了最佳值。)我们需要为多边形分配一个正确的投影。如果您在 R 控制台中键入 ny.map,您将看到 coord。引用。这是您需要的投影。然后,我使用 tm_shape()tm_fill() 将多边形添加到 map 。

lon <- c(extent(ny.map)[2]-2100, extent(ny.map)[2]-250, extent(ny.map)[2]-250, extent(ny.map)[2]-2100, extent(ny.map)[2]-2100)
lat <- c(extent(ny.map)[4]-250, extent(ny.map)[4]-250, extent(ny.map)[4]-2100, extent(ny.map)[4]-2100,extent(ny.map)[4]-250)

foo <- SpatialPolygons(list(Polygons(list(Polygon(cbind(lon, lat))), ID = 1)),
proj4string = CRS("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"))

tm_shape(shp = ny.map) +
tm_raster() +
tm_shape(shp = foo) +
tm_fill("red", alpha = 0.4) +
tm_compass(position = c("right", "top"),
type = "4star",
show.labels = 2) +
tm_layout(title = "New York",
title.bg.color = "white",
title.bg.alpha = 0.5)

enter image description here

关于r - 自定义 tm_compass() 背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com