2011-12-10 5 views
6

In R, utilizzando il pacchetto mappe e la funzione gcIntermediate, come si disegnano le linee tra due paesi? Ha bisogno di lat-long, ma non sono sicuro di quale lat-long dovrei dare per i paesi (dire che voglio tracciare una linea tra USA e Svezia)Pacchetto mappe R - come disegnare linee tra paesi?

risposta

8

Ci sono più mappe che potresti usare, a seconda di quali informazioni/dettaglio/etc. è necessario, ma proprio per questo molto bello wrld_simpl farà bene:

library(maptools) 
library(geosphere) 

data(wrld_simpl) 

US_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'United States'] 
US_lon = wrld_simpl$LON[wrld_simpl$NAME == 'United States'] 

SWE_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'Sweden'] 
SWE_lon = wrld_simpl$LON[wrld_simpl$NAME == 'Sweden'] 

points = gcIntermediate(c(US_lon, US_lat), c(SWE_lon, SWE_lat), 100) 

dev.new(width=6, height=4) 
plot(wrld_simpl) 
lines(points, col='red') 

enter image description here

+0

Nizza! Lo sto facendo con le linee di molti paesi in Brasile. Per alcuni paesi dopo ~ 120 gradi est (come Australia, Nuova Zelanda, Giappone ...) le linee vanno verso est, diventano strette, vanno tutte a 360 gradi dall'altra parte dello schermo e poi continuano il suo percorso circolare. Qualche modo per risolverlo? – Rodrigo