如何将经纬度栅格投影到UTM坐标系并在tmap中添加东向北向轴
解决方法
你要实现的东向/北向坐标轴显示不需要依赖经纬网函数tm_graticules,直接用tmap内置的坐标轴函数tm_axis即可,该函数会自动读取当前栅格的平面投影坐标值,直接输出UTM对应的东向(X轴)、北向(Y轴)数值,单位默认和投影单位一致(你用的EPSG:26711单位为米)。
修改后的绘图代码示例
# - Plot with tmap ---- tm_shape(ned_raster2,unit.size=1,bbox=e2)+ tm_raster(legend.show=FALSE) + # 新增东向、北向坐标轴 tm_axis( side = c("bottom", "left"), title = c("东向坐标 (m)", "北向坐标 (m)"), text.rotation = c(90, 0), # 调整X轴标签旋转角度避免重叠 labels.size = 0.8, title.size = 0.9, labels.format = list(big.mark = ",") # 给坐标值加千位分隔符,方便阅读长数字 )
可选配置说明
- 如果需要同时保留经纬网和平面坐标轴,在上述代码基础上再加一行
tm_graticules(n.x=5)即可 - 可以通过调整
side参数控制坐标轴显示的位置,比如把东向坐标放在顶部、北向坐标放在右侧,只需要把参数改成c("top", "right") - 如果不需要显示坐标轴标题,删掉
title参数即可
内容的提问来源于stack exchange,提问作者gregor-fausto
相关产品推荐
相关产品推荐

