R - 计算沿折线两点之间的距离
Posted
技术标签:
【中文标题】R - 计算沿折线两点之间的距离【英文标题】:R - Calculate distance between two points along a polyline 【发布时间】:2018-07-14 15:00:36 【问题描述】:在 R 中 - 我已将一个不直的折线 shapefile(代表一条蜿蜒的州际公路)导入到环境中。我已经阅读了一个 .csv 文件,其中包含环境中的点(纬度/经度十进制度)。所有这些点都位于折线上。
如果我取两个随机点,我可以使用大圆距离计算来计算它们之间的“如乌鸦飞”的距离。但是需要的是沿着折线行进的距离。参见参考图片:
https://i.stack.imgur.com/zhorb.png
有人知道可以计算沿折线的两个纬度/经度点之间的距离的 R 包吗?
【问题讨论】:
你的问题太宽泛了。 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。避免一次问多个不同的问题。请参阅How to Ask 页面以获得澄清此问题的帮助。 我已经完全重写了我的问题。 【参考方案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)
【讨论】:
以上是关于R - 计算沿折线两点之间的距离的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 rgw 距离在 android 中沿一条线在 Google Maps 折线上添加标记?