2014-09-26 2 views
2

SQL-Server 2012와 중복을 제거하려고하지만이를 수행하는 방법에 대한 실마리가 없습니다.SQL-Server Geography 중복을 제거하십시오.

예 :

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을 살펴보십시오. –

+0

아니요 STIntersects = 0이되도록 폴리곤 중 하나에서 겹치는 영역을 제거하고 싶습니다. – DebugMePlx

+0

STDifference를 살펴보십시오. 즉, a.STDifference (b) –

답변

0

위의 설명에 따라 ST 차이가 트릭을 수행합니다. 즉, 두 개의 지리 인스턴스 & b가 겹치거나 겹치지 않을 경우 a = a.STDifference (b)를 설정하면 b와 교차하는 영역이 제거됩니다.