A. GeoJSON은 다양한 지리 데이터 구조를 인코딩하기 위한 형식이다.
geojson.org 에 나온 영어 원문 정의는 아래와 같다.
GeoJSON is a format for encoding a variety of geographic data structures.
출처: geojson.org
원문 설명을 보자.
GeoJSON supports the following geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString, and MultiPolygon. Geometric objects with additional properties are Feature objects. Sets of features are contained by FeatureCollection objects.
위 설명처럼 GeoJSON은 Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon 6가지 기하학 유형들을 지원한다. 추가 속성을 가진 기하학 객체들은 특성Feature 객체들이다. 특성 객체들의 집합은 특성집합FeatureCollection 객체라고 한다.
geojson.org에 나온 GeoJSON 예시는 아래와 같다.
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [125.6, 10.1]
},
"properties": {
"name": "Dinagat Islands"
}
}
하나의 특성Feature 객체로 이루어져 있고, 특성 객체는 Point 유형의 기하학 객체란 것을 알 수 있고, 속성에 디나가트섬들Dinagat Islands이란 이름이 추가되어 있다.
GeoJSON을 이루는 객체 종류
GeoJSON을 이루는 객체 종류를 표로 정리하면 아래와 같다.
예시는 The GeoJSON Format RFC7946 문서에 나온 예들이다,
객체 종류 | 객체 | 번역 | 정의와 예 |
기하학 객체 Geometry Object |
Position | 위치 | [102.0, 0.5] |
Point | 점 | 좌표 하나 예) { "type": "Point", "coordinates": [102.0, 0.5] } |
|
MultiPoint | 점 여러 개 | 좌표들의 배열 예) { "type": "MultiPoint", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } |
|
LineString | 선 | 둘 이상의 좌표들의 배열 예) { "type": "LineString", "coordinates": [ [102.0, 0.0], [103.0, 1.0], [104.0, 0.0] ] } |
|
MultiLineString | 선 여러 개 | LineString의 배열 예) { "type": "MultiLineString", "coordinates": [ [ [100.0, 0.0], [101.0, 1.0] ], [ [102.0, 2.0], [103.0, 3.0] ] ] } |
|
Poligon | 다각형 | 4개 이상의 좌표로 둘러싸인 선형 링 | |
MultiPoligon | 다각형 여러개 | Poligon의 배열 예) { "type": "MultiPolygon", "coordinates": [ [ [ [102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0] ] ], [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ] ] } |
|
GeometryCollection | 기하학 집합 | Position, Point, ... MultiPoligon 객체 배열 | |
Antimeridian Cutting | 반대자오선 분할 | 반대자오선을 넘어선 특성feature를 표현할 때 분할해서 표현 예) { "type": "MultiLineString", "coordinates": [ [ [170.0, 45.0], [180.0, 45.0] ], [ [-180.0, 45.0], [-170.0, 45.0] ] ] } |
|
Uncertainity and Precision | 불확실성과 정확성 | 좌표 위치 값의 자릿수가 불확실성 수준을 나타내는 지표는 아님. | |
특성 객체 Feature Object |
특성은 기하학 객체 geometry와 속성들properties을 속성으로 가진 객체 예) { "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } } |
||
특성 집합 객체 FeatureCollection Object |
특성feature를 배열로 가진 속성 feature를 갖고 있는 객체 예) { "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }, { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0] ] }, "properties": { "prop0": "value0", "prop1": 0.0 } }] } |
활용
구글맵 API, 네이버맵 API 등에서 GeoJSON을 활용한다.
반응형