运行下面的基本代码会生成一张地图,其中两极附近的纬度线被压缩。它类似于 Gall-Peters,但它是什么?
library(tmap)
library(sf)
library(tidyverse)
sf_use_s2(TRUE) ## helps us with spherical geometry
data("World") ## get built-in data from the tmap package
world.sf <- World
st_crs(world.sf)
ggplot(world.sf) + geom_sf()
默认投影是等距柱状投影,又名板状投影。在任何地方,一度的纬度与一度的长度大小相同。
您可以通过在极值周围添加一些 5x5 正方形经纬度多边形来确认这一点,并注意它们如何投影为正方形:
sq = st_sfc(st_polygon(list(cbind(c(0,5,5,0,0),c(82,82,87,87,82)))), crs=st_crs(World))
sq2 = st_sfc(st_polygon(list(cbind(c(170,175,175,170,170),c(82,82,87,87,82)))), crs=st_crs(World))
ggplot(World) + geom_sf() + geom_sf(data=sq) + geom_sf(data=sq2)
从侧面看,Gall-Peters 就像一个椭圆柱,Plate Caree 忽略了经纬度的球形性质,并将其绘制为笛卡尔坐标。在 Plate Caree 中,您甚至可以有愚蠢的事情,例如纬度大于 90 度...
sq = st_sfc(st_polygon(list(cbind(c(0,5,5,0,0),c(82,82,187,187,82)))), crs=st_crs(World))
ggplot(World) + geom_sf() + geom_sf(data=sq)
tm_shape
的帮助页面显示了如何在Eckhart IV投影中绘制此地图,我认为help(World)
中提到的“默认”确实是自然地球更喜欢此数据的投影。