VersaTiles – a complete FLOSS map stack

(versatiles.org)

104 points | by moooo99 12 hours ago ago

12 comments

  • thybag 6 hours ago

    I'd be interested to understand how this compares with a solution like openfreemap's (https://news.ycombinator.com/item?id=41635592) which was posted a few weeks ago.

    What is it that sets this apart from other similar solutions?

    • moooo99 5 hours ago

      Functionally they are rather similar in what they're aiming for. Architecturally there are some differences.

      OpenFreeMap uses the MapTiles format [1] which is an open source format for vector tiles that does require the attribution of the OpenMapTiles page for every map generated from it (CC-BY license). Versatiles uses the Shortbread format instead [2] which is published under a CC0 license. Instead of the SQLite based mbtiles format they developed their own container format (and a converter).

      I've only started tinkering with this project a little bit cause I found it interesting after watching a CCC talk with it [3]

      [1] https://openmaptiles.org/

      [2] https://shortbread-tiles.org/

      [3] German: https://youtu.be/8A51WkJ5S8I

    • mhuffman 5 hours ago

      There really seems to be a lot of movement in the map space these days!

  • szvsw 2 hours ago

    Only mildly related, but has any one else been using Martin [0] for tile serving from Postgres/PostGis? It’s been a huge benefit to me and probably my favorite open source map tool right now. Martin + Deck.GL is such an awesome combo.

    [0] https://maplibre.org/martin/introduction.html

    • twelvechairs 22 minutes ago

      Yeah Martin is amazing. And deckgl too. It's a pity as such a tiny tool it doesn't get the publicity of things like this and mbiles and pmtiles.

      Tile generation on the fly should really be default for most uses.

  • hawski 7 hours ago

    I am only getting to the space, but if I understand correctly the overview it is a tile server speaking HTTP, but it is not working like Protomaps, which do not need a separate tile server, just a regular HTTP server with range requests support.

    • cldellow 6 hours ago

      It's a bit complicated, because I think the versatiles brand is used to describe multiple things:

      - the schema of the map: what objects are available in each tile at different zoom levels. It sounds like versatiles uses the shortbread schema (contrast vs OpenMapTiles, protomaps)

      - a container format: a way to pack multiple tiles into a single file. It sounds like they created their own format here (contrast vs mbtiles, pmtiles).

      - the scripts/tooling to build everything

      - the overall finished map product itself (contrast vs Google Maps, Stadio Maps, protomaps, OpenMapTiles, etc)

      The versatile container format seems to require a custom HTTP server. But if you want, you could produce the versatiles map and store it in a pmtiles container. Or you could stick a caching proxy in front of their publicly available tile server at https://tiles.versatiles.org/tiles/osm/{z}/{x}/{y}

      It would be interesting to hear them describe why they decided to create their own container format. The text that I have found seems to be contrasting it to RDBMS containers, but is silent about mbtiles/pmtiles.

      • moooo99 5 hours ago

        As far as my understanding goes, mbtiles is based on SQLite, so it would be a RDBMS container based format.

        There was a YouTube talk published 4 weeks ago showcasing this project, which was where I discovered it in the first place. The (German) video can be found here https://youtu.be/8A51WkJ5S8I

        • cldellow 4 hours ago

          Thanks, that's a handy video! Yes, mbtiles is based on SQLite, I was imprecise in my language.

          When I said RDBMS, I meant those that have a client/server model. The versatiles docs talk about the complexity and surface area of database systems as a motivator for creating their own container format. From this I inferred they were referring to Postgres and PostGIS, which are used in the canonical OpenMapTiles implementation.

          Watching that video, they do mention not liking the traditional Postgres/PostGIS approach due to its heavy weight. But they also say they disliked mbtiles due to its SQLite dependency, and that the versatiles format is inspired on/based on pmtiles. (Apologies if I'm missing nuance here, I was watching auto translated auto generated captions.)

          I found https://github.com/versatiles-org/versatiles-rs/issues/24 which contrasts the versatiles format vs the pmtiles format. After reading it, I'm not personally convinced of the benefits of versatiles vs just throwing a CDN in front of a clustered pmtiles file, but perhaps I'm missing something.

      • SahAssar 5 hours ago

        Just a small clarification: mbtiles is built on a RDBMS (sqlite).

  • guwop 4 hours ago

    cool beans! lots of stuff happening with OSS mapping rn!

  • cpach 8 hours ago

    Anyone tried this?