使用R和OpenStreetMap (OSM)计算两个坐标之间步行的旅行时间

问题描述 投票:0回答:1

我正在尝试使用 OpenStreetMap 通过两个坐标来计算步行时间。

我正在使用此数据集:https://github.com/JayScribes/Geocode-Distance/blob/main/NYC%20Bike%20Share%20Data.csv

这是我的代码:

library(readr)
NYC_Bike_Share_Data <- read_csv("NYC Bike Share Data.csv")
View(NYC_Bike_Share_Data)

library(osrm)
osrm_conn <- osrm::osrmTable(profile = "foot-walking")
 
origen<-c(NYC_Bike_Share_Data$ss_lat,NYC_Bike_Share_Data$sslong)
destino<-c(NYC_Bike_Share_Data$es_lat,NYC_Bike_Share_Data$es_long)


duracion <- osrmTable(osrm_conn, loc = c(origen, destino))$durations[1]

输出:

Error: "loc" should be a data.frame or a matrix of coordinates, an sfc POINT object or an sf POINT object.
r openstreetmap distance
1个回答
0
投票

您的定义不正确,您正在使用

c()
函数创建向量而不是数据框/矩阵。
此外,按照惯例,将经度列为第一列,后跟纬度。
以下内容应该适合您:

NYC_Bike_Share_Data <- read.csv("NYC Bike Share Data.csv")

library(osrm)
osrm_conn <- osrm::osrmTable(profile = "foot-walking")

origen<-NYC_Bike_Share_Data[ ,c("ss_long", "ss_lat")]
destino<-NYC_Bike_Share_Data[ ,c("es_long", "es_lat")]

duracion <- osrmTable(src = origen, dst =destino,  osrm_proifile = "foot", measure = "durations")
© www.soinside.com 2019 - 2024. All rights reserved.