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: SRID§geom: LineString<f64>Methods from Deref<Target = LineString<f64>>§
Sourcepub fn points_iter(&self) -> PointsIter<'_, T>
👎Deprecated: Use points() instead
pub fn points_iter(&self) -> PointsIter<'_, T>
Return an iterator yielding the coordinates of a LineString as Points
Sourcepub fn points(&self) -> PointsIter<'_, T>
pub fn points(&self) -> PointsIter<'_, T>
Return an iterator yielding the coordinates of a LineString as Points
Sourcepub fn coords(&self) -> impl DoubleEndedIterator
pub fn coords(&self) -> impl DoubleEndedIterator
Return an iterator yielding the members of a LineString as Coords
Sourcepub fn coords_mut(&mut self) -> impl DoubleEndedIterator
pub fn coords_mut(&mut self) -> impl DoubleEndedIterator
Return an iterator yielding the coordinates of a LineString as mutable Coords
Sourcepub fn lines(&self) -> impl ExactSizeIterator
pub fn lines(&self) -> impl ExactSizeIterator
Return an iterator yielding one Line for each line segment
in the LineString.
§Examples
use geo_types::{wkt, Line, LineString};
let line_string = wkt!(LINESTRING(0 0,5 0,7 9));
let mut lines = line_string.lines();
assert_eq!(
Some(Line::new((0, 0), (5, 0))),
lines.next()
);
assert_eq!(
Some(Line::new((5, 0), (7, 9))),
lines.next()
);
assert!(lines.next().is_none());Sourcepub fn rev_lines(&self) -> impl ExactSizeIterator
pub fn rev_lines(&self) -> impl ExactSizeIterator
Return an iterator yielding one Line for each line segment in the LineString,
starting from the end point of the LineString, working towards the start.
Note: This is like Self::lines, but the sequence and the orientation of
segments are reversed.
§Examples
use geo_types::{wkt, Line, LineString};
let line_string = wkt!(LINESTRING(0 0,5 0,7 9));
let mut lines = line_string.rev_lines();
assert_eq!(
Some(Line::new((7, 9), (5, 0))),
lines.next()
);
assert_eq!(
Some(Line::new((5, 0), (0, 0))),
lines.next()
);
assert!(lines.next().is_none());Sourcepub fn triangles(&self) -> impl ExactSizeIterator
pub fn triangles(&self) -> impl ExactSizeIterator
An iterator which yields the coordinates of a LineString as Triangles
Sourcepub fn close(&mut self)
pub fn close(&mut self)
Close the LineString. Specifically, if the LineString has at least one Coord, and
the value of the first Coord does not equal the value of the last Coord, then a
new Coord is added to the end with the value of the first Coord.
Sourcepub fn num_coords(&self) -> usize
👎Deprecated: Use geo::CoordsIter::coords_count instead
pub fn num_coords(&self) -> usize
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());Sourcepub fn is_closed(&self) -> bool
pub fn is_closed(&self) -> bool
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§
Source§impl AsMut<LineString> for LineString
impl AsMut<LineString> for LineString
Source§fn as_mut(&mut self) -> &mut LineString<f64>
fn as_mut(&mut self) -> &mut LineString<f64>
Source§impl AsRef<LineString> for LineString
impl AsRef<LineString> for LineString
Source§fn as_ref(&self) -> &LineString<f64>
fn as_ref(&self) -> &LineString<f64>
Source§impl Clone for LineString
impl Clone for LineString
Source§fn clone(&self) -> LineString
fn clone(&self) -> LineString
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LineString
impl Debug for LineString
Source§impl Deref for LineString
impl Deref for LineString
Source§impl DerefMut for LineString
impl DerefMut for LineString
Source§impl From<LineString> for Geometry
impl From<LineString> for Geometry
Source§fn from(other: LineString) -> Self
fn from(other: LineString) -> Self
Source§impl From<LineString> for LineString
impl From<LineString> for LineString
Source§fn from(geom: LineString<f64>) -> Self
fn from(geom: LineString<f64>) -> Self
Source§impl FromSql<LineString, Mysql> for LineString
impl FromSql<LineString, Mysql> for LineString
Source§impl<__ST, __DB> FromSqlRow<__ST, __DB> for LineString
impl<__ST, __DB> FromSqlRow<__ST, __DB> for LineString
Source§const FIELDS_NEEDED: usize = 1usize
const FIELDS_NEEDED: usize = 1usize
row.take() in build_from_rowSource§impl PartialEq for LineString
impl PartialEq for LineString
Source§impl<__ST, __DB> Queryable<__ST, __DB> for LineString
impl<__ST, __DB> Queryable<__ST, __DB> for LineString
Source§impl ToSql<LineString, Mysql> for LineString
impl ToSql<LineString, Mysql> for LineString
Source§impl TryFrom<Geometry> for LineString
impl TryFrom<Geometry> for LineString
impl StructuralPartialEq for LineString
Auto Trait Implementations§
impl Freeze for LineString
impl RefUnwindSafe for LineString
impl Send for LineString
impl Sync for LineString
impl Unpin for LineString
impl UnwindSafe for LineString
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expressionwhere
Self: Sized + AsExpression<T>,
fn into_sql<T>(self) -> Self::Expressionwhere
Self: Sized + AsExpression<T>,
self to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
&self to an expression for Diesel’s query builder. Read more