Crate pmtiles2

Source
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:

§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.
TileType
A tile type, which is supported in PMTiles archives.

Constants§

MIME_TYPE
The recommended MIME Type for a PMTiles archive