| <!DOCTYPE HTML> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 --> |
| <title>org.apache.sis.referencing.operation (Apache SIS 1.0 API)</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta name="dc.created" content="2019-09-20"> |
| <meta name="keywords" content="org.apache.sis.referencing.operation package"> |
| <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../sis.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style"> |
| <script type="text/javascript" src="../../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script> |
| <script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script> |
| <!--[if IE]> |
| <script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script> |
| <![endif]--> |
| <script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script> |
| <script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script> |
| <script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| try { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="org.apache.sis.referencing.operation (Apache SIS 1.0 API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var pathtoroot = "../../../../../"; |
| var useModuleDirectories = false; |
| loadScripts(document, 'script');</script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <header role="banner"> |
| <nav role="navigation"> |
| <div class="fixedNav"> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a id="navbar.top"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
| <a id="navbar.top.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../index.html">Overview</a></li> |
| <li class="navBarCell1Rev">Package</li> |
| <li>Class</li> |
| <li><a href="package-use.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../help-doc.html">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../allclasses.html">All Classes</a></li> |
| </ul> |
| <ul class="navListSearch"> |
| <li><label for="search">SEARCH:</label> |
| <input type="text" id="search" value="search" disabled="disabled"> |
| <input type="reset" id="reset" value="reset" disabled="disabled"> |
| </li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_top"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| </div> |
| <a id="skip.navbar.top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| </div> |
| <div class="navPadding"> </div> |
| <script type="text/javascript"><!-- |
| $('.navPadding').css('padding-top', $('.fixedNav').css("height")); |
| //--> |
| </script> |
| </nav> |
| </header> |
| <main role="main"> |
| <div class="header"> |
| <h1 title="Package" class="title">Package org.apache.sis.referencing.operation</h1> |
| </div> |
| <div class="contentContainer"> |
| <section role="region"><a id="package.description"> |
| <!-- --> |
| </a> |
| <div class="block">Relationship between any two <a href="../crs/AbstractCRS.html" title="class in org.apache.sis.referencing.crs">Coordinate Reference Systems</a> (CRS). |
| An explanation for this package is provided in the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/package-summary.html?is-external=true" class="externalLink">OpenGIS® javadoc</a>. |
| The remaining discussion on this page is specific to the Apache SIS implementation. |
| |
| <p>This package provides an ISO 19111 <a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">Coordinate Operation implementation</a> and support classes. The actual transform work is performed by the following |
| sub-packages, but most users will not need to deal with them directly:</p> |
| |
| <ul> |
| <li><a href="projection/package-summary.html"><code>org.apache.sis.referencing.operation.projection</code></a> — map projections,</li> |
| <li><a href="transform/package-summary.html"><code>org.apache.sis.referencing.operation.transform</code></a> — any transform other than map projections.</li> |
| </ul> |
| |
| <div class="section">Apache SIS extensions</div> |
| Some SIS implementations provide additional methods that are not part of OGC/ISO specifications: |
| |
| <ul> |
| <li><a href="AbstractCoordinateOperation.html#getLinearAccuracy()"><code>AbstractCoordinateOperation.getLinearAccuracy()</code></a> |
| — tries to convert the accuracy to metres,</li> |
| <li><a href="DefaultConversion.html#specialize(java.lang.Class,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.MathTransformFactory)"><code>DefaultConversion.specialize(…)</code></a> |
| — changes a <cite>defining conversion</cite> into a complete conversion.</li> |
| </ul> |
| |
| <div class="section">Apache SIS specific behavior</div> |
| The following operations have a behavior in Apache SIS which may be different |
| than the behavior found in other software products. Those particularities apply only when the math transform is |
| <a href="transform/DefaultMathTransformFactory.html#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)">created directly</a>. Users do not need to care about them when the coordinate operation is |
| <a href="DefaultCoordinateOperationFactory.html#createOperation(org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem)">inferred by Apache SIS for a given pair of CRS</a>. |
| |
| <ul> |
| <li><b>Longitude rotation</b> (EPSG:9601) — the longitude offset may be specified in any units, |
| but SIS unconditionally converts the value to degrees. Consequently the user is responsible |
| for converting the longitude axis of source and target CRS to degrees before this operation is applied.</li> |
| </ul> |
| |
| <div class="section"><cite>Early binding</cite> versus <cite>late binding</cite> implementations</div> |
| There is sometime multiple ways of transforming coordinates for a given pair of source and target CRS. |
| For example the <a href="../datum/BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">Bursa-Wolf parameters</a> |
| may vary depending on the area of interest, like in the transformations from NAD27 to WGS84. |
| Even for a fixed set of Bursa-Wolf parameter, there is various ways to use them (<cite>Molodensky</cite>, |
| <cite>Abridged Molodensky</cite>, <cite>Geocentric translation</cite>, <cite>etc.</cite>). |
| |
| <p>EPSG identifies two approaches for addressing this multiplicity problem. |
| Quoting the GIGS guideline:</p> |
| |
| <blockquote> |
| <ul class="verbose"> |
| <li><b>Early binding:</b> |
| A priori association of a coordinate transformation with a geodetic CRS. |
| The association is usually made at start-up of the session or project, as that is defined in the software, |
| but always before any data is associated with the ‘CRS’. In general the ‘coordinate transformation’ specified |
| uses the ‘CRS’ of the data as the source ‘CRS’ and WGS 84 as the target ‘CRS’.</li> |
| |
| <li><b>Late binding:</b> |
| Association at run time of a coordinate transformation with a CRS. |
| Late binding allows the user to select the appropriate transformation upon import of ‘geospatial data’ |
| or merge of two geospatial datasets. This means that, in cases where there are multiple existing transformations, |
| the user can choose the appropriate one, possibly aided by additional information.</li> |
| </ul> |
| <p style="text-align:right; font-size:small"><b>Source:</b> |
| <u>Geospatial Integrity of Geoscience Software Part 1 – GIGS guidelines.</u> |
| <i>OGP publication, Report No. 430-1, September 2011</i></p> |
| </blockquote> |
| |
| Apache SIS is a <cite>late binding</cite> implementation, while a little trace for <cite>early binding</cite> |
| exists in the form of the <a href="../datum/DefaultGeodeticDatum.html#getBursaWolfParameters()"><code>DefaultGeodeticDatum.getBursaWolfParameters()</code></a> |
| method for those who really need it. This means that when searching for a coordinate operation between a given |
| pair of CRS, Apache SIS will query <a href="../factory/sql/EPSGFactory.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGFactory</code></a> before to try to |
| <a href="CoordinateOperationFinder.html" title="class in org.apache.sis.referencing.operation">infer the operation path by itelf</a>. |
| The <a href="CoordinateOperationContext.html" title="class in org.apache.sis.referencing.operation"><code>CoordinateOperationContext</code></a> can be used for further refinements, |
| for example by specifying the area of interest.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>0.6</dd> |
| |
| <p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p> |
| </dl> |
| </section> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <table class="typeSummary"> |
| <caption><span>Class Summary</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Class</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <th class="colFirst" scope="row"><a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">AbstractCoordinateOperation</a></th> |
| <td class="colLast"> |
| <div class="block">Describes the operation for transforming coordinates in the source CRS to coordinates in the target CRS.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <th class="colFirst" scope="row"><a href="CoordinateOperationContext.html" title="class in org.apache.sis.referencing.operation">CoordinateOperationContext</a></th> |
| <td class="colLast"> |
| <div class="block">Optional information about the context in which a requested coordinate operation will be used.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <th class="colFirst" scope="row"><a href="CoordinateOperationFinder.html" title="class in org.apache.sis.referencing.operation">CoordinateOperationFinder</a></th> |
| <td class="colLast"> |
| <div class="block">Finds a conversion or transformation path from a source CRS to a target CRS.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <th class="colFirst" scope="row"><a href="DefaultConversion.html" title="class in org.apache.sis.referencing.operation">DefaultConversion</a></th> |
| <td class="colLast"> |
| <div class="block">A parameterized mathematical operation that converts coordinates to another CRS without any change of |
| <a href="../datum/AbstractDatum.html" title="class in org.apache.sis.referencing.datum">datum</a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <th class="colFirst" scope="row"><a href="DefaultCoordinateOperationFactory.html" title="class in org.apache.sis.referencing.operation">DefaultCoordinateOperationFactory</a></th> |
| <td class="colLast"> |
| <div class="block">Creates <a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">operations</a> capable to transform coordinates |
| from a given source CRS to a given target CRS.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <th class="colFirst" scope="row"><a href="DefaultFormula.html" title="class in org.apache.sis.referencing.operation">DefaultFormula</a></th> |
| <td class="colLast"> |
| <div class="block">Specification of the coordinate operation method formula.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <th class="colFirst" scope="row"><a href="DefaultOperationMethod.html" title="class in org.apache.sis.referencing.operation">DefaultOperationMethod</a></th> |
| <td class="colLast"> |
| <div class="block">Describes the algorithm and parameters used to perform a coordinate operation.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <th class="colFirst" scope="row"><a href="DefaultPassThroughOperation.html" title="class in org.apache.sis.referencing.operation">DefaultPassThroughOperation</a></th> |
| <td class="colLast"> |
| <div class="block">Specifies that a subset of a coordinate tuple is subject to a specific coordinate operation.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <th class="colFirst" scope="row"><a href="DefaultTransformation.html" title="class in org.apache.sis.referencing.operation">DefaultTransformation</a></th> |
| <td class="colLast"> |
| <div class="block">A parameterized mathematical operation that transforms coordinates to another CRS with a change of |
| <a href="../datum/AbstractDatum.html" title="class in org.apache.sis.referencing.datum">datum</a>.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| <li class="blockList"> |
| <table class="typeSummary"> |
| <caption><span>Exception Summary</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Exception</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <th class="colFirst" scope="row"><a href="MismatchedDatumException.html" title="class in org.apache.sis.referencing.operation">MismatchedDatumException</a></th> |
| <td class="colLast"> |
| <div class="block">Thrown when the source and target CRS of a <a href="DefaultConversion.html" title="class in org.apache.sis.referencing.operation">conversion</a> use different datum.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| </ul> |
| </div> |
| </main> |
| <footer role="contentinfo"> |
| <nav role="navigation"> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a id="navbar.bottom"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> |
| <a id="navbar.bottom.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../index.html">Overview</a></li> |
| <li class="navBarCell1Rev">Package</li> |
| <li>Class</li> |
| <li><a href="package-use.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../help-doc.html">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../allclasses.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_bottom"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| </div> |
| <a id="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| </nav> |
| <p class="legalCopy"><small>Copyright © 2010–2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </footer> |
| </body> |
| </html> |