我需要将坐标系(x,y,z)与多边形(x,y)相交,然后了解哪个点与z坐标相交。
coo=matrix(1:15, 3,3);
colnames(coo)=c("x", "y", "z")
coo=as.data.frame(coo)
coordinates(coo)=~x+y+z
l3=readWKT("POLYGON((1.5 0,10 0,10 10,1.5 10, 1.5 0))")
我尝试使用包'rgeos'的gIntersection,这是结果
a=gIntersection(coo, l3)
a
SpatialPoints:
x y
1 2 5
1 3 6
Coordinate Reference System (CRS) arguments: NA
此外,我尝试使用选项byid=T
edn函数返回哪些元素相交但没有z坐标
我该怎么办?
答案 0 :(得分:0)
解决方案是:
spatial
的对象转换为data.frame。merge
。 spatial
的对象。将有相交的坐标x,y和z。
coo=matrix(1:15, 3,3)
colnames(coo)=c("x", "y", "z")
coo=as.data.frame(coo)
require(sp)
coordinates(coo)=~x+y+z
l3=readWKT("POLYGON((1.5 0,10 0,10 10,1.5 10, 1.5 0))")
require(rgeos)
clip=gIntersection(coo,l3)
clip = data.frame(clip)
df = merge(clip,coo)
coordinates(df)=~x+y+z
输出结果为:
df
SpatialPoints:
x y z
[1,] 2 5 8
[2,] 3 6 9
Coordinate Reference System (CRS) arguments: NA