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 在 编码
每月387次下载
用于 2 crates
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