#tile #vector #mapbox #gis #cartography

bin+lib mvt

用于编码 mapbox 向量瓦片的库

16 个版本 (8 个重大更新)

0.9.3 2024年6月6日
0.9.2 2024年1月19日
0.8.1 2023年3月7日
0.7.0 2020年9月29日
0.5.2 2019年2月28日

#471编码

Download history 72/week @ 2024-05-02 171/week @ 2024-05-09 166/week @ 2024-05-16 139/week @ 2024-05-23 150/week @ 2024-05-30 252/week @ 2024-06-06 146/week @ 2024-06-13 210/week @ 2024-06-20 159/week @ 2024-06-27 238/week @ 2024-07-04 241/week @ 2024-07-11 181/week @ 2024-07-18 131/week @ 2024-07-25 77/week @ 2024-08-01 100/week @ 2024-08-08 31/week @ 2024-08-15

每月387次下载
用于 2 crates

MIT/Apache

72KB
1.5K SLoC

mvt

A Rust 库,用于编码 mapbox 向量瓦片。支持标准的第2.1版。有关详细信息,请参阅文档

earthwyrm-bin 是使用此 crate 的瓦片服务器。


lib.rs:

用于编码 mapbox 向量瓦片 的库。

一个 瓦片 由一个或多个 组成。每个层可以有任意数量的 功能,其中包含要渲染的几何形状。它们还可以有元数据标签,这是键/值对。

示例

use mvt::{Error, GeomEncoder, GeomType, Tile};
use pointy::Transform;

fn main() -> Result<(), Error> {
    let mut tile = Tile::new(4096);
    let layer = tile.create_layer("First Layer");
    // NOTE: normally, the Transform would come from MapGrid::tile_transform
    let b = GeomEncoder::new(GeomType::Linestring)
        .point(0.0, 0.0)?
        .point(1024.0, 0.0)?
        .point(1024.0, 2048.0)?
        .point(2048.0, 2048.0)?
        .point(2048.0, 4096.0)?
        .encode()?;
    let mut feature = layer.into_feature(b);
    feature.set_id(1);
    feature.add_tag_string("key", "value");
    let layer = feature.into_layer();
    tile.add_layer(layer)?;
    let data = tile.to_bytes()?;
    println!("encoded {} bytes: {:?}", data.len(), data);
    Ok(())
}

依赖关系

~2–12MB
~147K SLoC