2017-07-03 36 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問題,並添加一個問題,如果有什麼都沒有。

相關問題