我有一个公交网络提供的GTFS,想计算给定线路内每对站点之间的距离(以公里为单位)。
我有两个成对的清单(lon,lat)。第一个列表代表路线,第二个列表代表车站。重要的是要注意,这些停靠点可以在直线上或旁边,因此它们可以或不能成为第一个点列表的一部分:
linea <- shape_ruta %>%
select(shape_pt_lon, shape_pt_lat)
puntos <- viaje_ruta %>%
select(stop_lon, stop_lat)
直到现在我要做的是使用以下代码来识别最接近停靠点的直线点:
d = dist2Line(puntos, linea, distfun=distHaversine)
plot(makeLine(linea), type = 'l')
points(linea)
points(puntos, col = 'blue', pch = 20)
points(d[,2], d[,3], col = 'red', pch = 'x')
for (i in 1:nrow(d)) lines(gcIntermediate(puntos[i,], d[i,2:3], 10), lwd = 2)
有了这个,我得到“ d”,它是直线上与每个停靠点和下图最接近的点:
Graph with the line, stops and closest points in the line
我现在不知道该怎么做,是按照线的形状计算该线段中每个线段(从一个红色的点到另一个,基本上是“ d”中的点)的距离(以公里为单位)
我已经使用了几天,将非常感谢您的帮助:)