2017-07-03 37 views
0

我想绘制一个多边形geom_sf()在任何投影其他latlong。使用geom_sf()绘制除了latlong以外的任何投影的sf对象

我使用的manual pages for geom_sf()

发现输入数据集的例子:

nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE) 

从经纬度到EPSG转化:3857

nc_3857 <- sf::st_transform(nc, "+init=epsg:3857") 

最后用ggplot定义的CRS绘制剧情:

ggplot() + geom_sf(data = nc_3857, colour = "red", fill = NA) + coord_sf(crs=st_crs(3857)) 

我一直在wgs84(即epsg:4326)中使用lat长轴获取地图。我想要以米为单位的轴,所以我需要ggplot来绘制投影多边形。我究竟做错了什么?

在此先感谢 泽

回答

0

它在请求的投影绘制它,它只是覆盖经纬度长的刻度。

例如,如果您尝试与挪威类似的情况,例如接近北极,您可以看到显示的X-Y坐标是变换的坐标,但叠加的格线是经纬度的。这是地图挪威这是3035 EPSG(圆锥形)的坐标:

enter image description here

所以绘制投影多边形。如果这里的经纬线是一个网格,那么它将把坐标绘制成纬向投影。

在文档刻度的唯一一提的是对Arg的coord_sf

datum: CRS that provides datum to use when generating graticules 

实际上并不多言。

你只想要一个笛卡儿坐标系?哦,让我们尝试:

> ggplot() + geom_sf(data = rp, colour = "red", fill = NA) + coord_cartesian() 
Error: geom_sf() must be used with coord_sf() 

检查与geom_sf替代刻度的GGPLOT2问题,并添加一个问题,如果有什么都没有。

相关问题