GeoJSON (.geojson)
IETF 표준지리 정보 자바스크립트 객체 표기법(GeoJSON)은 지리 데이터 구조를 인코딩하기 위한 범용 웹 네이티브 표준으로, 현대적인 웹 매핑(Leaflet, Mapbox, OpenLayers) 및 GIS 응용 프로그램에서 널리 사용됩니다.
GEOJSON을(를) KML(으)로 변환
무료 브라우저 내 GEOJSON-KML 변환기. 기기에서 파일을 즉시 변환하세요.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GeoJSON 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GeoJSON 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65ASCII 표현: {\n "type": "Feature
표준화: IETF RFC 7946
기술 사양
| 컨테이너 아키텍처 | JSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries |
| 압축 | Uncompressed text (readily compressed over HTTP via Gzip or Brotli) |
| 바이트 엔디안 | UTF-8 text stream |
| 색 공간 | N/A (Geographic Data) |
| 채널 및 구조 | Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties |
| 최대 크기 | World Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90) |
| 투명도 | None |
| 스트리밍 및 프로그레시브 | Line-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features |
기술 비교 매트릭스: GeoJSON 대 경쟁사
| 기술적 속성 | GeoJSON (현재) | KML | GPX | SHP |
|---|---|---|---|---|
| 웹 매핑 채택률 | 100% 범용 웹 GIS 기본값 | Google Earth 기본값 | GPS 장치 및 피트니스 기본값 | 데스크톱 GIS 레거시 표준 |
| 좌표 순서 | [경도, 위도] (X, Y) | 경도, 위도, 고도 | 위도, 경도 | X, Y 좌표 |
| 구문 스타일 | 깔끔한 JSON 키-값 | 장황한 XML 태그 (<kml>) | 장황한 XML 태그 (<gpx>) | 다중 파일 바이너리 (.shp, .shx, .dbf) |
| 속성 스키마 | 임의의 JSON 속성 객체 | ExtendedData 스키마 태그 | 고정 GPX 스키마 태그 | dBase IV (.dbf) 고정 열 |
일반적인 손상 모드 및 헥스 복구 가이드
지도 지점이 실제 위치 대신 남극 근처의 바다에 나타납니다.
근본 원인: 좌표 배열에서 위도와 경도 값이 실수로 바뀌었습니다.
복구: File2File GeoJSON 변환기를 사용하여 좌표 위치 [lon, lat]를 서로 바꿉니다.
보안 분석 및 파서 공격 벡터
GeoJSON 속성에는 XSS를 방지하기 위해 지도 팝업으로 렌더링하기 전에 반드시 살균(sanitization)해야 하는 임의의 사용자 입력이 포함될 수 있습니다.
알려진 공격 벡터
- 지도 툴팁에 렌더링된 GeoJSON 피처 속성의 이스케이프되지 않은 HTML을 통한 크로스 사이트 스크립팅(XSS).
- 깊게 중첩된 GeometryCollection 또는 수백만 개의 정점으로 이루어진 폴리곤을 통한 서비스 거부.
- 원격 GeoJSON 피처 로딩을 통한 서버 측 요청 위조(SSRF).
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 웹 네이티브 표준: 브라우저 매핑 라이브러리(Mapbox GL JS, Leaflet)의 자바스크립트 객체로 직접 매핑됩니다.
- 사람이 읽을 수 있는 JSON 구조를 통해 손쉬운 프로그래밍 방식의 생성, 필터링, 디버깅이 가능합니다.
- 임의의 속성 스키마: 모든 사용자 정의 메타데이터(인구, 이름, 속도, 수익)를 기하학적 도형에 직접 첨부할 수 있습니다.
기술적 제한 사항 및 단점
- 텍스트 장황성: 부동 소수점 좌표를 반복되는 ASCII 숫자로 저장하므로 바이너리 Shapefile이나 FlatGeobuf보다 파일 크기가 큽니다.
- RFC 7946은 '경도/위도'에 익숙한 개발자들을 자주 혼란스럽게 하는 [경도, 위도] 순서를 엄격하게 의무화합니다.
- 수백만 개의 정점이 있는 대형 폴리곤은 웹 브라우저 DOM 렌더링 속도 저하를 유발할 수 있습니다.
흥미로운 기술적 상식
- 공식 GeoJSON 표준은 사람이 말하는 방식('위도, 경도')과 정확히 반대인 [경도, 위도] (X, Y 데카르트 순서) 순서로 좌표를 정렬합니다.
- .geojson 파일을 GitHub에 커밋하면 GitHub가 자동으로 상호 작용 가능한 클릭 가능한 지도 형태로 렌더링합니다.
- RFC 7946은 폴리곤 경계 링이 '오른손 법칙'을 따라야 한다고 규정합니다. 즉, 외곽 링은 반시계 방향으로 감겨야 합니다.
자주 묻는 기술 질문
내 GeoJSON 좌표가 [위도, 경도]가 아니라 왜 [경도, 위도] 순서로 되어 있나요?
수학 및 컴퓨터 그래픽에서 좌표는 항상 (X, Y)로 지정되기 때문입니다. 경도는 수평 X축을 나타내고, 위도는 수직 Y축을 나타냅니다.
KML 또는 Shapefile을 GeoJSON으로 어떻게 변환하나요?
브라우저에서 바로 File2File.app을 사용하여 몇 초 만에 Google Earth KML 파일이나 Esri Shapefile을 깔끔하고 웹에 적합한 GeoJSON으로 변환할 수 있습니다.
GeoJSON과 Shapefile의 차이점은 무엇인가요?
Shapefile은 1990년대의 오래된 다중 파일 바이너리 형식(.shp, .shx, .dbf)입니다. GeoJSON은 깔끔한 JSON으로 작성된 최신 단일 파일 오픈 웹 형식입니다.
관련 GeoJSON 변환 쌍
GeoJSON 벡터를 Google KML로 변환하면 가벼운 JSON 좌표 배열이 Google Earth 및 Google Maps에 맞춤화된 구조화된 XML 문서로 바뀝니다.
Google KML 파일을 GeoJSON으로 변환하면 계층적인 XML 지리 데이터를 현대적인 웹 지도를 위한 경량 벡터 JavaScript Object Notation으로 바꿀 수 있습니다.
GeoJSON 벡터 데이터를 GPX로 변환하여 표준 지리 정보 JSON 개체를 물리적 내비게이션 장치에 최적화된 XML 기반 형식으로 변환합니다.