Der folgende Code gut für das Zeichnen von Polygonen arbeitetGefüllte Polygone in R mit ggplot nicht
SP <- SpatialPolygons(spd)
centroids <- coordinates(SP)
x <- centroids[,1]
y <- centroids[,2]
SP1 <- SpatialPolygonsDataFrame(SP, data = data.frame(x = x, y = y, z = z, row.names = row.names(SP)))
ggplot(data = SP1, aes(x = long, y = lat, group = group)) + geom_path()
Stattdessen, wenn ich die letzten beiden Zeilen des Codes ändern, um diese Polygone zu füllen, basierend auf einem Wert Vektor es nicht funktioniert :
penetration <- runif(n = length(SP), min = 1, max = 10)
SP1 <- SpatialPolygonsDataFrame(SP, data = data.frame(x = x, y = y, z = z, value = penetration, row.names = row.names(SP)))
ggplot(data = SP1, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill=SP1$value))
spd wird mit Daten aus der folgenden Verbindung erstellt:
Datenquelle: https://www.google.com/maps/d/viewer?mid=1mf9TQY3bocarO4SaIXAtco_C1LE&hl=en_US
I extrahiert dann Koordinaten aus der KML-Datei ... die dann in eine Liste von Polygonen ist so, dass ich es mit etwas Plotten Funktion ziehen könnte ...
tkml <- getKMLcoordinates(kmlfile="Pune all Electoral Wards.kml", ignoreAltitude=T)
len <-length(tkml)
del <- NA
for(i in 1:len)
{
if(length(tkml[[i]]) == 2)
del <- c(del, i)
}
del <- del[-1]
tkmlCleaned <- tkml[!tkml %in% tkml[del]]
size <- length(tkmlCleaned)
sr <- vector(mode = "list", length = size)
srs <- vector(mode = "list", length = size)
spd <- list()
for(j in 1:length(sr))
{
sr[[j]] <- Polygon(tkmlCleaned[[j]])
srs[[j]] <- Polygons(list(sr[[j]]), j)
spd <- c(srs[[j]], spd)
}
Was ist 'spd'? Können Sie einen Datensatz hinzufügen, um dies reproduzierbar zu machen? – steveb
Da ich nicht gewohnt bin, im Stack-Überlauf zu posten, bitte keine Fehler bei der Formatierung – Aditya
Es ist am besten, Daten mit 'dput' bereitzustellen. Um 'spd' zu erhalten, würden Sie folgendes tun:' dput (spd) ' – steveb