#tile #bounding-box #geospatial #xyz #webmapping

mercantile

Mercantile 是一个 Rust 库,提供用于处理地理坐标、Web Mercator 投影坐标和地图瓦片的实用函数。

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);
}

无运行时依赖