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 both coordinates to the nearest road-network nodes,
then runs the public travel-time search over those snapped nodes.
The current implementation passes a zero heuristic to astar, so its
behavior is equivalent to Dijkstra’s algorithm.
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.
Use this when start and end should stay on their containing road segments instead of being snapped all the way to graph nodes.
Sourcepub fn route_snapped(
&self,
from: &SnappedCoord,
to: &SnappedCoord,
) -> Result<RouteResult, RoutingError>
pub fn route_snapped( &self, from: &SnappedCoord, to: &SnappedCoord, ) -> Result<RouteResult, RoutingError>
Find a route between two node-snapped coordinates.
This expects SnappedCoord values produced by snap_to_road_detailed
and returns geometry along graph nodes, not projected edge endpoints.
Sourcepub fn route_with(
&self,
from: Coord,
to: Coord,
objective: Objective,
) -> Result<RouteResult, RoutingError>
pub fn route_with( &self, from: Coord, to: Coord, objective: Objective, ) -> Result<RouteResult, RoutingError>
Find a route between two coordinates with an explicit optimization objective.
Like route, this method snaps to the nearest graph nodes first and
uses admissible straight-line lower bounds for both objectives.
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 UnsafeUnpin 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