2013-06-29 47 views
1

我需要一些可視化地理數據的世界地圖。我已經瞭解到Flowing Data的great circle mapping tutorial,結果似乎很奇怪。它是這樣的:如何避免R世界地圖中的斷線?

The result is here

而且很顯然,我需要避免這些交叉畫面線條。但我該怎麼做?繪製地圖的代碼是這樣的:

map("world", col="#f2f2f2", fill=TRUE, bg="white",lwd=0.05) 
for (j in 1:length(location$lon)) { 
inter <- gcIntermediate(c(lon_nj, lat_nj), c(location$lon[j], location$lat[j]),  n=100, addStartEnd=TRUE) 
lines(inter, col="black", lwd=0.8) 
} 

我試圖通過GPE Automating great-circle map production in R

map("world", col="#f2f2f2", fill=TRUE, bg="white",lwd=0.05) 
for (j in 1:length(location$lon)) { 
inter <- clean.Inter(c(lon_nj, lat_nj), c(location$lon[j], location$lat[j]),n=100, addStartEnd=TRUE) 
    lines(inter, col="black", lwd=0.8) 
} 

提供的代碼,結果是這樣的: The inter-clear method

而我只是想使用最短的距離到達所需的位置。

而且從網絡像使用像greatCircle另一個函數()也未能實現我的目標的答案。

那麼,有沒有人有一些想法如何實現這一目的?

非常感謝!

+1

gcIntermediate有breakAtDateLine參數 – mdsumner

回答

1

一個選項將切換到該中心位於太平洋和分裂大西洋的地圖。這可能是最容易查看的。

另一種辦法是檢查對象間(可能是x和y名單,但我不熟悉使用的確切功能),看看X座標,往往增加或減少。尋找他們突然跳到另一個方向的地方,並在那裏插入一個NA(並且在y值的相同位置),那麼穿過整個地塊的線將不會顯示出來。如果這不起作用,您可以在任何點之間的距離超過閾值的地方插入NA。

另一個可能足夠好的快速構思(部分取決於每條曲線使用多少個點)是繪製點而不是線,請使用points(inter, pch='.')而不是線命令。

+0

所以我怎麼可能改變世界地圖的中心。我用這樣的代碼「map(」world「,col =」#f2f2f2「,fill = TRUE,bg =」white「,orientation = c(-10,167,0),lwd = 0.05)」但它總是告訴我plot && coord中的錯誤$ error:在'x && y'中'y'是錯誤的類型 – sikisis