如何在shapefile中计算沿网络的距离?在R

如何在shapefile中计算沿网络的距离?在R,r,networking,gis,distance,shapefile,R,Networking,Gis,Distance,Shapefile,我在一个shapefile(类:“SpatialLinesDataFrame”)中有一个河流网络,上面有一些点(见下图) 我想计算点之间的距离,但是沿着河流。我已经搜索了很多,但我找不到任何直接允许这样做的函数 我找到的最接近的东西是“secrlinear”包中的函数“networkdistance”,但是我无法将我的shapefile转换为使用该函数所需的格式(“linearmask”对象) 对此,我们将不胜感激 提前感谢, 蒂娜 我认为我们离线解决了这个问题:需要投影shapefile的地理

我在一个shapefile(类:“SpatialLinesDataFrame”)中有一个河流网络,上面有一些点(见下图)

我想计算点之间的距离,但是沿着河流。我已经搜索了很多,但我找不到任何直接允许这样做的函数

我找到的最接近的东西是“secrlinear”包中的函数“networkdistance”,但是我无法将我的shapefile转换为使用该函数所需的格式(“linearmask”对象)

对此,我们将不胜感激

提前感谢,

蒂娜


我认为我们离线解决了这个问题:需要投影shapefile的地理坐标(lat/long),然后才能在secrlinear中使用。该软件包近似于线性网络,并使用igraph函数表示距离。

我知道这是一个老问题,但为了防止将来有人遇到这个问题:我刚刚发布了一个R软件包(riverdist),它处理这个问题,还提供了一些用于网络编辑、数据摘要和可视化的工具。它是在考虑渔业工作的情况下写的,但可能适用于你正在做的工作,或者至少这是希望


抱歉,这样做不及时-

假设您可以唯一地识别每个点,您可以计算沿河流从点到点的累计距离总和。您需要对河流(即点)进行“分组”,例如,点填充最多的河流中的四条河流。结果是近似的,但是有几个包可以计算点与点之间的陆地英里(或公里)。也许路线可以帮助你:谢谢!按照@lawyeR的建议,我需要以某种方式提取两个给定点之间的河流部分。一旦我有了它,就更容易得到形成河流形状文件的点之间的累积和。问题是我必须承认我不知道如何将河流的部分隔离在两个点之间…谢谢@Edi,但显然我也无法将我的shapefile转换为igraph类…但是如果你能在河流网络上找到这些点,你必须将它们绘制为红点,你可以添加一列,按河流对它们进行分组,然后沿河排序,对吗?太棒了!非常感谢。我的问题是计算从地图上的两点到公交路线形状文件上的距离。你的函数能推断出我的问题吗?干杯