Protomaps
OpenStreetMap 으로 나만의 지도시스템 만들기
About
- Protomaps는 클라우드 저장소에서 단일 정적 파일로 배포 가능한 무료 및 오픈 소스 세계지도입니다.
- PMTiles라는 오픈 사양을 사용하여 압축된 Hilbert 순서를 기반으로 단일 파일 타일 피라미드를 구축하고 HTTP Range 요청을 통해 조회할 수 있습니다.
- Protomaps는 Lambda 또는 Workers를 사용하여 AWS Cloudfront 및 Cloudflare와 같은 엣지 네트워크를 통해 초저지연으로 전달될 수 있습니다.
- Leaflet 및 MapLibre GL과 같은 매핑 라이브러리에 대한 일류 지원을 제공하여 벡터 지도 제작 및 자체 지리 데이터 시각화를 가능하게 합니다.
- Protomaps는 OpenStreetMap에서 기본 맵 레이어를 무료로 다운로드할 수 있는 다운로드 서비스를 제공합니다.
- 이미 사용 중인 클라우드 인프라에서 매달 수백 달러에서 몇 푼으로 매핑 비용을 크게 줄일 수 있습니다.
- 맵 기반 프로젝트와 사이트는 제3자 서비스나 API 키에 의존하지 않고 오프라인에서도 영구히 작동합니다.
- Protomaps는 또한 Tiles API를 유지하고 있습니다 - 무료 API 키를 받으세요. 비상업적 사용이나 GitHub 후원과 함께하는 상업적 사용에 대해 무료입니다.
- Protomaps는 대화형 지도 제작을 취미가 아닌 모든 규모의 조직에게 접근 가능하게 하는 데 목표를 두고 있는 자금이 자체적으로 마련된 독립 개발자 프로젝트입니다.
- GitHub Sponsors에서 지원 계획을 통해 오픈 소스 세계 기본 맵 타일 세트를 다운로드하거나 오픈 소스 기능의 유료 개발을 통해 Protomaps에 대한 전임 작업을 지원할 수 있습니다.
Features
- OSM 지도를 커스텀해서 직접 S3등을 이용해 서버리스 호스팅
- Protomaps + PMTiles + OSM Express
- Protomaps.js : 2D Canvas 기반 오픈소스 벡터 지도 렌더러
- PMTiles : 지도 타일의 서버리스용 포맷 (S3 및 CDN에 적합)
- OSM Express : 빠른 OSM 저장 포맷
CLI Usages
pmtiles CLI 설치
# macOS
brew install pmtiles
# 또는 릴리스 바이너리 (Linux 등)
# https://github.com/protomaps/go-pmtiles/releases
bounding box로 추출
남한 영역 bbox (서·남·동·북, 제주/울릉/독도 포함):
bbox 순서는 minLon,minLat,maxLon,maxLat 입니다.
``pmtiles extract``는 원본이 로컬 파일이든 원격 URL/S3든 HTTP range 요청으로 필요한 청크만 읽기 때문에,굳이 전체를 받지 않고 원격에서 바로 자를 수도 있습니다:``pmtiles extracthttps://example.com/20260614.pmtilessouth-korea.pmtiles --bbox=124.5,33.0,131.9,38.7
더 정확하게 자르려면 GeoJSON 영역 사용
bbox는 사각형이라 북한·일부 바다까지 포함됩니다. 국경선에 맞춰 자르려면 남한 폴리곤 GeoJSON을 주면 됩니다:
korea.geojson은 Polygon/MultiPolygon Feature 면 됩니다 (예: Natural Earth의 South Korea admin-0 경계).
줌 레벨까지 제한하고 싶을 때
용량을 더 줄이려면 최대 줌을 함께 자릅니다:
결과 확인
See also
Favorite site
- Protomaps | A serverless system for planet-scale maps
- Github - protomaps
- Geospatial 웹서비스를 만들때 추천하는 도구들 모음 | GeekNews
- [원문] Tools I recommend for building Geospatial Web Applications | by Ramiz Sami | The Startup | Medium
- 프론트: Leaflet, Openlayers, GeoExt, Turf.js
- 백엔드: GeoDjango, GeoServer
- DB: PostGIS
- 데이터: QGIS, Mapshaper
- 데이터소스: OpenStreetMap, Diva-GIS
- Home – Switch2OSM
- 구글맵같은 유료 지도API를 사용하지 않고, 직접 지도를 호스팅하기 위해 OSM으로 교체할 때 필요한 것들을 정리. 지도 타일 서버를 세팅하고 사용하기 위한 Leaflet 과 OpenLayers 설명, 그리고 지오코딩/라우팅/벡터맵 라이브러리들 관련 도구들 설명 포함.
- PMTiles 라는 아카이브 파일로 전세계 지도를 서버리스로 운용가능
- 포맷만 공개했었는데, 서버리스용 코드 부분도 오픈소스로 공개
- AWS Lambda 및 Cloudflare Workers 에서 20분만에 셋업하여 운영 가능
- 5만번 로드 기준 구글맵 API는 ($350/월) 인데, Protomaps 를 Cloudflare Workers에서 운영하면 세션당 20타일일때 월 50센트로 훨씬 저렴