고급협동조합의 OSM
article thumbnail

최근에 Martin Ždila라는 분께서 오픈스트리트맵 웹 사이트 지도 레이어에 OpenMapTiles를 추가해 달라는 요청을 깃허브에 올렸습니다.

 

Add OpenMapTiles vector map by zdila · Pull Request #4042 · openstreetmap/openstreetmap-website

This pull request adds OpenMapTiles vector tiles among the featured layers. To ensure compatibility with the current stack based on Leaflet, it uses maplibre-gl-leaflet binding. The main advantage ...

github.com

 

OpenMapTiles는 여기에서 시험해 볼 수 있는데, Carto(일명 '표준' 지도)와는 다르게 우리나라뿐만 아니라 전 세계의 지명이 전부 한국어로 나타나는 모습을 볼 수 있습니다.

 

OSM Carto로 동아시아 지역을 본 모습. 지명이 각 국가의 공용어로만 표시된다. ⓒ 오픈스트리트맵 기여자
OpenMapTiles로 동아시아 지역을 본 모습. 지명이 현재 사용자의 언어로 표시된다. ⓒ 오픈스트리트맵 기여자

'OSM Carto'의 정의는 모호합니다. 단순히 '지도 스타일' 중 하나로 간주하기도 하고, 'OSM Carto 지도 스타일을 활용한 래스터(비트맵) 지도 타일'로 OSM Carto를 정의하는 경우도 있습니다.

 

래스터 지도를 호스팅하는 서버는 요청이 들어오면 먼저 해당 위치의 지리 공간 데이터베이스(주로 PostgreSQL+PostGIS)를 읽어들인 후, 이를 PNG 이미지로 변환해 지도 타일 사용자에게 전송합니다. 따라서 여러 언어를 지원하려면 그만큼 지도 타일 이미지를 많이 생성해야 하므로 서버가 받는 부하가 커집니다. 특히나 기부로 운영되는 오픈스트리트맵 타일 서버는 이러한 부하에 매우 민감하고요.

 

그러나 벡터 지도를 호스팅하는 서버는 요청이 들어왔을 때 데이터베이스를 읽는 과정까지는 똑같지만, 읽어들인 정보를 이미지의 형태로 변환하지 않고 바로 사용자에게 전송합니다. 한편 사용자는 웹 사이트에 접속할 때 MapLibre와 같은 벡터 지도 렌더링 라이브러리를 자동으로 다운로드합니다. 이후 사용자 컴퓨터에서 실행되는 렌더링 라이브러리가 서버로부터 받은 지리 정보를 해석해 우리 눈에 보이는 형태로 변환합니다.

 

이 방법을 이용하면 서버가 지도 이미지를 생성할 필요가 없이 단순히 지리 정보가 담긴 텍스트 파일만 전송하면 되니 서버의 부담이 크게 줄어듭니다. 대신 줄어든 부담은 각 사용자가 나눠 맡게 되는 거고요. 그래서 저사양 스마트폰에서는 지도를 렌더링하는 시간이 오래 걸린다는 것이 벡터 지도 타일의 단점입니다.

 

그러나 요즘에는 컴퓨터 및 스마트폰의 사양이 상향 평준화되면서 이러한 벡터 지도 타일이 점차 인기를 끌고 있습니다. Martin Ždila의 제안도 그 일환이고요.

 

개인적으로는 지도를 돌려도 텍스트가 돌아가지 않게 만들 수 있는 벡터 지도가 더 많이 보급되었으면 좋겠습니다.

profile

고급협동조합의 OSM

@고급협동조합

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!