<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>ObliqueMercator (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.projection.ObliqueMercator class">
<meta name="keywords" content="transform()">
<meta name="keywords" content="inverseTransform()">
<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="ObliqueMercator (Apache SIS 1.0 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10};
var tabs = {65535:["t0","All 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/ObliqueMercator.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>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.projection</a></div>
<h2 title="Class ObliqueMercator" class="title">Class ObliqueMercator</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="../transform/AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a></li>
<li>
<ul class="inheritance">
<li><a href="../transform/AbstractMathTransform2D.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform2D</a></li>
<li>
<ul class="inheritance">
<li><a href="NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">NormalizedProjection</a></li>
<li>
<ul class="inheritance">
<li>ObliqueMercator</li>
</ul>
</li>
</ul>
</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>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform2D.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Math­Transform2D</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ObliqueMercator</span>
extends <a href="NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">NormalizedProjection</a></pre>
<div class="block"><cite>Oblique Mercator</cite> projection (EPSG codes 9812, 9815).
 The Oblique Mercator projection can be seen as a generalization of <a href="Mercator.html" title="class in org.apache.sis.referencing.operation.projection"><code>Mercator</code></a> and <a href="TransverseMercator.html" title="class in org.apache.sis.referencing.operation.projection"><code>Transverse­Mercator</code></a>
 projections when the central line is not along the equator or a meridian, respectively.
 This class covers also the <cite>Rectified Skew Orthomorphic</cite> (RSO) case.

 <p>There is different ways to specify the projection parameters:</p>
 <ul>
   <li>Variant A (EPSG:9812) uses false easting/northing defined at the natural origin of the coordinate system.</li>
   <li>Variant B (EPSG:9815) uses false easting/northing defined at the projection center.</li>
   <li>ESRI "Two Points" variant defines the central line with two points instead than with an azimuth angle.</li>
 </ul>

 Azimuth values of 0 and ±90 degrees are allowed, but for such cases the <a href="Mercator.html" title="class in org.apache.sis.referencing.operation.projection"><code>Mercator</code></a> and
 <a href="TransverseMercator.html" title="class in org.apache.sis.referencing.operation.projection"><code>Transverse­Mercator</code></a> projections should be preferred, both for performance and accuracy reasons.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Mercator.html" title="class in org.apache.sis.referencing.operation.projection"><code>Mercator</code></a>, 
<a href="TransverseMercator.html" title="class in org.apache.sis.referencing.operation.projection"><code>Transverse­Mercator</code></a>, 
<a href="../../../../../../serialized-form.html#org.apache.sis.referencing.operation.projection.ObliqueMercator">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>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.sis.referencing.operation.projection.NormalizedProjection">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;<a href="NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">NormalizedProjection</a></h3>
<code><a href="NormalizedProjection.ParameterRole.html" title="enum in org.apache.sis.referencing.operation.projection">Normalized­Projection​.Parameter­Role</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.NormalizedProjection">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;<a href="NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">NormalizedProjection</a></h3>
<code><a href="NormalizedProjection.html#eccentricity">eccentricity</a>, <a href="NormalizedProjection.html#eccentricitySquared">eccentricity­Squared</a></code></li>
</ul>
</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(org.opengis.referencing.operation.OperationMethod,org.apache.sis.parameter.Parameters)">ObliqueMercator</a></span>&#8203;(<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;method,
               <a href="../../../parameter/Parameters.html" title="class in org.apache.sis.parameter">Parameters</a>&nbsp;parameters)</code></th>
<td class="colLast">
<div class="block">Creates an Oblique Mercator projection from the given parameters.</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></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 void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inverseTransform(double%5B%5D,int,double%5B%5D,int)">inverseTransform</a></span>&#8203;(double[]&nbsp;srcPts,
                int&nbsp;srcOff,
                double[]&nbsp;dstPts,
                int&nbsp;dstOff)</code></th>
<td class="colLast">
<div class="block">Converts the specified (<var>x</var>,<var>y</var>) coordinates and stores the result in <code>dst­Pts</code>
 (angles in radians).</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/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 specified (λ,φ) coordinate (units in radians) and stores the result in <code>dst­Pts</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.NormalizedProjection">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">NormalizedProjection</a></h3>
<code><a href="NormalizedProjection.html#computeHashCode()">compute­Hash­Code</a>, <a href="NormalizedProjection.html#createMapProjection(org.opengis.referencing.operation.MathTransformFactory)">create­Map­Projection</a>, <a href="NormalizedProjection.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a>, <a href="NormalizedProjection.html#getContextualParameters()">get­Contextual­Parameters</a>, <a href="NormalizedProjection.html#getParameterDescriptors()">get­Parameter­Descriptors</a>, <a href="NormalizedProjection.html#getParameterValues()">get­Parameter­Values</a>, <a href="NormalizedProjection.html#inverse()">inverse</a>, <a href="NormalizedProjection.html#tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)">try­Concatenate</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AbstractMathTransform2D">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="../transform/AbstractMathTransform2D.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform2D</a></h3>
<code><a href="../transform/AbstractMathTransform2D.html#createTransformedShape(java.awt.Shape)">create­Transformed­Shape</a>, <a href="../transform/AbstractMathTransform2D.html#derivative(java.awt.geom.Point2D)">derivative</a>, <a href="../transform/AbstractMathTransform2D.html#getSourceDimensions()">get­Source­Dimensions</a>, <a href="../transform/AbstractMathTransform2D.html#getTargetDimensions()">get­Target­Dimensions</a>, <a href="../transform/AbstractMathTransform2D.html#transform(java.awt.geom.Point2D,java.awt.geom.Point2D)">transform</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AbstractMathTransform">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="../transform/AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a></h3>
<code><a href="../transform/AbstractMathTransform.html#derivative(org.opengis.geometry.DirectPosition)">derivative</a>, <a href="../transform/AbstractMathTransform.html#equals(java.lang.Object)">equals</a>, <a href="../transform/AbstractMathTransform.html#formatTo(org.apache.sis.io.wkt.Formatter)">format­To</a>, <a href="../transform/AbstractMathTransform.html#hashCode()">hash­Code</a>, <a href="../transform/AbstractMathTransform.html#isIdentity()">is­Identity</a>, <a href="../transform/AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,int)">transform</a>, <a href="../transform/AbstractMathTransform.html#transform(double%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="../transform/AbstractMathTransform.html#transform(float%5B%5D,int,double%5B%5D,int,int)">transform</a>, <a href="../transform/AbstractMathTransform.html#transform(float%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="../transform/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#derivative(org.opengis.geometry.DirectPosition)" title="class or interface in org.opengis.referencing.operation" class="externalLink">derivative</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#isIdentity()" title="class or interface in org.opengis.referencing.operation" class="externalLink">is­Identity</a>, <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>, <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>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#transform(double%5B%5D,int,float%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="externalLink">transform</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#transform(float%5B%5D,int,double%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="externalLink">transform</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#transform(float%5B%5D,int,float%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="externalLink">transform</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)" title="class or interface in org.opengis.referencing.operation" class="externalLink">transform</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;(org.opengis.referencing.operation.OperationMethod,org.apache.sis.parameter.Parameters)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ObliqueMercator</h4>
<pre>public&nbsp;ObliqueMercator&#8203;(<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;method,
                       <a href="../../../parameter/Parameters.html" title="class in org.apache.sis.parameter">Parameters</a>&nbsp;parameters)</pre>
<div class="block">Creates an Oblique Mercator projection from the given parameters.
 The <code>method</code> argument can be the description of one of the following:

 <ul>
   <li><cite>"Hotine Oblique Mercator (variant A)"</cite>.</li>
   <li><cite>"Hotine Oblique Mercator (variant B)"</cite>.</li>
   <li><cite>"Hotine Oblique Mercator two point center"</cite> (from ESRI).</li>
   <li><cite>"Hotine Oblique Mercator two point natural origin"</cite> (from ESRI).</li>
   <li><cite>"Rectified Skew Orthomorphic"</cite>.</li>
 </ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>method</code> - description of the projection parameters.</dd>
<dd><code>parameters</code> - the parameter values of the projection to create.</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="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="ProjectionException.html" title="class in org.apache.sis.referencing.operation.projection">ProjectionException</a></pre>
<div class="block">Converts the specified (λ,φ) coordinate (units in radians) and stores the result in <code>dst­Pts</code>.
 In addition, opportunistically computes the projection derivative if <code>derivate</code> is <code>true</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NormalizedProjection.html#transform(double%5B%5D,int,double%5B%5D,int,boolean)">transform</a></code>&nbsp;in class&nbsp;<code><a href="NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">Normalized­Projection</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src­Pts</code> - the array containing the source point coordinate, as (<var>longitude</var>, <var>latitude</var>)
                   angles in <strong>radians</strong>.</dd>
<dd><code>src­Off</code> - the offset of the single coordinate to be converted in the source array.</dd>
<dd><code>dst­Pts</code> - the array into which the converted coordinate is returned (may be the same than <code>src­Pts</code>).
                   Coordinates will be expressed in a dimensionless unit, as a linear distance on a unit sphere or ellipse.</dd>
<dd><code>dst­Off</code> - the offset of the location of the converted coordinate 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 projection 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="ProjectionException.html" title="class in org.apache.sis.referencing.operation.projection">Projection­Exception</a></code> - if the coordinate can not be converted.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../transform/AbstractMathTransform.html#derivative(org.opengis.geometry.DirectPosition)"><code>Abstract­Math­Transform​.derivative(Direct­Position)</code></a>, 
<a href="../transform/AbstractMathTransform.html#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)"><code>Abstract­Math­Transform​.transform(Direct­Position, Direct­Position)</code></a>, 
<a href="../transform/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="inverseTransform(double[],int,double[],int)">
<!--   -->
</a>
<ul class="blockListLast">
<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)
                         throws <a href="ProjectionException.html" title="class in org.apache.sis.referencing.operation.projection">ProjectionException</a></pre>
<div class="block">Converts the specified (<var>x</var>,<var>y</var>) coordinates and stores the result in <code>dst­Pts</code>
 (angles in radians).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="NormalizedProjection.html#inverseTransform(double%5B%5D,int,double%5B%5D,int)">inverse­Transform</a></code>&nbsp;in class&nbsp;<code><a href="NormalizedProjection.html" title="class in org.apache.sis.referencing.operation.projection">Normalized­Projection</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src­Pts</code> - the array containing the source point coordinate, as linear distance on a unit sphere or ellipse.</dd>
<dd><code>src­Off</code> - the offset of the point to be converted in the source array.</dd>
<dd><code>dst­Pts</code> - the array into which the converted point coordinate is returned (may be the same than <code>src­Pts</code>).
                 Coordinates will be (<var>longitude</var>, <var>latitude</var>) angles in <strong>radians</strong>.</dd>
<dd><code>dst­Off</code> - the offset of the location of the converted point that is stored in the destination array.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="ProjectionException.html" title="class in org.apache.sis.referencing.operation.projection">Projection­Exception</a></code> - if the point can not be converted.</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/ObliqueMercator.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>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>
