2014-01-15 1 views
1

좌표계 (x, y, z)와 다각형 (x, y)을 교차시켜야하고 z 좌표와 교차하는 점을 이해해야합니다.다각형과 3D 좌표 데이터 사이의 교차점

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 

이 또한 내가 요소가 교차하지만, Z없이 좌표 옵션 byid=T EDN 함수 반환에 시도이다.
내가 어떻게 할 수 있습니까?

+0

나는 WKT''/ w에 익숙하지 않다 - 않는'당신이 어떤 Z-좌표를 생성 POLYGON'? 'POLYGON (xy 0, xy 0, ...'? –

+0

내가 시도했지만 작동하지 않는다.) – user3115445

+0

주위를 둘러보기 -'sp'와 'rgeos'는 다각형을 3D로 지원합니다. 다른 사람이 이것을 분명히 할 수 있습니까? –

답변

0

해결책은 다음과 같습니다

  1. 가 data.frame으로 클래스 spatial의 개체를 변환합니다.
  2. 두 data.frames 사이에 merge을 수행하십시오.
  3. 병합 된 data.frame을 다시 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