geography(Transact-SQL)

geography 공간 데이터 형식인 geography는 SQL Server에서 .NET CLR(공용 언어 런타임) 데이터 형식으로 구현됩니다. 이 데이터 형식은 둥근 지구 좌표 시스템의 데이터를 나타냅니다. SQL Servergeography 데이터 형식에는 GPS 위도 및 경도 좌표와 같은 타원(둥근 지구) 데이터를 저장합니다.

SQL Server 2008은 geography 공간 데이터 형식을 위한 메서드 집합을 지원합니다. 이러한 메서드에는 OGC(Open Geospatial Consortium) 표준 및 표준에 필요한 Microsoft 확장의 집합으로 정의한 geography의 메서드가 포함됩니다.

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

geography 형식 등록

geography 형식은 각 데이터베이스에서 미리 정의되고 사용할 수 있습니다. 다른 시스템이 제공하는 형식을 사용하는 것과 동일한 방식으로 geography 형식의 테이블 열을 만들고 geography 데이터에서 작업을 수행할 수 있습니다.

다음 예에서는 geography 데이터를 추가하고 쿼리하는 방법을 보여 줍니다. 첫 번째 예에서는 ID 열과 geography 열 GeogCol1이 있는 테이블을 만듭니다. 세 번째 열에서는 geography 열을 OGC(Open Geospatial Consortium) WKT(Well-Known Text) 표현으로 렌더링하고 STAsText() 메서드를 사용합니다. 그리고 나서 두 개의 행이 삽입됩니다. 이 중 한 행에는 geography의 LineString 인스턴스가 들어 있고, 다른 행에는 Polygon 인스턴스가 들어 있습니다.

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

CREATE TABLE SpatialTable 
    ( id int IDENTITY (1,1),
    GeogCol1 geography, 
    GeogCol2 AS GeogCol1.STAsText() );
GO

INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('LINESTRING(47.656 -122.360, 47.656 -122.343)', 4326));

INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('POLYGON((47.653 -122.358, 47.649 -122.348, 47.658 -122.348, 47.658 -122.358, 47.653 -122.358))', 4326));
GO

두 번째 예에서는 STIntersection() 메서드를 사용하여 앞에서 삽입된 두 개의 geography 인스턴스가 교차하는 지점을 반환할 수 있습니다.

DECLARE @geog1 geography;
DECLARE @geog2 geography;
DECLARE @result geography;

SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1;
SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geog1.STIntersection(@geog2);
SELECT @result.STAsText();