2015-04-04 101 views
0

我已經得到了我使用的地圖和岩石圈的功能,看起來像一個航空地圖內置的地圖。但是,我想添加箭頭來顯示地圖中「路線」的方向。您可以在下面看到我的當前工作代碼(基於來自FlowingData的神奇教程)。我已經嘗試過使用箭頭函數代替線條函數,但我不確定如何使箭頭與地圈曲線一起走,或者確保箭頭沿着線條間隔,以便它們看起來像這樣:如何在R中的地圖上添加方向箭頭?

- > - > - >

我難以置信的新R,所以任何和所有幫助將不勝感激。提前致謝。

library(maps) 
library(geosphere) 
read.csv("http://marsiccr.github.io/Data/airports.csv", header=TRUE, as.is=TRUE) -> airports 
read.csv("http://marsiccr.github.io/Data/leaders.csv", header=TRUE, as.is=TRUE) -> flights 
pal <- colorRampPalette(c("#f2f2f2", "blue")) 
colors <- pal(100) 
colleges<-NULL 
colleges$name <- airports$insname 
colleges$long <- airports$long 
colleges$lat <- airports$lat 
colleges 
map("state") 
map("state", col="#f2f2f2", fill=TRUE, bg="white", lwd=0.25) 
fsub <- flights[flights$type == "aau",] 
fsub <- fsub[order(fsub$cnt),] 
maxcnt <- max(fsub$cnt) 
for (j in 1:length(fsub$type)) { 
air1 <- airports[airports$unitid == fsub[j,]$school1,] 
air2 <- airports[airports$unitid == fsub[j,]$school2,] 
inter <- gcIntermediate(c(air1[1,]$long, air1[1,]$lat), c(air2[1,]$long, air2[1,]$lat), n=100, addStartEnd=TRUE) 
colindex <- round((fsub[j,]$cnt/maxcnt) * length(colors)) 

lines(inter, col=colors[colindex], lwd=0.8) 
} 

回答

0

滑倒這個代碼進入for循環剛過inter<-讓我箭頭(和一些警告)

tinter <- tail(inter,2) 
arrows(tinter[1,1], tinter[1,2], tinter[2,1], tinter[2,2]) 

enter image description here

顯然有一些調整來完成。有關全部選項,請參閱?arrows。您還可以使用inter矩陣中的倒數第二個(或倒數第五個?)點。您可能也只想爲選定的路線輸入箭頭。

相關問題