v0.12.0
Cached PMTiles with HTTP support
Martin now supports cached local and HTTP PMTiles sources. Additionally, multiple PMTiles sources share a single web client instance, optimizing connection reuse in case multiple pmtiles reside on the same host. Implemented by @nyurik with great help from @kyleslugg who did the integration testing CI work, see #991, #1095, #1094
pmtiles:
# Memory (in MB) to use for caching PMTiles directories [default: 32, 0 to disable]]
dir_cache_size_mb: 100
paths:
# scan this whole dir, matching all *.pmtiles files
- /dir-path
# specific pmtiles file will be published as a pmt source (filename without extension)
- /path/to/pmt.pmtiles
# A web server with a PMTiles file that supports range requests
- https://example.org/path/tiles.pmtiles
sources:
# named source matching source name to a single file
pm-src1: /path/to/pmt.pmtiles
# A named source to a web server with a PMTiles file that supports range requests
pm-web2: https://example.org/path/tiles.pmtiles
📝 We badly need someone to document how to setup Martin on AWS lambda, and/or similar setup on the other cloud providers. See #1102
martin-cp
and mbtiles
improvements
martin-cp
will now update min/max zoom levels after copying to an mbtiles file, but only if the existing metadata min/max zooms do not include the tiles actually contained in the file by @nyurik in #1096- mbtiles update now allows different types of zoom updates - reset to content, grow only, or skip (dry run) by @nyurik in #1096
Martin as a Reusable Crate
Martin has been refactored to allow modular reuse to be more of a library in your own Rust application. When used as a library, you can use the following features to limit which backends are compiled by @nyurik in #1097 and #1094
- postgres - enable PostgreSQL/PostGIS tile sources
- pmtiles - enable PMTile tile sources
- mbtiles - enable MBTile tile sources
- fonts - enable font sources
- sprites - enable sprite sources
Full Changelog: v0.11.6...v0.12.0