2012-04-07 138 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