/// <summary> /// Creates a new topologically complete LineString from a LineStringBase /// </summary> /// <param name="lineStringBase"></param> public LineString(ILineStringBase lineStringBase) : base(DefaultFactory) { if (lineStringBase.NumPoints == 0) { this.points = DefaultFactory.CoordinateSequenceFactory.Create(new Coordinate[] { }); } if (lineStringBase.NumPoints == 1) { throw new ArgumentException("point array must contain 0 or >1 elements"); } this.points = lineStringBase.CoordinateSequence; }
/// <summary> /// /// </summary> /// <param name="lineString"> /// The points of the linestring, or <c>null</c> /// to create the empty point. Consecutive points may not be equal. /// </param> /// <param name="factory"></param> public LineString(ILineStringBase lineString, IGeometryFactory factory) : base(factory) { if (lineString.Coordinates == null) { points = factory.CoordinateSequenceFactory.Create(new Coordinate[] { }); } if (lineString.NumPoints == 1) { throw new ArgumentException("point array must contain 0 or >1 elements"); } this.points = lineString.CoordinateSequence; }
/// <summary> /// creates a LinearRing given a basic linestring /// </summary> /// <param name="linestringbase">the base data to make into a linear ring</param> public LinearRing(ILineStringBase linestringbase) : base(linestringbase) { }
/// <summary> /// /// </summary> /// <param name="line"></param> /// <returns></returns> private static ILineString Reverse(ILineStringBase line) { ICoordinate[] pts = line.Coordinates; Array.Reverse(pts); return(new LineString(pts)); }