11 unstable releases

0.6.0 Apr 30, 2024
0.5.2 Jun 16, 2023
0.4.0 May 14, 2023
0.3.0 Feb 19, 2021
0.1.1 Jul 27, 2019

#56 in Geospatial

Download history 19/week @ 2024-01-22 16/week @ 2024-01-29 17/week @ 2024-02-05 35/week @ 2024-02-12 76/week @ 2024-02-19 119/week @ 2024-02-26 81/week @ 2024-03-04 162/week @ 2024-03-11 89/week @ 2024-03-18 69/week @ 2024-03-25 182/week @ 2024-04-01 117/week @ 2024-04-08 57/week @ 2024-04-15 152/week @ 2024-04-22 172/week @ 2024-04-29 109/week @ 2024-05-06

492 downloads per month
Used in 3 crates (2 directly)

MIT license

120KB
2.5K SLoC

tile-grid

Crates.io Documentation

tile-grid is a library for using OGC TileMatrixSets (TMS).

tile-grid follows the OGC Two Dimensional Tile Matrix Set specification found in https://docs.ogc.org/is/17-083r4/17-083r4.html

Note: Variable matrix width tile set are not supported.

Usage

Load tile set matrix and get bounds of a tile

use tile_grid::{tms, BoundingBox, Xyz};

let tms = tms().lookup("WebMercatorQuad").unwrap();

// Get the bounds for tile Z=4, X=10, Y=10 in the input projection
let bounds = tms.xy_bounds(&Xyz::new(10, 10, 4));
assert_eq!(
    bounds,
    BoundingBox::new(
        5009377.085697308,
        -7514065.628545959,
        7514065.628545959,
        -5009377.085697308
    )
);

// Get the bounds for tile Z=4, X=10, Y=10 in LatLon (WGS84)
let bounds = tms.bounds(&Xyz::new(10, 10, 4)).unwrap();
assert_eq!(
    bounds,
    BoundingBox::new(45.0, -55.77657301866769, 67.5, -40.97989806962013)
);

Find tile for lat/lon

use tile_grid::{tms, Xyz};

let tms = tms().lookup("WebMercatorQuad").unwrap();

let tile = tms.tile(159.31, -42.0, 4).unwrap();
assert_eq!(tile, Xyz::new(15, 10, 4));

// Or using coordinates in input CRS
let tile = tms.xy_tile(17734308.1, -5160979.4, 4);
assert_eq!(tile, Xyz::new(15, 10, 4));

Credits

License

tile-grid is released under the MIT License.

Dependencies

~2.2–5MB
~73K SLoC