1 个不稳定版本
0.0.1 | 2024 年 3 月 27 日 |
---|
#22 在 #xyz
11KB
155 行
Mercantile
Mercantile 是一个 Rust 库,提供用于处理地理坐标、Web Mercator 投影坐标和地图瓦片的实用函数。它包括在经纬度(LngLat)坐标和 Web Mercator 投影坐标(XY)之间进行转换的函数,以及用于处理地图瓦片及其边界框的函数。
功能
- 在 LngLat 和 XY 坐标之间进行转换。
- 计算瓦片的左上角坐标。
- 在地理和 XY 坐标中计算瓦片的边界框。
- 提供用于处理地图瓦片的实用函数。
安装
在您的 Cargo.toml
文件中将 Mercantile 添加为依赖项
[dependencies]
mercantile = "0.1.0"
使用
use mercantile::*;
fn main() {
// Create a new tile object
let tile = Tile::new(486, 332, 10);
// Calculate the upper-left geographical coordinates of the tile
let ul_coordinates = ul(tile);
println!("Upper-left coordinates: {:?}", ul_coordinates);
// Calculate the bounding box of the tile in geographical coordinates
let bbox = bounds(tile);
println!("Bounding box: {:?}", bbox);
// Calculate the bounding box of the tile in web mercator coordinates
let xy_bbox = xy_bounds(tile);
println!("XY Bounding box: {:?}", xy_bbox);
// Convert LngLat coordinates to XY coordinates
let lng_lat = LngLat { lng: -9.140625, lat: 53.33087298301705 };
let xy_coordinates = xy(lng_lat);
println!("XY coordinates: {:?}", xy_coordinates);
// Convert XY coordinates back to LngLat coordinates
let xy_coordinates = XY { x: -1017529.7205322663, y: 7044436.526761846 };
let lng_lat = lng_lat(xy_coordinates);
println!("LngLat coordinates: {:?}", lng_lat);
}