EPSG Code Reference
좌표계 EPSG 코드 검색/변환 레퍼런스
EPSG Code Reference 소개
이 EPSG 코드 레퍼런스는 GIS, 측량, 웹 지도 분야에서 사용되는 좌표 참조 시스템(CRS)을 체계적으로 정리한 검색 가능한 가이드입니다. EPSG:4326(GPS와 GeoJSON용 WGS 84), EPSG:3857(Google Maps, OpenStreetMap, Mapbox용 Web Mercator), EPSG:4269(북미용 NAD83) 등 글로벌 좌표계를 Proj4 정의 문자열, 단위 사양, 실무 활용 참고사항과 함께 다룹니다.
UTM 존 계산 공식(Zone = floor((경도 + 180) / 6) + 1), 레거시 Bessel 기반 EPSG:2097부터 최신 Korea 2000 시리즈(EPSG:5179 통합, 5185 서부, 5186 중부, 5187 동부, 5188 동해)까지 한국 좌표계를 Bessel-GRS80 변환 매개변수와 함께 상세히 수록합니다. 프랑스(Lambert-93), 독일(ETRS89/UTM), 영국(British National Grid), 일본(JGD2011), 중국(CGCS2000, GCJ-02 오프셋 참고사항) 등 주요국 좌표계도 포함합니다.
실용적인 변환 예제로 JavaScript proj4js(WGS84-한국 TM 양방향), Python pyproj Transformer 클래스, QGIS CRS 설정과 실시간 재투영, GeoJSON 좌표 규칙(RFC 7946, EPSG:4326 필수, [경도, 위도] 순서), Leaflet과 OpenLayers의 사용자 정의 CRS 등록 패턴을 제공합니다. GIS 분석가, 지도 기반 웹 애플리케이션 개발자, 한국 국가 좌표계를 다루는 측량사에게 유용한 참조 자료입니다.
주요 기능
- 글로벌 좌표계: EPSG:4326(WGS84), EPSG:3857(Web Mercator), EPSG:4269(NAD83)과 Proj4 문자열
- UTM 존 검색과 계산 공식, Zone 1N-60N EPSG 코드 매핑
- 한국 좌표계 완벽 수록: EPSG:5179 통합, 5185-5188 원점별, 2097 레거시 Bessel 변환 매개변수
- 프랑스(Lambert-93), 독일(ETRS89), 영국(BNG), 일본(JGD2011), 중국(CGCS2000) 국가 좌표계
- JavaScript proj4js 코드 예제로 WGS84-TM, TM-WGS84 좌표 변환
- Python pyproj Transformer 예제로 순방향 및 역방향 좌표 변환
- QGIS CRS 설정 가이드와 실시간 재투영, 사용자 정의 CRS 구성
- GeoJSON RFC 7946 규칙과 Leaflet/OpenLayers CRS 통합 패턴
자주 묻는 질문
EPSG:4326과 EPSG:3857의 차이는 무엇인가요?
EPSG:4326(WGS 84)은 위도와 경도를 도 단위로 사용하는 지리좌표계로, GPS 기기와 GeoJSON(RFC 7946)의 필수 좌표계입니다. EPSG:3857(Web Mercator)은 미터 단위의 투영좌표계로, Google Maps, OpenStreetMap, Mapbox 등 웹 지도 서비스에서 사용합니다. 웹 지도는 대부분 4326 좌표를 받아 내부적으로 3857으로 투영하여 표시합니다. Web Mercator는 위도 약 85.06도 이상의 극지방을 표현할 수 없습니다.
한국 좌표에 어떤 EPSG 코드를 사용해야 하나요?
최신 프로젝트에는 GRS80 기반 Korea 2000 시리즈를 사용하세요. EPSG:5179(한반도 전역 통합), EPSG:5185(서부원점, 전라/인천), EPSG:5186(중부원점, 서울/경기/충청), EPSG:5187(동부원점, 경상/강원 동부), EPSG:5188(동해원점, 울릉도/독도)입니다. 레거시 EPSG:2097(Bessel 1841 타원체)은 새 작업에 사용을 지양하고, Bessel-GRS80 변환 매개변수(dx=+115.80, dy=-474.99, dz=-674.11)로 기존 데이터를 마이그레이션하세요.
경도로 UTM 존 번호를 어떻게 계산하나요?
공식: Zone = floor((경도 + 180) / 6) + 1을 사용합니다. 예를 들어 서울(경도 126.98도)은 (126.98 + 180) / 6 + 1 = Zone 52입니다. 반구 구분은 위도 0도 이상이면 N(북반구), 미만이면 S(남반구)입니다. EPSG 코드는 북반구 326xx(예: EPSG:32652 = UTM Zone 52N), 남반구 327xx 패턴을 따릅니다.
JavaScript로 WGS84 좌표를 한국 TM으로 어떻게 변환하나요?
proj4js를 사용합니다. proj4를 import하고 proj4.defs("EPSG:5186", "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs")로 대상 좌표계를 정의합니다. const [x, y] = proj4("EPSG:4326", "EPSG:5186", [126.978, 37.5665])로 변환하며, 입력은 [경도, 위도] 순서입니다. 역변환은 소스와 대상 좌표계 인수를 바꾸면 됩니다.
GeoJSON의 좌표 규칙은 무엇인가요?
RFC 7946에 따라 GeoJSON은 EPSG:4326(WGS 84)을 사용해야 하며, 좌표 순서는 [경도, 위도]입니다([위도, 경도]가 아닙니다). 고도는 선택적으로 세 번째 값으로 포함할 수 있습니다: [경도, 위도, 고도]. 좌표계는 고정이며 이전 GeoJSON 버전과 달리 변경할 수 없습니다. 위도 우선 순서를 사용하는 시스템에서 변환할 때 흔한 버그 원인입니다.
Leaflet이나 OpenLayers에서 사용자 정의 좌표계를 어떻게 설정하나요?
Leaflet은 기본적으로 EPSG:3857을 사용하며 setView 좌표를 [위도, 경도]로 받습니다. OpenLayers는 fromLonLat([경도, 위도])로 WGS84에서 Web Mercator로 변환합니다. 한국 TM 같은 사용자 정의 좌표계는 두 라이브러리 모두 proj4js와 통합됩니다. proj4.defs()로 좌표계를 정의하고 등록(OpenLayers: register(proj4))한 후 지도 설정에서 참조합니다.
한국 레거시 좌표의 Bessel-GRS80 변환 매개변수는 무엇인가요?
레거시 한국 1985 시스템(EPSG:2097, Bessel 1841 타원체)에서 Korea 2000(GRS80)으로 변환하려면 7개 매개변수 Helmert 변환을 적용합니다: dx=+115.80, dy=-474.99, dz=-674.11, rx=+1.16, ry=-2.31, rz=-1.63, scale=-6.43. False northing도 500,000m(2097)에서 600,000m(5186)으로 변경됩니다. 모든 새 프로젝트에서는 최신 좌표계로의 마이그레이션을 권장합니다.
이 EPSG 레퍼런스에 모든 좌표계의 Proj4 문자열이 포함되어 있나요?
네, 모든 좌표계 항목에 proj4js(JavaScript), pyproj(Python), GDAL, PostGIS 등 지리공간 도구에서 바로 사용할 수 있는 완전한 Proj4 정의 문자열이 포함되어 있습니다. 글로벌, UTM, 한국, 주요국, 변환 예제 등 5개 카테고리에 걸쳐 26개 이상의 좌표계를 Proj4 매개변수, 타원체 사양, false origin 값과 함께 제공합니다.