[][src]Crate tile_grid

A library for map tile grid calculations

Installation

[dependencies]
tile_grid = "0"

Predefined grids

use tile_grid::{Extent, Grid};

let grid = Grid::wgs84();
assert_eq!(
    grid.tile_extent(0, 0, 0),
    Extent {
        minx: -180.0,
        miny: -90.0,
        maxx: 0.0,
        maxy: 90.0,
    }
);

Grid iterators

use tile_grid::{Grid, GridIterator};

let grid = Grid::web_mercator();
let tile_limits = grid.tile_limits(grid.extent.clone(), 0);
let griditer = GridIterator::new(0, 2, tile_limits);
for (z, x, y) in griditer {
    println!("Tile {}/{}/{}", z, x, y);
}

Custom grids

use tile_grid::{Extent, Grid, Unit, Origin};

let grid = Grid::new(
    256,
    256,
    Extent {
        minx: 2420000.0,
        miny: 1030000.0,
        maxx: 2900000.0,
        maxy: 1350000.0,
    },
    2056,
    Unit::Meters,
    vec![
        4000.0, 3750.0, 3500.0, 3250.0, 3000.0, 2750.0, 2500.0, 2250.0, 2000.0, 1750.0, 1500.0,
        1250.0, 1000.0, 750.0, 650.0, 500.0, 250.0, 100.0, 50.0, 20.0, 10.0, 5.0, 2.5, 2.0,
        1.5, 1.0, 0.5,
    ],
    Origin::TopLeft,
);
assert_eq!(
    grid.tile_extent(0, 0, 15),
    Extent {
        minx: 2420000.0,
        miny: 1222000.0,
        maxx: 2548000.0,
        maxy: 1350000.0,
    }
);

Structs

Extent

Geographic extent

ExtentInt

Min and max grid cell numbers

Grid

Tile grid

GridIterator

Level-by-level iterator

Enums

Origin

Grid origin

Unit

Grid units

Functions

extent_to_merc

Projected extent