GeoJSON (.geojson)
IETF 표준GeoJSON은 웹 지도에서 널리 쓰이지만 지원은 다릅니다. GitHub 지도 표시에는 제한이 있고 RFC 7946은 경도 다음 위도 순서를 정합니다.
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
기술 사양
| 컨테이너 아키텍처 | 지리적 피처, 피처 컬렉션 및 기하 도형을 나타내는 RFC 7946 준수 JSON 문서 |
| 압축 | 압축되지 않은 텍스트(HTTP를 통해 Gzip 또는 Brotli로 쉽게 압축 가능) |
| 바이트 엔디안 | UTF-8 텍스트 스트림 |
| 색 공간 | 해당 없음(지리 데이터) |
| 채널 및 구조 | 포인트, 멀티포인트, 라인스트링, 멀티라인스트링, 폴리곤, 멀티폴리곤, 기하 도형 컬렉션 및 사용자 지정 속성 |
| 최대 크기 | World Geodetic System 1984(WGS 84) 좌표 공간: 경도(-180°에서 +180°), 위도(-90°에서 +90°) |
| 투명도 | 없음 |
| 스트리밍 및 프로그레시브 | 줄바꿈 구분 GeoJSON(GeoJSONL / GeoJSONSeq)으로 수백만 개 피처를 연속 스트리밍할 수 있음 |
기술 비교 매트릭스: 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.app GeoJSON Converter를 사용하여 좌표 순서 [lon, lat]를 서로 바꾸십시오.
보안 분석 및 파서 공격 벡터
GeoJSON 속성에는 XSS를 방지하기 위해 지도 팝업으로 렌더링하기 전에 반드시 살균(sanitization)해야 하는 임의의 사용자 입력이 포함될 수 있습니다.
알려진 공격 벡터
- 지도 툴팁에 렌더링된 GeoJSON 피처 속성의 이스케이프되지 않은 HTML을 통한 크로스 사이트 스크립팅(XSS).
- 깊게 중첩된 GeometryCollection 또는 수백만 개의 정점으로 이루어진 폴리곤을 통한 서비스 거부.
- 원격 GeoJSON 피처 로딩을 통한 서버 측 요청 위조(SSRF).
방어적 모범 사례: 지도 팝업 창에 삽입하기 전에 DOMPurify로 모든 속성 텍스트 문자열을 살균하십시오.
역사적 배경 및 주요 이력
주요 장점
- 웹 네이티브 표준: 브라우저 매핑 라이브러리(Mapbox GL JS, Leaflet)의 자바스크립트 객체로 직접 매핑됩니다.
- 사람이 읽을 수 있는 JSON 구조를 통해 손쉬운 프로그래밍 방식의 생성, 필터링, 디버깅이 가능합니다.
- 임의의 속성 스키마: 모든 사용자 정의 메타데이터(인구, 이름, 속도, 수익)를 기하학적 도형에 직접 첨부할 수 있습니다.
기술적 제한 사항 및 단점
- 텍스트의 장황함: 부동 소수점 좌표를 반복되는 ASCII 숫자로 저장하므로 바이너리 Shapefile이나 FlatGeobuf보다 파일 크기가 큽니다.
- RFC 7946은 '경도/위도'에 익숙한 개발자들을 자주 혼란스럽게 하는 [경도, 위도] 순서를 엄격하게 의무화합니다.
- 수백만 개의 정점이 있는 대형 폴리곤은 웹 브라우저 DOM 렌더링 속도 저하를 유발할 수 있습니다.
흥미로운 기술적 상식
- 공식 GeoJSON 표준은 사람이 말하는 방식('위도, 경도')과 정확히 반대인 [경도, 위도] (X, Y 데카르트 순서) 순서로 좌표를 정렬합니다.
- GeoJSON은 웹 지도에서 널리 쓰이지만 지원은 다릅니다. GitHub 지도 표시에는 제한이 있고 RFC 7946은 경도 다음 위도 순서를 정합니다.
- RFC 7946은 폴리곤 경계 링이 '오른손 법칙'을 따라야 한다고 규정합니다. 즉, 외곽 링은 반시계 방향으로 감겨야 합니다.
자주 묻는 기술 질문
GeoJSON 좌표가 [위도, 경도]가 아니라 [경도, 위도] 순서인 이유는 무엇입니까?
GeoJSON은 웹 지도에서 널리 쓰이지만 지원은 다릅니다. GitHub 지도 표시에는 제한이 있고 RFC 7946은 경도 다음 위도 순서를 정합니다.
KML 또는 Shapefile을 GeoJSON으로 어떻게 변환할 수 있습니까?
브라우저에서 바로 File2File.app을 사용하여 몇 초 만에 Google Earth KML 파일이나 Esri Shapefile을 깔끔하고 웹에 적합한 GeoJSON으로 변환할 수 있습니다.
GeoJSON과 Shapefile은 어떻게 다릅니까?
Shapefile은 데이터 교환에 여전히 널리 사용되며 GIS 소프트웨어에서 지원됩니다. 다만 여러 파일로 이루어진 구조와 속성 제한 때문에 일부 작업 흐름에는 GeoJSON이나 지오데이터베이스가 더 적합할 수 있습니다.
관련 GeoJSON 변환 쌍
GeoJSON 벡터를 Google KML로 변환하면 가벼운 JSON 좌표 배열이 Google Earth 및 Google Maps에 맞춤화된 구조화된 XML 문서로 바뀝니다.
Google KML 파일을 GeoJSON으로 변환하면 계층적인 XML 지리 데이터를 현대적인 웹 지도를 위한 경량 벡터 JavaScript Object Notation으로 바꿀 수 있습니다.
GeoJSON 벡터 데이터를 GPX로 변환하여 표준 지리 정보 JSON 개체를 물리적 내비게이션 장치에 최적화된 XML 기반 형식으로 변환합니다.