| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (19) --> |
| <title>DefaultMathTransformFactory (Apache SIS 1.3 API)</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta name="description" content="declaration: package: org.apache.sis.referencing.operation.transform, class: DefaultMathTransformFactory"> |
| <meta name="generator" content="javadoc/ClassWriterImpl"> |
| <meta name="keywords" content="org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory class"> |
| <meta name="keywords" content="caching()"> |
| <meta name="keywords" content="getAvailableMethods()"> |
| <meta name="keywords" content="getOperationMethod()"> |
| <meta name="keywords" content="getDefaultParameters()"> |
| <meta name="keywords" content="createParameterizedTransform()"> |
| <meta name="keywords" content="swapAndScaleAxes()"> |
| <meta name="keywords" content="createBaseToDerived()"> |
| <meta name="keywords" content="createCoordinateSystemChange()"> |
| <meta name="keywords" content="createAffineTransform()"> |
| <meta name="keywords" content="createConcatenatedTransform()"> |
| <meta name="keywords" content="createPassThroughTransform()"> |
| <meta name="keywords" content="createFromXML()"> |
| <meta name="keywords" content="createFromWKT()"> |
| <meta name="keywords" content="getLastMethodUsed()"> |
| <meta name="keywords" content="reload()"> |
| <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="../../../../../../script-dir/jquery-ui.min.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style"> |
| <script type="text/javascript" src="../../../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script> |
| <script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script> |
| </head> |
| <body class="class-declaration-page"> |
| <script type="text/javascript">var pathtoroot = "../../../../../../"; |
| loadScripts(document, 'script');</script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <div class="flex-box"> |
| <header role="banner" class="flex-header"> |
| <nav role="navigation"> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> |
| <div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> |
| <ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> |
| <li><a href="../../../../../../index.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="nav-bar-cell1-rev">Class</li> |
| <li><a href="class-use/DefaultMathTransformFactory.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#class">Help</a></li> |
| </ul> |
| <ul class="sub-nav-list-small"> |
| <li> |
| <p>Summary:</p> |
| <ul> |
| <li><a href="#nested-class-summary">Nested</a></li> |
| <li>Field</li> |
| <li><a href="#constructor-summary">Constr</a></li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| </li> |
| <li> |
| <p>Detail:</p> |
| <ul> |
| <li>Field</li> |
| <li><a href="#constructor-detail">Constr</a></li> |
| <li><a href="#method-detail">Method</a></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <div class="sub-nav"> |
| <div id="navbar-sub-list"> |
| <ul class="sub-nav-list"> |
| <li>Summary: </li> |
| <li><a href="#nested-class-summary">Nested</a> | </li> |
| <li>Field | </li> |
| <li><a href="#constructor-summary">Constr</a> | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor-detail">Constr</a> | </li> |
| <li><a href="#method-detail">Method</a></li> |
| </ul> |
| </div> |
| <div class="nav-list-search"><a href="../../../../../../search.html">SEARCH</a> |
| <input type="text" id="search-input" disabled placeholder="Search"> |
| <input type="reset" id="reset-button" disabled value="reset"> |
| </div> |
| </div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <span class="skip-nav" id="skip-navbar-top"></span></nav> |
| </header> |
| <div class="flex-content"> |
| <main role="main"> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">org.apache.sis.referencing.operation.transform</a></div> |
| <h1 title="Class DefaultMathTransformFactory" class="title">Class DefaultMathTransformFactory</h1> |
| </div> |
| <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> |
| <div class="inheritance"><a href="../../../util/iso/AbstractFactory.html" title="class in org.apache.sis.util.iso">AbstractFactory</a> |
| <div class="inheritance">DefaultMathTransformFactory</div> |
| </div> |
| </div> |
| <section class="class-description" id="class-description"> |
| <dl class="notes"> |
| <dt>All Implemented Interfaces:</dt> |
| <dd><code><a href="../../../io/wkt/Parser.html" title="interface in org.apache.sis.io.wkt">Parser</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Factory.html" title="class or interface in org.opengis.util" class="external-link">Factory</a></code></dd> |
| </dl> |
| <hr> |
| <div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">DefaultMathTransformFactory</span> |
| <span class="extends-implements">extends <a href="../../../util/iso/AbstractFactory.html" title="class in org.apache.sis.util.iso">AbstractFactory</a> |
| implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a>, <a href="../../../io/wkt/Parser.html" title="interface in org.apache.sis.io.wkt">Parser</a></span></div> |
| <div class="block">Low level factory for creating <a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">math transforms</a>. |
| The objects created by this factory do not know what the source and target coordinate systems mean. |
| Because of this low semantic value, high level GIS applications usually do not need to use this factory directly. |
| They can use the static convenience methods in the <a href="../../CRS.html" title="class in org.apache.sis.referencing"><code>CRS</code></a> |
| or <a href="MathTransforms.html" title="class in org.apache.sis.referencing.operation.transform"><code>MathTransforms</code></a> classes instead. |
| |
| |
| <h2>Standard parameters</h2> |
| <code>MathTransform</code> instances are created from <a href="../../../parameter/DefaultParameterValueGroup.html" title="class in org.apache.sis.parameter">parameter values</a>. |
| The parameters expected by each operation available in a default Apache SIS installation is |
| <a href="https://sis.apache.org/tables/CoordinateOperationMethods.html">listed here</a>. |
| The set of parameters varies for each operation or projection, but the following can be considered typical: |
| |
| <ul> |
| <li>A <cite>semi-major</cite> and <cite>semi-minor</cite> axis length in metres.</li> |
| <li>A <cite>central meridian</cite> and <cite>latitude of origin</cite> in decimal degrees.</li> |
| <li>A <cite>scale factor</cite>, which default to 1.</li> |
| <li>A <cite>false easting</cite> and <cite>false northing</cite> in metres, which default to 0.</li> |
| </ul> |
| |
| <p>Each descriptor has many aliases, and those aliases may vary between different projections. |
| For example, the <cite>false easting</cite> parameter is usually called <code>"false_easting"</code> |
| by OGC, while EPSG uses various names like <cite>"False easting"</cite> or <cite>"Easting at |
| false origin"</cite>.</p> |
| |
| <h2>Dynamic parameters</h2> |
| A few non-standard parameters are defined for compatibility reasons, |
| but delegates their work to standard parameters. Those dynamic parameters are not listed in the |
| <a href="../../../parameter/DefaultParameterValueGroup.html#values()">parameter values</a>. |
| Dynamic parameters are: |
| |
| <ul> |
| <li><code>"earth_radius"</code>, which copy its value to the <code>"semi_major"</code> and |
| <code>"semi_minor"</code> parameter values.</li> |
| <li><code>"inverse_flattening"</code>, which compute the <code>"semi_minor"</code> value from |
| the <code>"semi_major"</code> parameter value.</li> |
| <li><code>"standard_parallel"</code> expecting an array of type <code>double[]</code>, which copy |
| its elements to the <code>"standard_parallel_1"</code> and <code>"standard_parallel_2"</code> |
| parameter scalar values.</li> |
| </ul> |
| |
| <p>The main purpose of those dynamic parameters is to support some less commonly used conventions |
| without duplicating the most commonly used conventions. The alternative ways are used in netCDF |
| files for example, which often use spherical models instead of ellipsoidal ones.</p> |
| |
| |
| <h2><a id="Obligation">Mandatory and optional parameters</a></h2> |
| Parameters are flagged as either <cite>mandatory</cite> or <cite>optional</cite>. |
| A parameter may be mandatory and still have a default value. In the context of this package, "mandatory" |
| means that the parameter is an essential part of the projection defined by standards. |
| Such mandatory parameters will always appears in any <cite>Well Known Text</cite> (WKT) formatting, |
| even if not explicitly set by the user. For example, the central meridian is typically a mandatory |
| parameter with a default value of 0° (the Greenwich meridian). |
| |
| <p>Optional parameters, on the other hand, are often non-standard extensions. |
| They will appear in WKT formatting only if the user defined explicitly a value which is different than the |
| default value.</p> |
| |
| |
| <h2>Operation methods discovery</h2> |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>OperationMethod</code></a> describes all the parameters expected for instantiating a particular kind of |
| math transform. The set of operation methods known to this factory can be obtained in two ways: |
| |
| <ul> |
| <li><a href="#%3Cinit%3E(java.lang.Iterable)">specified explicitly at construction time</a>, or</li> |
| <li><a href="#%3Cinit%3E()">discovered by scanning the classpath</a>.</li> |
| </ul> |
| |
| The default way is to scan the classpath. See <a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>MathTransformProvider</code></a> for indications about how to add |
| custom coordinate operation methods in a default Apache SIS installation. |
| |
| |
| <h2>Thread safety</h2> |
| This class is safe for multi-thread usage if all referenced <code>OperationMethod</code> instances are thread-safe. |
| There is typically only one <code>MathTransformFactory</code> instance for the whole application.</div> |
| <dl class="notes"> |
| <dt>Since:</dt> |
| <dd>0.6</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>MathTransformProvider</code></a></li> |
| <li><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>AbstractMathTransform</code></a></li> |
| </ul> |
| </dd> |
| |
| <p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p> |
| </dl> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <li> |
| <section class="nested-class-summary" id="nested-class-summary"> |
| <h2>Nested Class Summary</h2> |
| <div class="caption"><span>Nested Classes</span></div> |
| <div class="summary-table three-column-summary"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Class</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>static class </code></div> |
| <div class="col-second even-row-color"><code><a href="DefaultMathTransformFactory.Context.html" class="type-name-link" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Source and target coordinate systems for which a new parameterized transform is going to be used.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <li> |
| <section class="constructor-summary" id="constructor-summary"> |
| <h2>Constructor Summary</h2> |
| <div class="caption"><span>Constructors</span></div> |
| <div class="summary-table two-column-summary"> |
| <div class="table-header col-first">Constructor</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">DefaultMathTransformFactory</a>()</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Creates a new factory which will discover operation methods with a <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ServiceLoader.html" title="class or interface in java.util" class="external-link"><code>ServiceLoader</code></a>.</div> |
| </div> |
| <div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.Iterable)" class="member-name-link">DefaultMathTransformFactory</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a><? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a>> methods)</code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Creates a new factory which will use the given operation methods.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <li> |
| <section class="method-summary" id="method-summary"> |
| <h2>Method Summary</h2> |
| <div id="method-summary-table"> |
| <div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button><button id="method-summary-table-tab6" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab6', 3)" class="table-tab">Deprecated Methods</button></div> |
| <div id="method-summary-table.tabpanel" role="tabpanel"> |
| <div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Method</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="DefaultMathTransformFactory.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#caching(boolean)" class="member-name-link">caching</a><wbr>(boolean enabled)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns a factory for the same transforms than this factory, but with caching potentially disabled.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createAffineTransform(org.opengis.referencing.operation.Matrix)" class="member-name-link">createAffineTransform</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a> matrix)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates an affine transform from a matrix.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#createBaseToDerived(org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.parameter.ParameterValueGroup,org.opengis.referencing.cs.CoordinateSystem)" class="member-name-link">createBaseToDerived</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CoordinateReferenceSystem</a> baseCRS, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CoordinateSystem</a> derivedCS)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"> |
| <div class="block"><span class="deprecated-label">Deprecated.</span> |
| <div class="deprecation-comment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>createParameterizedTransform(ParameterValueGroup, Context)</code></a>.</div> |
| </div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)" class="member-name-link">createConcatenatedTransform</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> tr1, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> tr2)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a transform by concatenating two existing transforms.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createCoordinateSystemChange(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.datum.Ellipsoid)" class="member-name-link">createCoordinateSystemChange</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CoordinateSystem</a> source, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CoordinateSystem</a> target, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Ellipsoid</a> ellipsoid)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a math transform that represent a change of coordinate system.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createFromWKT(java.lang.String)" class="member-name-link">createFromWKT</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> text)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a math transform object from a |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/doc-files/WKT.html"><cite>Well |
| Known Text</cite> (WKT)</a>.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#createFromXML(java.lang.String)" class="member-name-link">createFromXML</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> xml)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"> |
| <div class="block"><span class="deprecated-label">Deprecated.</span></div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)" class="member-name-link">createParameterizedTransform</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"> |
| <div class="block"><span class="deprecated-label">Deprecated.</span> |
| <div class="deprecation-comment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>createParameterizedTransform(ParameterValueGroup, Context)</code></a> |
| where the <code>Context</code> argument can be null.</div> |
| </div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)" class="member-name-link">createParameterizedTransform</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters, |
| <a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a> context)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a transform from a group of parameters.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createPassThroughTransform(int,org.opengis.referencing.operation.MathTransform,int)" class="member-name-link">createPassThroughTransform</a><wbr>(int firstAffectedCoordinate, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> subTransform, |
| int numTrailingCoordinates)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Creates a transform which passes through a subset of coordinates to another transform.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAvailableMethods(java.lang.Class)" class="member-name-link">getAvailableMethods</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/SingleOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link">SingleOperation</a>> type)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns a set of available methods for coordinate operations of the given type.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDefaultParameters(java.lang.String)" class="member-name-link">getDefaultParameters</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> method)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the default parameter values for a math transform using the given operation method.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLastMethodUsed()" class="member-name-link">getLastMethodUsed</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the operation method used by the latest call to a <code>create(…)</code> constructor |
| in the currently running thread.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOperationMethod(java.lang.String)" class="member-name-link">getOperationMethod</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> identifier)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the operation method for the specified name or identifier.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#reload()" class="member-name-link">reload</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Notifies this factory that the elements provided by the <code>Iterable<OperationMethod></code> may have changed.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#swapAndScaleAxes(org.opengis.referencing.operation.MathTransform,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)" class="member-name-link">swapAndScaleAxes</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> parameterized, |
| <a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a> context)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Given a transform between normalized spaces, |
| creates a transform taking in account axis directions, units of measurement and longitude rotation.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-AbstractFactory">Methods inherited from class <a href="../../../util/iso/AbstractFactory.html" title="class in org.apache.sis.util.iso">AbstractFactory</a></h3> |
| <code><a href="../../../util/iso/AbstractFactory.html#getVendor()">getVendor</a></code></div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-Object">Methods inherited from class <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> |
| <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-Factory">Methods inherited from interface <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Factory.html" title="class or interface in org.opengis.util" class="external-link">Factory</a></h3> |
| <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Factory.html#getVendor()" title="class or interface in org.opengis.util" class="external-link">getVendor</a></code></div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <section class="details"> |
| <ul class="details-list"> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <li> |
| <section class="constructor-details" id="constructor-detail"> |
| <h2>Constructor Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="<init>()"> |
| <h3>DefaultMathTransformFactory</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name">DefaultMathTransformFactory</span>()</div> |
| <div class="block">Creates a new factory which will discover operation methods with a <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ServiceLoader.html" title="class or interface in java.util" class="external-link"><code>ServiceLoader</code></a>. |
| The <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>OperationMethod</code></a> implementations shall be listed in the following file: |
| |
| <blockquote><pre>META-INF/services/org.opengis.referencing.operation.OperationMethod</pre></blockquote> |
| |
| <code>DefaultMathTransformFactory</code> parses the above-cited files in all JAR files in order to find all available |
| operation methods. By default, only operation methods that implement the <a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>MathTransformProvider</code></a> interface |
| can be used by the <code>create(…)</code> methods in this class.</div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="#reload()"><code>reload()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="<init>(java.lang.Iterable)"> |
| <h3>DefaultMathTransformFactory</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name">DefaultMathTransformFactory</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a><? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a>> methods)</span></div> |
| <div class="block">Creates a new factory which will use the given operation methods. The given iterable is stored by reference — |
| its content is <strong>not</strong> copied — in order to allow deferred <code>OperationMethod</code> constructions. |
| Note that by default, only operation methods that implement the <a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>MathTransformProvider</code></a> interface can be |
| used by the <code>create(…)</code> methods in this class. |
| |
| <h4>Requirements</h4> |
| <ul> |
| <li>The given iterable should not contain duplicated elements.</li> |
| <li>The given iterable shall be stable: all elements returned by the first iteration must also be |
| returned by any subsequent iterations, unless <a href="#reload()"><code>reload()</code></a> has been invoked.</li> |
| <li><code>OperationMethod</code> instances should also implement <a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>MathTransformProvider</code></a>.</li> |
| <li>All <code>OperationMethod</code> instances shall be thread-safe.</li> |
| <li>The <code>Iterable</code> itself does not need to be thread-safe since all usages will be synchronized as below: |
| |
| <blockquote><pre><font color="green">synchronized</font> (methods) { |
| <font color="green">for</font> (OperationMethod method : methods) { |
| <i><font color="gray">// Use the method here.</font></i> |
| } |
| }</pre></blockquote> |
| </li> |
| </ul></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>methods</code> - the operation methods to use, stored by reference (not copied).</dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| <!-- ============ METHOD DETAIL ========== --> |
| <li> |
| <section class="method-details" id="method-detail"> |
| <h2>Method Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="caching(boolean)"> |
| <h3>caching</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="DefaultMathTransformFactory.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory</a></span> <span class="element-name">caching</span><wbr><span class="parameters">(boolean enabled)</span></div> |
| <div class="block">Returns a factory for the same transforms than this factory, but with caching potentially disabled. |
| By default, <code>DefaultMathTransformFactory</code> caches the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>MathTransform</code></a> instances for sharing |
| existing instances when transforms are created many times with the same set of parameters. |
| However, this caching may be unnecessarily costly when the transforms to create are known to be short lived. |
| This method allows to get a factory better suited for short-lived objects. |
| |
| <p>This method does not modify the state of this factory. Instead, different factory instances for the |
| different caching policy are returned.</p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>enabled</code> - whether caching should be enabled.</dd> |
| <dt>Returns:</dt> |
| <dd>a factory for the given caching policy.</dd> |
| <dt>Since:</dt> |
| <dd>1.1</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getAvailableMethods(java.lang.Class)"> |
| <h3>getAvailableMethods</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a>></span> <span class="element-name">getAvailableMethods</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/SingleOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link">SingleOperation</a>> type)</span></div> |
| <div class="block">Returns a set of available methods for coordinate operations of the given type. |
| The <code>type</code> argument can be used for filtering the kind of operations described by the returned |
| <code>OperationMethod</code>s. The argument is usually (but not restricted to) one of the following types: |
| |
| <ul> |
| <li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Transformation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Transformation</code></a> |
| for coordinate operations described by empirically derived parameters.</li> |
| <li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Conversion.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Conversion</code></a> |
| for coordinate operations described by definitions.</li> |
| <li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Projection.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Projection</code></a> |
| for conversions from geodetic latitudes and longitudes to plane (map) coordinates.</li> |
| <li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/SingleOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>SingleOperation</code></a> for all coordinate operations.</li> |
| </ul> |
| |
| The returned set may conservatively contain more <code>OperationMethod</code> elements than requested |
| if this <code>MathTransformFactory</code> does not support filtering by the given type.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#getAvailableMethods(java.lang.Class)" title="class or interface in org.opengis.referencing.operation" class="external-link">getAvailableMethods</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>type</code> - <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/SingleOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link">SingleOperation</a>.class</code> for fetching all operation methods, |
| <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Projection.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Projection</a>.class</code> for |
| fetching only map projection methods, <i>etc</i>.</dd> |
| <dt>Returns:</dt> |
| <dd>methods available in this factory for coordinate operations of the given type.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#getDefaultParameters(java.lang.String)"><code>getDefaultParameters(String)</code></a></li> |
| <li><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>createParameterizedTransform(ParameterValueGroup, Context)</code></a></li> |
| <li><a href="../DefaultOperationMethod.html#getOperationType()"><code>DefaultOperationMethod.getOperationType()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getOperationMethod(java.lang.String)"> |
| <h3>getOperationMethod</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a></span> <span class="element-name">getOperationMethod</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> identifier)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a></span></div> |
| <div class="block">Returns the operation method for the specified name or identifier. The given argument shall be either |
| a method <a href="../../AbstractIdentifiedObject.html#getName()">name</a> (e.g. <cite>"Transverse Mercator"</cite>) |
| or one of its <a href="../../AbstractIdentifiedObject.html#getIdentifiers()">identifiers</a> (e.g. <code>"EPSG:9807"</code>). |
| |
| <p>The search is case-insensitive. Comparisons against method names can be |
| <a href="../../AbstractIdentifiedObject.html#isHeuristicMatchForName(java.lang.String)">heuristic</a>.</p> |
| |
| <p>If more than one method match the given identifier, then the first (according iteration order) |
| non-<a href="../../../util/Deprecable.html#isDeprecated()">deprecated</a> matching method is returned. |
| If all matching methods are deprecated, the first one is returned.</p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>identifier</code> - the name or identifier of the operation method to search.</dd> |
| <dt>Returns:</dt> |
| <dd>the coordinate operation method for the given name or identifier.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a></code> - if there is no operation method registered for the specified identifier.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="../DefaultCoordinateOperationFactory.html#getOperationMethod(java.lang.String)"><code>DefaultCoordinateOperationFactory.getOperationMethod(String)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDefaultParameters(java.lang.String)"> |
| <h3>getDefaultParameters</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></span> <span class="element-name">getDefaultParameters</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> method)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a></span></div> |
| <div class="block">Returns the default parameter values for a math transform using the given operation method. |
| The <code>method</code> argument is the name of any <code>OperationMethod</code> instance returned by |
| <code><a href="#getAvailableMethods(java.lang.Class)"><code>getAvailableMethods</code></a>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/SingleOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link">SingleOperation</a>.class)</code>. |
| Valid names are <a href="https://sis.apache.org/tables/CoordinateOperationMethods.html">listed here</a>. |
| |
| <p>This function creates new parameter instances at every call. |
| Parameters are intended to be modified by the user before to be given to the |
| <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)"><code>createParameterizedTransform(…)</code></a> method.</p></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#getDefaultParameters(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="external-link">getDefaultParameters</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>method</code> - the case insensitive name of the coordinate operation method to search for.</dd> |
| <dt>Returns:</dt> |
| <dd>a new group of parameter values for the <code>OperationMethod</code> identified by the given name.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a></code> - if there is no method registered for the given name or identifier.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#getAvailableMethods(java.lang.Class)"><code>getAvailableMethods(Class)</code></a></li> |
| <li><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>createParameterizedTransform(ParameterValueGroup, Context)</code></a></li> |
| <li><a href="AbstractMathTransform.html#getParameterValues()"><code>AbstractMathTransform.getParameterValues()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)"> |
| <h3>createParameterizedTransform</h3> |
| <div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a> |
| </span><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createParameterizedTransform</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a>, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="deprecation-block"><span class="deprecated-label">Deprecated.</span> |
| <div class="deprecation-comment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>createParameterizedTransform(ParameterValueGroup, Context)</code></a> |
| where the <code>Context</code> argument can be null.</div> |
| </div> |
| <div class="block">Creates a transform from a group of parameters. |
| The set of expected parameters varies for each operation.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)" title="class or interface in org.opengis.referencing.operation" class="external-link">createParameterizedTransform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>parameters</code> - the parameter values. The <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getName()" title="class or interface in org.opengis.referencing" class="external-link">parameter group name</a> |
| shall be the name of the desired <a href="../DefaultOperationMethod.html" title="class in org.apache.sis.referencing.operation">operation method</a>.</dd> |
| <dt>Returns:</dt> |
| <dd>the transform created from the given parameters.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a></code> - if there is no method for the given parameter group name.</dd> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed. This exception is thrown |
| if some required parameter has not been supplied, or has illegal value.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"> |
| <h3>createParameterizedTransform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createParameterizedTransform</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters, |
| <a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a> context)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a>, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Creates a transform from a group of parameters. |
| The set of expected parameters varies for each operation. |
| The easiest way to provide parameter values is to get an initially empty group for the desired |
| operation by calling <a href="#getDefaultParameters(java.lang.String)"><code>getDefaultParameters(String)</code></a>, then to fill the parameter values. |
| Example: |
| |
| <blockquote><pre>ParameterValueGroup group = factory.<b>getDefaultParameters</b>(<font color="orangered">"Transverse_Mercator"</font>); |
| group.<b>parameter</b>(<font color="orangered">"semi_major"</font>).<b>setValue</b>(6378137.000); |
| group.<b>parameter</b>(<font color="orangered">"semi_minor"</font>).<b>setValue</b>(6356752.314); |
| MathTransform mt = factory.<b>createParameterizedTransform</b>(group, <font color="green">null</font>);</pre></blockquote> |
| |
| Sometimes the <code>"semi_major"</code> and <code>"semi_minor"</code> parameter values are not explicitly provided, |
| but rather inferred from the <a href="../../datum/DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum">geodetic |
| datum</a> of the source Coordinate Reference System. If the given <code>context</code> argument is non-null, |
| then this method will use those contextual information for: |
| |
| <ol> |
| <li>Inferring the <code>"semi_major"</code>, <code>"semi_minor"</code>, <code>"src_semi_major"</code>, |
| <code>"src_semi_minor"</code>, <code>"tgt_semi_major"</code> or <code>"tgt_semi_minor"</code> parameter values |
| from the <a href="../../datum/DefaultEllipsoid.html" title="class in org.apache.sis.referencing.datum">ellipsoids</a> associated to |
| the source or target CRS, if those parameters are not explicitly given and if they are relevant |
| for the coordinate operation method.</li> |
| <li><a href="#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)">Concatenating</a> the parameterized transform |
| with any other transforms required for performing units changes and coordinates swapping.</li> |
| </ol> |
| |
| The complete group of parameters, including <code>"semi_major"</code>, <code>"semi_minor"</code> or other calculated values, |
| can be obtained by a call to <a href="DefaultMathTransformFactory.Context.html#getCompletedParameters()"><code>DefaultMathTransformFactory.Context.getCompletedParameters()</code></a> after <code>createParameterizedTransform(…)</code> |
| returned. Note that the completed parameters may only have additional parameters compared to the given parameter |
| group; existing parameter values should not be modified. |
| |
| <p>The <code>OperationMethod</code> instance used by this constructor can be obtained by a call to |
| <a href="#getLastMethodUsed()"><code>getLastMethodUsed()</code></a>.</p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>parameters</code> - the parameter values. The <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getName()" title="class or interface in org.opengis.referencing" class="external-link">parameter group name</a> |
| shall be the name of the desired <a href="../DefaultOperationMethod.html" title="class in org.apache.sis.referencing.operation">operation method</a>.</dd> |
| <dd><code>context</code> - information about the context (for example source and target coordinate systems) |
| in which the new transform is going to be used, or <code>null</code> if none.</dd> |
| <dt>Returns:</dt> |
| <dd>the transform created from the given parameters.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a></code> - if there is no method for the given parameter group name.</dd> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed. This exception is thrown |
| if some required parameter has not been supplied, or has illegal value.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#getDefaultParameters(java.lang.String)"><code>getDefaultParameters(String)</code></a></li> |
| <li><a href="#getAvailableMethods(java.lang.Class)"><code>getAvailableMethods(Class)</code></a></li> |
| <li><a href="#getLastMethodUsed()"><code>getLastMethodUsed()</code></a></li> |
| <li><a href="../../../parameter/ParameterBuilder.html#createGroupForMapProjection(org.opengis.parameter.ParameterDescriptor...)"><code>ParameterBuilder.createGroupForMapProjection(ParameterDescriptor...)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="swapAndScaleAxes(org.opengis.referencing.operation.MathTransform,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"> |
| <h3>swapAndScaleAxes</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">swapAndScaleAxes</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> parameterized, |
| <a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a> context)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Given a transform between normalized spaces, |
| creates a transform taking in account axis directions, units of measurement and longitude rotation. |
| This method <a href="#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)">concatenates</a> the given parameterized transform |
| with any other transform required for performing units changes and coordinates swapping. |
| |
| <p>The given <code>parameterized</code> transform shall expect |
| <a href="../../cs/AxesConvention.html#NORMALIZED">normalized</a> input coordinates and |
| produce normalized output coordinates. See <a href="../../cs/AxesConvention.html" title="enum class in org.apache.sis.referencing.cs"><code>AxesConvention</code></a> for more |
| information about what Apache SIS means by "normalized".</p> |
| |
| <div class="note"><b>Example:</b> |
| The most typical examples of transforms with normalized inputs/outputs are normalized |
| map projections expecting (<cite>longitude</cite>, <cite>latitude</cite>) inputs in degrees |
| and calculating (<cite>x</cite>, <cite>y</cite>) coordinates in metres, |
| both of them with (<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/AxisDirection.html#EAST" title="class or interface in org.opengis.referencing.cs" class="external-link">East</a>, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/AxisDirection.html#NORTH" title="class or interface in org.opengis.referencing.cs" class="external-link">North</a>) axis orientations.</div> |
| |
| <h4>Controlling the normalization process</h4> |
| Users who need a different normalized space than the default one way find more convenient to |
| override the <a href="DefaultMathTransformFactory.Context.html#getMatrix(org.apache.sis.referencing.operation.transform.ContextualParameters.MatrixRole)"><code>Context.getMatrix(ContextualParameters.MatrixRole)</code></a> method.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>parameterized</code> - a transform for normalized input and output coordinates.</dd> |
| <dd><code>context</code> - source and target coordinate systems in which the transform is going to be used.</dd> |
| <dt>Returns:</dt> |
| <dd>a transform taking in account unit conversions and axis swapping.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed.</dd> |
| <dt>Since:</dt> |
| <dd>0.7</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="../../cs/AxesConvention.html#NORMALIZED"><code>AxesConvention.NORMALIZED</code></a></li> |
| <li><a href="../DefaultConversion.html#%3Cinit%3E(java.util.Map,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform,org.opengis.parameter.ParameterValueGroup)"><code>DefaultConversion(Map, OperationMethod, MathTransform, ParameterValueGroup)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createBaseToDerived(org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.parameter.ParameterValueGroup,org.opengis.referencing.cs.CoordinateSystem)"> |
| <h3>createBaseToDerived</h3> |
| <div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a> |
| </span><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createBaseToDerived</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CoordinateReferenceSystem</a> baseCRS, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a> parameters, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CoordinateSystem</a> derivedCS)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a>, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="deprecation-block"><span class="deprecated-label">Deprecated.</span> |
| <div class="deprecation-comment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>createParameterizedTransform(ParameterValueGroup, Context)</code></a>.</div> |
| </div> |
| <div class="block">Creates a transform from a base CRS to a derived CS using the given parameters. |
| If this method needs to set the values of <code>"semi_major"</code> and <code>"semi_minor"</code> parameters, |
| then it sets those values directly on the given <code>parameters</code> instance – not on a clone – for |
| allowing the caller to get back the complete parameter values. |
| However, this method only fills missing values, it never modify existing values.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#createBaseToDerived(org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.parameter.ParameterValueGroup,org.opengis.referencing.cs.CoordinateSystem)" title="class or interface in org.opengis.referencing.operation" class="external-link">createBaseToDerived</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>baseCRS</code> - the source coordinate reference system.</dd> |
| <dd><code>parameters</code> - the parameter values for the transform.</dd> |
| <dd><code>derivedCS</code> - the target coordinate system.</dd> |
| <dt>Returns:</dt> |
| <dd>the parameterized transform from <code>baseCRS</code> to <code>derivedCS</code>, |
| including unit conversions and axis swapping.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NoSuchIdentifierException.html" title="class or interface in org.opengis.util" class="external-link">NoSuchIdentifierException</a></code> - if there is no transform registered for the coordinate operation method.</dd> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed. This exception is thrown |
| if some required parameter has not been supplied, or has illegal value.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createCoordinateSystemChange(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.datum.Ellipsoid)"> |
| <h3>createCoordinateSystemChange</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createCoordinateSystemChange</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CoordinateSystem</a> source, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CoordinateSystem</a> target, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Ellipsoid</a> ellipsoid)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Creates a math transform that represent a change of coordinate system. If exactly one argument is |
| an <a href="../../cs/DefaultEllipsoidalCS.html" title="class in org.apache.sis.referencing.cs">ellipsoidal coordinate systems</a>, |
| then the <code>ellipsoid</code> argument is mandatory. In all other cases (including the case where both |
| coordinate systems are ellipsoidal), the ellipsoid argument is ignored and can be <code>null</code>. |
| |
| <div class="note"><b>Design note:</b> |
| this method does not accept separated ellipsoid arguments for <code>source</code> and <code>target</code> because |
| this method should not be used for datum shifts. If the two given coordinate systems are ellipsoidal, |
| then they are assumed to use the same ellipsoid. If different ellipsoids are desired, then a |
| <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)">parameterized transform</a> like <cite>"Molodensky"</cite>, |
| <cite>"Geocentric translations"</cite>, <cite>"Coordinate Frame Rotation"</cite> or |
| <cite>"Position Vector transformation"</cite> should be used instead.</div></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>source</code> - the source coordinate system.</dd> |
| <dd><code>target</code> - the target coordinate system.</dd> |
| <dd><code>ellipsoid</code> - the ellipsoid of <code>EllipsoidalCS</code>, or <code>null</code> if none.</dd> |
| <dt>Returns:</dt> |
| <dd>a conversion from the given source to the given target coordinate system.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the conversion cannot be created.</dd> |
| <dt>Since:</dt> |
| <dd>0.8</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createAffineTransform(org.opengis.referencing.operation.Matrix)"> |
| <h3>createAffineTransform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createAffineTransform</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a> matrix)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Creates an affine transform from a matrix. If the transform input dimension is <code>M</code>, |
| and output dimension is <code>N</code>, then the matrix will have size <code>[N+1][M+1]</code>. The |
| +1 in the matrix dimensions allows the matrix to do a shift, as well as a rotation. The |
| <code>[M][j]</code> element of the matrix will be the j'th coordinate of the moved origin. The |
| <code>[i][N]</code> element of the matrix will be 0 for <var>i</var> less than <code>M</code>, and 1 |
| for <var>i</var> equals <code>M</code>.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#createAffineTransform(org.opengis.referencing.operation.Matrix)" title="class or interface in org.opengis.referencing.operation" class="external-link">createAffineTransform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>matrix</code> - the matrix used to define the affine transform.</dd> |
| <dt>Returns:</dt> |
| <dd>the affine transform.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="MathTransforms.html#linear(org.opengis.referencing.operation.Matrix)"><code>MathTransforms.linear(Matrix)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)"> |
| <h3>createConcatenatedTransform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createConcatenatedTransform</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> tr1, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> tr2)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Creates a transform by concatenating two existing transforms. |
| A concatenated transform acts in the same way as applying two transforms, one after the other. |
| |
| <p>The dimension of the output space of the first transform must match the dimension of the input space |
| in the second transform. In order to concatenate more than two transforms, use this constructor repeatedly.</p></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)" title="class or interface in org.opengis.referencing.operation" class="external-link">createConcatenatedTransform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>tr1</code> - the first transform to apply to points.</dd> |
| <dd><code>tr2</code> - the second transform to apply to points.</dd> |
| <dt>Returns:</dt> |
| <dd>the concatenated transform.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="MathTransforms.html#concatenate(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)"><code>MathTransforms.concatenate(MathTransform, MathTransform)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createPassThroughTransform(int,org.opengis.referencing.operation.MathTransform,int)"> |
| <h3>createPassThroughTransform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createPassThroughTransform</span><wbr><span class="parameters">(int firstAffectedCoordinate, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> subTransform, |
| int numTrailingCoordinates)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Creates a transform which passes through a subset of coordinates to another transform. |
| This allows transforms to operate on a subset of coordinates. |
| |
| <div class="note"><b>Example:</b> |
| Giving (<var>latitude</var>, <var>longitude</var>, <var>height</var>) coordinates, |
| a pass through transform can convert the height values from meters to feet without |
| affecting the (<var>latitude</var>, <var>longitude</var>) values.</div> |
| |
| The resulting transform will have the following dimensions: |
| |
| <blockquote><pre>Source: firstAffectedCoordinate + subTransform.<b>getSourceDimensions</b>() + numTrailingCoordinates |
| Target: firstAffectedCoordinate + subTransform.<b>getTargetDimensions</b>() + numTrailingCoordinates</pre></blockquote></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#createPassThroughTransform(int,org.opengis.referencing.operation.MathTransform,int)" title="class or interface in org.opengis.referencing.operation" class="external-link">createPassThroughTransform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>firstAffectedCoordinate</code> - the lowest index of the affected coordinates.</dd> |
| <dd><code>subTransform</code> - transform to use for affected coordinates.</dd> |
| <dd><code>numTrailingCoordinates</code> - number of trailing coordinates to pass through. Affected coordinates will range |
| from <code>firstAffectedCoordinate</code> inclusive to <code>dimTarget-numTrailingCoordinates</code> exclusive.</dd> |
| <dt>Returns:</dt> |
| <dd>a pass through transform.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createFromXML(java.lang.String)"> |
| <h3>createFromXML</h3> |
| <div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a> |
| </span><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createFromXML</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> xml)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div> |
| <div class="block">There is no XML format for math transforms.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#createFromXML(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="external-link">createFromXML</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>xml</code> - math transform encoded in XML format.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the object creation failed.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createFromWKT(java.lang.String)"> |
| <h3>createFromWKT</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">createFromWKT</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a> text)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Creates a math transform object from a |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/doc-files/WKT.html"><cite>Well |
| Known Text</cite> (WKT)</a>. |
| If the given text contains non-fatal anomalies (unknown or unsupported WKT elements, |
| inconsistent unit definitions, <i>etc.</i>), warnings may be reported in a |
| <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.logging/java/util/logging/Logger.html" title="class or interface in java.util.logging" class="external-link">logger</a> named <code>"org.apache.sis.io.wkt"</code>. |
| |
| <p>Note that the WKT format is not always lossless. A <code>MathTransform</code> recreated from WKT may be |
| non-invertible even if the original transform was invertible. For example if an "Affine" operation is |
| defined by a non-square matrix, Apache SIS implementation sometimes has "hidden" information about the |
| inverse matrix but those information are lost at WKT formatting time. A similar "hidden" information |
| lost may also happen with <a href="WraparoundTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>WraparoundTransform</code></a>, also making that transform non-invertible.</p></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#createFromWKT(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="external-link">createFromWKT</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../../../io/wkt/Parser.html#createFromWKT(java.lang.String)">createFromWKT</a></code> in interface <code><a href="../../../io/wkt/Parser.html" title="interface in org.apache.sis.io.wkt">Parser</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>text</code> - math transform encoded in Well-Known Text format.</dd> |
| <dt>Returns:</dt> |
| <dd>the math transform (never <code>null</code>).</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if the Well-Known Text cannot be parsed, |
| or if the math transform creation failed from some other reason.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getLastMethodUsed()"> |
| <h3>getLastMethodUsed</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link">OperationMethod</a></span> <span class="element-name">getLastMethodUsed</span>()</div> |
| <div class="block">Returns the operation method used by the latest call to a <code>create(…)</code> constructor |
| in the currently running thread. Returns <code>null</code> if not applicable. |
| |
| <p>Invoking <code>getLastMethodUsed()</code> can be useful after a call to |
| <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)"><code>createParameterizedTransform(…)</code></a>.</p></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html#getLastMethodUsed()" title="class or interface in org.opengis.referencing.operation" class="external-link">getLastMethodUsed</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the last method used by a <code>create(…)</code> constructor, or <code>null</code> if unknown of unsupported.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>createParameterizedTransform(ParameterValueGroup, Context)</code></a></li> |
| <li><a href="DefaultMathTransformFactory.Context.html#getMethodUsed()"><code>DefaultMathTransformFactory.Context.getMethodUsed()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="reload()"> |
| <h3>reload</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">reload</span>()</div> |
| <div class="block">Notifies this factory that the elements provided by the <code>Iterable<OperationMethod></code> may have changed. |
| This method performs the following steps: |
| |
| <ul> |
| <li>Clears all caches.</li> |
| <li>If the <code>Iterable</code> given at construction time is an instance of <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ServiceLoader.html" title="class or interface in java.util" class="external-link"><code>ServiceLoader</code></a>, |
| invokes its <code>reload()</code> method.</li> |
| </ul> |
| |
| This method is useful to sophisticated applications which dynamically make new plug-ins available at runtime, |
| for example following changes of the application classpath.</div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#%3Cinit%3E(java.lang.Iterable)"><code>DefaultMathTransformFactory(Iterable)</code></a></li> |
| <li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ServiceLoader.html#reload()" title="class or interface in java.util" class="external-link"><code>ServiceLoader.reload()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <!-- ========= END OF CLASS DATA ========= --> |
| </main> |
| <footer role="contentinfo"> |
| <hr> |
| <p class="legal-copy"><small>Copyright © 2010–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </footer> |
| </div> |
| </div> |
| </body> |
| </html> |