PBSmapping中的joinPolys函数给出NULL输出

时间:2015-03-30 20:37:38

标签: r

我在R包PBSmapping中使用函数joinPolys来查找多边形之间的交叉点。然而,即使我非常确定交集是非空的,它也会为我的数据提供NULL输出。

我已经从https://code.google.com/p/pbs-mapping/issues/detail?id=31创建了一个示例。在链接中,代码旨在显示代码确实有效的情况(但不适用于我)。示例如下:

代码不起作用:

require(PBSmapping)

polyA <- data.frame(PID=rep(1,4),POS=1:4,X=c(0,1,1,0),Y=c(0,0,1,1))
polyB <- data.frame(PID=rep(1,4),POS=1:4,X=c(.5,1.5,1.5,.5),Y=c(.5,.5,1.5,1.5))

# Plot polygons
plotPolys(polyA, xlim=c(0,3), ylim=c(0,3))
addPolys(polyB, border=2)

# returns NULL
print(joinPolys(polyA, polyB))

但是,在其他情况下,代码确实有效:

require(PBSmapping)

N <- 4

X = cos(seq(0, 2*pi, length = N))
Y = sin(seq(0, 2*pi, length = N))

require(PBSmapping)
polysA1 = data.frame(PID = rep(1, N), POS = 1:N, 
  X = 5*X, Y = 5*Y)
polysB1 = data.frame(PID = rep(1, N), POS = 1:N, 
  X = 5*X + 5, Y = 5*Y)
plotMap(NULL, xlim = c(-10, 10), ylim = c(-10, 10))
addPolys(polysA1, col = 'blue', lty = 12, density = 0, pch = 16)
addPolys(polysB1, col = 'red', lty = 12, density = 0, pch = 16)
addPolys(joinPolys(polysA1, polysB1), col = 2)

print(head(joinPolys(polysA1, polysB1)))

我使用的是R版本3.1.3和Ubuntu 14.04.2 LTS。

提前致谢!我是stackoverflow的新手,所以如果我还能提供其他任何内容,请告诉我。

干杯

0 个答案:

没有答案