Skip to main content

VectorLayer

Struct VectorLayer 

Source
pub struct VectorLayer {
    pub query_layer_id: Option<String>,
    pub query_source_id: Option<String>,
    pub query_source_layer: Option<String>,
    pub features: FeatureCollection,
    pub feature_provenance: Vec<Option<FeatureProvenance>>,
    pub style: VectorStyle,
    /* private fields */
}
Expand description

A vector layer holding parsed geographic features with a render style.

See the module-level documentation for the tessellation pipeline and coordinate flow.

Fields§

§query_layer_id: Option<String>

Optional originating style layer id for query APIs.

§query_source_id: Option<String>

Optional originating style source id for query APIs.

§query_source_layer: Option<String>

Optional originating style source-layer id for streamed vector sources.

§features: FeatureCollection

The feature data.

§feature_provenance: Vec<Option<FeatureProvenance>>

Per-feature tile/source-layer provenance.

§style: VectorStyle

Render style.

Implementations§

Source§

impl VectorLayer

Source

pub fn new( name: impl Into<String>, features: FeatureCollection, style: VectorStyle, ) -> Self

Create a new vector layer.

Source

pub fn with_query_metadata( self, layer_id: impl Into<Option<String>>, source_id: impl Into<Option<String>>, ) -> Self

Attach style/runtime query metadata to this layer.

Source

pub fn with_source_layer(self, source_layer: Option<String>) -> Self

Attach the originating source-layer id used by style/runtime evaluation.

Source

pub fn set_features_with_provenance( &mut self, features: FeatureCollection, provenance: Vec<Option<FeatureProvenance>>, )

Replace the feature set together with per-feature provenance.

Source

pub fn data_generation(&self) -> u64

Monotonically increasing generation counter for feature data changes.

Bumped by set_features_with_provenance. Used by the sync-path tessellation cache to detect data staleness.

Source

pub fn set_query_metadata( &mut self, layer_id: Option<String>, source_id: Option<String>, )

Attach style/runtime query metadata to this layer in place.

Source

pub fn feature_count(&self) -> usize

Number of features in this layer.

Source

pub fn total_coords(&self) -> usize

Total number of coordinate vertices across all features.

Source

pub fn drape_on_terrain(&mut self, terrain: &TerrainManager)

Drape all vector features onto terrain by querying elevation for each vertex and setting its altitude.

Does nothing if terrain is disabled or elevation data is unavailable for a given coordinate (the vertex retains its original altitude).

Source

pub fn tessellate(&self, projection: CameraProjection) -> VectorMeshData

Tessellate all features into GPU-ready mesh data.

  • Polygons are fan-triangulated (exterior ring only; holes are not yet subtracted).
  • Line strings are stroke-expanded into ribbon quads with the configured stroke_width.
  • Points are rendered as small axis-aligned quads.
  • Multi* and GeometryCollection types recurse into their children.

When the style carries data-driven expressions for width or colour, those are evaluated per feature against each feature’s properties.

All output positions are in the active planar world-space meters.

Source

pub fn symbol_candidates(&self) -> Vec<SymbolCandidate>

Build symbol-placement candidates for this layer.

Source

pub fn symbol_candidates_for_features( &self, features: &FeatureCollection, feature_provenance: &[Option<FeatureProvenance>], ) -> Vec<SymbolCandidate>

Build symbol-placement candidates from an explicit feature/provenance set.

Trait Implementations§

Source§

impl Debug for VectorLayer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Layer for VectorLayer

Source§

fn id(&self) -> LayerId

A process-unique identifier for this layer. Read more
Source§

fn kind(&self) -> LayerKind

The concrete layer type for enum-based dispatch. Read more
Source§

fn name(&self) -> &str

Human-readable name for UI and debug output. Read more
Source§

fn visible(&self) -> bool

Whether this layer participates in the current frame. Read more
Source§

fn set_visible(&mut self, visible: bool)

Toggle visibility on or off.
Source§

fn opacity(&self) -> f32

Layer opacity in the range [0.0, 1.0]. Read more
Source§

fn set_opacity(&mut self, opacity: f32)

Set the layer opacity. Read more
Source§

fn as_any(&self) -> &dyn Any

Borrow the layer as &dyn Any for concrete type access. Read more
Source§

fn as_any_mut(&mut self) -> &mut dyn Any

Borrow the layer as &mut dyn Any for mutable concrete type access.
Source§

fn z_index(&self) -> i32

Hint for render ordering within the layer stack. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.