【问题标题】:Calculating route distance from coordinates in CSV in R从R中CSV中的坐标计算路线距离
【发布时间】:2019-07-08 23:14:56
【问题描述】:

我想从 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,但也遇到了连接问题。我怀疑这是工作场所的防火墙问题。我会调查并发布结果。

【问题讨论】:

  • 连接到 Internet 时出现错误。您是否位于阻止访问的防火墙后面?
  • 很可能是这样。运行我自己的实例,如下所示:github.com/Project-OSRM/osrm-backend 解决这个问题吗?还是我应该尝试其他服务?

标签: r csv distance osrm


【解决方案1】:

确实,我位于阻止访问 OSRM 的防火墙后面。为了解决这个问题,我正在通过RStudio Cloud 运行一个 R 实例。

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多