Protomaps: Self-hosting map tiles has gotten cheap and easy

(bruceroettgers.eu)

28 points | by bcye 2 hours ago

2 comments

  • doodlebugging 0 minutes ago
    I visited the link and Malwarebytes warned of a potentially malicious site:

    p - proxy - tp8ez dot bunny dot run

    so I closed that window.

    What else you got?

  • pluto_modadic 32 minutes ago
    okay, but what clients work with this approach?
    • perrygeo 23 minutes ago
      You can use the pmtiles:// protocol in Maplibre GL, requires protomaps.js and a few lines of setup [1]

      My experience with it is ... ok. It works. But going directly to cloud storage (s3 in my case) is unpredictable latency and neither the browser nor most servers really cache HTTP range requests granularly, so every tile is another high-latency round trip. Not worth it - I ended up putting Martin tile server in front of it.

      I assume someone could write a protomaps adapter in WASM with some smart caching? Until then, Standard GET requests are just easier to cache and perform much better in practice. The downside being you have to run a server or statically generate files.

      [1]- https://docs.protomaps.com/pmtiles/maplibre

      • bcye 13 minutes ago
        For what it's worth I think latency/reliability varies a lot with provider. Bunny Storage has quite good latency in my experience (100-300ms) and their CDN supports Range caching (from my understanding Cloudflare does too they just limit the size of the file regardless of the Range)
    • cr125rider 22 minutes ago
      Protomaps, pmtiles, are actually pretty ubiquitous. Even has a GDAL driver https://gdal.org/en/stable/drivers/vector/pmtiles.html
    • bcye 27 minutes ago
      There is an npm library that integrates the format into MapLibre (fork of Mapbox) and Leaflet.
    • pstuart 22 minutes ago
      A quick search showed that this should work with HTTP range requests: https://maplibre.org/