4P by GN⁺ | ★ favorite | 댓글 1개
  • Prettymapp은 OpenStreetMap 데이터로 지도를 만드는 웹앱이자 Python 패키지로, Streamlit 앱과 Python 코드 양쪽에서 지도 생성을 지원함
  • prettymaps를 다시 작성한 프로젝트이며, 웹앱 인터페이스에 맞춘 설정과 속도에 초점을 둠
  • 더 복잡한 설정 옵션을 줄이고 속도 개선, 코드 복잡도 감소, 단순화된 설정 인터페이스를 선택했으며, 부분적으로 테스트되고 Streamlit 웹앱 컴포넌트를 추가함
  • 웹앱은 prettymapp.streamlit.app에서 바로 사용할 수 있고, 로컬에서는 uv sync --extra streamlit 이후 uv run streamlit run streamlit-prettymapp/app.py로 실행함
  • Python 패키지는 pip install prettymapp으로 설치하며, get_aoi, get_osm_geometries, Plot, STYLES를 사용해 영역 정의, OSM 데이터 다운로드, 지도 렌더링, 이미지 저장을 수행함
  • 기본 스타일은 Peach, Auburn, Citrus, Flannel 4개이며, draw_settingsPlot 인자의 shape, contour_width 등으로 스타일과 레이아웃을 조정함
  • get_osm_geometries_from_xml로 openstreetmap.org 등에서 내보낸 OSM XML 파일을 플로팅할 수 있고, LANDCOVER_CLASSES 설정으로 표시할 OSM landcover 클래스 선택을 바꿈

댓글과 토론

Hacker News 의견들
  • OSM 지도를 커스터마이즈하려는 사람에게는 OSM 데이터를 가져오는 Figma 플러그인이 유용함: https://www.figma.com/community/plugin/1251030017228239072/V...
  • 예제 앱이 서비스 거부 상태가 된 김에, 한 번도 써본 적 없던 Streamlit에 직접 배포해 봤는데 프로젝트에는 배포 과정이 문서화되어 있지 않았지만 상위 문서만으로도 아주 쉬웠음
    직접 시도해 볼 수 있음: https://wfcmzortl5n8cqhdowr6dm.streamlit.app/
    • 로컬에서 실행할 때는 다음처럼 했음
      pip install -r requirements.txt
      pip install -r requirements-dev.txt
      pip install -r streamlit-prettymapp/requirements.txt
      streamlit run streamlit-prettymapp/app.py
      streamlit 명령은 세 번째 requirements.txt가 설치해 줌. Macau 지도는 제대로 나오지만 Creating map... (may take up to a minute)에서 멈춰서, OSM API 키가 안 먹히는 건지 궁금했음
      수정: OSM 요소가 꽤 많은 지역에서는 그냥 매우 느린 듯함. 실제로는 OSM을 기하 객체로 변환하는 단계에서 40만 개 객체를 변환하려다 멈춰 있음
      수정 2: https://github.com/chrieke/prettymapp/issues/26
    • 오래 버티진 못했네
    • 여기도 트래픽 폭주로 죽었네 ;)
  • 정말 훌륭함. API 문서가 있는지 궁금함. 도시/마을 이름 대신 GPS 위치를 중심으로 지도를 맞출 수 있으면 좋겠음
    내 도시 이름을 쓰면 합리적인 기본값으로 도심을 쓰는데, 우리 동네는 거기서 꽤 멀어서 아주 많이 축소하지 않으면 지도에 나타나지 않음
  • 예전에도 여러 번 다뤄졌음: https://hn.algolia.com/?q=Prettymap
    • README에 따르면 Prettymapp은 @marceloprates의 훌륭한 prettymaps 프로젝트를 다시 작성한 것에 기반함
  • 어떤 라이선스로 배포되는지 명확히 아는 사람이 있나? 원본은 AGPL이었는데, 다시 작성한 버전이 더 허용적인 라이선스라면 꽤 괜찮을 듯함
    • MIT로 보임: https://github.com/chrieke/prettymapp/blob/main/setup.py#L15...
    • 원본은 AGPL이고 새 버전은 MIT인데, 이게 법적으로 가능한지 궁금함
      이게 정말 재작성인지, 단순한 각색인지 확신이 안 듦. 라이선스를 바꿀 수 없을 수도 있으니 주의해야 함
    • 그게 왜 꽤 괜찮은 일이지?
  • Etsy 상점 생성기 같음
  • 흥미로운 앱임. 예전에 없어지기 전 Ortelius에서 지도를 커스터마이즈하는 것도 정말 즐겼고, felt.com의 Felt도 좋았음
  • MapTiler에는 괜찮은 SaaS 서비스가 있음. 우리는 MapLibre와 함께 그들의 벡터 지도를 쓰고 있음
    이 분야에서 괜찮은 도구와 지도로 사업을 만들어 가려는 좋은 회사이고, 오픈소스에도 크게 기여함. 도구 여러 개가 오픈소스라 직접 호스팅도 가능함. 웹사이트에는 테마형 지도 예시도 괜찮게 있음
  • 사람들이 바라던 어떤 개념이 다른 형태로 구현되는 걸 보면 재미있음
    주류 함수형 프로그래밍은 OCaml/Haskell이 될 거라 기대했지만, 실제로는 함수형 성격을 가진 JavaScript 라이브러리인 React가 됐고, 즉시 모드 GUI는 imgui를 기대했지만 Gradio/Streamlit 같은 형태로 온 느낌임. 직접 써보진 않았지만 대충 보면 그렇게 느껴짐
  • HN이 앱을 죽였네!