15 puan yazan GN⁺ 2026-01-27 | 1 yorum | WhatsApp'ta paylaş
  • MapLibre Tile(MLT), mevcut Mapbox Vector Tile(MVT)'nin yerini alacak yeni bir yeni nesil vektör döşeme formatı olup, büyük ölçekli coğrafi mekânsal veri işlemede verimliliği artırmak için tasarlandı
  • 6 kata kadar daha iyi sıkıştırma oranı ve SIMD tabanlı hızlı kod çözme performansı sunarak depolama alanını, gecikmeyi ve önbellek verimliliğini iyileştiriyor
  • Gelecekte 3D koordinatlar (yükseklik), GPU tabanlı işleme, bileşik veri tipleri, doğrusal referanslama ve m-values desteği hedefiyle genişletilebilir
  • Şu anda MapLibre GL JS ve MapLibre Native içinde doğrudan kullanılabiliyor; demo döşemeler, dönüştürme sunucusu ve Planetiler üzerinden üretim desteği mevcut
  • Açık kaynak topluluğu, şirketler ve akademinin iş birliğiyle geliştirilen format, Microsoft ve AWS sponsorluğuyla tamamlandı

MapLibre Tile'a giriş

  • MapLibre Tile(MLT), [Mapbox Vector Tile(MVT)] için ardıl bir format olarak, hızla artan coğrafi mekânsal veri miktarını ve karmaşık yeni nesil kaynak formatlarını işlemek amacıyla sıfırdan yeniden tasarlandı

    • Modern donanım ve grafik API'lerinin performansından yararlanacak şekilde tasarlandığı için, gezegen ölçeğinde 2D ve 2.5D taban haritaları yüksek performansla işleyip render edebiliyor
    • Mevcut uygulama şu anda MVT ile işlevsel olarak eşdeğer, ancak performans ve verimlilik açısından geliştirilmiş durumda
  • Başlıca teknik iyileştirmeler

    • Sıkıştırma oranında artış: Büyük döşemelerde 6 kata kadar iyileşme; sütun odaklı yerleşim ve özyinelemeli hafif kodlama kullanılıyor
    • Kod çözme performansında artış: SIMD/vektörleştirilmiş komutlarla birleştirilebilen hızlı ve hafif bir kodlama yapısı
    • Sonuç olarak daha düşük gecikme, daha düşük depolama ve aktarım maliyeti ve daha iyi önbellek kullanımı sağlanıyor

Gelecekteki genişleme potansiyeli

  • MLT, aşağıdaki gibi gelecekteki özellik desteği düşünülerek tasarlandı

    • 3D koordinat (yükseklik) desteğinin güçlendirilmesi
    • CPU ve GPU üzerinde verimli işleme için depolama ve bellek formatlarının optimize edilmesi
    • Doğrusal referanslama (linear referencing) ve m-values desteğiyle Overture Maps(GeoParquet) gibi yeni nesil formatlarla uyumluluk
    • İç içe geçmiş öznitelikler, listeler, map'ler gibi bileşik tip desteği
  • MLT'nin gelişim yönü topluluğun ihtiyaçlarına göre belirlenecek ve çeşitli genişletme fikirleri ile katkılar memnuniyetle karşılanacak

    • İlgili kaynaklar arasında Markus Tremmel'in FOSS4G 2024 sunum slaytları, YouTube konuşması ve ACM makalesi yer alıyor

Kullanılabilirlik ve entegrasyon

  • MLT hemen şimdi kullanılabiliyor

    • Hem MapLibre GL JS hem de MapLibre Native, MLT kaynaklarını destekliyor
    • Style JSON içindeki encoding özelliğine mlt değeri verilerek kullanılabiliyor
  • Deneme ve geliştirme yöntemleri

  • MLT kullanım deneyimlerini paylaşmak için Slack'teki #maplibre-tile-format kanalına veya GitHub issue/discussion alanlarına katılım öneriliyor

Teşekkür ve iş birliği

  • MLT, akademi, açık kaynak ve şirketler arasındaki çok yıllı iş birliği sayesinde geliştirildi
    • Markus Tremmel formatı tasarladı, Yuri Astrakhan projeye liderlik etti
    • Tim Sylvester C++ uygulamasını, Harel Mazor, Benedikt Vogl, Niklas Greindl ise JavaScript uygulamasını üstlendi
    • Microsoft ve AWS geliştirme finansmanı sağladı

Not

  • MLT, MVT'den farklı olarak bir sütundaki değer türünün feature'a göre değiştiği katmanları desteklemiyor

1 yorum

 
GN⁺ 2026-01-27
Hacker News yorumları
  • Cumartesi günü FOSDEM'deki Geospatial devroom'da yapılacak MapLibre sunumuna katılmanızı tavsiye ederim
    etkinlik takvimi bağlantısı

    • Yer olursa kesin gitmek isterim 😄
  • Birkaç örnek sayfaya baktım; MLT ile harita gösterme örneği ile mevcut harita gösterme örneğini karşılaştırdım
    Konsol loglarına bakınca sıkıştırma verimliliğinde yaklaşık %10'luk bir iyileşme olduğunu gördüm. Oldukça etkileyici

    • Yine de demo tile stili, gerçek bir OpenMapTiles tabanlı production basemap ile kıyaslamak için çok uygun değil
      MLT formatında çeşitli hafif kodlama yöntemleri yerleşik olarak bulunuyor ve bunlar her tile için farklı şekillerde de uygulanabiliyor
      Bu yüzden en iyi kombinasyonu bulmak için sezgisel bir yaklaşım gerekiyor; ayrıca tile boyutu ile decode performansı arasında bir ödünleşim var
      Henüz erken aşamada ama AWS bu yıl da MLT optimizasyon çalışmalarına sponsor oluyor, dolayısıyla ileride daha çok gelişme görebiliriz
      Benchmark yaparken toplam tile boyutundan çok gerçek kullanım örüntülerine bakmak önemli — sonuçta kimse okyanusun ortasına zoom yapmıyor 😉
  • Kısa süre önce pmtiles tabanlı bir çözüm dağıttım ve gerçekten çok memnunum
    Ayrıntılar için PMTiles belgelerine bakabilirsiniz
    pmtiles MVT kullanıyor ama ileride bunu MLT'ye dönüştürebilen araçların çıkmasını umuyorum

    • Aslında PMTiles tile formatından bağımsız. MLT'yi de kapsayacak şekilde type byte'ını güncelleyen bir PR zaten açılmış durumda
    • PMTiles, MVT'nin yanı sıra PNG, JPEG, WebP, AVIF gibi çeşitli formatları da taşıyabiliyor. Bkz. spesifikasyon belgesi
    • Ben PMTiles'ı Tilemaker ile build ediyorum ama Tilemaker ile MLT üretmek epey iş gerektirecek gibi görünüyor 😅
    • pmtiles gerçekten de basit ama yenilikçi bir çözüm
  • MapLibre, tarayıcıda harita göstermek için şimdiye kadar kullandığım en iyi JS kütüphanesi
    Yeni formata geçeceğini düşünmek heyecan verici

    • Kesinlikle katılıyorum 👍
  • Planetiler tarafında --tile-format=mlt CLI seçeneğiyle MLT üretmek mümkün
    Şu anda yalnızca main branch'te ama yakında bir sürümde yayınlanacak
    Testlerde varsayılan ayarlarda OpenMapTiles arşiv boyutunun yaklaşık %10 küçüldüğü görüldü. Ek optimizasyonlar da sürüyor

  • Ne yazık ki Tilemaker'ın orta vadede MLT desteği planı yok
    Bu yüzden topluluğun bir kısmı geçiş sürecinin dışında kalabilir
    İlgili tartışma için issue başlığına bakabilirsiniz

    • Yine de daha sonra dönüştürmek mümkün. Depoda MVT'den MLT'ye dönüştüren Java tabanlı bir dönüştürücü var
  • Vektör dosya formatlarının hâlâ yeniden icat ediliyor olması ilginç
    Sıkıştırma oranı ya da decode hızı iyileştirmelerini anlıyorum ama bu tasarımı yönlendiren yeni fikirlerin veya içgörülerin ne olduğunu merak ediyorum

  • Bu projeyi bir süredir takip ediyorum ve gerçekten heyecan verici görünüyor
    MapLibre yığını kullanıcısı olarak son büyük eksik parçanın PostGIS'e As_MLT() fonksiyonunun eklenmesi olduğunu düşünüyorum

    • Bir de Geoserver desteği gerekli
  • Harita self-hosting yapan var mı? Artıları, eksileri ve hangi araçları kullandığınızı merak ediyorum

    • Biz birkaç yıldır protomaps(pmtiles) için self-hosting yapıyoruz
      Sunucunun tek yapması gereken range request ile statik dosya sunabilmek; bunu Caddy ya da Nginx rahatlıkla yapabiliyor
      Harita tek bir büyük dosya olduğu için birden fazla sunucu arasında paylaşmak da kolay
      Neredeyse hiç dezavantajı yok ama istemci tarafına özel protokol desteği sağlayan bir kütüphane eklemeniz gerekiyor
      Stil düzenleme biraz uğraştırıcı olabiliyor ama Maputnik editörü ile protomaps stilini yükleyip düzenlemek mümkün
      rehber belgeye bakabilirsiniz
    • Ben de pmtiles ile Avustralya için bir mağaza bulucu haritasını self-host ediyorum
      Dünya geneli düşük çözünürlüklü haritayı (50MB) ve Avustralya yüksek çözünürlüklü haritayı (900MB) ayrı oluşturup S3'e yükledim
      Güncel veri gerekmediği için olduğu gibi bırakıp kullanıyorum ve gayet iyi çalışıyor
    • Baskı için yüksek çözünürlüklü harita üretim projesinde de self-hosting tek çözümdü
      Ticari API'lerde 300dpi raster üretim maliyeti çok yüksekti ya da yeniden satış kısıtları vardı
    • Ben de self-host ediyorum. Artısı, veriyi ve yığını tamamen kontrol edebilmeniz; eksisi ise yığını kendiniz kurup bulut yönetimini de üstlenmeniz
      Vektör tile'ları PostGIS ile depolayıp sunuyorum, raster veriyi ise GeoTiff COG olarak AWS S3'te tutuyorum
    • Biz mod_tile+renderd kullanıyoruz
      OSM'den ilgilendiğimiz bölgenin (Colorado) pbf'sini build ediyor, ardından openstreetmap-tile-server container'ını ayağa kaldırıp stilleri uygulayarak renderd ile render alıyoruz
  • MLT güzel ama keşke 3D tile formatlarında da böyle ilerlemeler olsa
    Şu anda fiilen tek seçenek Cesium'un 3D Tiles formatı gibi görünüyor ama performansı beklediğim kadar hızlı değil