You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中调整地图罗盘位置使其略高于比例尺

调整tmap地图中罗盘位置以避免与比例尺重叠

当前使用tmap绘制地图时,左下角的罗盘与比例尺出现重叠,需要将罗盘调整到略高于比例尺的位置。

修改前代码

library(terra)
library(geodata)
library(tmap)
library(sf)

brz <- geodata::gadm("Brazil", level=2, path=".")
mun <- brz[brz$NAME_2 == "Castro", ]

tm_shape(sf::st_as_sf(mun)) +
tm_borders() +
tm_scale_bar(position = c("LEFT", "BOTTOM"))+
tm_compass(size = 3, cardinal.directions = c("N", "E", "S", "W"), type = 'rose', position = c("left","BOTTOM"),show.labels = 2) 

解决方案

tmap的position参数支持用0-1范围的数值(0对应底部/左侧,1对应顶部/右侧)精确控制元素位置,而非仅用字符串标识。通过给罗盘设置比比例尺稍高的垂直位置数值,即可避免重叠:

修改后代码

library(terra)
library(geodata)
library(tmap)
library(sf)

brz <- geodata::gadm("Brazil", level=2, path=".")
mun <- brz[brz$NAME_2 == "Castro", ]

tm_shape(sf::st_as_sf(mun)) +
tm_borders() +
tm_scale_bar(position = c("LEFT", "BOTTOM"))+
tm_compass(size = 3, cardinal.directions = c("N", "E", "S", "W"), type = 'rose', 
           position = c("left", 0.08), # 微调垂直位置,避开比例尺
           show.labels = 2) 

说明

  • 比例尺保持默认贴合底部边缘的设置position = c("LEFT", "BOTTOM")
  • 罗盘的垂直位置设为0.08(可根据实际显示效果在0.07-0.1区间微调),会自动位于比例尺正上方,解决重叠问题

内容的提问来源于stack exchange,提问作者Antonio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:03:15