All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opengis.geometry.coordinate.ParamForPoint Maven / Gradle / Ivy

The newest version!
/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2011, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2003-2005, Open Geospatial Consortium Inc.
 *
 *    All Rights Reserved. http://www.opengis.org/legal/
 */
package org.opengis.geometry.coordinate;

import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;

import java.util.Set;
import org.opengis.annotation.Extension;
import org.opengis.annotation.UML;
import org.opengis.geometry.DirectPosition;

/**
 * The curve parameter for a point. This is the result of call to {@link
 * GenericCurve#getParamForPoint}.
 *
 * @version ISO 19107
 * @author Martin Desruisseaux (IRD)
 * @since GeoAPI 1.0
 */
@UML(identifier = "paramForPoint", specification = ISO_19107)
public interface ParamForPoint {
    /**
     * Returns the parameter distance computed by 
     * {@linkplain GenericCurve#getParamForPoint getParamForPoint}(p). The output will
     * contain only one distance, unless the curve is not simple. If there is more than one
     * {@linkplain DirectPosition direct position} on the {@linkplain GenericCurve generic curve} at
     * the same minimal distance from the passed "{@code p}", the return value may be an arbitrary
     * choice of one of the possible answers.
     *
     * @return The parameter distance.
     * @unitof Distance
     * @since GeoAPI 2.1
     */
    Set getDistances();

    /**
     * Returns the first value in the {@linkplain #getDistances distances} set.
     *
     * @return The parameter distance.
     * @unitof Distance
     */
    @Extension
    double getDistance();

    /**
     * Returns the actual value for the direct position used by 
     * {@linkplain GenericCurve#getParamForPoint getParamForPoint}(p). That is, it shall be
     * the point on the {@linkplain GenericCurve generic curve} closest to the coordinate passed in
     * as the "{@code p}" argument.
     *
     * @return The actual position used.
     */
    DirectPosition getPosition();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy