<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>EllipsoidToCentricTransform (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.EllipsoidToCentricTransform class">
<meta name="keywords" content="eccentricitySquared">
<meta name="keywords" content="createGeodeticConversion()">
<meta name="keywords" content="getContextualParameters()">
<meta name="keywords" content="getParameterValues()">
<meta name="keywords" content="getParameterDescriptors()">
<meta name="keywords" content="getSourceDimensions()">
<meta name="keywords" content="getTargetDimensions()">
<meta name="keywords" content="getTargetType()">
<meta name="keywords" content="derivative()">
<meta name="keywords" content="transform()">
<meta name="keywords" content="inverseTransform()">
<meta name="keywords" content="inverse()">
<meta name="keywords" content="computeHashCode()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="tryConcatenate()">
<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="EllipsoidToCentricTransform (Apache SIS 1.0 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/EllipsoidToCentricTransform.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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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 EllipsoidToCentricTransform" class="title">Class EllipsoidToCentricTransform</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="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></li>
<li>
<ul class="inheritance">
<li><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a></li>
<li>
<ul class="inheritance">
<li>EllipsoidToCentricTransform</li>
</ul>
</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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code>, <code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code>, <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">Math­Transform</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">EllipsoidToCentricTransform</span>
extends <a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">Transform from two- or three- dimensional ellipsoidal coordinates to (geo)centric coordinates.
 This transform is usually (but not necessarily) part of a conversion from
 <a href="../../crs/DefaultGeographicCRS.html" title="class in org.apache.sis.referencing.crs">geographic</a> to Cartesian
 <a href="../../crs/DefaultGeocentricCRS.html" title="class in org.apache.sis.referencing.crs">geocentric</a> coordinates.
 Each input coordinates is expected to contain:
 <ol>
   <li>longitude (λ) relative to the prime meridian (usually Greenwich),</li>
   <li>latitude (φ),</li>
   <li>optionally height above the ellipsoid (h).</li>
 </ol>

 Output coordinates are as below:
 <ul>
   <li>In the Cartesian case:
     <ol>
       <li>distance from Earth center on the X axis (toward the intersection of prime meridian and equator),</li>
       <li>distance from Earth center on the Y axis (toward the intersection of 90°E meridian and equator),</li>
       <li>distance from Earth center on the Z axis (toward North pole).</li>
     </ol>
   </li>
 </ul>

 The units of measurements depend on how the <code>Math­Transform</code> has been created:
 <ul>
   <li><code>Ellipsoid­To­Centric­Transform</code> instances created directly by the constructor expect (λ,φ) values
       in radians and compute (X,Y,Z) values in units of an ellipsoid having a semi-major axis length of 1.
       That constructor is reserved for subclasses only.</li>
   <li>Transforms created by the <a href="#createGeodeticConversion(org.opengis.referencing.operation.MathTransformFactory,double,double,javax.measure.Unit,boolean,org.apache.sis.referencing.operation.transform.EllipsoidToCentricTransform.TargetType)"><code>create­Geodetic­Conversion(…)</code></a> static method expect
       (λ,φ) values in degrees and compute (X,Y,Z) values in units of the ellipsoid axes (usually metres).</li>
 </ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.7</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.sis.referencing.operation.transform.EllipsoidToCentricTransform">Serialized Form</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="EllipsoidToCentricTransform.TargetType.html" title="enum in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform.TargetType</a></span></code></th>
<td class="colLast">
<div class="block">Whether the output coordinate system is Cartesian or Spherical.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#eccentricitySquared">eccentricitySquared</a></span></code></th>
<td class="colLast">
<div class="block">The square of eccentricity: ℯ² = (a²-b²)/a² where
 <var>a</var> is the <cite>semi-major</cite> axis length and
 <var>b</var> is the <cite>semi-minor</cite> axis length.</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">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(double,double,javax.measure.Unit,boolean,org.apache.sis.referencing.operation.transform.EllipsoidToCentricTransform.TargetType)">EllipsoidToCentricTransform</a></span>&#8203;(double&nbsp;semiMajor,
                           double&nbsp;semiMinor,
                           <a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html?is-external=true" title="class or interface in javax.measure" class="externalLink">Unit</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;unit,
                           boolean&nbsp;withHeight,
                           <a href="EllipsoidToCentricTransform.TargetType.html" title="enum in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform.TargetType</a>&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Creates a transform from angles in radians on ellipsoid having a semi-major axis length of 1.</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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></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>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#computeHashCode()">computeHashCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Computes a hash value for this transform.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <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="#createGeodeticConversion(org.opengis.referencing.operation.MathTransformFactory,double,double,javax.measure.Unit,boolean,org.apache.sis.referencing.operation.transform.EllipsoidToCentricTransform.TargetType)">createGeodeticConversion</a></span>&#8203;(<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>&nbsp;factory,
                        double&nbsp;semiMajor,
                        double&nbsp;semiMinor,
                        <a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html?is-external=true" title="class or interface in javax.measure" class="externalLink">Unit</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;unit,
                        boolean&nbsp;withHeight,
                        <a href="EllipsoidToCentricTransform.TargetType.html" title="enum in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform.TargetType</a>&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Creates a transform from geographic to geocentric coordinates.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <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="#createGeodeticConversion(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.datum.Ellipsoid,boolean)">createGeodeticConversion</a></span>&#8203;(<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>&nbsp;factory,
                        <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,
                        boolean&nbsp;withHeight)</code></th>
<td class="colLast">
<div class="block">Creates a transform from geographic to Cartesian geocentric coordinates (convenience method).</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/Matrix.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Matrix</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#derivative(org.opengis.geometry.DirectPosition)">derivative</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry" class="externalLink">DirectPosition</a>&nbsp;point)</code></th>
<td class="colLast">
<div class="block">Computes the derivative at the given location.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></span>&#8203;(<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>&nbsp;object,
      <a href="../../../util/ComparisonMode.html" title="enum in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</code></th>
<td class="colLast">
<div class="block">Compares the specified object with this math transform for equality.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected <a href="ContextualParameters.html" title="class in org.apache.sis.referencing.operation.transform">ContextualParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContextualParameters()">getContextualParameters</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the parameters used for creating the complete conversion.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterDescriptors()">getParameterDescriptors</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a description of the internal parameters of this <code>Ellipsoid­To­Centric­Transform</code> transform.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<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="#getParameterValues()">getParameterValues</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a copy of internal parameter values of this <code>Ellipsoid­To­Centric­Transform</code> transform.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSourceDimensions()">getSourceDimensions</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the dimension of input points, which is 2 or 3.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetDimensions()">getTargetDimensions</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the dimension of output points, which is 3.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="EllipsoidToCentricTransform.TargetType.html" title="enum in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform.TargetType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetType()">getTargetType</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the target coordinate system is Cartesian or Spherical.</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/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="#inverse()">inverse</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the inverse of this transform.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inverseTransform(double%5B%5D,int,double%5B%5D,int,int)">inverseTransform</a></span>&#8203;(double[]&nbsp;srcPts,
                int&nbsp;srcOff,
                double[]&nbsp;dstPts,
                int&nbsp;dstOff,
                int&nbsp;numPts)</code></th>
<td class="colLast">
<div class="block">Converts Cartesian coordinates (<var>X</var>,<var>Y</var>,<var>Z</var>) to ellipsoidal coordinates
 (λ,φ) or (λ,φ,<var>h</var>).</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><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></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)">transform</a></span>&#8203;(double[]&nbsp;srcPts,
         int&nbsp;srcOff,
         double[]&nbsp;dstPts,
         int&nbsp;dstOff,
         boolean&nbsp;derivate)</code></th>
<td class="colLast">
<div class="block">Converts the (λ,φ) or (λ,φ,<var>h</var>) geodetic coordinates to
 to (<var>X</var>,<var>Y</var>,<var>Z</var>) geocentric coordinates,
 and optionally returns the derivative at that location.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(double%5B%5D,int,double%5B%5D,int,int)">transform</a></span>&#8203;(double[]&nbsp;srcPts,
         int&nbsp;srcOff,
         double[]&nbsp;dstPts,
         int&nbsp;dstOff,
         int&nbsp;numPts)</code></th>
<td class="colLast">
<div class="block">Converts the (λ,φ) or (λ,φ,<var>h</var>) geodetic coordinates to
 to (<var>X</var>,<var>Y</var>,<var>Z</var>) geocentric coordinates.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected <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="#tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)">tryConcatenate</a></span>&#8203;(boolean&nbsp;applyOtherFirst,
              <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;other,
              <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>&nbsp;factory)</code></th>
<td class="colLast">
<div class="block">If this transform expects three-dimensional inputs, and if the transform just before this one
 unconditionally sets the height to zero, then replaces this transform by a two-dimensional one.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AbstractMathTransform">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a></h3>
<code><a href="AbstractMathTransform.html#equals(java.lang.Object)">equals</a>, <a href="AbstractMathTransform.html#formatTo(org.apache.sis.io.wkt.Formatter)">format­To</a>, <a href="AbstractMathTransform.html#hashCode()">hash­Code</a>, <a href="AbstractMathTransform.html#isIdentity()">is­Identity</a>, <a href="AbstractMathTransform.html#transform(double%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(float%5B%5D,int,double%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(float%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)">transform</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.FormattableObject">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></h3>
<code><a href="../../../io/wkt/FormattableObject.html#print()">print</a>, <a href="../../../io/wkt/FormattableObject.html#toString()">to­String</a>, <a href="../../../io/wkt/FormattableObject.html#toString(org.apache.sis.io.wkt.Convention)">to­String</a>, <a href="../../../io/wkt/FormattableObject.html#toWKT()">to­WKT</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#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#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#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.MathTransform">
<!--   -->
</a>
<h3>Methods inherited from interface&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></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#toWKT()" title="class or interface in org.opengis.referencing.operation" class="externalLink">to­WKT</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a id="eccentricitySquared">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>eccentricitySquared</h4>
<pre>protected final&nbsp;double eccentricitySquared</pre>
<div class="block">The square of eccentricity: ℯ² = (a²-b²)/a² where
 <var>a</var> is the <cite>semi-major</cite> axis length and
 <var>b</var> is the <cite>semi-minor</cite> axis length.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= 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;(double,double,javax.measure.Unit,boolean,org.apache.sis.referencing.operation.transform.EllipsoidToCentricTransform.TargetType)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EllipsoidToCentricTransform</h4>
<pre>protected&nbsp;EllipsoidToCentricTransform&#8203;(double&nbsp;semiMajor,
                                      double&nbsp;semiMinor,
                                      <a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html?is-external=true" title="class or interface in javax.measure" class="externalLink">Unit</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;unit,
                                      boolean&nbsp;withHeight,
                                      <a href="EllipsoidToCentricTransform.TargetType.html" title="enum in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform.TargetType</a>&nbsp;target)</pre>
<div class="block">Creates a transform from angles in radians on ellipsoid having a semi-major axis length of 1.
 More specifically <code>Ellipsoid­To­Centric­Transform</code> instances expect input coordinates
 as below:

 <ol>
   <li>longitudes in <strong>radians</strong> relative to the prime meridian (usually Greenwich),</li>
   <li>latitudes in <strong>radians</strong>,</li>
   <li>optionally heights above the ellipsoid, in units of an ellipsoid having a semi-major axis length of 1.</li>
 </ol>

 Output coordinates are as below, in units of an ellipsoid having a semi-major axis length of 1:
 <ol>
   <li>distance from Earth center on the X axis (toward the intersection of prime meridian and equator),</li>
   <li>distance from Earth center on the Y axis (toward the intersection of 90°E meridian and equator),</li>
   <li>distance from Earth center on the Z axis (toward North pole).</li>
 </ol>

 <div class="section">Geographic to geocentric conversions</div>
 For converting geographic coordinates to geocentric coordinates, <code>Ellipsoid­To­Centric­Transform</code>
 instances need to be concatenated with the following affine transforms:

 <ul>
   <li><cite>Normalization</cite> before <code>Ellipsoid­To­Centric­Transform</code>:<ul>
     <li>Conversion of (λ,φ) from degrees to radians</li>
     <li>Division of (h) by the semi-major axis length</li>
   </ul></li>
   <li><cite>Denormalization</cite> after <code>Ellipsoid­To­Centric­Transform</code>:<ul>
     <li>Multiplication of (X,Y,Z) by the semi-major axis length</li>
   </ul></li>
 </ul>

 After <code>Ellipsoid­To­Centric­Transform</code> construction,
 the full conversion chain including the above affine transforms can be created by
 <code><a href="#getContextualParameters()">get­Contextual­Parameters()</a>.<a href="ContextualParameters.html#completeTransform(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.operation.MathTransform)">complete­Transform</a>(factory, this)}</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>semi­Major</code> - the semi-major axis length.</dd>
<dd><code>semi­Minor</code> - the semi-minor axis length.</dd>
<dd><code>unit</code> - the unit of measurement for the semi-axes and the ellipsoidal height.</dd>
<dd><code>with­Height</code> - <code>true</code> if source geographic coordinates include an ellipsoidal height
                    (i.e. are 3-D), or <code>false</code> if they are only 2-D.</dd>
<dd><code>target</code> - whether the target coordinate shall be Cartesian or Spherical.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#createGeodeticConversion(org.opengis.referencing.operation.MathTransformFactory,double,double,javax.measure.Unit,boolean,org.apache.sis.referencing.operation.transform.EllipsoidToCentricTransform.TargetType)"><code>create­Geodetic­Conversion(Math­Transform­Factory, double, double, Unit, boolean, Target­Type)</code></a></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="createGeodeticConversion(org.opengis.referencing.operation.MathTransformFactory,double,double,javax.measure.Unit,boolean,org.apache.sis.referencing.operation.transform.EllipsoidToCentricTransform.TargetType)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createGeodeticConversion</h4>
<pre class="methodSignature">public static&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;createGeodeticConversion&#8203;(<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>&nbsp;factory,
                                                     double&nbsp;semiMajor,
                                                     double&nbsp;semiMinor,
                                                     <a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html?is-external=true" title="class or interface in javax.measure" class="externalLink">Unit</a>&lt;<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/quantity/Length.html?is-external=true" title="class or interface in javax.measure.quantity" class="externalLink">Length</a>&gt;&nbsp;unit,
                                                     boolean&nbsp;withHeight,
                                                     <a href="EllipsoidToCentricTransform.TargetType.html" title="enum in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform.TargetType</a>&nbsp;target)
                                              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 from geographic to geocentric coordinates. This factory method combines the
 <code>Ellipsoid­To­Centric­Transform</code> instance with the steps needed for converting degrees to
 radians and expressing the results in units of the given ellipsoid.

 <p>Input coordinates are expected to contain:</p>
 <ol>
   <li>longitudes in <strong>degrees</strong> relative to the prime meridian (usually Greenwich),</li>
   <li>latitudes in <strong>degrees</strong>,</li>
   <li>optionally heights above the ellipsoid, in units of the ellipsoid axis (usually metres).</li>
 </ol>

 Output coordinates are as below, in units of the ellipsoid axis (usually metres):
 <ol>
   <li>distance from Earth center on the X axis (toward the intersection of prime meridian and equator),</li>
   <li>distance from Earth center on the Y axis (toward the intersection of 90°E meridian and equator),</li>
   <li>distance from Earth center on the Z axis (toward North pole).</li>
 </ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the factory to use for creating and concatenating the affine transforms.</dd>
<dd><code>semi­Major</code> - the semi-major axis length.</dd>
<dd><code>semi­Minor</code> - the semi-minor axis length.</dd>
<dd><code>unit</code> - the unit of measurement for the semi-axes and the ellipsoidal height.</dd>
<dd><code>with­Height</code> - <code>true</code> if source geographic coordinates include an ellipsoidal height
                     (i.e. are 3-D), or <code>false</code> if they are only 2-D.</dd>
<dd><code>target</code> - whether the target coordinate shall be Cartesian or Spherical.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the conversion from geographic to geocentric coordinates.</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 an error occurred while creating a transform.</dd>
</dl>
</li>
</ul>
<a id="createGeodeticConversion(org.opengis.referencing.operation.MathTransformFactory,org.opengis.referencing.datum.Ellipsoid,boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createGeodeticConversion</h4>
<pre class="methodSignature">public static&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;createGeodeticConversion&#8203;(<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>&nbsp;factory,
                                                     <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,
                                                     boolean&nbsp;withHeight)
                                              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 from geographic to Cartesian geocentric coordinates (convenience method).
 Invoking this method is equivalent to the following:

 <blockquote><pre><b>createGeodeticConversion</b>(factory,
        ellipsoid.<b>getSemiMajorAxis</b>(),
        ellipsoid.<b>getSemiMinorAxis</b>(),
        ellipsoid.<b>getAxisUnit</b>(),
        withHeight, TargetType.CARTESIAN);</pre></blockquote>

 The target type is assumed Cartesian because this is the most frequently used target.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the factory to use for creating and concatenating the affine transforms.</dd>
<dd><code>ellipsoid</code> - the semi-major and semi-minor axis lengths with their unit of measurement.</dd>
<dd><code>with­Height</code> - <code>true</code> if source geographic coordinates include an ellipsoidal height
                     (i.e. are 3-D), or <code>false</code> if they are only 2-D.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the conversion from geographic to Cartesian geocentric coordinates.</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 an error occurred while creating a transform.</dd>
</dl>
</li>
</ul>
<a id="getContextualParameters()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContextualParameters</h4>
<pre class="methodSignature">protected&nbsp;<a href="ContextualParameters.html" title="class in org.apache.sis.referencing.operation.transform">ContextualParameters</a>&nbsp;getContextualParameters()</pre>
<div class="block">Returns the parameters used for creating the complete conversion. Those parameters describe a sequence
 of <cite>normalize</cite> → <code>this</code> → <cite>denormalize</cite> transforms, <strong>not</strong>
 including <a href="../../cs/CoordinateSystems.html#swapAndScaleAxes(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem)">axis swapping</a>.
 Those parameters are used for formatting <cite>Well Known Text</cite> (WKT) and error messages.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getContextualParameters()">get­Contextual­Parameters</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parameters values for the sequence of
         <cite>normalize</cite> → <code>this</code> → <cite>denormalize</cite> transforms.</dd>
</dl>
</li>
</ul>
<a id="getParameterValues()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterValues</h4>
<pre class="methodSignature"><a href="../../../util/Debug.html" title="annotation in org.apache.sis.util">@Debug</a>
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;getParameterValues()</pre>
<div class="block">Returns a copy of internal parameter values of this <code>Ellipsoid­To­Centric­Transform</code> transform.
 The returned group contains parameter values for the number of dimensions and the eccentricity.

 <div class="note"><b>Note:</b>
 this method is mostly for <a href="../../../io/wkt/Convention.html#INTERNAL">debugging purposes</a>
 since the isolation of non-linear parameters in this class is highly implementation dependent.
 Most GIS applications will instead be interested in the <a href="#getContextualParameters()">contextual parameters</a>.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../parameter/Parameterized.html#getParameterValues()">get­Parameter­Values</a></code>&nbsp;in interface&nbsp;<code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getParameterValues()">get­Parameter­Values</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a copy of the internal parameter values for this transform.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMathTransform.html#getContextualParameters()"><code>Abstract­Math­Transform​.get­Contextual­Parameters()</code></a>, 
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getParameterValues()" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Single­Operation​.get­Parameter­Values()</code></a></dd>
</dl>
</li>
</ul>
<a id="getParameterDescriptors()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterDescriptors</h4>
<pre class="methodSignature"><a href="../../../util/Debug.html" title="annotation in org.apache.sis.util">@Debug</a>
public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a>&nbsp;getParameterDescriptors()</pre>
<div class="block">Returns a description of the internal parameters of this <code>Ellipsoid­To­Centric­Transform</code> transform.
 The returned group contains parameter descriptors for the number of dimensions and the eccentricity.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../parameter/Parameterized.html#getParameterDescriptors()">get­Parameter­Descriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getParameterDescriptors()">get­Parameter­Descriptors</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a description of the internal parameters.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../DefaultOperationMethod.html#getParameters()"><code>Default­Operation­Method​.get­Parameters()</code></a></dd>
</dl>
</li>
</ul>
<a id="getSourceDimensions()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceDimensions</h4>
<pre class="methodSignature">public final&nbsp;int&nbsp;getSourceDimensions()</pre>
<div class="block">Gets the dimension of input points, which is 2 or 3.</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/MathTransform.html?is-external=true#getSourceDimensions()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Source­Dimensions</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getSourceDimensions()">get­Source­Dimensions</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>2 or 3.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../DefaultOperationMethod.html#getSourceDimensions()"><code>Default­Operation­Method​.get­Source­Dimensions()</code></a></dd>
</dl>
</li>
</ul>
<a id="getTargetDimensions()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetDimensions</h4>
<pre class="methodSignature">public final&nbsp;int&nbsp;getTargetDimensions()</pre>
<div class="block">Gets the dimension of output points, which is 3.</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/MathTransform.html?is-external=true#getTargetDimensions()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Target­Dimensions</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AbstractMathTransform.html#getTargetDimensions()">get­Target­Dimensions</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>always 3.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../DefaultOperationMethod.html#getTargetDimensions()"><code>Default­Operation­Method​.get­Target­Dimensions()</code></a></dd>
</dl>
</li>
</ul>
<a id="getTargetType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetType</h4>
<pre class="methodSignature">public final&nbsp;<a href="EllipsoidToCentricTransform.TargetType.html" title="enum in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform.TargetType</a>&nbsp;getTargetType()</pre>
<div class="block">Returns whether the target coordinate system is Cartesian or Spherical.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether the target coordinate system is Cartesian or Spherical.</dd>
</dl>
</li>
</ul>
<a id="derivative(org.opengis.geometry.DirectPosition)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>derivative</h4>
<pre class="methodSignature">public&nbsp;<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;derivative&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry" class="externalLink">DirectPosition</a>&nbsp;point)
                  throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">TransformException</a></pre>
<div class="block">Computes the derivative at the given location.
 This method relaxes a little bit the <code>Math­Transform</code> contract by accepting two- or three-dimensional
 points even if the number of dimensions does not match the <a href="#getSourceDimensions()"><code>get­Source­Dimensions()</code></a> value.

 <div class="note"><b>Rational:</b>
 that flexibility on the number of dimensions is required for calculation of <a href="#inverse()">inverse</a>
 transform derivative, because that calculation needs to inverse a square matrix with all terms in it before
 to drop the last row in the two-dimensional case.</div></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/MathTransform.html?is-external=true#derivative(org.opengis.geometry.DirectPosition)" title="class or interface in org.opengis.referencing.operation" class="externalLink">derivative</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#derivative(org.opengis.geometry.DirectPosition)">derivative</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>point</code> - the coordinate point where to evaluate the derivative.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the derivative at the specified point (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/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Transform­Exception</a></code> - if the derivative can not be evaluated at the specified point.</dd>
</dl>
</li>
</ul>
<a id="transform(double[],int,double[],int,boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transform</h4>
<pre class="methodSignature">public&nbsp;<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;transform&#8203;(double[]&nbsp;srcPts,
                        int&nbsp;srcOff,
                        double[]&nbsp;dstPts,
                        int&nbsp;dstOff,
                        boolean&nbsp;derivate)
                 throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">TransformException</a></pre>
<div class="block">Converts the (λ,φ) or (λ,φ,<var>h</var>) geodetic coordinates to
 to (<var>X</var>,<var>Y</var>,<var>Z</var>) geocentric coordinates,
 and optionally returns the derivative at that location.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,boolean)">transform</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src­Pts</code> - the array containing the source coordinate (can not be <code>null</code>).</dd>
<dd><code>src­Off</code> - the offset to the point to be transformed in the source array.</dd>
<dd><code>dst­Pts</code> - the array into which the transformed coordinate is returned. May be the same than <code>src­Pts</code>.
                   May be <code>null</code> if only the derivative matrix is desired.</dd>
<dd><code>dst­Off</code> - the offset to the location of the transformed point that is stored in the destination array.</dd>
<dd><code>derivate</code> - <code>true</code> for computing the derivative, or <code>false</code> if not needed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the matrix of the transform derivative at the given source position,
         or <code>null</code> if the <code>derivate</code> argument is <code>false</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Transform­Exception</a></code> - if the point can not be transformed or
         if a problem occurred while calculating the derivative.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMathTransform.html#derivative(org.opengis.geometry.DirectPosition)"><code>Abstract­Math­Transform​.derivative(Direct­Position)</code></a>, 
<a href="AbstractMathTransform.html#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)"><code>Abstract­Math­Transform​.transform(Direct­Position, Direct­Position)</code></a>, 
<a href="MathTransforms.html#derivativeAndTransform(org.opengis.referencing.operation.MathTransform,double%5B%5D,int,double%5B%5D,int)"><code>Math­Transforms​.derivative­And­Transform(Math­Transform, double[], int, double[], int)</code></a></dd>
</dl>
</li>
</ul>
<a id="transform(double[],int,double[],int,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transform</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;transform&#8203;(double[]&nbsp;srcPts,
                      int&nbsp;srcOff,
                      double[]&nbsp;dstPts,
                      int&nbsp;dstOff,
                      int&nbsp;numPts)
               throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">TransformException</a></pre>
<div class="block">Converts the (λ,φ) or (λ,φ,<var>h</var>) geodetic coordinates to
 to (<var>X</var>,<var>Y</var>,<var>Z</var>) geocentric coordinates.
 This method performs the same conversion than <a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>transform(double[], int, double[], int, boolean)</code></a>,
 but the formulas are repeated here for performance reasons.</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/MathTransform.html?is-external=true#transform(double%5B%5D,int,double%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="externalLink">transform</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,int)">transform</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src­Pts</code> - the array containing the source point coordinates.</dd>
<dd><code>src­Off</code> - the offset to the first point to be transformed in the source array.</dd>
<dd><code>dst­Pts</code> - the array into which the transformed point coordinates are returned.
                 May be the same than <code>src­Pts</code>.</dd>
<dd><code>dst­Off</code> - the offset to the location of the first transformed point that is stored in the destination array.</dd>
<dd><code>num­Pts</code> - the number of point objects to be transformed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Transform­Exception</a></code> - if a point can not be transformed.</dd>
</dl>
</li>
</ul>
<a id="inverseTransform(double[],int,double[],int,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inverseTransform</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;inverseTransform&#8203;(double[]&nbsp;srcPts,
                                int&nbsp;srcOff,
                                double[]&nbsp;dstPts,
                                int&nbsp;dstOff,
                                int&nbsp;numPts)
                         throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">TransformException</a></pre>
<div class="block">Converts Cartesian coordinates (<var>X</var>,<var>Y</var>,<var>Z</var>) to ellipsoidal coordinates
 (λ,φ) or (λ,φ,<var>h</var>). This method is invoked by the transform returned by <a href="#inverse()"><code>inverse()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src­Pts</code> - the array containing the source point coordinates.</dd>
<dd><code>src­Off</code> - the offset to the first point to be transformed in the source array.</dd>
<dd><code>dst­Pts</code> - the array into which the transformed point coordinates are returned.
                 May be the same than <code>src­Pts</code>.</dd>
<dd><code>dst­Off</code> - the offset to the location of the first transformed point that is stored in the destination array.</dd>
<dd><code>num­Pts</code> - the number of point objects to be transformed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/TransformException.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Transform­Exception</a></code> - if the calculation does not converge.</dd>
</dl>
</li>
</ul>
<a id="inverse()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inverse</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;inverse()</pre>
<div class="block">Returns the inverse of this transform. The default implementation returns a transform
 that will delegate its work to <a href="#inverseTransform(double%5B%5D,int,double%5B%5D,int,int)"><code>inverse­Transform(double[], int, double[], int, int)</code></a>.</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/MathTransform.html?is-external=true#inverse()" title="class or interface in org.opengis.referencing.operation" class="externalLink">inverse</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#inverse()">inverse</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the conversion from (geo)centric to ellipsoidal coordinates.</dd>
</dl>
</li>
</ul>
<a id="computeHashCode()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeHashCode</h4>
<pre class="methodSignature">protected&nbsp;int&nbsp;computeHashCode()</pre>
<div class="block">Computes a hash value for this transform. This method is invoked by <a href="AbstractMathTransform.html#hashCode()"><code>Abstract­Math­Transform​.hash­Code()</code></a> when first needed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#computeHashCode()">compute­Hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the hash code value. This value may change between different execution of the Apache SIS library.</dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<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>&nbsp;object,
                      <a href="../../../util/ComparisonMode.html" title="enum in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</pre>
<div class="block">Compares the specified object with this math transform for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../util/LenientComparable.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in interface&nbsp;<code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to compare with this transform.</dd>
<dd><code>mode</code> - the strictness level of the comparison. Default to <a href="../../../util/ComparisonMode.html#STRICT"><code>STRICT</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given object is considered equals to this math transform.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../util/Utilities.html#deepEquals(java.lang.Object,java.lang.Object,org.apache.sis.util.ComparisonMode)"><code>Utilities​.deep­Equals(Object, Object, Comparison­Mode)</code></a></dd>
</dl>
</li>
</ul>
<a id="tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>tryConcatenate</h4>
<pre class="methodSignature">protected&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;tryConcatenate&#8203;(boolean&nbsp;applyOtherFirst,
                                       <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;other,
                                       <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>&nbsp;factory)
                                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">If this transform expects three-dimensional inputs, and if the transform just before this one
 unconditionally sets the height to zero, then replaces this transform by a two-dimensional one.
 The intent is to handle the following sequence of operations defined in the EPSG database:

 <ol>
   <li>Inverse of <cite>Geographic 3D to 2D conversion</cite> (EPSG:9659)</li>
   <li><cite>Geographic/geocentric conversions</cite> (EPSG:9602)</li>
 </ol>

 Replacing the above sequence by a two-dimensional <code>Ellipsoid­To­Centric­Transform</code> instance
 allow the following optimizations:

 <ul>
   <li>Avoid computation of <var>h</var> value.</li>
   <li>Allow use of the more efficient <a href="https://docs.oracle.com/javase/8/docs/api/java/awt/geom/AffineTransform.html?is-external=true" title="class or interface in java.awt.geom" class="externalLink"><code>Affine­Transform</code></a> before this transform
       instead than a transform based on a matrix of size 4×3.</li>
 </ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractMathTransform.html#tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)">try­Concatenate</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>apply­Other­First</code> - <code>true</code> if the transformation order is <code>other</code> followed by <code>this</code>, or
                          <code>false</code> if the transformation order is <code>this</code> followed by <code>other</code>.</dd>
<dd><code>other</code> - the other math transform to (pre-)concatenate with this transform.</dd>
<dd><code>factory</code> - the factory which is (indirectly) invoking this method, or <code>null</code> if none.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the combined math transform, or <code>null</code> if no optimized combined transform is available.</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 an error occurred while combining the transforms.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="DefaultMathTransformFactory.html#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)"><code>Default­Math­Transform­Factory​.create­Concatenated­Transform(Math­Transform, Math­Transform)</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/EllipsoidToCentricTransform.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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>
