11.5.3.1 지원되는 공간 데이터 형식
쿼리에서 기하학적 개체를 표현하기 위해 두 개의 표준 공간 데이터 형식이 사용됩니다.
WKT (Well-Known Text) 형식
WKB (Well-Known Binary) 형식
MySQL의 내부에서는 WKT, WKB 중의 형식과도 다른 형식으로 기하 값이 저장됩니다.
다른 데이터 형식 간의 변환에 사용할 수있는 함수가 있습니다. 섹션 12.15.6 "기하 형식 변환 함수" 를 참조하십시오.
11.5.3.1.1 WKT (Well-Known Text) 형식
기하 값의 WKT (Well-Known Text) 표현은 ASCII 형식의 기하 데이터를 교환 할 수 있도록 설계되어 있습니다. OpenGIS 사양은 WKT 값을 기입하기위한 공식 운영 규칙을 지정하는 박카스 - 나우아 기법이 준비되어 있습니다 ( 섹션 11.5 "공간 데이터의 확장" 을 참조하십시오).
기하학적 개체의 WKT 표현의 예 :
Point:POINT (15 20)점의 좌표는 구분을위한 쉼표없이 지정됩니다. 이것은 좌표 사이에 쉼표를 필요로하는 SQL
Point()함수의 구문과 다릅니다. 특정 공간 연산의 문맥에 적합한 구문을 신중하게 사용하십시오. 예를 들어, 다음 명령문은 모두Point객체에서 X 좌표를 추출합니다. 첫 번째 경우는Point()함수를 직접 사용하여 객체를 생성합니다. 두 번째 경우는GeomFromText()에서Point로 변환 된 WKT 표현을 사용합니다.mysql>
SELECT X(Point(15, 20));+------------------+ | X(POINT(15, 20)) | +------------------+ | 15 | +------------------+ mysql>SELECT X(GeomFromText('POINT(15 20)'));+---------------------------------+ | X(GeomFromText('POINT(15 20)')) | +---------------------------------+ | 15 | +---------------------------------+4 개의 점을 포함
LineString:LINESTRING (0 0 10 10 20 25 50 60)점의 좌표 쌍은 쉼표로 구분됩니다.
외부 링과 내부 링을 하나씩 포함
Polygon:POLYGON ((0 0,10 0,10 10,0 10,0 0), (5 5,7 5,7 7,5 7 5 5))3 개의
Point값을 포함MultiPoint:MULTIPOINT (0 0 20 20 60 60)두
LineString값을 포함MultiLineString:MULTILINESTRING ((10 10 20 20), (15 15 30 15))2 개의
Polygon값을 포함MultiPolygon:MULTIPOLYGON (((0 0,10 0,10 10,0 10,0 0)) ((5 5,7 5,7 7,5 7 5 5)))2 개의
Point값과 1 개의LineString에서 구성된GeometryCollection:GEOMETRYCOLLECTION (POINT (10 10) POINT (30 30) LINESTRING (15 15 20 20))
11.5.3.1.2 WKB (Well-Known Binary) 형식
기하 값 WKB (Well-Known Binary) 표현은 기하 WKB 정보를 포함한 BLOB 치에 의해 표현 된 바이너리 스트림으로 기하 데이터를 교환하는 데 사용됩니다. 이 형식은 OpenGIS 사양에 의해 정의되어 있습니다 ( 섹션 11.5 "공간 데이터의 확장" 을 참조하십시오). 이것은 또한 ISO SQL / MM Part 3 : Spatial 표준에 정의되어 있습니다.
WKB는 1 바이트의 부호없는 정수 4 바이트의 부호없는 정수 및 8 바이트의 배정 수 (IEEE 754 형식)를 사용합니다. 1 바이트는 8 비트입니다.
예를 들어, POINT(1 1) 에 대응하는 WKB 값은 각각 2 개의 16 진수로 표시 한 다음 21 바이트의 시퀀스로 구성됩니다.
0101000000000000000000F03F000000000000F03F
이 순서는 다음과 같이 구성됩니다.
Byte order : 01 WKB type : 01000000 X coordinate : 000000000000F03F Y coordinate : 000000000000F03F
각 구성 요소가 나타내는 내용은 다음과 같습니다.
바이트 순서는 1 또는 0 중 하나에서 리틀 엔디안 또는 빅 엔디안 스토리지를 나타냅니다. little endian 바이트 순서 빅 endian 바이트 순서는 각각 NDR (Network Data Representation), XDR (External Data Representation)라고도합니다.
WKB 형은 기하 형을 나타내는 코드입니다. 1-7의 값은
Point,LineString,Polygon,MultiPoint,MultiLineString,MultiPolygon및GeometryCollection을 나타냅니다.Point값은 X 좌표와 Y 좌표가 포함되지만 각각 배정 밀도 값으로 표현됩니다.
또한 복잡한 기하 값 WKB 값은 OpenGIS 사양에 자세히 기록되어있다 같이보다 복잡한 데이터 구조입니다.