001/* 002 * GeoAPI - Java interfaces for OGC/ISO standards 003 * Copyright © 2003-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.referencing.crs; 019 020import java.util.Map; 021import org.opengis.referencing.cs.AffineCS; 022import org.opengis.referencing.cs.CartesianCS; 023import org.opengis.referencing.datum.ImageDatum; 024import org.opengis.annotation.UML; 025 026import static org.opengis.annotation.Obligation.*; 027import static org.opengis.annotation.Specification.*; 028 029 030/** 031 * A 2-dimensional engineering <abbr>CRS</abbr> applied to locations in images. 032 * 033 * <div class="note"><b>Note:</b> 034 * image coordinate reference systems are treated as a separate sub-type because a separate 035 * user community exists for images with its own terms of reference. Furthermore, image datum 036 * contains a property not relevant to other engineering datums.</div> 037 * 038 * <p>This type of CRS can be used with coordinate systems of type 039 * {@link org.opengis.referencing.cs.CartesianCS} or 040 * {@link org.opengis.referencing.cs.AffineCS}.</p> 041 * 042 * @author Martin Desruisseaux (IRD, Geomatys) 043 * @version 3.0 044 * @since 1.0 045 * 046 * @see CRSAuthorityFactory#createImageCRS(String) 047 * @see CRSFactory#createImageCRS(Map, ImageDatum, AffineCS) 048 * 049 * @deprecated Replaced by {@link EngineeringCRS} as of ISO 19111:2019. 050 */ 051@Deprecated(since="3.1") 052@UML(identifier="SC_ImageCRS", specification=ISO_19111, version=2007) 053public interface ImageCRS extends SingleCRS { 054 /** 055 * Returns the affine coordinate system, which shall be {@linkplain AffineCS affine} or 056 * {@linkplain CartesianCS Cartesian}. 057 * 058 * @return the affine or Cartesian coordinate system. 059 */ 060 @Override 061 @UML(identifier="coordinateSystem", obligation=MANDATORY, specification=ISO_19111) 062 AffineCS getCoordinateSystem(); 063 064 /** 065 * Returns the datum, which shall be an image one. 066 */ 067 @Override 068 @UML(identifier="datum", obligation=MANDATORY, specification=ISO_19111) 069 ImageDatum getDatum(); 070}