Crates.io | maptiler-cloud |
lib.rs | maptiler-cloud |
version | 0.3.0 |
source | src |
created_at | 2021-10-13 18:49:06.626606 |
updated_at | 2021-10-25 19:42:48.901086 |
description | A simple Rust wrapper library around the Maptiler Cloud API |
homepage | |
repository | https://github.com/newcomb-luke/maptiler-cloud |
max_upload_size | |
id | 464610 |
size | 21,543 |
Rust wrapper around the Maptiler Cloud API
Supports requesting all currently available tilesets
Tiles are requested using the Tiled Web Map format. X and Y coordinates are specified, and a zoom level is specified.
#[tokio::main]
async fn main() {
// Create a new Maptiler Cloud session
// Use your own API key from Maptiler Cloud
let maptiler = maptiler_cloud::Maptiler::new("placeholder api key").unwrap();
// Create a new tile request
let x = 2;
let y = 1;
let zoom = 2;
let tile_request = maptiler_cloud::TileRequest::new(
maptiler_cloud::TileSet::Satellite,
x,
y,
zoom
).unwrap();
// Create the request using the Maptiler session
let constructed = maptiler.create_request(tile_request);
// Actually perform the request to get the data
let satellite_jpg = constructed.execute().await.unwrap();
// Check for JPEG file magic to make sure we got an image
assert_eq!(&satellite_jpg[0..3], &[0xFF, 0xD8, 0xFF]);
}
From there, most users will write those bytes to a file, or load them into another function that will be able to display the image from the raw JPEG bytes.