pub struct Feature { /* private fields */ }
Expand description
A Feature contains map geometry with related metadata.
A new Feature can be obtained with Layer.into_feature. After optionally adding an ID and tags, retrieve the Layer with the Feature added by calling Feature.into_layer.
Example
use mvt::{GeomEncoder, GeomType, Tile};
use pointy::Transform;
let tile = Tile::new(4096);
let layer = tile.create_layer("First Layer");
let geom_data = GeomEncoder::new(GeomType::Point)
.point(1.0, 2.0)?
.point(7.0, 6.0)?
.encode()?;
let feature = layer.into_feature(geom_data);
// ...
// add any tags or ID to the feature
// ...
let layer = feature.into_layer();
Implementations§
source§impl Feature
impl Feature
sourcepub fn into_layer(self) -> Layer
pub fn into_layer(self) -> Layer
Complete the feature, returning ownership of the layer.
Examples found in repository?
examples/simple.rs (line 17)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
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(())
}
sourcepub fn set_id(&mut self, id: u64)
pub fn set_id(&mut self, id: u64)
Set the feature ID.
Examples found in repository?
examples/simple.rs (line 15)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
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(())
}
Get number of tags (count).
sourcepub fn add_tag_string(&mut self, key: &str, val: &str)
pub fn add_tag_string(&mut self, key: &str, val: &str)
Add a tag of string type.
Examples found in repository?
examples/simple.rs (line 16)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
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(())
}
sourcepub fn add_tag_double(&mut self, key: &str, val: f64)
pub fn add_tag_double(&mut self, key: &str, val: f64)
Add a tag of double type.
sourcepub fn add_tag_float(&mut self, key: &str, val: f32)
pub fn add_tag_float(&mut self, key: &str, val: f32)
Add a tag of float type.
sourcepub fn add_tag_int(&mut self, key: &str, val: i64)
pub fn add_tag_int(&mut self, key: &str, val: i64)
Add a tag of int type.
sourcepub fn add_tag_uint(&mut self, key: &str, val: u64)
pub fn add_tag_uint(&mut self, key: &str, val: u64)
Add a tag of uint type.
sourcepub fn add_tag_sint(&mut self, key: &str, val: i64)
pub fn add_tag_sint(&mut self, key: &str, val: i64)
Add a tag of sint type.
sourcepub fn add_tag_bool(&mut self, key: &str, val: bool)
pub fn add_tag_bool(&mut self, key: &str, val: bool)
Add a tag of bool type.
Auto Trait Implementations§
impl RefUnwindSafe for Feature
impl Send for Feature
impl Sync for Feature
impl Unpin for Feature
impl UnwindSafe for Feature
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more