pub struct NetworkRef { /* private fields */ }Expand description
RAII guard providing zero-cost access to a cached RoadNetwork.
Implementations§
Methods from Deref<Target = RoadNetwork>§
pub async fn compute_matrix( &self, locations: &[Coord], progress: Option<&Sender<RoutingProgress>>, ) -> TravelTimeMatrix
pub async fn compute_geometries( &self, locations: &[Coord], progress: Option<&Sender<RoutingProgress>>, ) -> HashMap<(usize, usize), Vec<Coord>>
Sourcepub fn nodes_iter(&self) -> impl Iterator<Item = (f64, f64)> + '_
pub fn nodes_iter(&self) -> impl Iterator<Item = (f64, f64)> + '_
Iterate over all nodes as (lat, lng) pairs.
Sourcepub fn edges_iter(&self) -> impl Iterator<Item = (usize, usize, f64, f64)> + '_
pub fn edges_iter(&self) -> impl Iterator<Item = (usize, usize, f64, f64)> + '_
Iterate over all edges as (from_idx, to_idx, travel_time_s, distance_m) tuples.
Sourcepub fn snap_to_road(&self, coord: Coord) -> Option<NodeIdx>
pub fn snap_to_road(&self, coord: Coord) -> Option<NodeIdx>
Snap a coordinate to the nearest node in the road network.
Returns None if the network is empty.
Sourcepub fn snap_to_road_detailed(
&self,
coord: Coord,
) -> Result<SnappedCoord, RoutingError>
pub fn snap_to_road_detailed( &self, coord: Coord, ) -> Result<SnappedCoord, RoutingError>
Snap a coordinate to the road network with detailed information.
Returns a SnappedCoord containing both original and snapped coordinates,
the snap distance, and an internal node index for routing.
Sourcepub fn snap_to_edge(
&self,
coord: Coord,
) -> Result<EdgeSnappedLocation, RoutingError>
pub fn snap_to_edge( &self, coord: Coord, ) -> Result<EdgeSnappedLocation, RoutingError>
Snap a coordinate to the nearest road segment (edge-based snapping).
This is production-grade snapping that projects the coordinate onto the nearest road segment rather than snapping to the nearest intersection.
Sourcepub fn route(&self, from: Coord, to: Coord) -> Result<RouteResult, RoutingError>
pub fn route(&self, from: Coord, to: Coord) -> Result<RouteResult, RoutingError>
Find a route between two coordinates.
This method snaps the coordinates to the nearest road network nodes and then finds the shortest path by travel time.
Sourcepub fn route_edge_snapped(
&self,
from: &EdgeSnappedLocation,
to: &EdgeSnappedLocation,
) -> Result<RouteResult, RoutingError>
pub fn route_edge_snapped( &self, from: &EdgeSnappedLocation, to: &EdgeSnappedLocation, ) -> Result<RouteResult, RoutingError>
Find a route between two edge-snapped locations.
This handles the case where start and end are on road segments, not necessarily at intersections.
pub fn route_snapped( &self, from: &SnappedCoord, to: &SnappedCoord, ) -> Result<RouteResult, RoutingError>
pub fn route_with( &self, from: Coord, to: Coord, objective: Objective, ) -> Result<RouteResult, RoutingError>
pub fn node_count(&self) -> usize
pub fn edge_count(&self) -> usize
pub fn strongly_connected_components(&self) -> usize
pub fn largest_component_fraction(&self) -> f64
pub fn is_strongly_connected(&self) -> bool
Trait Implementations§
Source§impl Deref for NetworkRef
impl Deref for NetworkRef
Source§type Target = RoadNetwork
type Target = RoadNetwork
Source§fn deref(&self) -> &RoadNetwork
fn deref(&self) -> &RoadNetwork
Auto Trait Implementations§
impl Freeze for NetworkRef
impl RefUnwindSafe for NetworkRef
impl Send for NetworkRef
impl Sync for NetworkRef
impl Unpin for NetworkRef
impl UnwindSafe for NetworkRef
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
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