pub struct ColumnarLayer {
pub name: String,
pub feature_ids: Vec<u64>,
pub start_times: Vec<i64>,
pub end_times: Vec<i64>,
pub geometry: GeometryColumn,
pub vertex_times: Option<Vec<Vec<i64>>>,
pub vertex_values: Option<Vec<Vec<f32>>>,
pub vertex_value_matrix: Option<Vec<Vec<f32>>>,
pub triangles: Option<Vec<Vec<u32>>>,
pub properties: Vec<(String, PropertyColumn)>,
}Expand description
One decoded/encodable tile layer.
Fields§
§name: StringLayer name (e.g. "default", "default_originals").
feature_ids: Vec<u64>Per-feature id.
start_times: Vec<i64>Per-feature start time (Unix ms, absolute).
end_times: Vec<i64>Per-feature end time (Unix ms, absolute).
geometry: GeometryColumnGeometry, one entry per feature.
vertex_times: Option<Vec<Vec<i64>>>Optional per-vertex timestamps (Unix ms). When present, length equals the feature count and each inner vec matches that feature’s vertex count.
vertex_values: Option<Vec<Vec<f32>>>Optional per-vertex scalar values (producer-defined; e.g. sea-surface
temperature for the ocean-drifter dataset). When present, length equals
the feature count and each inner vec matches that feature’s vertex count.
NaN marks a vertex with no value; renderers map it to a fallback color.
vertex_value_matrix: Option<Vec<Vec<f32>>>Optional per-vertex × per-time-bucket value matrix, flattened
vertex-major per feature: matrix[v * num_buckets + b]. When
present, length equals the feature count and each inner vec is
feature_vertex_count * num_buckets long. Lets a static-geometry
overview carry a per-vertex time series (e.g. flow-corridor counts per
bin) so the renderer animates resident data instead of re-fetching
geometry per bucket. Encoded as the tile’s vertex_value_matrix column;
num_buckets is recorded in schema metadata under
stt:vertex_value_buckets.
triangles: Option<Vec<Vec<u32>>>Optional pre-baked triangle indices for polygon features (MLT-style).
When present, triangles.len() == feature_count and each inner vec is
the flat triangle-index list (groups of 3 vertex indices) produced by
earcut at build time. Indices are LOCAL to the feature: they reference
positions within that feature’s own ring coordinates, so the renderer
only needs to add the feature’s startIndex to each one.
Only meaningful for GeometryColumn::Polygon. Encoders that set this
on a non-polygon layer will have it dropped at encode time.
properties: Vec<(String, PropertyColumn)>Property columns, keyed by name. Each column has one value per feature.
Implementations§
Source§impl ColumnarLayer
impl ColumnarLayer
Sourcepub fn feature_count(&self) -> usize
pub fn feature_count(&self) -> usize
Feature count for this layer.
Trait Implementations§
Source§impl Clone for ColumnarLayer
impl Clone for ColumnarLayer
Source§fn clone(&self) -> ColumnarLayer
fn clone(&self) -> ColumnarLayer
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ColumnarLayer
impl RefUnwindSafe for ColumnarLayer
impl Send for ColumnarLayer
impl Sync for ColumnarLayer
impl Unpin for ColumnarLayer
impl UnsafeUnpin for ColumnarLayer
impl UnwindSafe for ColumnarLayer
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more