Our great sponsors
-
mbtiles-s3-server
Python server to on-the-fly extract and serve vector tiles from an mbtiles file on S3
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
com-tiles
Streamable and read optimized file archive for hosting map tiles at global scale on a cloud object storage
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
This is great. Servers have been the weak link in the open mbtiles stack for a good while and an out-of-the-box recipe like this will make a real difference.
(For those running on bare metal, I knocked this up a few months ago - https://github.com/systemed/mod_mbtiles - which is an Apache module that does pretty much the same thing.)
I was wondering how this ran queries against SQLite files in an S3 bucket. Here's the answer - it's using some very clever Python ctypes code to implement that HTTP Range header trick from last year:
https://github.com/michalc/sqlite-s3-query/blob/main/sqlite_...
Here's the inspiration for that: https://github.com/phiresky/sql.js-httpvfs
You can track progress for planetiler producing pmtiles output here: https://github.com/onthegomap/planetiler/issues/98.
Another bonus of writing pmtiles directly is that it will cut the time to generate vector tiles for the planet from ~40 to ~30 minutes on a 64-core ec2 instance since pmtiles format is much simpler and more efficient to write than SQLite. It should also cut the output file size a bit from the 80gb that mbtiles uses.
Com-tiles[1] also looks pretty good, a bit more optimized than pmtiles.
The whole cloud optimized vector tile/data space is next after COGs (cloud optimized geotiffs). Point-clouds are also getting the index-range-request treatment as COPC[2].
[1] https://github.com/mactrem/com-tiles
A while ago I wrote an Athena connector for querying SQLite in S3. ;) https://github.com/dacort/athena-sqlite Uses a similar approach.