## org.opengis.coverage
Interface SegmentedCurveCoverage

All Superinterfaces:
  ContinuousCoverage, Coverage

    @UML(identifier="CV_SegmentedCurveCoverage",
         specification=ISO_19123)
    public interface SegmentedCurveCoverage

extends ContinuousCoverage

Model phenomena that vary continuously or discontinuously along curves, which may be elements of a network. The domain of a segmented curve coverage is described by a set of curves and includes all the direct positions in all of the curves in the set.

Arc-length parameterization of a curve simplifies interpolation between direct positions on the curve. Representation of phenomena that vary discontinuously along a curve requires segmentation of the curve into regions of continuous variation. Such segmentation is also simplified by arc-length parameterization. `Curve` supports arc-length parameterization. In particular, the operation:

> `GenericCurve.getParamForPoint(org.opengis.geometry.DirectPosition)`

returns the arc-length distance from the start point of the curve to the input direct position.

A segmented curve coverage operates on a domain composed of curves. It is composed of a set of `ValueCurve`s, each of which maps feature attribute values to position on a curve.

Method Summary
`ValueCurve` `curve(DirectPosition position)` Return the value curve nearest to the specified direct position.
`ValueCurve` `curve(DirectPosition position, double tolerance)` Return the value curve nearest to the specified direct position.
`Set` `evaluate(DirectPosition p, Collection<String> list)` Returns a set of records of feature attribute values for the specified direct position.
`Set<ValueCurve>` `getElements()` Returns the set of value objects used to evaluate the coverage.
`InterpolationMethod` `getInterpolationMethod()` Returns the interpolation method to be used in evaluating the coverage.

Methods inherited from interface ContinuousCoverage
`evaluate, evaluateInverse, getInterpolationParameterTypes, locate, select`

Methods inherited from interface Coverage
`evaluate, evaluate, evaluate, evaluate, evaluate, evaluate, find, find, getCommonPointRule, getCoordinateReferenceSystem, getDimensionNames, getDomainElements, getDomainExtents, getEnvelope, getMetadataNames, getMetadataValue, getNumSampleDimensions, getRangeElements, getRangeType, getRenderableImage, getSampleDimension, getSources, list`

Method Detail

### getElements

    @UML(identifier="element",
         obligation=OPTIONAL,
         specification=ISO_19123)
    Set<ValueCurve> getElements()

  Returns the set of value objects used to evaluate the coverage. This association is optional - an analytical coverage needs no value objects.

  Specified by:
    `getElements` in interface `ContinuousCoverage`

### getInterpolationMethod

    @UML(identifier="interpolationType",
         obligation=OPTIONAL,
         specification=ISO_19123)
    InterpolationMethod getInterpolationMethod()

  Returns the interpolation method to be used in evaluating the coverage. The default value shall be "linear". An application schema may define other interpolation methods.

  Specified by:
    `getInterpolationMethod` in interface `ContinuousCoverage`

### curve

    @UML(identifier="curve",
         obligation=MANDATORY,
         specification=ISO_19123)
    ValueCurve curve(DirectPosition position,
                                                                            double tolerance)

  Return the value curve nearest to the specified direct position. The operation shall throw an exception if the direct position is not close (i.e., within the distance specified by the tolerance parameter) to one of the value curves in this segmented curve coverage. The default value for tolerance is zero.

### curve

    @UML(identifier="curve",
         obligation=MANDATORY,
         specification=ISO_19123)
    ValueCurve curve(DirectPosition position)

  Return the value curve nearest to the specified direct position. This method is equivalent to `curve(position, 0)`.

### evaluate

    @UML(identifier="evaluate",
         obligation=MANDATORY,
         specification=ISO_19123)
    Set evaluate(DirectPosition p,
                                                                        Collection<String> list)

  Returns a set of records of feature attribute values for the specified direct position. Evaluation of a segmented curve coverage involves several steps:

  - Invoke `curve(org.opengis.geometry.DirectPosition, double)` in order to find the value curve that contains the input direct position.
  - Invoke `ValueCurve.segment(org.opengis.geometry.DirectPosition, java.lang.Double)` in order to find the value segment that contains the input direct position.
  - If `segment` returns a single value segment, use the specified interpolation type to compute feature attribute values from the associated control values.
  - If `segment` returns a pair of conterminous `ValueSegments`, compute the feature attribute values according to the rule specified by the common point rule.

  TODO:
    The return type should be Set<Record>.

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.