/// <summary> /// Computes the <see cref="LinearLocation"/> for a given length along /// a linear <see cref="Geometry"/>. /// </summary> /// <param name="line">The linear geometry to use.</param> /// <param name="length">The length index of the location.</param> /// <returns> /// This returns the <see cref="LinearLocation"/> for the length. /// </returns> public static LinearLocation GetLocation(Geometry linearGeom, double length) { LengthLocationMap locater = new LengthLocationMap(linearGeom); return(locater.GetLocation(length)); }
/// <summary> /// Computes the <see cref="Coordinate"/> for the point on the line /// at the given index. /// </summary> /// <param name="index">The index of the desired point.</param> /// <returns>The Coordinate at the given index.</returns> /// <remarks> /// If the index is out of range the first or last point on the /// line will be returned. /// </remarks> public virtual Coordinate ExtractPoint(double index) { LinearLocation loc = LengthLocationMap.GetLocation( linearGeom, index); return(loc.GetCoordinate(linearGeom)); }
/// <summary> /// Computes the indices for a subline of the line. /// </summary> /// <param name="subLine">A subLine of the line.</param> /// <returns> /// A pair of indices for the start and end of the subline. /// </returns> /// <remarks> /// (The subline must <b>conform</b> to the line; that is, /// all vertices in the subline (except possibly the first and last) /// must be vertices of the line and occcur in the same order). /// </remarks> public virtual double[] IndicesOf(Geometry subLine) { LinearLocation[] locIndex = LocationIndexOfLine.IndicesOf( linearGeom, subLine); double[] index = new double[] { LengthLocationMap.GetLength( linearGeom, locIndex[0]), LengthLocationMap.GetLength(linearGeom, locIndex[1]) }; return(index); }
/// <summary> /// Computes the length for a given <see cref="LinearLocation"/> /// on a linear <see cref="Geometry"/>. /// </summary> /// <param name="line">The linear geometry to use.</param> /// <param name="loc"> /// The <see cref="LinearLocation"/> index of the location. /// </param> /// <returns> /// This returns the length for the <see cref="LinearLocation"/>. /// </returns> public static double GetLength(Geometry linearGeom, LinearLocation loc) { LengthLocationMap locater = new LengthLocationMap(linearGeom); return(locater.GetLength(loc)); }
private LinearLocation LocationOf(double index) { return(LengthLocationMap.GetLocation(linearGeom, index)); }