blob: 9def4655378f8ed71666170a2e2f6b41c60b5c1c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>DefaultMathTransformFactory (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory class">
<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="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DefaultMathTransformFactory (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":42,"i2":10,"i3":10,"i4":10,"i5":42,"i6":42,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.referencing.operation.transform</a></div>
<h2 title="Class DefaultMathTransformFactory" class="title">Class DefaultMathTransformFactory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../util/iso/AbstractFactory.html" title="class in org.apache.sis.util.iso">AbstractFactory</a></li>
<li>
<ul class="inheritance">
<li>DefaultMathTransformFactory</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<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/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/Factory.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">DefaultMathTransformFactory</span>
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/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransformFactory</a>, <a href="../../../io/wkt/Parser.html" title="interface in org.apache.sis.io.wkt">Parser</a></pre>
<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>Math­Transforms</code></a> classes instead.
<div class="section">Standard parameters</div>
<code>Math­Transform</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="http://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>
<div class="section">Dynamic parameters</div>
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 than ellipsoidal ones.</p>
<div class="section"><a id="Obligation">Mandatory and optional parameters</a></div>
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>
<div class="section">Operation methods discovery</div>
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Operation­Method</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>Math­Transform­Provider</code></a> for indications about how to add
custom coordinate operation methods in a default Apache SIS installation.
<div class="section">Thread safety</div>
This class is safe for multi-thread usage if all referenced <code>Operation­Method</code> instances are thread-safe.
There is typically only one <code>Math­Transform­Factory</code> instance for the whole application.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.6</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>Math­Transform­Provider</code></a>,
<a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform"><code>Abstract­Math­Transform</code></a></dd>
<p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a></span></code></th>
<td class="colLast">
<div class="block">Source and target coordinate systems for which a new parameterized transform is going to be used.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DefaultMathTransformFactory</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a new factory which will discover operation methods with a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Service­Loader</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Iterable)">DefaultMathTransformFactory</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&gt;&nbsp;methods)</code></th>
<td class="colLast">
<div class="block">Creates a new factory which will use the given operation methods.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createAffineTransform(org.opengis.referencing.operation.Matrix)">createAffineTransform</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Matrix.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Matrix</a>&nbsp;matrix)</code></th>
<td class="colLast">
<div class="block">Creates an affine transform from a matrix.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createBaseToDerived(org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.parameter.ParameterValueGroup,org.opengis.referencing.cs.CoordinateSystem)">createBaseToDerived</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;baseCRS,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystem.html?is-external=true" title="class or interface in org.opengis.referencing.cs" class="externalLink">CoordinateSystem</a>&nbsp;derivedCS)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>create­Parameterized­Transform(Parameter­Value­Group, Context)</code></a>.</div>
</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)">createConcatenatedTransform</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;tr1,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;tr2)</code></th>
<td class="colLast">
<div class="block">Creates a transform by concatenating two existing transforms.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createCoordinateSystemChange(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.datum.Ellipsoid)">createCoordinateSystemChange</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystem.html?is-external=true" title="class or interface in org.opengis.referencing.cs" class="externalLink">CoordinateSystem</a>&nbsp;source,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystem.html?is-external=true" title="class or interface in org.opengis.referencing.cs" class="externalLink">CoordinateSystem</a>&nbsp;target,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;ellipsoid)</code></th>
<td class="colLast">
<div class="block">Creates a math transform that represent a change of coordinate system.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createFromWKT(java.lang.String)">createFromWKT</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;text)</code></th>
<td class="colLast">
<div class="block">Creates a math transform object from a
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html"><cite>Well
Known Text</cite> (WKT)</a>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createFromXML(java.lang.String)">createFromXML</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;xml)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)">createParameterizedTransform</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>create­Parameterized­Transform(Parameter­Value­Group, Context)</code></a>
where the <code>Context</code> argument can be null.</div>
</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)">createParameterizedTransform</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters,
<a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Creates a transform from a group of parameters.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createPassThroughTransform(int,org.opengis.referencing.operation.MathTransform,int)">createPassThroughTransform</a></span>&#8203;(int&nbsp;firstAffectedCoordinate,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;subTransform,
int&nbsp;numTrailingCoordinates)</code></th>
<td class="colLast">
<div class="block">Creates a transform which passes through a subset of coordinates to another transform.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAvailableMethods(java.lang.Class)">getAvailableMethods</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">SingleOperation</a>&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns a set of available methods for coordinate operations of the given type.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultParameters(java.lang.String)">getDefaultParameters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
<td class="colLast">
<div class="block">Returns the default parameter values for a math transform using the given operation method.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastMethodUsed()">getLastMethodUsed</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the operation method used by the latest call to a <code>create(…)</code> constructor
in the currently running thread.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOperationMethod(java.lang.String)">getOperationMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;identifier)</code></th>
<td class="colLast">
<div class="block">Returns the operation method for the specified name or identifier.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reload()">reload</a></span>()</code></th>
<td class="colLast">
<div class="block">Notifies this factory that the elements provided by the <code>Iterable&lt;Operation­Method&gt;</code> may have changed.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#swapAndScaleAxes(org.opengis.referencing.operation.MathTransform,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)">swapAndScaleAxes</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;parameterized,
<a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Given a transform between normalized spaces,
creates a transform taking in account axis directions, units of measurement and longitude rotation.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AbstractFactory">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<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()">get­Vendor</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">to­String</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Factory">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/Factory.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/Factory.html?is-external=true#getVendor()" title="class or interface in org.opengis.util" class="externalLink">get­Vendor</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DefaultMathTransformFactory</h4>
<pre>public&nbsp;DefaultMathTransformFactory()</pre>
<div class="block">Creates a new factory which will discover operation methods with a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Service­Loader</code></a>.
The <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Operation­Method</code></a> implementations shall be listed in the following file:
<blockquote><pre>META-INF/services/org.opengis.referencing.operation.OperationMethod</pre></blockquote>
<code>Default­Math­Transform­Factory</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>Math­Transform­Provider</code></a> interface
can be used by the <code>create(…)</code> methods in this class.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#reload()"><code>reload()</code></a></dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultMathTransformFactory</h4>
<pre>public&nbsp;DefaultMathTransformFactory&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&gt;&nbsp;methods)</pre>
<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>Operation­Method</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>Math­Transform­Provider</code></a> interface can be
used by the <code>create(…)</code> methods in this class.
<p><b>Requirements:</b></p>
<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>Operation­Method</code> instances should also implement <a href="MathTransformProvider.html" title="interface in org.apache.sis.referencing.operation.transform"><code>Math­Transform­Provider</code></a>.</li>
<li>All <code>Operation­Method</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>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>methods</code> - the operation methods to use, stored by reference (not copied).</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getAvailableMethods(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAvailableMethods</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&gt;&nbsp;getAvailableMethods&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">SingleOperation</a>&gt;&nbsp;type)</pre>
<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>Operation­Method</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/referencing/operation/Transformation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><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/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Conversion</code></a>
for coordinate operations described by definitions.</li>
<li><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Projection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><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/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Single­Operation</code></a> for all coordinate operations.</li>
</ul>
The returned set may conservatively contain more <code>Operation­Method</code> elements than requested
if this <code>Math­Transform­Factory</code> does not support filtering by the given type.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#getAvailableMethods(java.lang.Class)" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Available­Methods</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Single­Operation</a>.class</code> for fetching all operation methods,
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Projection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Projection</a>.class</code> for
fetching only map projection methods, <i>etc</i>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>methods available in this factory for coordinate operations of the given type.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getDefaultParameters(java.lang.String)"><code>get­Default­Parameters(String)</code></a>,
<a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>create­Parameterized­Transform(Parameter­Value­Group, Context)</code></a>,
<a href="../DefaultOperationMethod.html#getOperationType()"><code>Default­Operation­Method​.get­Operation­Type()</code></a></dd>
</dl>
</li>
</ul>
<a id="getOperationMethod(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperationMethod</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;getOperationMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;identifier)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">NoSuchIdentifierException</a></pre>
<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>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>identifier</code> - the name or identifier of the operation method to search.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the coordinate operation method for the given name or identifier.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">No­Such­Identifier­Exception</a></code> - if there is no operation method registered for the specified identifier.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../DefaultCoordinateOperationFactory.html#getOperationMethod(java.lang.String)"><code>Default­Coordinate­Operation­Factory​.get­Operation­Method(String)</code></a></dd>
</dl>
</li>
</ul>
<a id="getDefaultParameters(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultParameters</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;getDefaultParameters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">NoSuchIdentifierException</a></pre>
<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>Operation­Method</code> instance returned by
<code><a href="#getAvailableMethods(java.lang.Class)"><code>get­Available­Methods</code></a>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">SingleOperation</a>.class)</code>.
Valid names are <a href="http://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>create­Parameterized­Transform(…)</code></a> method.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#getDefaultParameters(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Default­Parameters</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>method</code> - the case insensitive name of the coordinate operation method to search for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new group of parameter values for the <code>Operation­Method</code> identified by the given name.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">No­Such­Identifier­Exception</a></code> - if there is no method registered for the given name or identifier.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getAvailableMethods(java.lang.Class)"><code>get­Available­Methods(Class)</code></a>,
<a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>create­Parameterized­Transform(Parameter­Value­Group, Context)</code></a>,
<a href="AbstractMathTransform.html#getParameterValues()"><code>Abstract­Math­Transform​.get­Parameter­Values()</code></a></dd>
</dl>
</li>
</ul>
<a id="createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createParameterizedTransform</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createParameterizedTransform&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">NoSuchIdentifierException</a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>create­Parameterized­Transform(Parameter­Value­Group, 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>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)" title="class or interface in org.opengis.referencing.operation" class="externalLink">create­Parameterized­Transform</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parameters</code> - the parameter values. The <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#getName()" title="class or interface in org.opengis.referencing" class="externalLink">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><span class="returnLabel">Returns:</span></dt>
<dd>the transform created from the given parameters.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">No­Such­Identifier­Exception</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/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</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>
</li>
</ul>
<a id="createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createParameterizedTransform</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createParameterizedTransform&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters,
<a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a>&nbsp;context)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">NoSuchIdentifierException</a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<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>get­Default­Parameters(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>
Sometime 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> parameters 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>Default­Math­Transform­Factory​.Context​.get­Completed­Parameters()</code></a> after <code>create­Parameterized­Transform(…)</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>Operation­Method</code> instance used by this constructor can be obtained by a call to
<a href="#getLastMethodUsed()"><code>get­Last­Method­Used()</code></a>.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parameters</code> - the parameter values. The <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#getName()" title="class or interface in org.opengis.referencing" class="externalLink">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><span class="returnLabel">Returns:</span></dt>
<dd>the transform created from the given parameters.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">No­Such­Identifier­Exception</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/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</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><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getDefaultParameters(java.lang.String)"><code>get­Default­Parameters(String)</code></a>,
<a href="#getAvailableMethods(java.lang.Class)"><code>get­Available­Methods(Class)</code></a>,
<a href="#getLastMethodUsed()"><code>get­Last­Method­Used()</code></a>,
<a href="../../../parameter/ParameterBuilder.html#createGroupForMapProjection(org.opengis.parameter.ParameterDescriptor...)"><code>Parameter­Builder​.create­Group­For­Map­Projection(Parameter­Descriptor...)</code></a></dd>
</dl>
</li>
</ul>
<a id="swapAndScaleAxes(org.opengis.referencing.operation.MathTransform,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>swapAndScaleAxes</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;swapAndScaleAxes&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;parameterized,
<a href="DefaultMathTransformFactory.Context.html" title="class in org.apache.sis.referencing.operation.transform">DefaultMathTransformFactory.Context</a>&nbsp;context)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<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 in org.apache.sis.referencing.cs"><code>Axes­Convention</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/referencing/cs/AxisDirection.html?is-external=true#EAST" title="class or interface in org.opengis.referencing.cs" class="externalLink">East</a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#NORTH" title="class or interface in org.opengis.referencing.cs" class="externalLink">North</a>) axis orientations.</div>
<div class="section">Controlling the normalization process</div>
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​.get­Matrix(Contextual­Parameters​.Matrix­Role)</code></a> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></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><span class="returnLabel">Returns:</span></dt>
<dd>a transform taking in account unit conversions and axis swapping.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the object creation failed.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.7</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../cs/AxesConvention.html#NORMALIZED"><code>Axes­Convention​.NORMALIZED</code></a>,
<a href="../DefaultConversion.html#%3Cinit%3E(java.util.Map,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform,org.opengis.parameter.ParameterValueGroup)"><code>Default­Conversion(Map, Operation­Method, Math­Transform, Parameter­Value­Group)</code></a></dd>
</dl>
</li>
</ul>
<a id="createBaseToDerived(org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.parameter.ParameterValueGroup,org.opengis.referencing.cs.CoordinateSystem)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBaseToDerived</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createBaseToDerived&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;baseCRS,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystem.html?is-external=true" title="class or interface in org.opengis.referencing.cs" class="externalLink">CoordinateSystem</a>&nbsp;derivedCS)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">NoSuchIdentifierException</a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Replaced by <a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>create­Parameterized­Transform(Parameter­Value­Group, 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>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#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="externalLink">create­Base­To­Derived</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base­CRS</code> - the source coordinate reference system.</dd>
<dd><code>parameters</code> - the parameter values for the transform.</dd>
<dd><code>derived­CS</code> - the target coordinate system.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parameterized transform from <code>base­CRS</code> to <code>derived­CS</code>,
including unit conversions and axis swapping.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/NoSuchIdentifierException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">No­Such­Identifier­Exception</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/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</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>
</li>
</ul>
<a id="createCoordinateSystemChange(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.datum.Ellipsoid)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCoordinateSystemChange</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createCoordinateSystemChange&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystem.html?is-external=true" title="class or interface in org.opengis.referencing.cs" class="externalLink">CoordinateSystem</a>&nbsp;source,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystem.html?is-external=true" title="class or interface in org.opengis.referencing.cs" class="externalLink">CoordinateSystem</a>&nbsp;target,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/Ellipsoid.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">Ellipsoid</a>&nbsp;ellipsoid)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<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>
<dt><span class="paramLabel">Parameters:</span></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>Ellipsoidal­CS</code>, or <code>null</code> if none.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a conversion from the given source to the given target coordinate system.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the conversion can not be created.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.8</dd>
</dl>
</li>
</ul>
<a id="createAffineTransform(org.opengis.referencing.operation.Matrix)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAffineTransform</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createAffineTransform&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Matrix.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Matrix</a>&nbsp;matrix)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<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>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#createAffineTransform(org.opengis.referencing.operation.Matrix)" title="class or interface in org.opengis.referencing.operation" class="externalLink">create­Affine­Transform</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matrix</code> - the matrix used to define the affine transform.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the affine transform.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the object creation failed.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="MathTransforms.html#linear(org.opengis.referencing.operation.Matrix)"><code>Math­Transforms​.linear(Matrix)</code></a></dd>
</dl>
</li>
</ul>
<a id="createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createConcatenatedTransform</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createConcatenatedTransform&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;tr1,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;tr2)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<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>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)" title="class or interface in org.opengis.referencing.operation" class="externalLink">create­Concatenated­Transform</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></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><span class="returnLabel">Returns:</span></dt>
<dd>the concatenated transform.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the object creation failed.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="MathTransforms.html#concatenate(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)"><code>Math­Transforms​.concatenate(Math­Transform, Math­Transform)</code></a></dd>
</dl>
</li>
</ul>
<a id="createPassThroughTransform(int,org.opengis.referencing.operation.MathTransform,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPassThroughTransform</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createPassThroughTransform&#8203;(int&nbsp;firstAffectedCoordinate,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;subTransform,
int&nbsp;numTrailingCoordinates)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<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>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#createPassThroughTransform(int,org.opengis.referencing.operation.MathTransform,int)" title="class or interface in org.opengis.referencing.operation" class="externalLink">create­Pass­Through­Transform</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>first­Affected­Coordinate</code> - the lowest index of the affected coordinates.</dd>
<dd><code>sub­Transform</code> - transform to use for affected coordinates.</dd>
<dd><code>num­Trailing­Coordinates</code> - number of trailing coordinates to pass through. Affected coordinates will range
from <code>first­Affected­Coordinate</code> inclusive to <code>dim­Target-num­Trailing­Coordinates</code> exclusive.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a pass through transform.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the object creation failed.</dd>
</dl>
</li>
</ul>
<a id="createFromXML(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFromXML</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createFromXML&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;xml)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">There is no XML format for math transforms.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#createFromXML(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="externalLink">create­From­XML</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>xml</code> - math transform encoded in XML format.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the object creation failed.</dd>
</dl>
</li>
</ul>
<a id="createFromWKT(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFromWKT</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;createFromWKT&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;text)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<div class="block">Creates a math transform object from a
<a href="http://www.geoapi.org/3.0/javadoc/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/javase/8/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging" class="externalLink">logger</a> named <code>"org​.apache​.sis​.io​.wkt"</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#createFromWKT(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="externalLink">create­From­WKT</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../io/wkt/Parser.html#createFromWKT(java.lang.String)">create­From­WKT</a></code>&nbsp;in interface&nbsp;<code><a href="../../../io/wkt/Parser.html" title="interface in org.apache.sis.io.wkt">Parser</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>text</code> - math transform encoded in Well-Known Text format.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the math transform (never <code>null</code>).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the Well-Known Text can not be parsed,
or if the math transform creation failed from some other reason.</dd>
</dl>
</li>
</ul>
<a id="getLastMethodUsed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastMethodUsed</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;getLastMethodUsed()</pre>
<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>get­Last­Method­Used()</code> can be useful after a call to
<a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)"><code>create­Parameterized­Transform(…)</code></a>.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true#getLastMethodUsed()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Last­Method­Used</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform­Factory</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the last method used by a <code>create(…)</code> constructor, or <code>null</code> if unknown of unsupported.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>create­Parameterized­Transform(Parameter­Value­Group, Context)</code></a></dd>
</dl>
</li>
</ul>
<a id="reload()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>reload</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;reload()</pre>
<div class="block">Notifies this factory that the elements provided by the <code>Iterable&lt;Operation­Method&gt;</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/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Service­Loader</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>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#%3Cinit%3E(java.lang.Iterable)"><code>Default­Math­Transform­Factory(Iterable)</code></a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true#reload()" title="class or interface in java.util" class="externalLink"><code>Service­Loader​.reload()</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>