2017-03-26 5 views
4

Ich habe ein Datenframe, wo meine ersten Spalten Geojson-Strings und die zweite eine Metrik für diesen Ort ist. Die Zeichenfolge in der ersten Spalte wird richtig gerendert, wenn sie in https://geojson.io/Verwenden Sie Zeichenketten von geoJSON mit Flugblatt

eingefügt wird. Ich möchte dies mit Flugblatt in R, wie im folgenden Link gezeigt, plotten. https://rstudio.github.io/leaflet/json.html

Leider weiß ich nicht, wie ich meine Daten in ein Format bekommen kann, das mit dem Prospekt funktioniert (scheinbar ein sp-Objekt).

Beispiel Datenreihe:

geojson <- '{"type": "Polygon", "coordinates": [[ [-104.05, 48.99], [-97.22, 48.98], [-96.58, 45.94], [-104.03, 45.94], [-104.05, 48.99] ]]}' 
measure1 <- 10000 
test_df <- data.frame(geojson, measure1) 
test_df$geojson <- as.character(test_df$geojson) 

Alle anderen Tipps, Best Practices in einer Situation wie dieser auch erkannt werden würde.

+0

versuchen https://github.com/ropensci/geojson oder https://github.com/ropensci/geojsonio – TimSalabim

Antwort

3

Ziemlich sicher leaflet erfordert, dass die Geojson einen properties Steckplatz haben. Sie können das tun mit geojson pkg, zB

library(leaflet) 
library(geojson) 
geojson <- '{"type": "Polygon", "coordinates": [[ [-104.05, 48.99], [-97.22, 48.98], [-96.58, 45.94], [-104.03, 45.94], [-104.05, 48.99] ]]}' 
geojson <- geojson::properties_add(geojson, population = 10000) 

Sie können natürlich die Eigenschaften manuell hinzufügen Schlitz die Zeichenfolge Manipulation, aber wir verwenden jqr, eine schnelle JSON-Parser, der es tun wird sicherstellen, rechts

measure1 <- 10000 
df <- data.frame(geojson, measure1, stringsAsFactors = FALSE) 

leaflet() %>% 
    addTiles() %>% 
    addGeoJSON(df$geojson) %>% 
    setView(-100, 47.6, 7) 

enter image description here

+0

zu tun, was genau – sckott

+0

Die genaue Stück Code in Ihrer Antwort nicht wirklich dra w ein Geojson, wenn ich es versuche. Die Karte rendert und ich bekomme keine Fehler, aber das Geojson ist nicht wie in Ihrem Bild gezeichnet. – user1923975

Verwandte Themen