Loading...
MySQL 9.5 Reference Manual 9.5의 14.16.11 Spatial GeoJSON Functions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 절에서는 GeoJSON document와 공간 값 사이를 변환하는 함수들을 설명합니다. GeoJSON은 기하학적/지리적 피처를 인코딩하기 위한 오픈 표준입니다. 자세한 내용은 http://geojson.org를 참조하십시오. 여기에서 설명하는 함수들은 GeoJSON specification revision 1.0을 따릅니다.
GeoJSON은 MySQL이 지원하는 것과 동일한 기하/지리 데이터 타입을 지원합니다. Feature 및 FeatureCollection object는 지원되지 않지만, 그 안에서 geometry object는 추출됩니다. CRS 지원은 SRID를 식별하는 값으로 제한됩니다.
MySQL은 또한 네이티브 JSON
데이터 타입과 JSON 값에 대한 연산을 가능하게 하는 SQL 함수 집합을 지원합니다. 자세한 내용은 Section 13.5, “The JSON Data Type” 및
Section 14.17, “JSON Functions”을 참조하십시오.
geometry _g_로부터 GeoJSON object를 생성합니다. 생성되는 object 문자열은 커넥션 문자 집합과 콜레이션을 갖습니다.
인수 중 하나라도 NULL이면 반환값은
NULL입니다. NULL이 아닌 인수 중 하나라도
유효하지 않으면 에러가 발생합니다.
_max_dec_digits_가 지정되면 좌표에 대한 소수 자릿수의 최대값을 제한하며, 출력이 반올림됩니다. 지정되지 않으면 이 인수는 최대값인 232 −
1로 기본 설정됩니다. 최소값은 0입니다.
_options_가 지정되면 비트마스크입니다. 다음 표는 허용되는 플래그 값들을 보여줍니다. geometry 인수의 SRID가 0인 경우, CRS object는 이를 요청하는 플래그 값이 있더라도 생성되지 않습니다.
| Flag Value | Meaning |
|---|---|
| 0 | 옵션 없음. _options_가 지정되지 않은 경우 이것이 기본값입니다. |
| 1 | bounding box를 출력에 추가합니다. |
| 2 | short-format CRS URN을 출력에 추가합니다. 기본 format은 short format<br> (EPSG:srid)입니다.<br> SRID가 0이면 CRS URN은<br> MySQL:0입니다. |
| 4 | long-format CRS URN<br> (urn:ogc:def:crs:EPSG::srid)을 추가합니다.<br> 이 플래그는 플래그 2를 override합니다. 예를 들어, option 값이<br> 5 및 7인 경우 동일한 의미를 갖습니다 (bounding box와<br> long-format CRS URN을 추가). SRID가 0이면 CRS URN은<br> urn:ogc:def:crs:MySQL::0입니다. |
1mysql> SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111 12.22222)'),2); 2+-------------------------------------------------------------+ 3| ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111 12.22222)'),2) | 4+-------------------------------------------------------------+ 5| {"type": "Point", "coordinates": [11.11, 12.22]} | 6+-------------------------------------------------------------+
GeoJSON object를 나타내는 문자열 _str_을 파싱하여
geometry를 반환합니다.
인수 중 하나라도 NULL이면 반환값은
NULL입니다. NULL이 아닌 인수 중 하나라도
유효하지 않으면 에러가 발생합니다.
_options_가 주어지면, 좌표 차원이 2보다 큰 geometry를 포함하는 GeoJSON document를 어떻게 처리할지를 기술합니다. 다음 표는 허용되는 options 값들을 보여줍니다.
| Option Value | Meaning |
|---|---|
| 1 | document를 거부하고 에러를 생성합니다. _options_가 지정되지 않은 경우 이것이 기본값입니다. |
| 2, 3, 4 | document를 허용하고 더 높은 좌표 차원에 대한 좌표를 제거합니다. |
options 값 2, 3, 4는 현재 동일한 효과를 냅니다. 앞으로 좌표 차원이 2보다 큰 geometry가 지원되면, 이러한 값들이 서로 다른 효과를 낼 것으로 예상할 수 있습니다.
srid 인수가 주어지면, 32-bit 부호 없는 정수여야 합니다. 주어지지 않으면 geometry 반환값의 SRID는 4326입니다.
_srid_가 정의되지 않은 공간 참조 시스템(SRS)을 참조하면
ER_SRS_NOT_FOUND 에러가 발생합니다.
geographic SRS geometry 인수의 경우, 인수 중 longitude 또는 latitude가 범위를 벗어나면 에러가 발생합니다:
longitude 값이 (−180, 180] 범위에 있지 않으면
ER_LONGITUDE_OUT_OF_RANGE
에러가 발생합니다.
latitude 값이 [−90, 90] 범위에 있지 않으면
ER_LATITUDE_OUT_OF_RANGE
에러가 발생합니다.
표시된 범위는 도 단위입니다. SRS가 다른 단위를 사용하면, 해당 단위의 값으로 범위가 표현됩니다. 부동소수점 연산 때문에 정확한 범위 한계는 약간 벗어날 수 있습니다.
GeoJSON geometry, feature 및 feature collection object에는 crs property가 있을 수 있습니다. parsing 함수는
urn:ogc:def:crs:EPSG::srid
및 EPSG:srid
namespace의 named CRS URN을 파싱하지만, link object로 주어진 CRS는 파싱하지 않습니다. 또한
urn:ogc:def:crs:OGC:1.3:CRS84는 SRID 4326으로 인식됩니다. object에 이해할 수 없는 CRS가 있는 경우 에러가 발생합니다. 단, 선택적 srid 인수가 주어진 경우에는, CRS가 invalid하더라도 모든 CRS가 무시됩니다.
GeoJSON document의 하위 level에서, top-level object SRID와 다른 SRID를 지정하는 crs member가 발견되면
ER_INVALID_GEOJSON_CRS_NOT_TOP_LEVEL
에러가 발생합니다.
GeoJSON specification에 규정된 대로, GeoJSON 입력에서 type member에 대한 parsing은 대소문자를 구분합니다 (Point,
LineString 등). specification은 다른 parsing에 대한 대소문자 구분 여부에 대해서는 명시하지 않으며, MySQL에서는 대소문자를 구분하지 않습니다.
다음 예는 간단한 GeoJSON object에 대한 parsing 결과를 보여줍니다. 좌표의 순서는 사용된 SRID에 따라 달라진다는 점에 유의하십시오.
1mysql> SET @json = '{ "type": "Point", "coordinates": [102.0, 0.0]}'; 2mysql> SELECT ST_AsText(ST_GeomFromGeoJSON(@json)); 3+--------------------------------------+ 4| ST_AsText(ST_GeomFromGeoJSON(@json)) | 5+--------------------------------------+ 6| POINT(0 102) | 7+--------------------------------------+ 8mysql> SELECT ST_SRID(ST_GeomFromGeoJSON(@json)); 9+------------------------------------+ 10| ST_SRID(ST_GeomFromGeoJSON(@json)) | 11+------------------------------------+ 12| 4326 | 13+------------------------------------+ 14mysql> SELECT ST_AsText(ST_SRID(ST_GeomFromGeoJSON(@json),0)); 15+-------------------------------------------------+ 16| ST_AsText(ST_SRID(ST_GeomFromGeoJSON(@json),0)) | 17+-------------------------------------------------+ 18| POINT(102 0) | 19+-------------------------------------------------+
14.16.10 Spatial Geohash Functions
14.16.12 Spatial Aggregate Functions