geometry(Transact-SQL)

평면 공간 데이터 형식인 geometry는 SQL Server에서 CLR(공용 언어 런타임) 데이터 형식으로 구현됩니다. 이 데이터 형식은 유클리드(평면) 좌표 시스템의 데이터를 나타냅니다.

SQL Server에서는 geometry 공간 데이터 형식에 대해 몇 가지 메서드를 지원합니다. 이러한 메서드로는 OGC(Open Geospatial Consortium) 표준 및 이 표준에 대한 일련의 Microsoft 확장에 정의된 geometry에 대한 메서드가 있습니다.

geometry 공간 데이터 형식 메서드에 대한 자세한 내용은 geometry 데이터 형식 메서드 참조를 참조하십시오.

geometry 형식 등록

geometry 형식은 데이터베이스에서 미리 정의되고 사용할 수 있습니다. 다른 CLR 형식을 사용할 때와 동일한 방식으로 geometry 형식의 테이블 열을 만들고 geometry 데이터에 대한 작업을 수행할 수 있습니다. 이 형식은 지속형 및 비지속형 계산 열에 사용할 수 있습니다.

1.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

2.두 geometry 인스턴스의 교차점 반환

두 번째 예에서는 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();

3.계산 열에서 geometry 사용

다음 예에서는 geometry 형식을 사용하여 지속형 계산 열이 있는 테이블을 만듭니다.

IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL 
    DROP TABLE dbo.SpatialTable;
GO

CREATE TABLE SpatialTable
(
    locationId int IDENTITY(1,1),
    location geometry,
    deliveryArea as location.STBuffer(10) persisted
)

참고 항목

개념

geometry 데이터 형식 메서드 참조

공간 데이터(SQL Server)