【问题标题】:R - Calculate distance between two points along a polylineR - 计算沿折线两点之间的距离
【发布时间】:2018-07-14 15:00:36
【问题描述】:

在 R 中 - 我已将一个不直的折线 shapefile(代表一条蜿蜒的州际公路)导入到环境中。我已经阅读了一个 .csv 文件,其中包含环境中的点(纬度/经度十进制度)。所有这些点都位于折线上。

如果我取两个随机点,我可以使用大圆距离计算来计算它们之间的“如乌鸦飞”的距离。但是需要的是沿着折线行进的距离。参见参考图片:

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

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

【问题讨论】:

  • 你的问题太宽泛了。 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。避免一次问多个不同的问题。请参阅How to Ask 页面以获得澄清此问题的帮助。
  • 我已经完全重写了我的问题。

标签: r distance polyline


【解决方案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)

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 2019-09-25
    • 2010-10-30
    • 2018-05-21
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多