Expand description
§PMTiles
A low level implementation of the PMTiles
format based on the std::io::Read
and std::io::Write
traits (or their respective asynchronous versions futures::io::AsyncRead
and futures::io::AsyncWrite
).
§Examples
§A note on the asynchronous versions
In the following examples, the synchronous functions are used instead of their respective asynchronous versions.
To work with asynchronous readers/writers, enable the async
-feature and simply replace:
PMTiles::from_reader
withPMTiles::from_async_reader
PMTiles::to_writer
withPMTiles::to_async_writer
PMTiles::new
withPMTiles::new_async
§Reading from a file
use std::fs::File;
use pmtiles2::PMTiles;
fn main () -> std::io::Result<()> {
let file_path = "./test/stamen_toner(raster)CC-BY+ODbL_z3.pmtiles";
let mut file = File::open(file_path)?; // file implements std::io::Read
let pm_tiles = PMTiles::from_reader(file)?;
Ok(())
}
§Writing to a file
use std::fs::File;
use pmtiles2::{PMTiles, Compression, TileType};
fn main () -> std::io::Result<()> {
// create temp directory
let dir = temp_dir::TempDir::new()?;
let file_path = dir.path().join("foo.pmtiles");
let pm_tiles = PMTiles::new(TileType::Png, Compression::None);
// TODO: Add tiles to pm_tiles
let mut file = File::create(file_path)?; // file implements std::io::Write
pm_tiles.to_writer(&mut file)?;
Ok(())
}
§Building a PMTiles
archive from scratch
use pmtiles2::{PMTiles, TileType, Compression, util::tile_id};
use std::io::Cursor;
let mut pm_tiles = PMTiles::new(TileType::Mvt, Compression::GZip);
pm_tiles.add_tile(tile_id(0, 0, 0), vec![0 /* ... */]);
pm_tiles.add_tile(tile_id(1, 0, 0), vec![0 /* ... */]);
Modules§
- util
- Utilities for reading and writing
PMTiles
archives.
Structs§
- Directory
- A structure representing a directory.
- Entry
- A structure representing a directory entry.
- Header
- A structure representing a
PMTiles
header. - PMTiles
- A structure representing a
PMTiles
archive.
Enums§
- Compression
- A compression, which is supported in
PMTiles
archives. - Tile
Type - A tile type, which is supported in
PMTiles
archives.
Constants§
- MIME_
TYPE - The recommended MIME Type for a
PMTiles
archive