簡體   English   中英

將shapefile添加到ggmap

[英]Add shapefile to ggmap

這里描述的問題有點類似,我在對齊shapefile和ggmap對象時遇到麻煩。

  1. 我的shapefile由澳大利亞維多利亞州的局部邊界組成,我正在嘗試將其覆蓋在州(維多利亞州)的Google地圖上。

    源shapefile具有以下PROJ4字符串(從prj文件中提取)

     [+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs] 

    對應於EPSG:4283

    這是我的shapefile對象sp的摘要:

     > summary(sp) Object of class SpatialPolygonDataFrame Coordinates: min max x 96.81677 159.109219 y -43.74051 -9.142176 Is projected: FALSE proj4string: [+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs] 
  2. 我將shapefile轉換為與Google的偽墨卡托投影相匹配(至少這是我認為的做法)

     sp <- spTransform(sp, CRS("+proj=longlat +init=epsg:3857")) 

    並將sp轉換為強化的數據df.sp

  3. 然后我用

     map <- get_map("Victoria", zoom = 7, maptype = "terrain", source = "google") 

    獲取維多利亞州的Google地形圖,並對其進行(gg)繪制

     ggmap(map) + geom_polygon(data = df.sp, aes(x = long, y = lat, group = group)) + coord_equal() + theme_map() 

維多利亞地圖

從結果圖中可以明顯看出shapefile坐標和googlemap坐標不重疊。 我在坐標變換中做錯了嗎? 如何正確匹配shapefile和googlemap坐標? 對於這個問題的任何幫助/見解,我將不勝感激。

這是我的第一篇文章,如果樣式不理想,請原諒我。 我發現,無論出於何種原因, rgdal軟件包中的默認ESPG:3857都無法在spTransform函數中正確轉換投影。

  • 使用基因在GIS Prj2EPSG 的精彩回答,我被定向到Prj2EPSG網站和Spatial Reference網站。 我仔細檢查了ABS的proj4字符串(我假設這是數據的來源),它就是您所說的(即EPSG:4283 )。

  • 在空間參考中輸入EPSG:3857時,我得到了這個字符串(使用+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs鏈接) +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

  • 我將+proj=merc替換為+proj=longlat以投影經度和緯度坐標。

  • 與僅使用+init=epsg:3857相比,使用替換了merc字符串似乎給我更好的結果,這向我表明rgdal包處理它的方式有所不同。

我希望聽到進一步改進的方法,但是我希望這可以幫助您同時獲得更好的結果。


編輯:我還發現,當使用ggplot2進行繪制時,添加coord_map()似乎可以在向上關閉時修復形狀文件的對齊方式,但是在進一步縮小時會使其稍微偏離一點。 在7或更高的縮放比例下,我似乎獲得了完美的對齊,但是在6或更低的縮放比例下卻沒有。 似乎無論出於何種原因,不同的縮放級別都會稍微改變投影。

所以嘗試

ggmap(map) + 
  geom_polygon(data = df.sp, aes(x = long, y = lat, group = group)) +
  coord_equal() + 
  theme_map() + 
  coord_map()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM