SQL Server地理位置删除重叠

SQL Server地理位置删除重叠,sql,sql-server,polygon,geography,Sql,Sql Server,Polygon,Geography,我试图消除与SQLServer2012的重叠,但我不知道如何做到这一点 例如: 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('POLYG

我试图消除与SQLServer2012的重叠,但我不知道如何做到这一点

例如:

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()函数获取重叠多边形,然后以某种方式将其从其中一个多边形中删除。

根据上面的注释,STDifference将完成此操作。也就是说,给定两个可能重叠也可能不重叠的地理实例a和b,设置a=a.STDifference(b)将从a中删除与b相交的任何区域。

您最终想要一个只是所有区域并集的区域吗?如果是这样,请看Stuion。不,我想删除其中一个多边形的重叠区域,使STIntersects=0。然后看STDifference。也就是说,创建一个新的地理瞬间,定义为a.STDifference(b)哦,是的,这就是解决方案:)非常感谢。