pub struct LineString {
    pub srid: SRID,
    pub geom: LineString<f64>,
}
Expand description

A linearly interpolated path between locations.

MySQL extension: The spatial reference system identifier (SRID) may identify the used coordinate system.

Fields

srid: SRIDgeom: LineString<f64>

Methods from Deref<Target = LineString<f64>>

👎 Deprecated:

Use points() instead

Return an iterator yielding the coordinates of a LineString as Points

Return an iterator yielding the coordinates of a LineString as Points

Return an iterator yielding the members of a LineString as Coordinates

Return an iterator yielding the coordinates of a LineString as mutable Coordinates

Return an iterator yielding one Line for each line segment in the LineString.

Examples
use geo_types::{coord, Line, LineString};

let mut coords = vec![(0., 0.), (5., 0.), (7., 9.)];
let line_string: LineString<f32> = coords.into_iter().collect();

let mut lines = line_string.lines();
assert_eq!(
    Some(Line::new(
        coord! { x: 0., y: 0. },
        coord! { x: 5., y: 0. }
    )),
    lines.next()
);
assert_eq!(
    Some(Line::new(
        coord! { x: 5., y: 0. },
        coord! { x: 7., y: 9. }
    )),
    lines.next()
);
assert!(lines.next().is_none());

An iterator which yields the coordinates of a LineString as Triangles

Close the LineString. Specifically, if the LineString has at least one Coordinate, and the value of the first Coordinate does not equal the value of the last Coordinate, then a new Coordinate is added to the end with the value of the first Coordinate.

👎 Deprecated:

Use geo::algorithm::coords_iter::CoordsIter::coords_count instead

Return the number of coordinates in the LineString.

Examples
use geo_types::LineString;

let mut coords = vec![(0., 0.), (5., 0.), (7., 9.)];
let line_string: LineString<f32> = coords.into_iter().collect();

assert_eq!(3, line_string.num_coords());

Checks if the linestring is closed; i.e. it is either empty or, the first and last points are the same.

Examples
use geo_types::LineString;

let mut coords = vec![(0., 0.), (5., 0.), (0., 0.)];
let line_string: LineString<f32> = coords.into_iter().collect();
assert!(line_string.is_closed());

Note that we diverge from some libraries (JTS et al), which have a LinearRing type, separate from LineString. Those libraries treat an empty LinearRing as closed by definition, while treating an empty LineString as open. Since we don’t have a separate LinearRing type, and use a LineString in its place, we adopt the JTS LinearRing is_closed behavior in all places: that is, we consider an empty LineString as closed.

This is expected when used in the context of a Polygon.exterior and elsewhere; And there seems to be no reason to maintain the separate behavior for LineStrings used in non-LinearRing contexts.

Trait Implementations

Converts this type into a mutable reference of the (usually inferred) input type.

Converts this type into a shared reference of the (usually inferred) input type.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

The resulting type after dereferencing.

Dereferences the value.

Mutably dereferences the value.

Converts to this type from the input type.

Converts to this type from the input type.

See the trait documentation.

See the trait documentation.

The number of fields that this type will consume. Must be equal to the number of times you would call row.take() in build_from_row Read more

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

This method tests for !=.

The Rust type you’d like to map from. Read more

Construct an instance of this type

See the trait documentation.

See the trait documentation.

The type returned in the event of a conversion error.

Performs the conversion.

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.

Convert self to an expression for Diesel’s query builder. Read more

Convert &self to an expression for Diesel’s query builder. Read more

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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.