libgd-gis의 이번 업그레이드는 특히 두 가지 주요 영역에서 두드러집니다.
🌍 유럽 – 대륙 규모 수문학 렌더링
-
Natural Earth GeoJSON에서 로드된 유럽의 전체 강 시스템을 libgd-gis가 렌더링합니다.
-
이는 정적 타일이 아닌 실시간 GeoJSON 렌더링 파이프라인입니다:
GeoJSON → Feature → Projection → Style → GD raster. -
모든 강은 GeoJSON에서 파싱되고, 물로 분류되며, 이미지 좌표로 투영되고, 벡터 기반의 정확한 스트로크 기하학으로 그려진 후, 베이스맵에 합성됩니다.
-
전통적인 GIS 환경에서는 GDAL + QGIS + PostGIS가 필요했지만, 이제 단일 Ruby 프로세스 내에서 실행됩니다.
🇦🇷 엔트레리오스 – 실제 지방 규모 수문학
-
동일한 파이프라인이 아르헨티나 엔트레리오스 주의 수문학 레이어에 지역 정밀도로 적용됩니다.
-
파라나 강, 우루과이 강, 삼각주 지류, 내부 하천, 지류 및 소유역 등 다양한 수문학적 특징이 GeoJSON 수자원 피처로부터 렌더링됩니다.
🧠 libgd-gis의 변화: 의미론적 레이어 분류
-
가장 중요한 업그레이드는 의미론적 레이어 분류 기능입니다. libgd-gis는 이제 피처가 무엇인지 이해합니다.
-
water와 같은 온톨로지를 통해 libgd-gis는 데이터셋 전반에 걸쳐 수역을 감지하고, IGN, GNA, Natural Earth, OSM 등 다양한 소스를 병합하여 통일된 수자원 레이어에 그릴 수 있으며, 특수 스트로크 및 채우기 규칙을 적용할 수 있습니다. -
이는 단순한 선 그리기가 아닌 실제 GIS 의미론을 구현한 것입니다.
🎨 실제 지도 엔진과 같은 스타일
-
물은 더 이상 ‘파란 선’에 불과하지 않습니다. libgd-gis는 이제 다중 스트로크 강, 중앙선, 너비 스케일링, 알파 투명도, 폴리곤 및 라인 수역을 지원합니다.
-
예시:
yaml water: stroke: [0, 120, 255] stroke_width: 6 fill: [180, 220, 255] fill_width: 4 center: [255, 255, 255] center_width: 1 -
이러한 기능은 실제 지도 제작 방식이며, 이제 Ruby에서 가능합니다.
🗺️ 왜 중요한가
-
이제 Ruby 내에서 수문학 지도, 환경 대시보드, 홍수 모델링 미리보기, GIS 썸네일, 오프라인 지도 이미지, 과학 플롯, 공간 보고서 등을 외부 GIS 엔진 없이 구축할 수 있습니다.
-
이는 QGIS를 대체하는 것이 아니라, Ruby 애플리케이션 내에 GIS를 내장하는 것에 중점을 둡니다. Rails도 이제 지도를 생성할 수 있습니다.