JTS Topology Suite version 1.13

## com.vividsolutions.jts.linearref
Class LinearLocation

    java.lang.Object
      com.vividsolutions.jts.linearref.LinearLocation

All Implemented Interfaces:
  java.lang.Comparable

    public class LinearLocation

extends java.lang.Object
implements java.lang.Comparable

Represents a location along a `LineString` or `MultiLineString`. The referenced geometry is not maintained within this location, but must be provided for operations which require it. Various methods are provided to manipulate the location value and query the geometry it references.

Constructor Summary
`LinearLocation()` Creates a location referring to the start of a linear geometry
`LinearLocation(int segmentIndex, double segmentFraction)`
`LinearLocation(int componentIndex, int segmentIndex, double segmentFraction)`
`LinearLocation(LinearLocation loc)` Creates a new location equal to a given one.

Method Summary
`void` `clamp(Geometry linear)` Ensures the indexes are valid for a given linear `Geometry`.
`java.lang.Object` `clone()` Copies this location
`int` `compareLocationValues(int componentIndex1, int segmentIndex1, double segmentFraction1)` Compares this object with the specified index values for order.
`static int` `compareLocationValues(int componentIndex0, int segmentIndex0, double segmentFraction0, int componentIndex1, int segmentIndex1, double segmentFraction1)` Compares two sets of location values for order.
`int` `compareTo(java.lang.Object o)` Compares this object with the specified object for order.
`int` `getComponentIndex()` Gets the component index for this location.
`Coordinate` `getCoordinate(Geometry linearGeom)` Gets the `Coordinate` along the given linear `Geometry` which is referenced by this location.
`static LinearLocation` `getEndLocation(Geometry linear)` Gets a location which refers to the end of a linear `Geometry`.
`LineSegment` `getSegment(Geometry linearGeom)` Gets a `LineSegment` representing the segment of the given linear `Geometry` which contains this location.
`double` `getSegmentFraction()` Gets the segment fraction for this location
`int` `getSegmentIndex()` Gets the segment index for this location
`double` `getSegmentLength(Geometry linearGeom)` Gets the length of the segment in the given Geometry containing this location.
`boolean` `isEndpoint(Geometry linearGeom)` Tests whether this location is an endpoint of the linear component it refers to.
`boolean` `isOnSameSegment(LinearLocation loc)` Tests whether two locations are on the same segment in the parent `Geometry`.
`boolean` `isValid(Geometry linearGeom)` Tests whether this location refers to a valid location on the given linear `Geometry`.
`boolean` `isVertex()` Tests whether this location refers to a vertex
`static Coordinate` `pointAlongSegmentByFraction(Coordinate p0, Coordinate p1, double frac)` Computes the `Coordinate` of a point a given fraction along the line segment `(p0, p1)`.
`void` `setToEnd(Geometry linear)` Sets the value of this location to refer to the end of a linear geometry.
`void` `snapToVertex(Geometry linearGeom, double minDistance)` Snaps the value of this location to the nearest vertex on the given linear `Geometry`, if the vertex is closer than `minDistance`.
`java.lang.String` `toString()`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### LinearLocation

    public LinearLocation()

  Creates a location referring to the start of a linear geometry

### LinearLocation

    public LinearLocation(int segmentIndex,
                          double segmentFraction)

### LinearLocation

    public LinearLocation(int componentIndex,
                          int segmentIndex,
                          double segmentFraction)

### LinearLocation

    public LinearLocation(LinearLocation loc)

  Creates a new location equal to a given one.

  Parameters:
    `loc` - a LinearLocation

Method Detail

### getEndLocation

    public static LinearLocation getEndLocation(Geometry linear)

  Gets a location which refers to the end of a linear `Geometry`.

  Parameters:
    `linear` - the linear geometry
  Returns:
    a new `LinearLocation`

### pointAlongSegmentByFraction

    public static Coordinate pointAlongSegmentByFraction(Coordinate p0,
                                                         Coordinate p1,
                                                         double frac)

  Computes the `Coordinate` of a point a given fraction along the line segment `(p0, p1)`. If the fraction is greater than 1.0 the last point of the segment is returned. If the fraction is less than or equal to 0.0 the first point of the segment is returned. The Z ordinate is interpolated from the Z-ordinates of the given points, if they are specified.

  Parameters:
    `p0` - the first point of the line segment
    `p1` - the last point of the line segment
    `frac` - the length to the desired point
  Returns:
    the `Coordinate` of the desired point

### clamp

    public void clamp(Geometry linear)

  Ensures the indexes are valid for a given linear `Geometry`.

  Parameters:
    `linear` - a linear geometry

### snapToVertex

    public void snapToVertex(Geometry linearGeom,
                             double minDistance)

  Snaps the value of this location to the nearest vertex on the given linear `Geometry`, if the vertex is closer than `minDistance`.

  Parameters:
    `linearGeom` - a linear geometry
    `minDistance` - the minimum allowable distance to a vertex

### getSegmentLength

    public double getSegmentLength(Geometry linearGeom)

  Gets the length of the segment in the given Geometry containing this location.

  Parameters:
    `linearGeom` - a linear geometry
  Returns:
    the length of the segment

### setToEnd

    public void setToEnd(Geometry linear)

  Sets the value of this location to refer to the end of a linear geometry.

  Parameters:
    `linear` - the linear geometry to use to set the end

### getComponentIndex

    public int getComponentIndex()

  Gets the component index for this location.

  Returns:
    the component index

### getSegmentIndex

    public int getSegmentIndex()

  Gets the segment index for this location

  Returns:
    the segment index

### getSegmentFraction

    public double getSegmentFraction()

  Gets the segment fraction for this location

  Returns:
    the segment fraction

### isVertex

    public boolean isVertex()

  Tests whether this location refers to a vertex

  Returns:
    true if the location is a vertex

### getCoordinate

    public Coordinate getCoordinate(Geometry linearGeom)

  Gets the `Coordinate` along the given linear `Geometry` which is referenced by this location.

  Parameters:
    `linearGeom` - the linear geometry referenced by this location
  Returns:
    the `Coordinate` at the location

### getSegment

    public LineSegment getSegment(Geometry linearGeom)

  Gets a `LineSegment` representing the segment of the given linear `Geometry` which contains this location.

  Parameters:
    `linearGeom` - a linear geometry
  Returns:
    the `LineSegment` containing the location

### isValid

    public boolean isValid(Geometry linearGeom)

  Tests whether this location refers to a valid location on the given linear `Geometry`.

  Parameters:
    `linearGeom` - a linear geometry
  Returns:
    true if this location is valid

### compareTo

    public int compareTo(java.lang.Object o)

  Compares this object with the specified object for order.

  Specified by:
    `compareTo` in interface `java.lang.Comparable`
  Parameters:
    `o` - the `LineStringLocation` with which this `Coordinate` is being compared
  Returns:
    a negative integer, zero, or a positive integer as this `LineStringLocation` is less than, equal to, or greater than the specified `LineStringLocation`

### compareLocationValues

    public int compareLocationValues(int componentIndex1,
                                     int segmentIndex1,
                                     double segmentFraction1)

  Compares this object with the specified index values for order.

  Parameters:
    `componentIndex1` - a component index
    `segmentIndex1` - a segment index
    `segmentFraction1` - a segment fraction
  Returns:
    a negative integer, zero, or a positive integer as this `LineStringLocation` is less than, equal to, or greater than the specified locationValues

### compareLocationValues

    public static int compareLocationValues(int componentIndex0,
                                            int segmentIndex0,
                                            double segmentFraction0,
                                            int componentIndex1,
                                            int segmentIndex1,
                                            double segmentFraction1)

  Compares two sets of location values for order.

  Parameters:
    `componentIndex0` - a component index
    `segmentIndex0` - a segment index
    `segmentFraction0` - a segment fraction
    `componentIndex1` - another component index
    `segmentIndex1` - another segment index
    `segmentFraction1` - another segment fraction
  Returns:
    a negative integer, zero, or a positive integer as the first set of location values is less than, equal to, or greater than the second set of locationValues

### isOnSameSegment

    public boolean isOnSameSegment(LinearLocation loc)

  Tests whether two locations are on the same segment in the parent `Geometry`.

  Parameters:
    `loc` - a location on the same geometry
  Returns:
    true if the locations are on the same segment of the parent geometry

### isEndpoint

    public boolean isEndpoint(Geometry linearGeom)

  Tests whether this location is an endpoint of the linear component it refers to.

  Parameters:
    `linearGeom` - the linear geometry referenced by this location
  Returns:
    true if the location is a component endpoint

### clone

    public java.lang.Object clone()

  Copies this location

  Overrides:
    `clone` in class `java.lang.Object`
  Returns:
    a copy of this location

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

JTS Topology Suite version 1.13