Replies: 4 comments 11 replies
-
There is a severe problem in the current MVT tile serving landscape. There are so many tile servers, that none of them gets enough funding. So it's really a XKCD-like solution to write another one. And that's what I'm planning to do myself as well 😄 My plan is to use goezero as data format abstraction and put an OGC conformant tile server on it. If the maplibre project has excess capacity to go in that space as well, then my advice is to use a mature web serving framework like Actix. |
Beta Was this translation helpful? Give feedback.
-
It is still under active development, but GeoParquet (and associated GeoArrow) is an emerging specification similar in intent to geozero but with potential for broader adoption across the geo ecosystem (don't get me wrong, geozero is a great idea). Support for file I/O landed in GDAL 3.5, so would be available via something like t-rex, but one of the really interesting things happening in that space is exposing an Arrow API directly from within GDAL. This would be in the data source => MVT tile space. (it is also possible and relatively straightforward to consume from these formats without going through GDAL). However, the way I'm reading this discussion is more about the tile API that sits between the data source and web APIs, so I'm not sure how relevant that is other than to increase awareness of that activity. |
Beta Was this translation helpful? Give feedback.
-
GeoArrow driver for geozero is in the works: georust/geozero#39 |
Beta Was this translation helpful? Give feedback.
-
And forking tilelive is not a good idea I assume? |
Beta Was this translation helpful? Give feedback.
-
As a MapLibre project, we should have a set of components to build tile serving infrastructures with these features/requirements:
Some users who build standalone apps with maplibre-rs or maplibre-native may need to get data from a local storage rather than web, i.e. offline tile storage. The above datastore/service separation would solve this issue. cc: @maxammann
What's available today?
mbtileserver-rs
MapLibre/mbtileserver-rs is a good small tile service written by @ka7eh that supports .mbtile (SQLite) files and simple web requests (http only). The project is not very well known (21 stars, 5 forks), and it would need some significant work to fulfill all of the above requirements. At the same time, it is the only project I know of this nature with mbtiles support.
Martin
The owners of another extremely popular project Martin (82 forks, 741 stars), written by @stepankuzmin, has expressed desire to join MapLibre and continue working on Martin. This project is fairly up to date with web serving code, and uses PostgreSQL as a data store.
T-Rex
t-rex tile server (49 forks, 450 stars) is another great project by @pka that is similar to Martin but has a slightly wider scope. This project also uses PostgreSQL and GDAL as data sources, has some automatic configuration, built-in viewers for data display and inspection, tile generation, and some other interesting functionality that overlaps with the above requirements. I have not spoken with @pka about collaborating yet, but I'm sure at least some components could be shared with their efforts.
One ring to rule them all
otherwise known as we have 14 standards (XKCD)
In order to satisfy the above goals, I would like to propose a providers model, similar to the tilelive API -- a common interface able to provide tiles by its xyz coordinates.
See also maplibre/mbtileserver-rs#16 - a discussion about mbtileserver-rs restructuring.
Beta Was this translation helpful? Give feedback.
All reactions