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'm using Martin on my personal site for serving MBTiles onto MapLibre. With the exception of some quality-of-life updates like hot-reloads/watching the file directory for changes (which I think they're working on), it's been rock-solid and lovely to use.
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]
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.
I think the auto translation of the subtitles captured most of the mentioned concerns very well.
In large part the conference talk indeed referenced operational concerns. However, there were also scalability and simplicity mentioned as a key consideration. One motivation for this project seemed to be having a good map for visualizing data for journalistic purposes (for example as embeds on news sites), so this concern makes sense.
In the video linked there also was a bit of a comparison between versatiles and protomaps during the Q&A block.
I'm trying to self-host everything I need for my needs, and the map layer has been an interesting problem. So I want to download the entire world for photo geotagging and keep it current. But as far as I understand, right now it's impossible to do without having 200GB RAM?
I want to import the raw incremental data feed from OSM, and build geocoding and tiles from it. I understand that there are no incremental tileset databases?
[0] https://maplibre.org/martin/introduction.html