logo
pub struct Coordinate<T> where
    T: CoordNum
{ pub x: T, pub y: T, }
Expand description

A lightweight struct used to store coordinates on the 2-dimensional Cartesian plane.

Unlike Point (which in the future may contain additional information such as an envelope, a precision model, and spatial reference system information), a Coordinate only contains ordinate values and accessor methods.

This type implements the vector space operations: Add, Sub, Neg, Zero, Mul<T>, and Div<T> traits.

Semantics

This type does not represent any geospatial primitive, but is used in their definitions. The only requirement is that the coordinates it contains are valid numbers (for eg. not f64::NAN).

Fields

x: Ty: T

Implementations

Returns a tuple that contains the x/horizontal & y/vertical component of the coordinate.

Examples
use geo_types::coord;

let c = coord! {
    x: 40.02f64,
    y: 116.34,
};
let (x, y) = c.x_y();

assert_eq!(y, 116.34);
assert_eq!(x, 40.02f64);

Create a coordinate at the origin.

Examples

use geo_types::Coordinate;
use num_traits::Zero;

let p: Coordinate<f64> = Zero::zero();

assert_eq!(p.x, 0.);
assert_eq!(p.y, 0.);

Trait Implementations

Used for specifying relative comparisons.

The default tolerance to use when testing values that are close together. Read more

A test for equality that uses the absolute difference to compute the approximate equality of two numbers. Read more

The inverse of [AbsDiffEq::abs_diff_eq].

Add two coordinates.

Examples

use geo_types::coord;

let p = coord! { x: 1.25, y: 2.5 };
let q = coord! { x: 1.5, y: 2.5 };
let sum = p + q;

assert_eq!(sum.x, 2.75);
assert_eq!(sum.y, 5.0);

The resulting type after applying the + operator.

Performs the + operation. Read more

Return the bounding rectangle for a Coordinate. It will have zero width and zero height.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Find the closest point between self and p.

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Divide coordinate wise by a scalar.

Examples

use geo_types::coord;

let p = coord! { x: 5., y: 10. };
let q = p / 4.;

assert_eq!(q.x, 1.25);
assert_eq!(q.y, 2.5);

The resulting type after applying the / operator.

Performs the / operation. Read more

Minimum distance between two Coordinates

Minimum distance from a Line to a Coordinate

Minimum distance from a Coordinate to a Line

Converts to this type from the input type.

Converts to this type from the input type.

Converts to this type from the input type.

Convert from a Coordinate

Converts to this type from the input type.

Converts to this type from the input type.

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

Multiply coordinate wise by a scalar.

Examples

use geo_types::coord;

let p = coord! { x: 1.25, y: 2.5 };
let q = p * 4.;

assert_eq!(q.x, 5.0);
assert_eq!(q.y, 10.0);

The resulting type after applying the * operator.

Performs the * operation. Read more

Negate a coordinate.

Examples

use geo_types::coord;

let p = coord! { x: 1.25, y: 2.5 };
let q = -p;

assert_eq!(q.x, -p.x);
assert_eq!(q.y, -p.y);

The resulting type after applying the - operator.

Performs the unary - operation. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

The number type used by this point type.

The number of dimensions of this point type.

Creates a new point value with given values for each dimension. Read more

Returns a single coordinate of this point. Read more

Mutable variant of nth.

The default relative tolerance for testing values that are far-apart. Read more

A test for equality that uses a relative comparison if the values are far apart.

The inverse of [RelativeEq::relative_eq].

Subtract a coordinate from another.

Examples

use geo_types::coord;

let p = coord! { x: 1.5, y: 2.5 };
let q = coord! { x: 1.25, y: 2.5 };
let diff = p - q;

assert_eq!(diff.x, 0.25);
assert_eq!(diff.y, 0.);

The resulting type after applying the - operator.

Performs the - operation. Read more

The default ULPs to tolerate when testing values that are far-apart. Read more

A test for equality that uses units in the last place (ULP) if the values are far apart.

The inverse of [UlpsEq::ulps_eq].

Returns the additive identity element of Self, 0. Read more

Returns true if self is equal to the additive identity.

Sets self to the additive identity element of Self, 0.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Returns the squared euclidean distance between an object to a point.

Returns true if a point is contained within this object. Read more

Returns the squared distance to this object, or None if the distance is larger than a given maximum value. Read more

The object’s envelope type. Usually, AABB will be the right choice. This type also defines the object’s dimensionality. Read more

Returns the object’s envelope. Read more

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.