2016-06-23 1 views
1

Je veux dessiner une carte de l'Australie et représenter chaque ville comme un point. Sélectionnez ensuite les villes avec une population élevée (> 1M)Carte Villes australiennes - R spatial

library(sp) 
library(maps) 
data(canada.cities) 
head(canada.cities) 

J'ai vérifié le paquet sp où cela peut être fait pour le Canada et d'autres pays. Mais les détails de l'Australie ne sont pas là. Existe-t-il un moyen spécial d'obtenir les données pour un pays que nous aimons (nom des villes, long, lat, pop)?

+0

Il y a aussi https://cran.r-project.org/web/packages/oz/oz.pdf – thelatemail

+0

Ouais j'ai essayé, mais il doesn 't ont les villes ou toute population détails – Jay

+0

'world.cities [world.cities $ country.etc ==" Australie ",]' et 'map.cities (pays =" Australie ", minpop = 1e6)' – thelatemail

Répondre

4

Maintenant, vous avez les données à l'aide world.cities, vous pouvez les tracer quelques façons

library(maps) 
df <- world.cities[world.cities$country.etc == "Australia",] 

terrain de base de points

plot(df[, c("long", "lat")]) 

sur un ggmap

library(ggmap) 

myMap <- get_map(location = "Australia", zoom = 4) 

ggmap(myMap) + 
geom_point(data = df[, c("long","lat", "pop")], aes(x=long, y = lat, colour = pop > 1000000)) 

enter image description here

Sur une carte leaflet

library(leaflet) 

## define a palette for hte colour 
pal <- colorNumeric(palette = "YlOrRd", 
        domain = df$pop) 

leaflet(data = df) %>% 
    addTiles() %>% 
    addCircleMarkers(lat = ~lat, lng = ~long, popup = ~name, 
        color = ~pal(pop), stroke = FALSE, fillOpacity = 0.6) %>% 
    addLegend(position = "bottomleft", pal = pal, values = ~pop) 

enter image description here