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

使用ggplot和geom_sf实现跨国际日期变更线地图重居中

问题说明

使用rnaturalearth包绘制欧洲地图时,俄罗斯跨国际日期变更线的远东领土会被显示在地图最左侧,导致图面存在大量无效空白,需要对地图做重新居中优化,确认是否需要手动将左侧的空间多边形移动到右侧。

复现代码

library(rnaturalearth)
library(tidyverse)

ne_countries(returnclass = "sf", continent = "europe") %>% 
  ggplot() + 
  geom_sf()

初始绘制效果

初始绘制存在大量空白的欧洲地图

本复现实例于2022-07-02由reprex包(v2.0.1)创建生成

解决方法

不需要手动拆分、移动空间多边形,直接用sf包内置的经度平移函数即可自动处理跨国际日期变更线的要素,再配合范围裁剪就能消除无效空白,具体操作如下:

  • 加载sf包用于空间数据处理
  • 调用st_shift_longitude()自动将跨180°经线的俄罗斯远东部分从地图左侧平移到右侧
  • 对绘图范围做裁剪,去掉边缘多余空白,也可根据需要切换适配欧洲的投影坐标系优化显示

优化后的可运行代码:

library(rnaturalearth)
library(tidyverse)
library(sf)

ne_countries(returnclass = "sf", continent = "europe") %>%
  # 自动平移跨日期变更线的几何要素
  st_shift_longitude() %>%
  ggplot() +
  geom_sf() +
  # 限定欧洲显示范围,消除无效空白,可按需调整经纬度边界
  coord_sf(xlim = c(-30, 70), ylim = c(34, 73), expand = FALSE)
  • 如果需要更专业的欧洲地图显示效果,可以在coord_sf()中指定欧洲专用投影,比如设置crs = st_crs(3035)调用ETRS89/LAEA Europe等面积投影,显示效果会更符合常规欧洲地图的视觉习惯。

内容的提问来源于stack exchange,提问作者Kene David Nwosu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:15:31