geography 인스턴스 만들기, 구성 및 쿼리

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

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

새 geography 인스턴스 만들기 또는 구성

기존 인스턴스에서 새 geography 인스턴스 만들기

geography 데이터 형식은 수많은 기본 메서드를 제공합니다. 이러한 메서드를 사용하여 기존 인스턴스를 기반하여 새 geography 인스턴스를 만들 수 있습니다.

geography 주위에 버퍼를 만들려면
STBuffer(geography 데이터 형식)

허용 오차를 허용하는 지리의 버퍼를 만들려면
BufferWithTolerance(geography 데이터 형식)

두 geography 인스턴스의 교집합에서 지리를 만들려면
STIntersection(geography 데이터 형식)

두 geography 인스턴스의 합집합에서 지리를 만들려면
STUnion(geography 데이터 형식)

한 지리가 다른 지리와 겹치지 않는 점에서 지리를 만들려면
STDifference(geography 데이터 형식)

WKT 입력으로부터 지리 인스턴스 구성

geography 데이터 형식은 OGC(Open Geospatial Consortium) WKT 표현에서 지리를 생성하는 여러 가지 기본 메서드를 제공합니다. WKT 표준은 geography 데이터를 텍스트 형식으로 교환할 수 있는 텍스트 문자열입니다.

WKT 입력으로부터 지리 인스턴스 유형을 구성하려면
STGeomFromText(geography 데이터 형식)

구문 분석(geography 데이터 형식)

WKT 입력으로부터 지리 Point 인스턴스를 생성하려면
STPointFromText(geography 데이터 형식)

WKT 입력으로부터 지리 MultiPoint 인스턴스를 구성하려면
STMPointFromText(geography 데이터 형식)

WKT 입력으로부터 지리 LineString 인스턴스를 생성하려면
STLineFromText(geography 데이터 형식)

WKT 입력으로부터 지리 MultiLineString 인스턴스를 구성하려면
STMLineFromText(geography 데이터 형식)

WKT 입력으로부터 지리 Polygon 인스턴스를 생성하려면
STPolyFromText(geography 데이터 형식)

WKT 입력으로부터 지리 MultiPolygon 인스턴스를 구성하려면
STMPolyFromText(geography 데이터 형식)

WKT 입력으로부터 지리 GeometryCollection 인스턴스를 구성하려면
STGeomCollFromText(geography 데이터 형식)

WKB 입력으로부터 지리 인스턴스 구성

WKB는 클라이언트 애플리케이션과 SQL 데이터베이스 간에 Geography 데이터를 교환할 수 있도록 OGC에서 지정하는 이진 형식입니다. 다음 함수는 WKB 입력을 사용하여 geography 인스턴스를 생성합니다.

WKB 입력으로부터 모든 유형의 geography 인스턴스를 생성하려면
STGeomFromWKB(geography 데이터 형식)

WKB 입력으로부터 지리 Point 인스턴스를 생성하려면
STPointFromWKB(geography 데이터 형식)

WKB 입력으로부터 지리 MultiPoint 인스턴스를 구성하려면
STMPointFromWKB(geography 데이터 형식)

WKB 입력으로부터 지리 LineString 인스턴스를 구성하려면
STLineFromWKB(geography 데이터 형식)

WKB 입력으로부터 지리 MultiLineString 인스턴스를 구성하려면
STMLineFromWKB (geography 데이터 형식)

WKB 입력으로부터 지리 지리 Polygon 인스턴스를 생성하려면
STPolyFromWKB(geography 데이터 형식)

WKB 입력으로부터 지리 MultiPolygon 인스턴스를 구성하려면
STMPolyFromWKB(geography 데이터 형식)

WKB 입력으로부터 지리 GeometryCollection 인스턴스를 구성하려면
STGeomCollFromWKB(geography 데이터 형식) STGeomCollFromWKB(geography 데이터 형식)

GML 입력으로부터 geography 인스턴스 구성

geography 데이터 형식은 geography 인스턴스의 XML 표현인 GML에서 geography 인스턴스를 생성하는 메서드를 제공합니다. SQL Server는 GML 하위 집합을 지원합니다.

Geography Markup Language에 대한 자세한 내용은 OGC 사양: OGC 사양, Geography Markup Language를 참조하세요.

GML 입력으로부터 지리 인스턴스 유형을 구성하려면
GeomFromGML(geography 데이터 형식)

지리 인스턴스에서 WKT 및 WKB 반환

다음 메서드를 사용하여 geography 인스턴스의 WKT 또는 WKB 형식을 반환할 수 있습니다.

geography 인스턴스의 WKT 표현을 반환하려면
STAsText(geography 데이터 형식)

ToString(geography 데이터 형식)

Z 및 M 값을 포함하여 geography 인스턴스의 WKT 표현을 반환하려면
AsTextZM(geography 데이터 형식)

지리 인스턴스의 WKB 표현을 반환하려면
STAsBinary(geography 데이터 형식)

지리 인스턴스의 GML 표현을 반환하려면
AsGml(geography 데이터 형식)

geography 인스턴스의 속성 및 동작 쿼리

모든 geography 인스턴스에는 SQL Server에서 제공하는 메서드를 통해 검색할 수 있는 여러 속성이 있습니다. 다음 항목에서는 geography 형식의 속성과 동작 및 각 형식을 쿼리하는 메서드를 정의합니다.

유효성, 인스턴스 형식 및 GeometryCollection 정보

geography 인스턴스가 생성되면 다음 메서드를 사용하여 인스턴스 유형을 반환하거나 GeometryCollection일 경우 특정 geography 인스턴스를 반환하는지를 확인할 수 있습니다.

geography 인스턴스 유형을 반환하려면
STGeometryType(geography 데이터 형식)

지리가 지정된 인스턴스 유형인지 확인하려면
InstanceOf(geography 데이터 형식)

geography 인스턴스가 해당 인스턴스 유형에 대해 형식이 올바른지 확인하려면
STNumGeometries(geography 데이터 형식)

GeometryCollection 인스턴스에서 특정 기하 도형을 반환하려면
STGeometryN(geometry 데이터 형식) STGeometryN(geography 데이터 형식)

지점 수

모든 비어 있지 않은 geography 인스턴스는 지점으로 구성됩니다. 이러한 점은 geography 인스턴스가 그려지는 지구의 위도 및 경도 좌표를 나타냅니다. geography 데이터 형식은 인스턴스의 점을 쿼리하는 데 필요한 수많은 기본 메서드를 제공합니다.

인스턴스를 구성하는 지점 수를 반환하려면
STNumPoints(geography 데이터 형식)

인스턴스의 특정 점을 반환하려면
STPoint(geometry 데이터 형식)

인스턴스의 시작점을 반환하려면
STStartPoint(geography 데이터 형식)

인스턴스의 끝점을 반환하려면
STEndPoint(geography 데이터 형식)

차원

비어 있지 않은 geography 인스턴스는 0, 1 또는 2차원이 될 수 있습니다. PointMultiPoint 와 같은 0차원 geography인스턴스에는 길이 또는 영역이 없습니다. LineString, CircularString, CompoundCurveMultiLineString과 같은 1차원 개체에는 길이가 있습니다. Polygon, CurvePolygonMultiPolygon과 같은 2차원 인스턴스에는 영역과 길이가 있습니다. 빈 인스턴스는 -1의 차원을 보고하고 GeometryCollection은 해당 콘텐츠의 최대 차원을 보고합니다.

인스턴스의 차원을 반환하려면
STDimension(geography 데이터 형식)

인스턴스의 길이를 반환하려면
STLength(geography 데이터 형식)

인스턴스의 영역을 반환하려면
STArea(geography 데이터 형식)

비어 있음

비어 있는geography 인스턴스에는 점이 하나도 없습니다. 빈 LineString, CircularString, CompoundCurveMultiLineString 인스턴스의 길이는 0입니다. 비어 있는 Polygon, CurvePolygonMultiPolygon 인스턴스의 영역은 0입니다.

인스턴스가 비어 있는지 확인하려면
STIsEmpty(geography 데이터 형식)

Closure

닫힌geography 인스턴스는 시작점과 끝점이 같은 그림입니다. Polygon 인스턴스는 닫힌 것으로 간주됩니다. Point 인스턴스가 닫혀 있지 않습니다.

링은 단순하고 닫힌 LineString 인스턴스입니다.

인스턴스가 닫혀 있는지 확인하려면
STIsClosed(geography 데이터 형식)

Polygon 인스턴스에 있는 링의 개수를 반환하려면
NumRings(geography 데이터 형식)

geography 인스턴스의 지정된 링을 반환하려면
RingN(geography 데이터 형식)

SRID(Spatial Reference ID)

SRID는 geography 인스턴스를 나타내는 타원 좌표계를 지정하는 식별자입니다. SRID가 다른 두 geography 인스턴스는 비교할 수 없습니다.

인스턴스의 SRID를 설정하거나 반환하려면
STSrid(geography 데이터 형식)

이 속성은 수정할 수 있습니다.

지리 인스턴스 간 관계 확인

geography 데이터 형식은 수많은 기본 메서드를 제공합니다. 이러한 메서드를 사용하여 두 개의 geography 인스턴스 간 관계를 확인할 수 있습니다.

두 인스턴스가 동일한 점 집합으로 구성되었는지 확인하려면
STEquals(geometry 데이터 형식)

두 인스턴스가 결합되지 않았는지 확인하려면
STDisjoint(geometry 데이터 형식)

두 인스턴스가 교차하는지 확인하려면
STIntersects(geometry 데이터 형식)

두 인스턴스가 교차하는 지점 또는 지점들을 확인하려면
STIntersection(geography 데이터 형식)

두 geography의 점 간 최단 길이를 확인하려면
STDistance(geometry 데이터 형식)

두 geography 인스턴스 간 점의 차이를 확인하려면
STDifference(geography 데이터 형식)

다른 인스턴스와 비교하여 한 geography 인스턴스의 대칭 차이 또는 고유 지점을 파생하려면
STSymDifference(geography 데이터 형식)

지원되는 SRID를 사용해야 하는 geography 인스턴스

SQL Server에서는 EPSG 표준에 따라 SRID를 지원합니다. 계산을 수행하거나 지리 공간 데이터와 함께 메서드를 사용할 때는 geography 인스턴스에 대해 SQL Server 지원 SRID를 사용해야 합니다. SRID는 sys.spatial_reference_systems 카탈로그 뷰에 표시된 SRID 중 하나와 일치해야 합니다. 앞에서 설명한 대로 각 타원면에는 특정 SRID가 지정되므로 geography 데이터 형식을 사용하여 공간 데이터에서 계산을 수행할 경우 데이터를 만드는 데 사용된 타원면에 따라 결과가 달라집니다.

geography 인스턴스의 메서드를 사용할 경우 SQL Server에서는 WGS 84 공간 참조 시스템에 매핑되는 기본 SRID 4326을 사용합니다. WGS 84(또는 SRID 4326) 이외의 공간 참조 시스템의 데이터를 사용하는 경우 geography 공간 데이터에 대한 특정 SRID를 결정해야 합니다.

예제

다음 예에서는 geography 데이터를 추가하고 쿼리하는 방법을 보여 줍니다.

예 A.

이 예에서는 ID 열과 geographyGeogCol1이 있는 테이블을 만듭니다. 세 번째 열은 geography 열을 OGC(Open Geospatial Consortium) WKT(잘 알려진 텍스트) 표현으로 렌더링하고 이 STAsText() 메서드를 사용합니다. 그런 다음 두 개의 행이 삽입됩니다. 한 행에는 geographyLineString 인스턴스가 포함되고 한 행에는 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(-122.360 47.656, -122.343 47.656)', 4326));  
  
INSERT INTO SpatialTable (GeogCol1)  
VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326));  
GO  

예 2.

이 예제에서는 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();  

참고 항목

공간 데이터(SQL Server)