2017-04-16 3 views
4
# From http://leafletjs.com/examples/choropleth/us-states.js 
states <- geojsonio::geojson_read("json/us-states.geojson", what = "sp") 

bins <- c(0, 10, 20, 50, 100, 200, 500, 1000, Inf) 
pal <- colorBin("YlOrRd", domain = states$density, bins = bins) 

labels <- sprintf(
    "<strong>%s</strong><br/>%g people/mi<sup>2</sup>", 
    states$name, states$density 
) %>% lapply(htmltools::HTML) 

leaflet(states) %>% 
    setView(-96, 37.8, 4) %>% 
    addProviderTiles("MapBox", options = providerTileOptions(
    id = "mapbox.light", 
    accessToken = Sys.getenv('MAPBOX_ACCESS_TOKEN'))) %>% 
    addPolygons(
    fillColor = ~pal(density), 
    weight = 2, 
    opacity = 1, 
    color = "white", 
    dashArray = "3", 
    fillOpacity = 0.7, 
    highlight = highlightOptions(
     weight = 5, 
     color = "#666", 
     dashArray = "", 
     fillOpacity = 0.7, 
     bringToFront = TRUE), 
    label = labels, 
    labelOptions = labelOptions(
     style = list("font-weight" = "normal", padding = "3px 8px"), 
     textsize = "15px", 
     direction = "auto")) %>% 
    addLegend(pal = pal, values = ~density, opacity = 0.7, title = NULL, 
    position = "bottomright") 

Le code ci-dessus est copié de https://rstudio.github.io/leaflet/choropleths.html. J'essaie de reproduire la sortie. Cependant, je me suis coincé dans la première étape - le téléchargement du fichier geojson. J'ai utilisé le lien montré dans la première ligne, et l'enregistre comme un fichier texte, puis le renommer comme un fichier geojson. Mais j'ai échoué à lire ce fichier. De toute évidence, quelque chose ne va pas avec le téléchargement de fichiers ou le chargement de R, mais je n'ai aucune idée de l'endroit où il se trouve.Comment télécharger des données geojson et les lire à R

Quelqu'un peut-il donner des instructions? Je n'ai jamais traité de données geojson auparavant. J'ai juste besoin d'aide avec les deux premières lignes de codes, et je peux gérer tous les autres par moi-même.

Répondre

2

Le fichier de téléchargement a une tâche javascript en tête. Retrait il semble résoudre le problème,

library(geojson) 
library(geojsonio) 
url <- "http://leafletjs.com/examples/choropleth/us-states.js" 

# read as text file 
doc <- readLines(url) 

# remove the javascript assignment at the front 
doc2 <- gsub("var statesData = ", "", doc) 

# write out as a temp file and read 
write(doc2, file = "tempgeo.json") 
states <- geojson_read("tempgeo.json", what = "sp") 
+0

Merci! Cela rend tout reproductible. – Bin