동네 이름 하나로 지도 포스터 만드는 prettymaps

prettymaps는 장소 이름을 입력해 OpenStreetMap의 도로·건물·공원·물을 포스터처럼 그리는 Python 오픈소스다. 빠른 시작과 스타일 조정, AGPL·출처 표시 조건을 정리했다.

H
Huuush발행 2026.08.21 · 4 read에디터: Jay Kim

3줄 요약

  • prettymaps는 장소 이름이나 좌표를 받아 OpenStreetMap 지형 데이터를 맞춤형 지도 이미지로 그리는 Python 라이브러리다.
  • layers와 style 설정으로 도로·건물·물·공원 등 표시 대상과 색·선·채우기를 따로 조정할 수 있다.
  • 프로젝트는 AGPL-3.0이며 결과물의 prettymaps와 OpenStreetMap 출처 문구를 유지해야 한다.
prettymaps로 제작한 서울 성수동과 경복궁의 빈티지 지도 포스터 두 장

성수동이 한 장의 판화로

X에서 확산된 예시는 서울 성수동과 경복궁을 빈티지 포스터처럼 그린 지도 두 장입니다. prettymaps 공식 저장소는 이 작업을 OpenStreetMap 데이터로 만드는 최소형 Python 라이브러리라고 설명합니다.

장소 이름을 입력하면 도로망만 그리는 것이 아니라 건물, 물, 공원처럼 OpenStreetMap에 기록된 지형 요소를 레이어로 가져옵니다. 그래서 같은 동네도 어떤 요소를 남기고 어떤 색을 주느냐에 따라 정보 지도와 인테리어 포스터 사이를 오갈 수 있습니다.

첫 지도는 한 줄에서 시작

공식 빠른 시작은 pip install prettymaps로 설치한 뒤 prettymaps.plot('장소 이름')을 실행하는 흐름입니다. Google Colab 설치 예제와 로컬 Streamlit 프런트엔드 실행 방법도 저장소에 제공됩니다.

다만 장소 문자열이 언제나 같은 결과를 보장하는 것은 아닙니다. 지오코딩 결과와 OpenStreetMap 태그의 밀도에 따라 표시되는 건물·공원·철도 등이 달라질 수 있습니다. 실제 제작에서는 먼저 작은 반경으로 시안을 확인한 뒤 범위를 넓히는 편이 안전합니다.

레이어를 나누면 분위기가 바뀝니다

공식 튜토리얼layers에서 가져올 OpenStreetMap 태그를, style에서 레이어별 색과 선을 설정하는 방법을 보여줍니다. 물은 옅은 파랑, 건물은 제한된 팔레트, 도로는 굵기별 색으로 나누는 식입니다.

circleradius로 지도 경계를 정하고, preset으로 반복 가능한 스타일을 저장할 수도 있습니다. 바다 지형, hillshade, keypoints를 지원하는 최신 릴리스도 공개돼 있어, 단순 도로 포스터를 넘어 지형 강조와 장소 표식까지 확장할 수 있습니다.

출력 전에 출처 문구를 지키세요

prettymaps 저장소의 라이선스는 AGPL-3.0입니다. 상업적 이용과 수정·배포가 가능하지만 라이선스와 소스 공개 조건을 확인해야 합니다. 특히 제작자는 결과 이미지에 prettymaps 저장소와 OpenStreetMap을 표시하는 문구를 유지하라고 명시합니다.

X 예시 하단에도 OpenStreetMap contributors와 prettymaps 표시가 들어가 있습니다. 포스터를 잘라내거나 리사이즈할 때 이 영역을 함께 없애기 쉬우므로, 최종 출력 전에 크레딧이 읽히는지 확인해야 합니다. 예쁜 지도 한 장을 만드는 마지막 단계는 색 보정이 아니라 데이터 제공자와 도구의 표시 조건을 지키는 일입니다.

자주 묻는 질문