[d3.js] GeoJSON과 TopoJSON의 차이점

GeoJSON과 TopoJSON의 차이점은 무엇이며 언제 다른 하나를 사용합니까?

GitHub의에 TopoJSON의 설명 TopoJSON 파일이 80 % 더 작은 의미한다. 그렇다면 왜 항상 TopoJSON을 사용하지 않습니까?



답변

파일 크기 또는 토폴로지에 관심이 있다면 TopoJSON을 사용하십시오. 어느 쪽도 신경 쓰지 않는다면 단순성을 위해 GeoJSON을 사용하십시오.

TopoJSON의 주요 장점은 크기입니다. 중복성을 제거하고 좌표의보다 효율적인 고정 정밀도 정수 인코딩을 사용함으로써 TopoJSON 파일은 GeoJSON 파일보다 훨씬 작은 경우가 많습니다. TopoJSON 파일의 두 번째 이점은 토폴로지 인코딩에 토폴로지 보존 단순화 ( MapShaper 와 유사 ) 및 자동 메시 생성 ( 이 예제 choropleth의 상태 상태 경계에서 와 같이)과 같은 유용한 응용 프로그램 이 있다는 것 입니다.

이러한 이점은 비용이 발생합니다. 더 복잡한 파일 형식입니다. 자바 스크립트에서, 예를 들어, 일반적으로 사용하는 거라고 TopoJSON 클라이언트 라이브러리를 같은 표준 도구를 사용 GeoJSON에 TopoJSON 변환 d3.geoPath . (Python에서는 topojson.py 를 사용할 수 있습니다 .) 또한 TopoJSON의 정수 형식에는 양자화 좌표가 필요하므로주의하지 않으면 반올림 오류가 발생할 수 있습니다. (에 대한 설명서를 참조하십시오 topojson -q.)

토폴로지가 필요하지 않은 지오메트리의 서버 측 조작의 경우 GeoJSON이 아마도 더 간단한 선택 일 것입니다. 그렇지 않고 토폴로지가 필요하거나 와이어를 통해 지오메트리를 클라이언트에 보내려면 TopoJSON을 사용하십시오.


답변

TopoJSON은 행정 구역과 같이 서로 “스냅”되는 깔끔한 기능에 이상적이지만 더 복잡하거나 유기적 인 데이터에는 도움이되지 않습니다. 데이터가 단순히 포인트라면 TopoJSON은 전혀 도움이되지 않습니다.


답변

많은 고려 사항에 따라 다릅니다. 그중에는 다음이 있습니다.

1) 표현하려는 기능의 특성 (데이터 모델) 2) 해당 기능과 연관시키려는 모든 속성 3) 페이지에서 이러한 기능이 작동하기를 원하는 방식 (정적 vs. 동적)

그러나 이것은 초록에서 대답하기 어려운 질문입니다. 몇 가지 세부 사항과 관련하여, 연속적인 폴리곤 커버리지 또는 피쳐가 경계를 공유하는 다른 상황이있는 경우 topojson의 모델을 사용하면 중복성을 활용하고이를 모델에 반영 할 수 있습니다.

문서를 읽고 예제 (예 : bl.ocks.org)를 분석 한 다음 일부 데이터를 가져 와서 geojson과 topojson으로 표현하고 자신 만의 시각화를 만듭니다.


답변