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}