Я хотел бы рассчитать расстояние по маршруту от координаты до координаты из OSRM (хотя я открыт для других служб).
Например, строка будет иметь координаты «от» и «до»и вместо получения расстояния от точки до точки используйте маршрутизацию, чтобы получить более точную картину пройденного расстояния.
Я перепробовал каждую итерацию представленного здесь сценария и сократил свои данныедолжно быть 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, и у меня также возникает проблема с подключением.Я подозреваю, что это проблема брандмауэра на рабочем месте.Я посмотрю на это и опубликую результаты.