geometry 데이터 형식 시작
평면 공간 데이터 형식인 geometry는 SQL Server에서 CLR(공용 언어 런타임) 데이터 형식으로 구현됩니다. 이 데이터 형식은 유클리드(평면) 좌표 시스템의 데이터를 나타냅니다.
geometry 유형 등록
geometry 유형은 데이터베이스에서 미리 정의되고 사용할 수 있습니다. 다른 CLR 유형을 사용하는 것과 동일한 방식으로 geometry 유형의 테이블 열을 만들고 geometry 데이터에서 작업을 수행할 수 있습니다.
예
다음 두 예에서는 geometry 데이터를 추가하고 쿼리하는 방법을 보여 줍니다. 첫 번째 예에서는 ID 열과 geometry 열 GeomCol1이 있는 테이블을 만듭니다. 세 번째 열에서는 geometry 열을 OGC(Open Geospatial Consortium) WKT(Well-Known Text) 표시로 렌더링하고 STAsText() 메서드를 사용합니다. 그리고 나서 두 개의 행이 삽입됩니다. 이 중 한 행에는 geometry의 LineString 인스턴스가 들어 있고, 한 행에는 Polygon 인스턴스가 들어 있습니다.
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
( id int IDENTITY (1,1),
GeomCol1 geometry,
GeomCol2 AS GeomCol1.STAsText() );
GO
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));
GO
두 번째 예에서는 STIntersection() 메서드를 사용하여 앞에서 삽입된 두 개의 geometry 인스턴스가 교차하는 지점을 반환할 수 있습니다.
DECLARE @geom1 geometry;
DECLARE @geom2 geometry;
DECLARE @result geometry;
SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1;
SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geom1.STIntersection(@geom2);
SELECT @result.STAsText();