1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
//! A library for map tile grid calculations //! //! ## Installation //! //! ```ini //! [dependencies] //! tile_grid = "0" //! ``` //! //! ## Predefined grids //! //! ```rust //! 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 //! //! ```rust //! 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 //! //! ```rust //! 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, //! } //! ); //! ``` mod grid; mod grid_iterator; #[cfg(test)] mod grid_test; pub use grid::{extent_to_merc, Extent, ExtentInt, Grid, Origin, Unit}; pub use grid_iterator::GridIterator;