1

ジオメトリ列「GEOMETRY」を持つポリゴンテーブル「PARCELA」があります。これらのポリゴンからマルチポリゴンを作成するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

これがあなたが探しているものかどうかはわかりませんが、ポリゴン A とポリゴン B があり、それらを 1 つのポリゴンとして結合したい場合は、ここで使用したものを使用します。私が必要としていたのは、北欧諸国をまとめて、それらを 1 つの地図に印刷できるようにすることでした。

国コードが配置されているジオメトリ列「geom」と列「ISO3」を持つテーブルcountrysがあります。そのため、主キーとして 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
于 2012-07-17T11:35:24.913 に答える