2014-09-26 41 views
2

我想刪除與SQL Server 2012的重疊,但我不知道如何去做。SQL-Server地理刪除重疊

例子:

CREATE TABLE #temp(
[Geo] [geography] NOT NULL) 
INSERT INTO #temp 
VALUES (geography::STGeomFromText('POLYGON((0 0, 0.1 0, 0.1 0.1, 0 0.1,0 0))', 4326)) 
INSERT INTO #temp 
VALUES (geography::STGeomFromText('POLYGON((0.05 0.05, 0.15 0.05, 0.15 0.15, 0.05 0.15, 0.05 0.05))', 4326)) 
SELECT * FROM #temp 

我的想法是使用STIntersection()函數來獲取重疊的多邊形,然後以某種方式從一個多邊形刪除。

+0

你最終想要一個只是所有區域結合的區域嗎?如果是這樣,看看STUnion。 – 2014-09-27 18:54:51

+0

否我想從其中一個多邊形中刪除重疊區域,以使STIntersects = 0. – DebugMePlx 2014-09-28 08:32:53

+0

然後查看STDifference。也就是說,創建一個新的地理位置即時定義爲a.STDifference(b) – 2014-09-28 13:21:53

回答

0

根據上面的評論,STDifference將做的伎倆。也就是說,給定兩個地理實例a可以有或沒有重疊,設置a = a.STDifference(b)將移除與b相交的任何區域。