3 个版本
使用旧的 Rust 2015
0.2.2 | 2018年9月27日 |
---|---|
0.2.1 | 2017年6月17日 |
0.2.0 | 2017年6月9日 |
#997 在 编码
每月 33 次下载
82KB
2K SLoC
vectortile-rs
Rust 库,用于从 PostGIS 构建 Mapbox 矢量瓦片。此库是从 Pirmin Kalberer 的 t-rex 服务器 中的 MVT 实现改编而来,旨在提高使用效率。
用法
将此内容放入您的 Cargo.toml
[dependencies]
vectortile = "0.2.1"
并在您的 crate 根目录中添加以下内容
extern crate vectortile;
示例
请参阅 examples/streets.rs 以获取完整的示例(包括 PostGIS)。
此示例展示了如何程序化创建要素和瓦片
use vectortile::{Tile, Layer, Feature, Value};
use vectortile::geom::{Geometry, Point};
use vectortile::grid::{Grid, Extent};
use postgis::ewkb;
// Build a new tile, the hard way
let bbox = Extent{minx: 958826.08, miny: 5987771.04, maxx: 978393.96, maxy: 6007338.92};
let mut tile = Tile::new(&bbox);
let mut layer = Layer::new("place");
tile.add_layer(layer);
// Add a new point feature "Ed's Mospresso Shack"
let geom: Geometry = ewkb::GeometryT::Point(Point::new(960000.0, 6002729.0, Some(3857)));
let mut feature = Feature::new(geom);
feature.add_property("place", Value::String(String::from("business")));
feature.add_property("name", Value::String(String::from("Ed's Mospresso Shack")));
layer.add_feature(feature);
// Encode the tile as protobuf and inspect it
let grid = Grid::wgs84();
let data = tile.encode(&grid);
println!("{:#?}", data);
依赖项
~7MB
~214K SLoC