2016-06-25 3 views
0

Ich habe eine JSON-Datei einer langen Route. Die Datei enthält den Längen- und Breitengrad dieser Route.Wie unterschiedliche Farben zu verschiedenen Abschnitten einer Route auf Prospektkarte? [R Studio]

Ich versuche, verschiedene Abschnitte dieser Route basierend auf einer Reihe von Kriterien zu markieren (die ich in einem Datenrahmen kompiliert habe). Allerdings sehe ich mich Problemen gegenüber:

1) Wie kann ich diesen langen Satz von Lat und Longs in Segmente aufteilen? (Dies kann nicht manuell erfolgen, da ich viele Routenvariationen habe)

2) Wie weise ich jedem Segment eine variable Farbe zu?

Ich beabsichtige, Prospekt (für seine Interaktivität) zu verwenden, aber ich bin offen für bessere Vorschläge.

Antwort

0

Bei der Arbeit mit räumlichen Daten hilft es, räumliche Klassen zu kennen! Ich gehe davon aus Sie Hacke kennen Ihre JSON-Datei als Datenrahmen in R. lesen

hier ein reproduzierbares Beispiel:

library(mapview) 
library(sp) 

### create some random data with coordinates from (data("breweries91", package = "mapview")) 
set.seed(123) 
dat <- data.frame(val = as.integer(rnorm(32, 10, 2)), 
        lon = coordinates(breweries91)[, 1], 
        lat = coordinates(breweries91)[, 2]) 

### state condition for creation of lines 
cond <- c(8, 9, 10) 

### loop through conditions and create a SpatialLines object for each condition 
lns <- lapply(seq(cond), function(i) { 

    ind <- dat$val == cond[i] 
    sub_dat <- dat[ind, ] 

    coords <- cbind(sub_dat$lon, sub_dat$lat) 
    ln <- coords2Lines(coords, ID = as.character(cond[i])) 

    proj4string(ln) <- "+init=epsg:4326" 
    return(ln) 
}) 

### view lines with mapview 
mapview(lns[[1]], col = "darkred") + 
    mapview(lns[[2]], col = "forestgreen") + 
    mapview(lns[[3]], col = "cornflowerblue") 

Wesentlichen, was wir hier machen, ist eine gültige sp erstellen :: SpatialLines Objekt für jede Bedingung, die wir angeben. Wir stellen diese unter Verwendung mapview dar, die Sie Interaktivität genannt haben. Plotten von Geo-Objekten können in vielerlei Hinsicht (Basis, Gitter, ggplot2, Faltblatt, ...), so gibt es viele Möglichkeiten zur Auswahl erreicht werden. Werfen Sie einen Blick auf sp Gallery für ein nettes Tutorial.

Hinweis: Diese Antwort ist nur für nicht projizierte geografische Koordinaten (d. H. Breiten-/Längengrad) gültig!

Verwandte Themen