Loading...
MySQL 9.5 Reference Manual 9.5의 15.1.23 CREATE SPATIAL REFERENCE SYSTEM Statement의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
1CREATE OR REPLACE SPATIAL REFERENCE SYSTEM 2 srid srs_attribute ... 3 4CREATE SPATIAL REFERENCE SYSTEM 5 [IF NOT EXISTS] 6 srid srs_attribute ... 7 8srs_attribute: { 9 NAME 'srs_name' 10 | DEFINITION 'definition' 11 | ORGANIZATION 'org_name' IDENTIFIED BY org_id 12 | DESCRIPTION 'description' 13} 14 15srid, org_id: 32-bit unsigned integer
이 statement는
spatial reference system (SRS) 정의를 생성하여 데이터
딕셔너리에 저장하며,
CREATE_SPATIAL_REFERENCE_SYSTEM
프리빌리지(또는 SUPER)가 필요합니다. 이렇게 생성된
데이터 딕셔너리 엔트리는
INFORMATION_SCHEMA ST_SPATIAL_REFERENCE_SYSTEMS 테이블을 사용하여 확인할 수 있습니다.
SRID 값은 고유해야 하므로, OR REPLACE와 IF NOT EXISTS 둘 다
지정되지 않은 경우, 주어진
srid 값의 SRS 정의가 이미 존재하면 에러가 발생합니다.
CREATE OR REPLACE 구문을 사용하면, 동일한 SRID 값을 가진 기존 SRS
정의는, 그 SRID 값이 기존 테이블의 어떤 컬럼에서 사용되고 있지 않은 한, 대체됩니다. 이러한 컬럼이 존재하는 경우에는
에러가 발생합니다. 예를 들면 다음과 같습니다:
1mysql> CREATE OR REPLACE SPATIAL REFERENCE SYSTEM 4326 ...; 2ERROR 3716 (SR005): Can't modify SRID 4326. There is at 3least one column depending on it.
어떤 컬럼이 해당 SRID를 사용하는지 확인하려면, 생성하려는 정의의 SRID 값으로 4326을 대체하여 다음 쿼리를 사용하십시오:
1SELECT * FROM INFORMATION_SCHEMA.ST_GEOMETRY_COLUMNS WHERE SRS_ID=4326;
CREATE ... IF NOT EXISTS 구문을 사용하면,
동일한 SRID 값을 가진 기존 SRS 정의가 있을 경우 새 정의는 무시되며 워닝이 발생합니다.
SRID 값은 32-bit unsigned integer 범위 내에 있어야 하며, 다음과 같은 제약이 있습니다:
SRID 0은 유효한 SRID이지만
CREATE SPATIAL REFERENCE SYSTEM에서는 사용할 수 없습니다.
값이 예약된 SRID 범위에 속하면 워닝이 발생합니다. 예약된 범위는 [0, 32767](EPSG가 예약), [60,000,000, 69,999,999](EPSG가 예약), [2,000,000,000, 2,147,483,647](MySQL이 예약)입니다. EPSG는 European Petroleum Survey Group의 약자입니다.
사용자는 예약된 범위 내의 SRID로 SRS를 생성해서는 안 됩니다. 그렇게 하면, 이 SRID가 미래에 MySQL과 함께 배포될 SRS 정의와 충돌할 위험이 있으며, 그 결과 MySQL 업그레이드 시 새로운 시스템 제공 SRS가 설치되지 않거나 사용자 정의 SRS가 오버라이트될 수 있습니다.
이 statement의 attribute는 다음 조건을 만족해야 합니다:
Attribute는 어떤 순서로든 지정할 수 있지만, 각 attribute는 한 번만 지정할 수 있습니다.
NAME 및 DEFINITION
attribute는 필수입니다.
NAME srs_name attribute 값은
고유해야 합니다. ORGANIZATION org_name 및
org_id attribute 값의 조합 또한
고유해야 합니다.
NAME srs_name attribute 값 및
ORGANIZATION org_name attribute 값은
비어 있을 수 없으며, 공백으로 시작하거나 끝날 수 없습니다.
Attribute 지정의 문자열 값에는 newline을 포함한 제어 문자를 포함할 수 없습니다.
다음 테이블은 문자열 attribute 값의 최대 길이를 보여 줍니다.
Table 15.6 CREATE SPATIAL REFERENCE SYSTEM Attribute Lengths
| Attribute | Maximum Length (characters) |
|---|---|
NAME | 80 |
DEFINITION | 4096 |
ORGANIZATION | 256 |
DESCRIPTION | 2048 |
다음은 CREATE SPATIAL REFERENCE SYSTEM statement의 예입니다. DEFINITION
값은 가독성을 위해 여러 줄에 걸쳐 재포맷되었습니다. (statement가 legal하려면,
이 값은 실제로는 한 줄에 주어져야 합니다.)
1CREATE SPATIAL REFERENCE SYSTEM 4120 2NAME 'Greek' 3ORGANIZATION 'EPSG' IDENTIFIED BY 4120 4DEFINITION 5 'GEOGCS["Greek",DATUM["Greek",SPHEROID["Bessel 1841",\ 6 6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],\ 7 AUTHORITY["EPSG","6120"]],PRIMEM["Greenwich",0,\ 8 AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943278,\ 9 AUTHORITY["EPSG","9122"]],AXIS["Lat",NORTH],AXIS["Lon",EAST],\ 10 AUTHORITY["EPSG","4120"]]';
SRS 정의를 위한 그라마는 OpenGIS Implementation Specification: Coordinate Transformation Services Revision 1.00, OGC 01-009, 2001년 1월 12일자, Section 7.2에 정의된 그라마를 기반으로 합니다. 이 스펙은 http://www.opengeospatial.org/standards/ct에서 확인할 수 있습니다.
MySQL은 이 스펙에 다음과 같은 변경을 적용합니다:
<horz cs> production rule만
구현합니다(즉, 지리 및 투영 SRS).
<parameter>에 대해 비표준 optional
<authority> 절이 있습니다. 이를 통해
이름 대신 authority에 의해 projection parameter를
인식할 수 있습니다.
이 스펙은 GEOGCS spatial
reference system 정의에서 AXIS
절을 필수로 요구하지 않습니다. 그러나 AXIS
절이 없으면, MySQL은 정의의 축이 위도-경도 순서인지
경도-위도 순서인지 판단할 수 없습니다. MySQL은 각
GEOGCS 정의에 두 개의 AXIS
절이 포함되어야 한다는 비표준 요구 사항을 강제합니다. 하나는
NORTH 또는 SOUTH이어야 하고,
나머지 하나는 EAST 또는 WEST이어야 합니다.
AXIS 절의 순서는 정의의 축이 위도-경도 순서인지
경도-위도 순서인지를 결정합니다.
SRS 정의에는 newline을 포함할 수 없습니다.
SRS 정의가 projection에 대해 authority 코드(권장됨)를 지정하는 경우, 정의에 필수 parameter가 누락되어 있으면 에러가 발생합니다. 이 경우 에러 메시지는 어떤 문제가 있는지 알려 줍니다. MySQL이 지원하는 projection 메서드와 필수 parameter는 Table 15.7, “Supported Spatial Reference System Projection Methods” 및 Table 15.8, “Spatial Reference System Projection Parameters”에 나와 있습니다.
다음 테이블은 MySQL이 지원하는 projection 메서드를 보여 줍니다. MySQL은 알 수 없는 projection 메서드를 허용하지만, 그 정의에 대해 필수 parameter를 검사하거나 공간 데이터를 알 수 없는 projection으로부터 변환하거나 그 반대로 변환할 수는 없습니다. 각 projection이 어떻게 동작하는지에 대한 상세 설명(공식 포함)은 EPSG Guidance Note 7-2를 참고하십시오.
Table 15.7 Supported Spatial Reference System Projection Methods
| EPSG Code | Projection Name | Mandatory Parameters (EPSG Codes) |
|---|---|---|
| 1024 | Popular Visualisation Pseudo Mercator | 8801, 8802, 8806, 8807 |
| 1027 | Lambert Azimuthal Equal Area (Spherical) | 8801, 8802, 8806, 8807 |
| 1028 | Equidistant Cylindrical | 8823, 8802, 8806, 8807 |
| 1029 | Equidistant Cylindrical (Spherical) | 8823, 8802, 8806, 8807 |
| 1041 | Krovak (North Orientated) | 8811, 8833, 1036, 8818, 8819, 8806, 8807 |
| 1042 | Krovak Modified | 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028,<br> 1029, 1030, 1031, 1032, 1033, 1034, 1035 |
| 1043 | Krovak Modified (North Orientated) | 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028,<br> 1029, 1030, 1031, 1032, 1033, 1034, 1035 |
| 1051 | Lambert Conic Conformal (2SP Michigan) | 8821, 8822, 8823, 8824, 8826, 8827, 1038 |
| 1052 | Colombia Urban | 8801, 8802, 8806, 8807, 1039 |
| 9801 | Lambert Conic Conformal (1SP) | 8801, 8802, 8805, 8806, 8807 |
| 9802 | Lambert Conic Conformal (2SP) | 8821, 8822, 8823, 8824, 8826, 8827 |
| 9803 | Lambert Conic Conformal (2SP Belgium) | 8821, 8822, 8823, 8824, 8826, 8827 |
| 9804 | Mercator (variant A) | 8801, 8802, 8805, 8806, 8807 |
| 9805 | Mercator (variant B) | 8823, 8802, 8806, 8807 |
| 9806 | Cassini-Soldner | 8801, 8802, 8806, 8807 |
| 9807 | Transverse Mercator | 8801, 8802, 8805, 8806, 8807 |
| 9808 | Transverse Mercator (South Orientated) | 8801, 8802, 8805, 8806, 8807 |
| 9809 | Oblique Stereographic | 8801, 8802, 8805, 8806, 8807 |
| 9810 | Polar Stereographic (variant A) | 8801, 8802, 8805, 8806, 8807 |
| 9811 | New Zealand Map Grid | 8801, 8802, 8806, 8807 |
| 9812 | Hotine Oblique Mercator (variant A) | 8811, 8812, 8813, 8814, 8815, 8806, 8807 |
| 9813 | Laborde Oblique Mercator | 8811, 8812, 8813, 8815, 8806, 8807 |
| 9815 | Hotine Oblique Mercator (variant B) | 8811, 8812, 8813, 8814, 8815, 8816, 8817 |
| 9816 | Tunisia Mining Grid | 8821, 8822, 8826, 8827 |
| 9817 | Lambert Conic Near-Conformal | 8801, 8802, 8805, 8806, 8807 |
| 9818 | American Polyconic | 8801, 8802, 8806, 8807 |
| 9819 | Krovak | 8811, 8833, 1036, 8818, 8819, 8806, 8807 |
| 9820 | Lambert Azimuthal Equal Area | 8801, 8802, 8806, 8807 |
| 9822 | Albers Equal Area | 8821, 8822, 8823, 8824, 8826, 8827 |
| 9824 | Transverse Mercator Zoned Grid System | 8801, 8830, 8831, 8805, 8806, 8807 |
| 9826 | Lambert Conic Conformal (West Orientated) | 8801, 8802, 8805, 8806, 8807 |
| 9828 | Bonne (South Orientated) | 8801, 8802, 8806, 8807 |
| 9829 | Polar Stereographic (variant B) | 8832, 8833, 8806, 8807 |
| 9830 | Polar Stereographic (variant C) | 8832, 8833, 8826, 8827 |
| 9831 | Guam Projection | 8801, 8802, 8806, 8807 |
| 9832 | Modified Azimuthal Equidistant | 8801, 8802, 8806, 8807 |
| 9833 | Hyperbolic Cassini-Soldner | 8801, 8802, 8806, 8807 |
| 9834 | Lambert Cylindrical Equal Area (Spherical) | 8823, 8802, 8806, 8807 |
| 9835 | Lambert Cylindrical Equal Area | 8823, 8802, 8806, 8807 |
| EPSG Code | Projection Name | Mandatory Parameters (EPSG Codes) |
|---|
다음 테이블은 MySQL이 인식하는 projection parameter를 보여 줍니다. 인식은 주로 authority 코드 기준으로 이루어집니다. Authority 코드가 없으면, MySQL은 parameter 이름에 대해 대소문자를 구분하지 않는 문자열 매칭으로 대체합니다. 각 parameter에 대한 자세한 내용은 코드를 기준으로 EPSG Online Registry에서 조회하십시오.
Table 15.8 Spatial Reference System Projection Parameters
| EPSG Code | Fallback Name (Recognized by MySQL) | EPSG Name |
|---|---|---|
| 1026 | c1 | C1 |
| 1027 | c2 | C2 |
| 1028 | c3 | C3 |
| 1029 | c4 | C4 |
| 1030 | c5 | C5 |
| 1031 | c6 | C6 |
| 1032 | c7 | C7 |
| 1033 | c8 | C8 |
| 1034 | c9 | C9 |
| 1035 | c10 | C10 |
| 1036 | azimuth | Co-latitude of cone axis |
| 1038 | ellipsoid_scale_factor | Ellipsoid scaling factor |
| 1039 | projection_plane_height_at_origin | Projection plane origin height |
| 8617 | evaluation_point_ordinate_1 | Ordinate 1 of evaluation point |
| 8618 | evaluation_point_ordinate_2 | Ordinate 2 of evaluation point |
| 8801 | latitude_of_origin | Latitude of natural origin |
| 8802 | central_meridian | Longitude of natural origin |
| 8805 | scale_factor | Scale factor at natural origin |
| 8806 | false_easting | False easting |
| 8807 | false_northing | False northing |
| 8811 | latitude_of_center | Latitude of projection centre |
| 8812 | longitude_of_center | Longitude of projection centre |
| 8813 | azimuth | Azimuth of initial line |
| 8814 | rectified_grid_angle | Angle from Rectified to Skew Grid |
| 8815 | scale_factor | Scale factor on initial line |
| 8816 | false_easting | Easting at projection centre |
| 8817 | false_northing | Northing at projection centre |
| 8818 | pseudo_standard_parallel_1 | Latitude of pseudo standard parallel |
| 8819 | scale_factor | Scale factor on pseudo standard parallel |
| 8821 | latitude_of_origin | Latitude of false origin |
| 8822 | central_meridian | Longitude of false origin |
| 8823 | standard_parallel_1, standard_parallel1 | Latitude of 1st standard parallel |
| 8824 | standard_parallel_2, standard_parallel2 | Latitude of 2nd standard parallel |
| 8826 | false_easting | Easting at false origin |
| 8827 | false_northing | Northing at false origin |
| 8830 | initial_longitude | Initial longitude |
| 8831 | zone_width | Zone width |
| 8832 | standard_parallel | Latitude of standard parallel |
| 8833 | longitude_of_center | Longitude of origin |
| EPSG Code | Fallback Name (Recognized by MySQL) | EPSG Name |
|---|
15.1.22 CREATE SERVER Statement
15.1.24 CREATE TABLE Statement