在R中 - 我导入了一条不直的折线形状文件(代表一条绕行的州际高速公路)进入环境。我读过一个.csv文件,其中包含环境中的点(纬度/经度,十进制度)。所有这些点都位于折线上。
如果我采取两个随机点我可以计算"当乌鸦飞过"它们之间的距离使用大圆距离计算。但我们需要的是沿折线行进的距离。见参考图像:
https://i.stack.imgur.com/zhorb.png
是否有人知道R包可以计算沿折线的两个纬度/经度点之间的距离?
答案 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)