2012-04-07 3 views
1

다차원 컬럼 "기하학"이있는 다각형 테이블 "PARCELA"가 있습니다. 이 다각형에서 다중 다각형을 어떻게 만들 수 있습니까?다각형 테이블에서 다중 다각형을 작성하는 방법

감사합니다.

+0

일부 샘플 데이터와 원하는 o/p를 게시 할 수 있습니까? – Teja

+0

나는 "지리"라는 이름의 gemetry 칼럼이있는 테이블을 가지고있다. 그것은 다각형이있는 테이블 일 수있다. 난 테이블의 폴리곤 (polygon)에서 멀티 폴리곤을 생성하면된다. – Nenad

답변

1

당신이 찾고있는 것이 맞는지 확실하지 않지만 : 다각형 A와 다각형 B가 있고 그것을 하나의 다각형으로 결합하려면 여기에서 내가 사용한 것을 사용하십시오. 북유럽 국가를 하나로 묶어지도에 인쇄 할 수있게하는 것이 필요했습니다.

국가 코드가있는 표 국가의 기하학 열 "geom"과 열 "ISO3"이 있습니다. 그래서 내 기본 키로 ISO3 컬럼을 사용하고 있습니다.

DECLARE @gtbl TABLE(g geometry, id INT) 
INSERT INTO @gtbl 
SELECT null,1 

DECLARE @t TABLE(PK INT Identity(1,1), ISO3 VARCHAR(3)) 

INSERT INTO @t 
Select ISO3 From countries WHERE ISO3 in ('FIN','SWE','NOR','DNK') 

Declare @maxPK int; Select @maxPK = MAX(PK) From @t 
Declare @pk int; Set @pk = 1 

While @pk <= @maxPK 

Begin 

    IF ((SELECT g FROM @gtbl) IS NULL) 
     BEGIN 
      UPDATE gtbl SET g = c.Geom.MakeValid() 
      FROM @gtbl gtbl, countries c WHERE c.ISO3 in (Select ISO3 From @T Where PK = @pk) 
     END 
    ELSE 
     BEGIN 
      UPDATE gtbl SET g = g.STUnion(c.Geom.MakeValid()) 
      FROM @gtbl gtbl, countries c 
      WHERE c.ISO3 in (Select ISO3 From @T Where PK = @pk) 
     END 

    Select @pk = @pk + 1 
End 


SELECT * FROM @gtbl