Babelfish에서 지리공간 데이터 유형 지원
버전 3.5.0 및 4.1.0부터 Babelfish는 다음 두 가지 공간 데이터 유형에 대한 지원을 포함합니다.
-
기하학 데이터 유형 - 이 데이터 유형은 평면, 즉 유클리드(평평한 지구) 데이터를 저장하기 위한 것입니다.
-
지리학 데이터 유형 - 이 데이터 유형은 GPS 위도 및 경도 좌표와 같은 타원체, 즉 둥근 지구 데이터를 저장하는 데 사용됩니다.
이러한 데이터 유형을 사용하면 공간 데이터를 저장하고 조작할 수 있지만 제한이 있습니다.
Babelfish의 지리공간 데이터 유형 이해
지리공간 데이터 유형은 뷰, 프로시저 및 테이블과 같은 다양한 데이터베이스 객체에서 지원됩니다.
-
포인트 데이터 유형을 지원하여 위치 데이터를 위도, 경도 및 유효한 공간 참조 시스템 식별자(SRID)로 정의된 포인트로 저장할 수 있습니다. 포인트는 Z(고도), M(측정) 값을 포함할 수 있으며 비어 있을 수 있습니다.
-
일련의 점과 이들을 연결하는 선분 및 유효한 공간 참조 시스템 식별자(SRID)로 정의되는 라인스트링 데이터 유형(버전 5.4.0부터)을 지원합니다. 라인스트링은 Z(고도), M(측정) 값이 있는 포인트를 포함할 수 있으며 비어 있을 수 있습니다.
-
JDBC, ODBC, DOTNET, PYTHON과 같은 드라이버를 통해 Babelfish에 연결하는 애플리케이션은 이 지리공간 기능을 활용할 수 있습니다.
Babelfish에서 지원하는 기하학 데이터 유형 함수
STGeomFromText(
geometry_tagged_text, SRID) - WKT(Well-Known Text) 표현을 사용하여 기하학 인스턴스를 만듭니다.STPointFromText(
point_tagged_text, SRID) - WKT 표현을 사용하여 포인트 인스턴스를 생성합니다.-
Point(X, Y, SRID) - x 및 y 좌표의 부동 소수점 값을 사용하여 포인트 인스턴스를 만듭니다.
-
<geometry_instance>.STAsText ( ) - 기하학 인스턴스에서 WKT 표현을 추출합니다.
-
<geometry_instance>.STAsBinary ( ) - 기하학 인스턴스에서 WKB 표현을 추출합니다.
-
<geometry_instance>.STArea( ) - 기하학 인스턴스의 총 표면적을 계산합니다.
-
<geometry_instance>.STSrid( ) - 기하학 인스턴스의 공간 참조 식별자(SRID)를 추출합니다.
-
<geometry_instance>.STDimension( ) - 기하학 인스턴스의 공간 차원을 검색합니다.
-
<geometry_instance>.STIsEmpty( ) - 기하학 인스턴스가 비어 있는지 확인합니다.
-
<geometry_instance>.STIsClosed( ) - 기하학 인스턴스가 닫혀 있는지 확인합니다.
-
<geometry_instance>.STIsValid( ) - 기하학 인스턴스가 유효한지 확인합니다.
-
<geometry_instance>.STDistance(other_geometry) - 두 기하학 인스턴스 사이의 거리를 계산합니다.
-
<geometry_instance>.STEquals(other_geometry) - 기하학 인스턴스가 다른 기하학 인스턴스와 동일한 포인트 세트를 나타내는지 확인합니다.
-
<geometry_instance>.STContains(other_geometry) - 기하학 인스턴스에 other_geometry 인스턴스가 포함되어 있는지 확인합니다.
-
<geometry_instance>.STDisjoint(other_geometry) - 두 기하학 인스턴스에 공통 포인트가 없는지 확인합니다.
-
<geometry_instance>.STIntersects(other_geometry) - 두 기하학 인스턴스가 공간적으로 교차하는지 확인합니다.
-
<geometry_instance>.STX - 기하학 인스턴스의 X 좌표(경도)를 추출합니다.
-
<geometry_instance>.STY - 기하학 인스턴스의 Y 좌표(위도)를 추출합니다.
버전 4.7.0 및 5.3.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
<geometry_instance>.M - 기하학 인스턴스의 M 좌표를 추출합니다.
-
<geometry_instance>.Z - 기하학 인스턴스의 Z 좌표를 추출합니다.
-
<geometry_instance>.HasM - 기하학 인스턴스에 M 값이 하나 이상 있는지 확인합니다.
-
<geometry_instance>.HasZ - 기하학 인스턴스에 Z 값이 하나 이상 있는지 확인합니다.
버전 5.4.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STLineFromText(
linestring_tagged_text, SRID ) - WKT 표현을 사용하여 라인스트링 인스턴스를 생성합니다.
Babelfish에서 지원하는 지리학 데이터 유형 함수
-
STGeomFromText(
geography_tagged_text, SRID) - WKT 표현을 사용하여 지리학 인스턴스를 만듭니다. -
STPointFromText(
point_tagged_text, SRID) - WKT 표현을 사용하여 포인트 인스턴스를 생성합니다. -
Point(Lat, Long, SRID) - 위도 및 경도의 부동 소수점 값을 사용하여 포인트 인스턴스를 만듭니다.
-
geography_instance>.STAsText( ) - 지리학 인스턴스에서 WKT 표현을 추출합니다.
-
<geography_instance>.STAsBinary( ) - 지리학 인스턴스에서 WKB 표현을 추출합니다.
-
<geography_instance>.STArea( ) - 지리학 인스턴스의 총 표면적을 계산합니다.
-
<geography_instance>.STSrid( ) - 지리학 인스턴스의 공간 참조 식별자(SRID)를 추출합니다.
-
<geography_instance>.STDimension( ) - 지리학 인스턴스의 공간 차원을 검색합니다.
-
<geography_instance>.STIsEmpty( ) - 지리학 인스턴스가 비어 있는지 확인합니다.
-
<geography_instance>.STIsClosed( ) - 지리학 인스턴스가 닫혀 있는지 확인합니다.
-
<geography_instance>.STIsValid( ) - 지리학 인스턴스가 유효한지 확인합니다.
-
geography_instance>.STDistance(other_geography) - 두 지리학 인스턴스 사이의 거리를 계산합니다.
-
<geography_instance>.STEquals(other_geography) - 지리학 인스턴스가 다른 지리학 인스턴스와 동일한 포인트 세트를 나타내는지 확인합니다.
-
<geography_instance>.STContains(other_geography) - 지리학 인스턴스에 other_geography 인스턴스가 포함되어 있는지 확인합니다.
-
<geography_instance>.STDisjoint(other_geography) - 두 지리학 인스턴스에 공통 포인트가 없는지 확인합니다.
-
<geography_instance>.STIntersects(other_geography) - 두 지리학 인스턴스가 공간적으로 교차하는지 확인합니다.
-
<geography_instance>.Lat - 지리학 인스턴스의 위도 값을 추출합니다.
-
<geography_instance>.Long - 지리학 인스턴스의 경도 값을 추출합니다.
버전 4.7.0 및 5.3.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
<geography_instance>.M - 지리학 인스턴스의 M 좌표를 추출합니다.
-
<geography_instance>.Z - 지리학 인스턴스의 Z 좌표를 추출합니다.
-
<geography_instance>.HasM - 지리학 인스턴스에 M 값이 하나 이상 있는지 확인합니다.
-
<geography_instance>.HasZ - 지리학 인스턴스에 Z 값이 하나 이상 있는지 확인합니다.
버전 5.4.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
-
STLineFromText(
linestring_tagged_text, SRID ) - WKT 표현을 사용하여 라인스트링 인스턴스를 생성합니다.
Babelfish에서 지원하는 지리공간 데이터 유형의 한계
-
포인트 및 라인스트링 인스턴스 이외에 다음과 같은 기하학 및 지리학 유형은 현재 지원되지 않습니다.
CircularString
CompoundCurve
Polygon
CurvePolygon
MultiPoint
MultiLineString
MultiPolygon
GeometryCollection
현재 공간 인덱싱은 지리공간 데이터 유형에 지원되지 않습니다.
현재 이러한 데이터 유형에는 나열된 함수만 지원됩니다. 자세한 내용은 Babelfish에서 지원하는 기하학 데이터 유형 함수 및 Babelfish에서 지원하는 지리학 데이터 유형 함수(을)를 참조하세요.
지리학 데이터에 대한 STDistance 함수 출력값은 T-SQL과 비교하여 정밀도 차이가 약간 있을 수 있습니다. 이는 기본 PostGIS 구현 때문입니다. 자세한 내용은 ST_Distance
를 참조하세요. 기하학 및 지리학 데이터 모두에서 STIsValid 함수 출력값은 T-SQL과 비교하여 약간의 차이가 있을 수 있습니다. 이로 인해 STDistance, STContains, STInstersects, STDisjoint, STDimension, STArea, STEquals 함수도 경우에 따라 T-SQL과 차이가 날 수 있습니다(오류를 발생시키는 대신 출력을 반환함). 이는 기본 PostGIS 구현 때문입니다. 자세한 내용은 ST_IsValid
를 참조하세요. 성능을 최적화하려면 Babelfish에서 추가 추상화 계층을 만들지 말고 기본 제공되는 지리공간 데이터 유형을 사용하세요.
Babelfish에서는 지리공간 함수 이름이 키워드로 사용되며 의도한 방식으로 사용하는 경우에만 공간 연산을 수행합니다.