MapLibre Tile 공개 - 현대적이고 효율적인 벡터 타일 포맷

1 week ago 8

  • MapLibre Tile(MLT) 은 기존 Mapbox Vector Tile(MVT)을 대체하는 새로운 차세대 벡터 타일 포맷으로, 대규모 지리공간 데이터 처리 효율을 높이기 위해 설계됨
  • 최대 6배 향상된 압축률SIMD 기반 빠른 디코딩 성능을 제공해 저장 공간, 지연 시간, 캐시 효율을 개선
  • 향후 3D 좌표(고도), GPU 기반 처리, 복합 데이터 타입, 선형 참조 및 m-values 지원을 목표로 확장 가능
  • 현재 MapLibre GL JSMapLibre Native에서 바로 사용 가능하며, 데모 타일과 변환 서버, Planetiler을 통한 생성 지원
  • 오픈소스 커뮤니티와 기업, 학계의 협력으로 개발된 포맷으로, Microsoft와 AWS의 후원을 받아 완성됨

MapLibre Tile 소개

  • MapLibre Tile(MLT) 은 [Mapbox Vector Tile(MVT)]의 후속 포맷으로, 급증하는 지리공간 데이터량복잡한 차세대 소스 포맷을 처리하기 위해 처음부터 새로 설계됨

    • 최신 하드웨어와 그래픽 API의 성능을 활용하도록 설계되어, 행성 규모의 2D 및 2.5D 베이스맵을 고성능으로 처리 및 렌더링 가능
    • 현재 구현은 MVT와 기능적으로 동등하지만, 성능과 효율성 측면에서 개선됨
  • 주요 기술적 개선점

    • 압축률 향상: 대형 타일에서 최대 6배 개선, 컬럼 지향 레이아웃과 재귀적 경량 인코딩을 적용
    • 디코딩 성능 향상: SIMD/벡터화 명령어와 결합 가능한 빠르고 가벼운 인코딩 구조
    • 결과적으로 지연 시간 감소, 저장 및 전송 비용 절감, 캐시 활용도 향상 효과

향후 확장 가능성

  • MLT는 다음과 같은 미래 기능 지원을 염두에 두고 설계됨

    • 3D 좌표(고도) 지원 강화
    • CPU 및 GPU 효율적 처리를 위한 저장 및 메모리 포맷 최적화
    • 선형 참조(linear referencing)m-values 지원으로 Overture Maps(GeoParquet) 같은 차세대 포맷과 호환
    • 중첩 속성, 리스트, 맵 등 복합 타입 지원
  • MLT의 발전 방향은 커뮤니티의 요구에 따라 결정되며, 다양한 확장 아이디어와 기여를 환영함

    • 관련 자료로는 Markus Tremmel의 FOSS4G 2024 발표 슬라이드, YouTube 강연, ACM 논문이 제공됨

사용 가능 시점 및 통합

  • MLT는 현재 즉시 사용 가능

    • MapLibre GL JSMapLibre Native 모두 MLT 소스를 지원
    • 스타일 JSON의 encoding 속성에 mlt 값을 지정해 사용 가능
  • 체험 및 개발 방법

  • MLT 사용 경험 공유를 위해 Slack의 #maplibre-tile-format 채널이나 GitHub 이슈/디스커션 참여 권장

감사 및 협력

  • MLT는 학계, 오픈소스, 기업 간 다년간의 협력을 통해 개발됨
    • Markus Tremmel이 포맷을 고안, Yuri Astrakhan이 프로젝트를 주도
    • Tim Sylvester가 C++ 구현, Harel Mazor, Benedikt Vogl, Niklas Greindl이 JavaScript 구현 담당
    • MicrosoftAWS가 개발 자금을 지원

주석

  • MLT는 MVT와 달리, 컬럼 내 값의 타입이 피처마다 달라지는 레이어는 지원하지 않음

Read Entire Article