SQL Server/SQL Server Tip

Spatial Data Type (공간 데이터 형식)

SungWookKang 2015. 7. 23. 08:51
반응형

Spatial Data Type (공간 데이터 형식) 

   

-       Version : SQL Server 2008, 2008R2, 2012 

   

공간 데이터 형식은 두 가지가 있다.  

l  Geometry 데이터 형식 : 평면 데이터 지원 (유클리드 데이터), OGC(Open Geospatial Consotium)의 Simple Features for SQL Specification 버전 1.1.0을 따르며 SQL MM(ISO 표준)과 호환. 

l  Geopraphy : GPS 및 위도 경도 좌표등의 타원(둥근 표면) 데이터를 저장하는 데이터 형식 

   

Geometry 및 geography 데이터 형식은 16개가 있으며 이들 중 11개의 유형만 인스턴스화 할 수 있다. 

   

인스턴스는 GeometryCollection에서 Point, LineStrings, CircularStrings, CompoundCurves, Polygons, CurvePolygons 로 구분하거나 여러 Geometry 또는 Geography 인스턴스로 구분하는 부모 데이터 형식에서 특정 속성을 파생 시킨다. Geopraphy 형식에는 FullGlobe라는 추가 인스턴스 유형이 있다. 

   

다음 그린은 geometry 및 geopraphy 데이터 형식의 기반인 geometry 계층을 보여준다. 인스턴스화 할 수 있는 형식은 파란색으로 표시되어 있다. 

 

   

   

Geometry 및 geography 형식의 하위 형식은 단순 형식과 컬렉션 형식으로 나누어 진다. STNumCurves()와 같은 일부 메서드는 단순 형식에서만 작동 한다. 

l  단순형식 : 지점, LineString, CurcualrString, CompoundCurve, 다각형, CurvePolygon 

l  컬렉션 형식 : Multopoint, MultiLineString, MultiPolygon, GeometryCollection 

   

   

공간 데이터의 두 가지 형식은 매우 비슷하게 작동하지만 데이터가 저장되고 조작되는 방식에서 몇 가지 주요한 차이점이 있다. 

[연결 가장 자리가 정의되는 방식] 

LineString, Polygon 형식을 정의하는 데이터는 꼭지점 뿐이다. 

l  Geometry : 두 꼭지점을 잇는 연결 가장자리는 직선이다. 

l  Geography : 두 꼭지점을 잇는 연결 가장자리가 두 꼭지점 사이의 짧고 큰 타원 호이다. 큰 타원은 타원면과 타원면의 중심을 관통하는 평면이 교차하는 지점이고 큰 타원 호는 큰 타원의 호 세그먼트이다. 

   

[원호 세그먼트가 정의되는 방식] 

l  Geometry : 세그먼트는 XY 데카르트 좌표 평면(Z 값은 무시됨)에 정의 된다. 

l  Geography : 세그먼트는 참조 구의 곡선 세그먼트로 정의. 참조 구의 위도 선은 두 호의 점이 일정한 위도를 갖는 두 개의 보완 원호로 정의될 수 있음. 

   

[공간 데이터 형식의 측정] 

l  Geometry ; 평면 시스템에서 거리와 영역의 측정은 좌표와 동일한 측정 단위로 지정된다. 단위에 상관없이 (2,2)와 (5,6)사이의 거리는 5단위 이다. 

l  Geography : 타원 또는 둥근 지구 시스템에서 좌표는 위도와 경도의 도 단위로 지정된다. 그러나 SRID(spatial reference identifier)에 따라 측정이 달라지더라도 길이 및 영역은 일반적으로 미터와 제곱미터로 측정이 된다. 가장 일반적인 geography 데이터 형식의 측정 단위는 미터이다. 

   

[공간 데이터 방향] 

평면 시스템에서는 다각형의 링 방향은 중요한 요소가 아니다. OGC Simple Features for SQL Specification에서는 링 순서를 지정하지 않으며 SQL Server에서는 링 순서를 강제로 지정하지 않는다. 

   

Geography 데이터 형식을 사용하여 공간 인스턴스를 저장할 경우 링의 방향을 지정하고 인스턴스의 위치를 정확하게 나타내야 한다. 

   

   

   

[참고자료] 

http://technet.microsoft.com/ko-kr/library/bb964711.aspx 

   

   

2013-11-22 / 강성욱 / http://sqlmvp.kr 

반응형