2013-04-02 18 views
8
library(maps) 
1> map.where(database="world",29.392089,53.592505) 
[1] "USSR" 

qualcuno sa come posso ottenere un database della mappa mondiale aggiornato per utilizzare questa funzione nel pacchetto mappe? Ho bisogno di nomi di paesi solo per ora, non dettagliate informazioni amministrative sub-nazionali come quelle disponibili su gadm.org.Mappa mondiale aggiornata per pacchetto "mappe" R?

+0

probabilmente c'è un modo per eseguire un'attività equivalente con il pacchetto 'rworldmap', ma non riesco a capirlo subito ... –

+0

Intendi qualcosa come http://geocommons.com/overlays/33578? Le mappe e i mapdata –

+1

sono davvero obsoleti e anche topologicamente sporchi, è facile ricavarne delle forme spezzate: lo eviterei solo per le mappe di sfondo più ruvide. A volte, anche se dovrai trovare la tua fonte, rgdal è la migliore scommessa per la lettura. – mdsumner

risposta

8

Provare wrld_simpl nel pacchetto maptools.

require(maptools) 
data(wrld_simpl) 
plot(wrld_simpl) 

## or subset based on the name 
plot(wrld_simpl[wrld_simpl$NAME == "Russia", ]) 
## explore other attributes 
summary(wrld_simpl) 

Non so come fino ad oggi lo è, ma ?wrld_simpl descrive l'origine in modo si potrebbe trovare roba buona seguendo i link. Altri pacchetti che si basano su sp valgono anche la pena di esplorare i dati.

Altrimenti, c'era il pacchetto Rgshhs, anche se non sono sicuro che sia ancora disponibile. È arrivato con un buon dettaglio ma puoi scaricarne altri se ne hai bisogno. E 'un po' complicato, il dato originale è qui: http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html

si può anche leggere i dati da formati vettoriali (come MIF o SHP o PostGIS) utilizzando rgdal se avete i propri dati, o funzioni di lettura simili maptools per shapefile solo.

Esempio per interrogare gli oggetti utilizzando punti:

require(sp) 
require(maptools) 
data(wrld_simpl) 
pts <- SpatialPoints(cbind(c(29.392089,147), c(53.592505, -35)), CRS(proj4string(wrld_simpl))) 

over(pts, wrld_simpl)$NAME 

Per un'introduzione a queste e altre funzioni in sp vedi bollino ("sp").

Prova anche il pacchetto geonames per l'interrogazione più generale dei nomi geografici.

+0

grazie, ma come faccio a interrogare quei set di dati usando qualcosa come 'map.where (database =" wrld_simpl ", 29.392089,53.592505)'. La sua non funziona. Non ho bisogno di creare mappe visive, ho solo bisogno di essere in grado di dare coordinate e ottenere nomi di paesi. –

+0

ok, aggiunto un esempio: mi mancava quella parte della tua domanda e pensavo solo alla mappa attuale. maps :: map.where non ti aiuterà. – mdsumner