<!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>
