pub struct UniversalTransverseMercatorProjection { /* private fields */ }Expand description
§Universal Transverse Mercator (UTM)
Classification: Transverse cylindrical, conformal
Available forms: Forward and inverse, ellipsoidal only
Defined area: Within the used zone, but transformations of coordinates in adjacent zones can be accurate
Alias: utm
Domain: 2D
Input type: Geodetic coordinates
Output type: Projected coordinates
§Projection String
+proj=utm§Required Parameters
+zone=<value>: Select which UTM zone to use. Can be a value between 1-60.
§Optional Parameters
+south: Add this flag when using the UTM on the southern hemisphere.+approx: Use a faster, less accurate algorithm for the Transverse Mercator. (added in PROJ 6.0.0)+algo=auto/evenden_snyder/poder_engsager: Selects the algorithm to use. Defaults topoder_engsager. (added in PROJ 7.1)+ellps=<value>
§Usage Examples
Convert geodetic coordinates to UTM Zone 32 on the northern hemisphere:
$ echo 12 56 | proj +proj=utm +zone=32
687071.44 6210141.33Convert geodetic coordinates to UTM Zone 59 on the southern hemisphere:
$ echo 174 -44 | proj +proj=utm +zone=59 +south
740526.32 5123750.87Show the relationship of UTM to TM:
$ echo 121 24 | proj +proj=utm +lon_0=123 | proj -I +proj=tmerc +lon_0=123 +x_0=500000 +k=0.9996
121dE 24dN§Notes
- UTM uses the Poder/Engsager implementation for the underlying projection
- UNLESS +approx is set in which case the Evenden/Snyder implementation is used
§Further Reading

Trait Implementations§
Source§impl Clone for UniversalTransverseMercatorProjection
impl Clone for UniversalTransverseMercatorProjection
Source§fn clone(&self) -> UniversalTransverseMercatorProjection
fn clone(&self) -> UniversalTransverseMercatorProjection
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl PartialEq for UniversalTransverseMercatorProjection
impl PartialEq for UniversalTransverseMercatorProjection
Source§fn eq(&self, other: &UniversalTransverseMercatorProjection) -> bool
fn eq(&self, other: &UniversalTransverseMercatorProjection) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl ProjectCoordinates for UniversalTransverseMercatorProjection
impl ProjectCoordinates for UniversalTransverseMercatorProjection
impl StructuralPartialEq for UniversalTransverseMercatorProjection
Auto Trait Implementations§
impl !Freeze for UniversalTransverseMercatorProjection
impl !RefUnwindSafe for UniversalTransverseMercatorProjection
impl !Send for UniversalTransverseMercatorProjection
impl !Sync for UniversalTransverseMercatorProjection
impl Unpin for UniversalTransverseMercatorProjection
impl !UnwindSafe for UniversalTransverseMercatorProjection
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)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>
Converts
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>
Converts
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