R 从SpatialLines(数据帧)获取两点之间的最短/最快路径

R 从SpatialLines(数据帧)获取两点之间的最短/最快路径,r,geospatial,gdal,polyline,sp,R,Geospatial,Gdal,Polyline,Sp,我有一个大型河流网络作为SpatialLines(数据帧),并希望将其子集,因此我得到一个SpatialLine,它在两个空间点(数据帧)之间只有最短/最快的路径,可能需要首先捕捉到线上 在示例代码中,我希望在直线上移动时,获得红点之间最近的直线。我还想在左红点和右蓝点之间移动,这需要捕捉到最近的空间线 library(sp) x <- c(1,5,6,8) y1 <- c(1,3,4,7) y2 <- c(5,5,5,2) L <- SpatialLines(

我有一个大型河流网络作为SpatialLines(数据帧),并希望将其子集,因此我得到一个SpatialLine,它在两个空间点(数据帧)之间只有最短/最快的路径,可能需要首先捕捉到线上

在示例代码中,我希望在直线上移动时,获得红点之间最近的直线。我还想在左红点和右蓝点之间移动,这需要捕捉到最近的空间线

library(sp)    
x <- c(1,5,6,8)
y1 <- c(1,3,4,7)
y2 <- c(5,5,5,2)

L <- SpatialLines(list(Lines(Line(cbind(x,y1)), ID="a"),Lines(Line(cbind(x,y2)), ID="b")))
P <- SpatialPoints(data.frame(x=c(1,8),y=c(1,2)))
P_snap <- SpatialPoints(data.frame(x=c(8),y=c(1)))

plot(L)
points(P,col="red")
points(P_snap,col="blue")
库(sp)
x