2017-07-14 181 views
0

我正在嘗試將多個空間圖層繪製到一張地圖上。我不能縫我的點到美國地圖上。我正在使用ggplot來映射這些空間數據。在命令add = TRUE中添加點(座標)到「midwst」地圖上遇到問題。我可以將兩者分開繪製,但可以使用一些幫助在midwst地圖上獲取座標。我覺得我可能不會使用正確的包命令彼此,但不能告訴。在R中繪製多個圖層

setwd("D:") 

midwst <- readOGR(dsn="/ne_50m_states", layer="us") 
fsites = read.csv(file = "/WHAT Baseflow//final_sites.csv", header=T, 
sep=",") 

#Identify pts and Change projection 

coords <- SpatialPoints(fsites[,c("Longitude", "Latitude")]) 

projection(coords) <- CRS("+init=epsg:2163") 
spTransform(coords,CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 
+towgs84=0,0,0")) 

#Extract States from US Map 
plot(midwst, axes = T) 
plot(coords, pch = 21, bg = "red", cex = .5, axes = T) 
+0

繪製多層的例子及其可能的轉變已經錯了,點在正確的地方的arent。 'bbox(coords)'說什麼?如果你「繪製(座標)」,然後添加一些軸作爲參考('axis(1); axis(2)'),那麼數字看起來是否正確? 「fsites」的經度和緯度欄是否真的在EPSG:2163? – Spacedman

+0

什麼是'ggplot'與它有關?我沒有看到你在這裏使用它。 – Spacedman

+0

你是否打算在第二個plot函數調用中執行'「add = TRUE」?你在文本中說'add = TRUE',但是你的代碼有'axes = T'並且沒有'add'參數。有些東西是不正確的...... – Spacedman

回答

-1

下面是使用R基本方法

# Import "raster" package 
library(raster) 
# Get "Vietnam" from online database called GADM 
HN<-getData(name = "GADM",country="Vietnam",level=0) 

# Plotting HN map 
par(mar=rep(2,4)) 
plot(HN,border="black",axes=T) 

# Create some sample coordinates 

df<-data.frame(x=seq(105,106,by=0.5),y=seq(20,21,by=0.5)) 

library(sp) 
# Building a spatial point object 
coordinates(df)<-~x+y 

proj4string(df)<-CRS("+proj=longlat +datum=WGS84") 

# Overlaying the spatial point object on Vietnam map 
plot(df,add=T,col=2) 
+0

是的,我這樣做了,但是每當我向點添加add = T命令,他們都不會繪製。當我刪除add = T時,我能夠看到空間中的點 –

+1

問題比這更深,並且可能是座標轉換問題,將一組數據放在錯誤的地方。看到我的評論。 – Spacedman

+0

如果您不提供數據集,我認爲這對我來說很困難。你爲什麼點擊「無用」按鈕? – Tuyen