2014-09-26 61 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相交的任何区域。