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 - 计算沿折线两点之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

计算两条折线之间的方位角

查找 2 条折线之间的角度

如何根据 rgw 距离在 android 中沿一条线在 Google Maps 折线上添加标记?

如何使用沿折线的实时位置更新标记?

标记之间的 Google Maps API 和自定义折线路线

使折线捕捉到传单中的道路