2012-04-07 117 views
1

我有幾何列「幾何」的多邊形表「PARCELA」。我如何從這些多邊形創建多面體?如何從多邊形表創建多邊形

謝謝!

+0

你可以發佈一些樣本數據和所需的o/p嗎? – Teja 2012-04-07 15:48:19

+0

我剛剛列出名爲「GEOMETRY」的gemetry列,它可以是任何具有多邊形的表格。我只需要在表格中創建Polygons的Multipolygon。 – Nenad 2012-04-07 16:01:26

回答

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