001/*
002 *    GeoAPI - Java interfaces for OGC/ISO standards
003 *    Copyright © 2004-2023 Open Geospatial Consortium, Inc.
004 *    http://www.geoapi.org
005 *
006 *    Licensed under the Apache License, Version 2.0 (the "License");
007 *    you may not use this file except in compliance with the License.
008 *    You may obtain a copy of the License at
009 *
010 *        http://www.apache.org/licenses/LICENSE-2.0
011 *
012 *    Unless required by applicable law or agreed to in writing, software
013 *    distributed under the License is distributed on an "AS IS" BASIS,
014 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 *    See the License for the specific language governing permissions and
016 *    limitations under the License.
017 */
018package org.opengis.metadata.extent;
019
020import org.opengis.annotation.UML;
021
022import static org.opengis.annotation.Obligation.*;
023import static org.opengis.annotation.Specification.*;
024
025
026/**
027 * Geographic position of the resource. This is only an approximate reference
028 * so specifying the coordinate reference system is unnecessary.
029 * A precision up to 2 decimal places is usually sufficient.
030 *
031 * @author  Martin Desruisseaux (IRD)
032 * @version 3.0
033 * @since   1.0
034 */
035@UML(identifier="EX_GeographicBoundingBox", specification=ISO_19115)
036public interface GeographicBoundingBox extends GeographicExtent {
037    /**
038     * The western-most coordinate of the limit of the resource extent.
039     * The value is expressed in longitude in decimal degrees (positive east).
040     *
041     * @return the western-most longitude between -180 and +180°.
042     * @unitof Angle
043     */
044    @UML(identifier="westBoundLongitude", obligation=MANDATORY, specification=ISO_19115)
045    double getWestBoundLongitude();
046
047    /**
048     * The eastern-most coordinate of the limit of the resource extent.
049     * The value is expressed in longitude in decimal degrees (positive east).
050     *
051     * @return the eastern-most longitude between -180 and +180°.
052     * @unitof Angle
053     */
054    @UML(identifier="eastBoundLongitude", obligation=MANDATORY, specification=ISO_19115)
055    double getEastBoundLongitude();
056
057    /**
058     * The southern-most coordinate of the limit of the resource extent.
059     * The value is expressed in latitude in decimal degrees (positive north).
060     *
061     * @return the southern-most latitude between -90 and +90°.
062     * @unitof Angle
063     */
064    @UML(identifier="southBoundLatitude", obligation=MANDATORY, specification=ISO_19115)
065    double getSouthBoundLatitude();
066
067    /**
068     * The northern-most coordinate of the limit of the resource extent.
069     * The value is expressed in latitude in decimal degrees (positive north).
070     *
071     * @return the northern-most latitude between -90 and +90°.
072     * @unitof Angle
073     */
074    @UML(identifier="northBoundLatitude", obligation=MANDATORY, specification=ISO_19115)
075    double getNorthBoundLatitude();
076}