GeoJSON
GeoJSON
은 위치 정보를 갖는 점을 기반으로 체계적으로 지형을 표현하기 위해 설계된 개방형 공개 표준 형식입니다.
지도에 특정 구역 별로 나누어 표시하거나, 기하학적 도형을 포함하고자 할때 사용합니다.
GeoJSON
은 다음과 같은 형태를 같습니다.
GeoJSON
형식에는 properties
, geometry
등에 주요한 정보가 담겨 있습니다.
properties
는 국가, 도시, 토지 등에 대한 정보가 담겨 있습니다.
geometry
는 메타 데이터의 형식과 좌표가 담겨 있습니다.
메타 데이터 형식에는 Point
, LineString
, Polygon
등이 있으며, Multi
속성으로도 구현될 수 있습니다.
Multi
으로 작성된 경우, 1개 이상의 지리 데이터가 담겨있습니다.
클래스 코드
세부 코드
GeoJSON
GeoJSON
을 적용하기 위해 skorea-provinces-geo.json
파일을 읽어 JSON Object
형식으로 변경합니다.
파일 형태가 아닌, WebRequest
형태로도 JSON Object
형식으로 가져올 수 있습니다.
GeoJSON 다운로드
South Korea Github
foreach
문을 활용하여 features
속성에 있는 데이터를 가져옵니다.
다각형(Polygon)
의 이름은 properties
속성의 NAME_1
으로 사용합니다.
geometry
속성의 type
을 확인하여 분기 처리를 진행합니다.
Polygon
은 기본 형태(Geometry primitives)
의 구조를 가지며, MultiPolygon
은 복잡한 형태(Multipart geometries)
의 구조를 가집니다.
기본 형태(Geometry primitives)
는 객체 하나만 가지고 있으며, 복잡한 형태(Multipart geometries)
는 두 개 이상의 객체를 가지고 있습니다.
그러므로, 복잡한 형태(Multipart geometries)
는 깊이(Depth)가 하나 더 깊습니다.
기본 형태(Geometry primitives)
기본 형태(Geometry primitives)
데이터를 반복하여 coordinates
데이터를 통해 다각형(Polygon)
을 그립니다.
구멍(hole)
이 있는 다각형도 기본 형태(Geometry primitives)
데이터이며, 구멍의 판단 유/무는 배열의 길이로 확인할 수 있습니다.
구멍이 있는 다각형을 그리고자 한다면, 8강의 강좌의 코드를 활용합니다.
복잡한 형태(Multipart geometries)
복잡한 형태(Multipart geometries)
데이터를 반복하여 coordinates
데이터를 가져옵니다.
복잡한 형태의 데이터는 깊이가 하나 더 깊으므로, 한 번 더 반복하여 동일한 데이터 형식으로 변경합니다.
이 데이터 형식은 구멍이 있는 다각형이 여러 개 있을 수 있습니다.
AddPolygon
기존 다각형 그리기와 동일한 방식으로 등록합니다.
coordinates의 좌표계는 위도 / 경도의 순서로 나열되어 있습니다.
PointLatLng
은 경도 / 위도
의 순서로 입력받으므로, 색인 순서를 반대로 입력합니다.
구멍이 있는 다각형을 그리고자 한다면, features[“geometry”][“coordinates”] 배열의 길이를 확인하여 분리해 적용합니다.
출력 결과
댓글 남기기