I don't want to sound annoying, but it's a bit hard to generate raster tiles. I mean openstreetmap data is open and free, but it doesn't seem they distribute any software to build the raster tiles they host.
I don't know what they use, but it doesn't seem there is any software that is simple enough to use.
I just want to configure a subregion, call generate-tiles.py planet.xml or whatever, and be done with it.
I like open source, but there will always be open source software that is needlessly complicated because, well, it lets companies like mapbox and others to generate income for their expertise.
That's not the best open source spirit, in my view.
We used https://github.com/developmentseed/titiler (and rio-tiler, the underlying library) at my last company which does dynamic tiling based on some input raster. It's an awesome project and there's nothing else quite like it in the geospatial space.
I discovered it while looking at raster solutions, and it is pretty great! The raster stack is pretty bonkers. TiTiler uses at least three fundamental layers: GDAL, RasterIO, and rio-tiler. Each contribute a fairly significant improvement (for the use-case) over the underlying one.
There's a lot to like about GDAL+Rasterio, although I've found having all HTTP requests go through GDAL's C API does result in some limitations on concurrency and multithreading. GDAL's configuration being based entirely on env vars also has its downsides: https://github.com/developmentseed/titiler/issues/186
Super easy way to generate a MBTiles, which you can then serve directly, or further convert to PMTiles, which can be used to host vector tiles for client-side rendering using MapLibre (or other renderers).
Raster tiles are a lot harder because you have to generate them on the server, and that's a lot more resource intensive.
The requirements are considerable, though, given the workload:
> Serving your own maps is a fairly intensive task. Depending on the size of the area you’re interested in serving and the traffic you expect the system requirements will vary. In general, requirements will range from 10-20GB of storage, 4GB of memory, and a modern dual-core processor for a city-sized region to 1TB of fast storage, 24GB of memory, and a quad-core processor for the entire planet.
Personally, for lower end mobile devices raster tiles still seem to perform better, when compared with at least some of the current vector tile implementations. I actually recorded a short comparison on my phone a while back: https://www.youtube.com/watch?v=A-IRtBGO9rM
Open-source geospatial tools in general have developed rapidly over the last couple of decades. Mapbox and friends have laid groundwork, both good and "needlessly complicated." But there are just too many people who care about this to think it'll always be hard.
I assure you, the OSS (and in this case, OSM) community will steadily build out better, faster software that includes more and more of the features a modern map needs. It's already looking like companies like WashPo are seeing the potential here.
https://github.com/maptiler/tileserver-gl makes it really easy. I have a pretty simple pipeline set up to download an OSM extract, convert it to MBTiles, host it in CloudFlare, and render raster tiles with this software.
I don't know what they use, but it doesn't seem there is any software that is simple enough to use.
I just want to configure a subregion, call generate-tiles.py planet.xml or whatever, and be done with it.
I like open source, but there will always be open source software that is needlessly complicated because, well, it lets companies like mapbox and others to generate income for their expertise.
That's not the best open source spirit, in my view.