이 글에서 제시하는 지도 제작 워크플로우는 GeoJSON 데이터 시작, YAML을 통한 선언적 스타일 정의, 그리고 Ruby를 이용한 최종 이미지 렌더링이라는 세 단계로 구성됩니다. 이 방식은 데이터, 스타일, 렌더링 로직의 명확한 분리를 통해 유연하고 확장 가능한 파이프라인을 구축합니다.
실용적인 지도 제작 접근법
-
데이터 분리: GeoJSON 데이터를 원본으로 사용합니다.
-
스타일 정의: YAML 파일을 통해 시각적 스타일을 선언적으로 정의합니다.
-
렌더링: Ruby 스크립트가 렌더링 과정을 조율하고 최종 이미지를 생성합니다. 이러한 분리 덕분에 문서화, 보고 시스템, 배치 처리, 자동화된 내보내기 등 다양한 시나리오에 자연스럽게 통합될 수 있습니다.
주요 지도 요소 처리
libgd-gis는 다양한 지도 요소를 정밀하게 제어할 수 있도록 지원합니다.
- 포인트 데이터:
- 이미지 아이콘, 숫자 마커, 알파벳 마커 등 다양한 형태로 표시 가능합니다.
- 모든 시각적 요소는 YAML 스타일시트에 정의되며, Ruby 스크립트는 최소한의 코드로 데이터를 로드하고 스타일을 적용하여 렌더링합니다.
- 이는 관심 지점, 경유지, 재고 목록 등 시각적 명확성이 중요한 데이터셋에 유용합니다.
- MultiLineString (경로 및 경로):
- 스트로크 색상, 스트로크 너비, 레이어 순서, 베이스맵과의 대비 등 선의 시각적 속성을 상세히 제어합니다.
- 스타일은 YAML에 완전히 정의되어 있어, Ruby 코드를 변경하지 않고도 시각적 변화를 빠르게 실험할 수 있습니다.
- 경로, 궤적, 공간 시퀀스를 명확하고 재현 가능하게 시각화하는 데 적합합니다.
정적 이미지 및 애니메이션 지도
동일한 렌더링 파이프라인으로 정적 PNG/JPG 출력뿐만 아니라 애니메이션 GIF도 생성할 수 있습니다. 이를 통해 진행 상황, 순서가 지정된 경로 또는 시간적 변화를 애니메이션 지도로 시각화할 수 있으며, 소스 데이터로부터 완전히 재현 가능합니다. 이 이미지 기반 출력은 문서, 보고서 및 출판 파이프라인에 쉽게 통합됩니다.