【发布时间】:2012-11-13 16:58:42
【问题描述】:
让我们假设一条线段属于SpatialLines,长度为len。此特定行从左上角开始。
library(sp)
x <- structure(list(x = c(-7.23437435517476, 6.35937810318614, -5.86718660792582,
7.96094089282062), y = c(7.08139459814975, 6.8633712983227, -7.61337581019376,
-6.2180266913006)), .Names = c("x", "y"))
xline <- SpatialLines(list(Lines(Line(x), ID = 1)))
#len <- LineLength(as.matrix(data.frame(x)))
len <- LineLength(as.matrix(data.frame(coordinates(xline))))
plot(0,0, xlim = c(-10, 10), ylim = c(-10, 10), type = "n")
lines(xline)
我想在这条线上找到一个点,它距离线的起点findme 个单位。例如,如果我要从起点开始沿直线寻找一个 10 个单位的点,我会在第一段和第二段之间的节点附近找到一个点。欢迎您对更强大的解决方案提出意见。
我尝试使用spsample(见下文)找到它,但这种方法(太)不可靠并且不适用于线的后半部分。
# very approximate method, not very suitable
findme <- 11 # 11, 12 and 13 give same result
segs <- 1/(findme/xline.length)
xsam <- spsample(x = xline, n = segs, type = "regular", offset = 0)
points(xsam)
【问题讨论】:
-
什么是
xline.length?另外,你的意思是你想要一个沿线形成的路径为findme个单位的点吗?还是findme乌鸦飞过的单位? -
对不起,
xline.length是xline的总长度(我放弃了这种方法,忘记提供xline.length)。我想要那条特定线上的点。
标签: r geospatial spatial