pub struct FlatProjection<T: Float> { /* private fields */ }Expand description
Projection from WGS84 to a cartesian coordinate system for fast geodesic approximations.
let (lon1, lat1) = (6.186389, 50.823194);
let (lon2, lat2) = (6.953333, 51.301389);
let proj = FlatProjection::new(6.5, 51.05);
let p1 = proj.project(lon1, lat1);
let p2 = proj.project(lon2, lat2);
let distance = p1.distance(&p2);
// -> 75.648 kmImplementations§
Source§impl<T: Float> FlatProjection<T>
impl<T: Float> FlatProjection<T>
Sourcepub fn new(longitude: T, latitude: T) -> FlatProjection<T>
pub fn new(longitude: T, latitude: T) -> FlatProjection<T>
Creates a new FlatProjection instance that will work best around
the given latitude.
let proj = FlatProjection::new(7., 51.);Sourcepub fn project(&self, longitude: T, latitude: T) -> FlatPoint<T>
pub fn project(&self, longitude: T, latitude: T) -> FlatPoint<T>
Converts a longitude and latitude (in degrees) to a FlatPoint
instance that can be used for fast geodesic approximations.
let (lon, lat) = (6.186389, 50.823194);
let proj = FlatProjection::new(6., 51.);
let flat_point = proj.project(lon, lat);Sourcepub fn unproject(&self, p: &FlatPoint<T>) -> (T, T)
pub fn unproject(&self, p: &FlatPoint<T>) -> (T, T)
Converts a FlatPoint back to a (lon, lat) tuple.
let (lon, lat) = (6.186389, 50.823194);
let proj = FlatProjection::new(6., 51.);
let flat_point = proj.project(lon, lat);
let result = proj.unproject(&flat_point);
assert_eq!(result.0, lon);
assert_eq!(result.1, lat);Trait Implementations§
Source§impl<T: Clone + Float> Clone for FlatProjection<T>
impl<T: Clone + Float> Clone for FlatProjection<T>
Source§fn clone(&self) -> FlatProjection<T>
fn clone(&self) -> FlatProjection<T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T: PartialOrd + Float> PartialOrd for FlatProjection<T>
impl<T: PartialOrd + Float> PartialOrd for FlatProjection<T>
impl<T: Copy + Float> Copy for FlatProjection<T>
impl<T: Float> StructuralPartialEq for FlatProjection<T>
Auto Trait Implementations§
impl<T> Freeze for FlatProjection<T>where
T: Freeze,
impl<T> RefUnwindSafe for FlatProjection<T>where
T: RefUnwindSafe,
impl<T> Send for FlatProjection<T>where
T: Send,
impl<T> Sync for FlatProjection<T>where
T: Sync,
impl<T> Unpin for FlatProjection<T>where
T: Unpin,
impl<T> UnwindSafe for FlatProjection<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more