R - 计算沿折线的两点之间的距离

时间:2018-02-04 17:29:16

标签: r distance polyline

在R中 - 我导入了一条不直的折线形状文件(代表一条绕行的州际高速公路)进入环境。我读过一个.csv文件,其中包含环境中的点(纬度/经度,十进制度)。所有这些点都位于折线上。

如果我采取两个随机点我可以计算"当乌鸦飞过"它们之间的距离使用大圆距离计算。但我们需要的是沿折线行进的距离。见参考图像:

https://i.stack.imgur.com/zhorb.png

是否有人知道R包可以计算沿折线的两个纬度/经度点之间的距离?

1 个答案:

答案 0 :(得分:1)

PBSmapping有一个calcLength函数,可以直接计算折线或多边形的长度(用PolySet表示)。如果你的shapefile是那种格式,那么包也可以导入ESRI shapefile。

简单折线的示例:

line = read.table(text = "X, Y, POS, PID
37.772, -122.214, 1, 1
21.291, -157.821, 2, 1
-18.142, 178.431, 3, 1
-27.467, 153.027, 4, 1", header = TRUE, sep = ",")

library(PBSmapping)
pline = as.PolySet(line, projection = 1)

calcLength(pline)
  PID   length
1   1 404.8539 

plotLines(pline)

enter image description here