Ich verwende die ggmap route-Funktion zu berechnen und visualisieren Hunderte von Routen mit D.C. Capital Bikeshare Daten. Ich bin erfolgreich in der Lage, dies mit einem kleinen Problem zu tun, die Route folgt nicht Straßen, insbesondere gebogenen Straßen (siehe Screenshot unten). Gibt es eine Möglichkeit, meinen Code für detailliertere Pfade an alle anzupassen?Wie bekomme ich ggmap route Daten zu folgen Weg
library(tidyverse)
library(ggmap)
# Example dataset
feb_14 <- read.csv('https://raw.githubusercontent.com/smitty1788/Personal-Website/master/dl/CaBi_Feb_2017.csv', stringsAsFactors = FALSE)
# Subset first 300 rows, keep start and end Lat/Long strings
start<-c(feb_14[1:300, 14])
dest<-c(feb_14[1:300, 15])
# df of individual routes
routes <- tibble(
start,
dest)
# Function to calculate route
calculationroute <- function(startingpoint, stoppoint) {
route(from = startingpoint,
to = stoppoint,
mode = 'bicycling',
structure = "route")}
# Calculate route path for all individual trips
calculatedroutes <- mapply(calculationroute,
startingpoint = routes$start,
stoppoint = routes$dest,
SIMPLIFY = FALSE)
# Unlist and merge in single dataframe
do.call(rbind.data.frame, lapply(names(calculatedroutes), function(x) {
cbind.data.frame(route=x, calculatedroutes[[x]], stringsAsFactors=FALSE)
})) -> long_routes
# create map with routes
basicmap <- get_map(location = 'washingtondc',
zoom = 13,
maptype = "toner-background",
source = "google",
color = "bw")
basicmap <- ggmap(basicmap)
basicmap + geom_path(data=long_routes,
aes(x=lon, y=lat, group=route), color = "red",
size=1, alpha = .4, lineend = "round")
mit 'output = "all"' 'innen Route versuchen, Datenrahmen zu erstellen (von = startpoint, bis = stoppoint, mode = 'radfahren', structure = "route", output = "all") ' – SymbolixAU
Das verursacht die do.call (rbind ... um diesen Fehler zu werfen. Fehler in (Funktion (..., Zeilenname s = NULL, check.rows = FALSCH, check.names = TRUE,: Argumente implizieren unterschiedliche Anzahl von Zeilen: 1, 0 –
Mapzen's Valhalla ist ein Webservice, der Routen von Punkt zu Punkt, einschließlich GeoJSON der Route bereitstellen kann. https://mapzen.com/blog/valhalla-intro/. Das GeoJSONio-Paket kann das scheinbar verbrauchen. –