从R中CSV中的坐标计算路线距离

Calculating route distance from coordinates in CSV in R

我想从 OSRM 计算坐标到坐标的路线距离(虽然我对其他服务开放)。

例如,一行会有"from"和"to"坐标,而不是获取点到点的距离,使用路由来获得更准确的距离图片旅行过。

我已经尝试了此处提供的脚本的每次迭代,并将我的数据削减为 25 行。

https://www.rdocumentation.org/packages/osrm/versions/3.3.0/topics/osrmTable

# Set the working directory
setwd("C:/Users/...")

# Load libraries
library(dplyr)
library(osrm)
library(geosphere)

# Bring in the data
mydata <- read.csv("coordinates.csv", stringsAsFactors=FALSE)

# Check and eliminate the rows that don't have location information 
mydata <- mydata[!is.na(mydata$fromlat),]
mydata <- subset(mydata, fromlat!=0)

mydata <- mydata[!is.na(mydata$tolat),]
mydata <- subset(mydata, tolat!=0)

# Create date for route
src <- mydata[c(7,10,9)]
dst <- mydata[c(7,12,11)] 

# Travel time matrix with different sets of origins and destinations
route <- osrmTable(src = src, dst = dst, exclude = NULL,
                   gepaf = FALSE, measure = "distance")

理想情况下,我希望使用路由将一个新列放入数据中,该列具有两个坐标之间的距离。

我已经计算出点对点距离,但我在路由方面遇到困难。

我在 运行 我的脚本

之后收到此消息
The OSRM server returned an error:
Error in function (type, msg, asError = TRUE) : Failed to connect to router.project-osrm.org port 80: Timed out

更新: 我试过使用 gmapsdistance,但也遇到了连接问题。我怀疑这是工作场所防火墙问题。我会调查并 post 结果。

事实上,我在阻止访问 OSRM 的防火墙后面。为了解决这个问题,我通过RStudio Cloud.

运行一个R的实例