连续点之间的距离

时间:2013-12-11 16:46:21

标签: r

我有一个包含经度和纬度数据的数据框,我想计算每个连续点之间的距离。

我发现geosphere包中的distm计算距离,但它需要输入经度/纬度(可以是两个数字的向量,一个2列的矩阵(第一个是经度,第二个)是来自两个连续点的纬度)或SpatialPoints*个对象。

distm(x, y, fun=distHaversine)

如何生成xy

编辑:

@Josh O'Brien评论:

PTS

lon   lat

30.5 -42.5  
31.5 -42.5  
32.5 -43.5  
33.5 -43.5
35.5 -43.5

我得到了

segDists

82198.54  137803.62   80876.19  161749.47      

1 个答案:

答案 0 :(得分:0)

将您的数据用作dat:

sapply(2:nrow(dat),function(i){distm(dat[i-1,],dat[i,])})
#  [1]  82072.86 137911.46  80747.82 161492.73

如果您在代码段中将distHaversine(...)替换为distVincentyEllipsoid(...),则与@JoshObrien的结果相同。