pub struct Transform { /* private fields */ }Expand description
A reusable coordinate transformation between two CRS.
Implementations§
Source§impl Transform
impl Transform
Sourcepub fn new(from_crs: &str, to_crs: &str) -> Result<Self>
pub fn new(from_crs: &str, to_crs: &str) -> Result<Self>
Create a transform from authority code strings (e.g., "EPSG:4326").
Sourcepub fn with_selection_options(
from_crs: &str,
to_crs: &str,
options: SelectionOptions,
) -> Result<Self>
pub fn with_selection_options( from_crs: &str, to_crs: &str, options: SelectionOptions, ) -> Result<Self>
Create a transform with explicit selection options.
Sourcepub fn from_operation(
operation_id: CoordinateOperationId,
from_crs: &str,
to_crs: &str,
) -> Result<Self>
pub fn from_operation( operation_id: CoordinateOperationId, from_crs: &str, to_crs: &str, ) -> Result<Self>
Create a transform from an explicit registry operation id.
Sourcepub fn from_epsg(from: u32, to: u32) -> Result<Self>
pub fn from_epsg(from: u32, to: u32) -> Result<Self>
Create a transform from EPSG codes directly.
Sourcepub fn from_crs_defs(from: &CrsDef, to: &CrsDef) -> Result<Self>
pub fn from_crs_defs(from: &CrsDef, to: &CrsDef) -> Result<Self>
Create a transform from explicit CRS definitions.
Sourcepub fn convert<T: Transformable>(&self, coord: T) -> Result<T>
pub fn convert<T: Transformable>(&self, coord: T) -> Result<T>
Transform a single coordinate.
Sourcepub fn convert_3d<T: Transformable3D>(&self, coord: T) -> Result<T>
pub fn convert_3d<T: Transformable3D>(&self, coord: T) -> Result<T>
Transform a single 3D coordinate.
Sourcepub fn source_crs(&self) -> &CrsDef
pub fn source_crs(&self) -> &CrsDef
Return the source CRS definition for this transform.
Sourcepub fn target_crs(&self) -> &CrsDef
pub fn target_crs(&self) -> &CrsDef
Return the target CRS definition for this transform.
Sourcepub fn selected_operation(&self) -> &CoordinateOperationMetadata
pub fn selected_operation(&self) -> &CoordinateOperationMetadata
Return metadata for the selected coordinate operation.
Sourcepub fn selection_diagnostics(&self) -> &OperationSelectionDiagnostics
pub fn selection_diagnostics(&self) -> &OperationSelectionDiagnostics
Return selection diagnostics for this transform.
Sourcepub fn inverse(&self) -> Result<Self>
pub fn inverse(&self) -> Result<Self>
Build the inverse transform by swapping the source and target CRS.
Sourcepub fn transform_bounds(
&self,
bounds: Bounds,
densify_points: usize,
) -> Result<Bounds>
pub fn transform_bounds( &self, bounds: Bounds, densify_points: usize, ) -> Result<Bounds>
Reproject a 2D bounding box by sampling its perimeter.
Sourcepub fn convert_batch<T: Transformable + Clone>(
&self,
coords: &[T],
) -> Result<Vec<T>>
pub fn convert_batch<T: Transformable + Clone>( &self, coords: &[T], ) -> Result<Vec<T>>
Batch transform (sequential).
Sourcepub fn convert_batch_3d<T: Transformable3D + Clone>(
&self,
coords: &[T],
) -> Result<Vec<T>>
pub fn convert_batch_3d<T: Transformable3D + Clone>( &self, coords: &[T], ) -> Result<Vec<T>>
Batch transform of 3D coordinates (sequential).
Sourcepub fn convert_batch_parallel<T: Transformable + Send + Sync + Clone>(
&self,
coords: &[T],
) -> Result<Vec<T>>
pub fn convert_batch_parallel<T: Transformable + Send + Sync + Clone>( &self, coords: &[T], ) -> Result<Vec<T>>
Batch transform with Rayon parallelism.
Sourcepub fn convert_batch_parallel_3d<T: Transformable3D + Send + Sync + Clone>(
&self,
coords: &[T],
) -> Result<Vec<T>>
pub fn convert_batch_parallel_3d<T: Transformable3D + Send + Sync + Clone>( &self, coords: &[T], ) -> Result<Vec<T>>
Batch transform of 3D coordinates with adaptive Rayon parallelism.
Auto Trait Implementations§
impl Freeze for Transform
impl !RefUnwindSafe for Transform
impl Send for Transform
impl Sync for Transform
impl Unpin for Transform
impl UnsafeUnpin for Transform
impl !UnwindSafe for Transform
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> 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