geo/algorithm/
bearing.rs

1use crate::{haversine_bearing, CoordFloat, Point};
2
3pub use haversine_bearing::HaversineBearing;
4
5#[deprecated(since = "0.24.1", note = "renamed to `HaversineBearing`")]
6pub trait Bearing<T: CoordFloat> {
7    /// Returns the bearing to another Point in degrees, where North is 0° and East is 90°.
8    ///
9    /// # Examples
10    ///
11    /// ```
12    /// # #[macro_use] extern crate approx;
13    /// #
14    /// use geo::Bearing;
15    /// use geo::Point;
16    ///
17    /// let p_1 = Point::new(9.177789688110352, 48.776781529534965);
18    /// let p_2 = Point::new(9.274410083250379, 48.84033282787534);
19    /// let bearing = p_1.bearing(p_2);
20    /// assert_relative_eq!(bearing, 45., epsilon = 1.0e-6);
21    /// ```
22    #[deprecated(
23        since = "0.24.1",
24        note = "renamed to `HaversineBearing::haversine_bearing`"
25    )]
26    fn bearing(&self, point: Point<T>) -> T;
27}
28
29#[allow(deprecated)]
30impl<T: CoordFloat, B: HaversineBearing<T>> Bearing<T> for B {
31    fn bearing(&self, point: Point<T>) -> T {
32        self.haversine_bearing(point)
33    }
34}