/// <summary> /// Computes the subline of a <see cref="LineString"/> between /// two <see cref="LineStringLocation"/>s on the line. /// If the start location is after the end location, /// the computed geometry is reversed. /// </summary> /// <param name="line">The line to use as the baseline.</param> /// <param name="start">The start location.</param> /// <param name="end">The end location.</param> /// <returns> Returns the extracted subline.</returns> public static Geometry Extract(Geometry line, LinearLocation start, LinearLocation end) { ExtractLineByLocation ls = new ExtractLineByLocation(line); return(ls.Extract(start, end)); }
/// <summary> /// Computes the <see cref="LineString"/> for the interval on the line /// between the given indices. /// </summary> /// <param name="startIndex"> /// The index of the start of the interval. /// </param> /// <param name="endIndex"> /// The index of the end of the interval. /// </param> /// <returns>The linear interval between the indices.</returns> /// <remarks> /// If the endIndex lies before the startIndex, the computed /// geometry is reversed. /// </remarks> public virtual Geometry ExtractLine(double startIndex, double endIndex) { // LocationIndexedLine lil = new LocationIndexedLine(linearGeom); LinearLocation startLoc = LocationOf(startIndex); LinearLocation endLoc = LocationOf(endIndex); return(ExtractLineByLocation.Extract(linearGeom, startLoc, endLoc)); }
/// <summary> Computes the <see cref="LineString"/> for the interval /// on the line between the given indices. /// /// </summary> /// <param name="startIndex">the index of the start of the interval /// </param> /// <param name="endIndex">the index of the end of the interval /// </param> /// <returns> the linear interval between the indices /// </returns> public Geometry ExtractLine(LinearLocation startIndex, LinearLocation endIndex) { return(ExtractLineByLocation.Extract(linearGeom, startIndex, endIndex)); }