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]
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.
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.
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.
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
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.
What is it that sets this apart from other similar solutions?
reply