libgd-gis 프로젝트는 ‘내 도시의 모든 아이스크림 가게를 지도에 표시하면 어떨까?’라는 간단한 질문에서 시작되었습니다. 이 질문은 GIS를 재미있고 접근하기 쉬운 분야로 만들었습니다. libgd-gis를 활용하여 파라나(아르헨티나)의 아이스크림 가게 데이터셋으로 지도를 생성했으며, 각 핀은 데이터에서 읽어와 경위도에 따라 투영하고 아이콘으로 그리며 이름으로 라벨링한 후 PNG 이미지로 렌더링됩니다. 이 모든 과정이 외부 GIS 소프트웨어, 클라우드 서비스, Mapbox 없이 Ruby 내에서 이루어졌습니다.
지도 생성 사례
-
아이스크림 가게 지도: 파라나 지역의 아이스크림 가게 위치를 정확히 표시하고 라벨링하여 PNG 이미지로 렌더링.
-
박물관 지도: 아이스크림 지도에 이어 문화적 데이터를 활용한 박물관 위치 시각화.
-
세계 최고봉 지도: 도시 단위를 넘어 전 세계의 가장 높은 산봉우리들을 Ruby로 지도화하여 카르토그래피(cartography) 역량 입증.
Ruby GIS 코드 예시
제공된 코드 예시는 GD::GIS::Map 객체를 사용하여 bbox (경계 상자), zoom (확대/축소), basemap (기본 지도)을 설정하고, JSON 데이터에서 산봉우리 지점을 추가하여 아이콘과 라벨을 표시한 후 render 및 save 메서드를 통해 최종 이미지를 생성하는 과정을 명확히 보여줍니다. 이는 Python, Mapnik, QGIS, 셸 스크립트 없이 오직 Ruby만으로 GIS 작업을 수행할 수 있음을 의미합니다.
libgd-gis의 역할
libgd-gis는 ruby-libgd 위에 구축된 지리공간 렌더링 계층입니다.
-
ruby-libgd제공 기능: 빠른 픽셀 접근, 이미지 형식, 필터, 도형, 네이티브 성능. -
libgd-gis추가 기능: 지리적 투영, 경계 상자, 기본 지도, 아이콘 레이어, 라벨, 지도 렌더링. 이 두 젬의 결합으로 Ruby는 완전한 지도 엔진으로 전환됩니다.