데이터 사이언스

[데이터 시각화] GeoJSON과 TopoJSON

판다의 삶 2020. 5. 12. 15:41
728x90

데이터를 지도 형태로 시각화할 때 GeoJSON이나 TopoJSON 데이터를 활용할 수 있다.

1. GeoJSON

www.geojson.org 에 따르면

GeoJSON은 다양한 지리적 데이터 구조를 인코딩하는 형식이다.

GeoJSON은 Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon의 기하학적 유형을 지원한다.

추가 프로퍼티를 가진 기하학적 객체는 Feature 객체이고, Feature 객체 집합은 FeatureCollection 객체에 포함된다.

 

< GeoJSON 형식의 데이터 >

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

 

2. TopoJSON

깃허브 topojson 레포지토리 README.md 에 따르면

TopoJSON은 GeoJson의 확장형으로 토폴로지를 인코딩한다.

 

TopoJSON에서 기하학적 구조는 분리되는 대신 arc라는 공유되는 선 세그먼트에서 함께 연결된다. 예를 들어, 캘리포니아와 네바다의 공유 경계선은 두 주 모두에 대해 중복되지 않고 단 한 번만 표시되는 방식이다.

따라서, TopoJSON은 중복성을 제거하여 관련 기하학적 구조를 동일한 파일에 효율적으로 저장할 수 있도록 한다. 

 

< TopoJSON 형식의 데이터 >

{
  "type": "Topology",
  "transform": {
    "scale": [0.036003600360036005, 0.017361589674592462],
    "translate": [-180, -89.99892578124998]
  },
  "objects": {
    "aruba": {
      "type": "Polygon",
      "arcs": [[0]],
      "id": 533
    }
  },
  "arcs": [
    [[3058, 5901], [0, -2], [-2, 1], [-1, 3], [-2, 3], [0, 3], [1, 1], [1, -3], [2, -5], [1, -1]]
  ]
}

 

3. GeoJSON을 TopoJSON으로 변환하기

 

topojson/topojson-server

Convert GeoJSON to TopoJSON. Contribute to topojson/topojson-server development by creating an account on GitHub.

github.com

 

topojson/topojson-server

Convert GeoJSON to TopoJSON. Contribute to topojson/topojson-server development by creating an account on GitHub.

github.com

 

 


[데이터 시각화] D3.js로 World map 세계 지도 데이터 시각화하기

 

[데이터 시각화] D3.js로 World map 세계 지도 데이터 시각화하기

D3.js와 TopoJSON을 활용하여 세계 지도 데이터를 시각화할 수 있다. index.html

life-of-panda.tistory.com

 

728x90