blob: 58add529ea9ccdd2226828bf3915de78ba109070 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>BursaWolfParameters (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.datum.BursaWolfParameters class">
<meta name="keywords" content="tX">
<meta name="keywords" content="tY">
<meta name="keywords" content="tZ">
<meta name="keywords" content="rX">
<meta name="keywords" content="rY">
<meta name="keywords" content="rZ">
<meta name="keywords" content="dS">
<meta name="keywords" content="getTargetDatum()">
<meta name="keywords" content="getValues()">
<meta name="keywords" content="setValues()">
<meta name="keywords" content="isIdentity()">
<meta name="keywords" content="isTranslation()">
<meta name="keywords" content="reverseRotation()">
<meta name="keywords" content="invert()">
<meta name="keywords" content="getPositionVectorTransformation()">
<meta name="keywords" content="setPositionVectorTransformation()">
<meta name="keywords" content="getDomainOfValidity()">
<meta name="keywords" content="clone()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="hashCode()">
<meta name="keywords" content="formatTo()">
<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="BursaWolfParameters (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":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/BursaWolfParameters.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>Nested&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.datum</a></div>
<h2 title="Class BursaWolfParameters" class="title">Class BursaWolfParameters</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>BursaWolfParameters</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Cloneable</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="TimeDependentBWP.html" title="class in org.apache.sis.referencing.datum">Time­Dependent­BWP</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">BursaWolfParameters</span>
extends <a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Cloneable</a>, <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">Parameters for a geographic transformation between two datum having the same prime meridian.
Bursa-Wolf parameters are also known as <cite>Helmert transformation parameters</cite>.
For an explanation of their purpose, see the <cite>Bursa-Wolf parameters</cite> section
of <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>Default­Geodetic­Datum</code></a> class javadoc.
<p>The Bursa-Wolf parameters shall be applied to geocentric coordinates,
where the <var>X</var> axis points towards the Prime Meridian (usually Greenwich),
the <var>Y</var> axis points East, and the <var>Z</var> axis points North.</p>
<div class="note"><b>Note:</b>
The upper case letters are intentional. By convention, (<var>X</var>, <var>Y</var>, <var>Z</var>)
stand for <cite>geocentric</cite> coordinates while (<var>x</var>, <var>y</var>, <var>z</var>)
stand for <cite>projected</cite> coordinates.</div>
The "Bursa-Wolf" formula is expressed with 7 parameters, listed in the table below.
The <cite>code</cite>, <cite>name</cite> and <cite>abbreviation</cite> columns list EPSG identifiers,
while the <cite>legacy</cite> column lists the identifiers used in the legacy OGC 01-009 specification
(still used in some <cite>Well Known Texts</cite>).
<div class="horizontal-flow">
<div><table class="sis">
<caption>Parameters defined by EPSG</caption>
<tr><th>Code</th> <th>Name</th> <th>Abbr.</th> <th>Legacy</th></tr>
<tr><td>8605</td> <td>X-axis translation</td> <td><a href="#tX"><code>tX</code></a></td> <td><code>dx</code></td></tr>
<tr><td>8606</td> <td>Y-axis translation</td> <td><a href="#tY"><code>tY</code></a></td> <td><code>dy</code></td></tr>
<tr><td>8607</td> <td>Z-axis translation</td> <td><a href="#tZ"><code>tZ</code></a></td> <td><code>dz</code></td></tr>
<tr><td>8608</td> <td>X-axis rotation</td> <td><a href="#rX"><code>rX</code></a></td> <td><code>ex</code></td></tr>
<tr><td>8609</td> <td>Y-axis rotation</td> <td><a href="#rY"><code>rY</code></a></td> <td><code>ey</code></td></tr>
<tr><td>8610</td> <td>Z-axis rotation</td> <td><a href="#rZ"><code>rZ</code></a></td> <td><code>ez</code></td></tr>
<tr><td>8611</td> <td>Scale difference</td> <td><a href="#dS"><code>dS</code></a></td> <td><code>ppm</code></td></tr>
</table></div>
<div><p><b>Geocentric coordinates transformation</b></p>
<p>from (<var>X</var><sub>s</sub>, <var>Y</var><sub>s</sub>, <var>Z</var><sub>s</sub>)
to (<var>X</var><sub>t</sub>, <var>Y</var><sub>t</sub>, <var>Z</var><sub>t</sub>)
<br><span style="font-size:small">(ignoring unit conversions)</span></p>
<p> <math display="block" alttext="MathML capable browser required">
<mfenced open="[" close="]">
<mtable>
<mtr><mtd><msub><mi>X</mi><mi>t</mi></msub></mtd></mtr>
<mtr><mtd><msub><mi>Y</mi><mi>t</mi></msub></mtd></mtr>
<mtr><mtd><msub><mi>Z</mi><mi>t</mi></msub></mtd></mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mo>(</mo><mn>1</mn><mo>+</mo><mi>dS</mi><mo>)</mo>
<mo></mo>
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mn>1</mn></mtd>
<mtd><mo>-</mo><msub><mi>r</mi><mi>z</mi></msub></mtd>
<mtd><mo>+</mo><msub><mi>r</mi><mi>y</mi></msub></mtd>
</mtr>
<mtr>
<mtd><mo>+</mo><msub><mi>r</mi><mi>z</mi></msub></mtd>
<mtd><mn>1</mn></mtd>
<mtd><mo>-</mo><msub><mi>r</mi><mi>x</mi></msub></mtd>
</mtr>
<mtr>
<mtd><mo>-</mo><msub><mi>r</mi><mi>y</mi></msub></mtd>
<mtd><mo>+</mo><msub><mi>r</mi><mi>x</mi></msub></mtd>
<mtd><mn>1</mn></mtd>
</mtr>
</mtable>
</mfenced>
<mo>×</mo>
<mfenced open="[" close="]">
<mtable>
<mtr><mtd><msub><mi>X</mi><mi>s</mi></msub></mtd></mtr>
<mtr><mtd><msub><mi>Y</mi><mi>s</mi></msub></mtd></mtr>
<mtr><mtd><msub><mi>Z</mi><mi>s</mi></msub></mtd></mtr>
</mtable>
</mfenced>
<mo>+</mo>
<mfenced open="[" close="]">
<mtable>
<mtr><mtd><msub><mi>t</mi><mi>x</mi></msub></mtd></mtr>
<mtr><mtd><msub><mi>t</mi><mi>y</mi></msub></mtd></mtr>
<mtr><mtd><msub><mi>t</mi><mi>z</mi></msub></mtd></mtr>
</mtable>
</mfenced>
</math>
</p>
</div></div>
The numerical fields in this <code>Bursa­Wolf­Parameters</code> class use the EPSG abbreviations
with 4 additional constraints compared to the EPSG definitions:
<ul>
<li>Unit of scale difference (<a href="#dS"><code>d­S</code></a>) is fixed to <em>parts per million</em>.</li>
<li>Unit of translation terms (<a href="#tX"><code>t­X</code></a>, <a href="#tY"><code>t­Y</code></a>, <a href="#tZ"><code>t­Z</code></a>) is fixed to <em>metres</em>.</li>
<li>Unit of rotation terms (<a href="#rX"><code>r­X</code></a>, <a href="#rY"><code>r­Y</code></a>, <a href="#rZ"><code>r­Z</code></a>) is fixed to <em>arc-seconds</em>.</li>
<li>Sign of rotation terms is fixed to the <em>Position Vector</em> convention (EPSG operation method 9606).
This is the opposite sign than the <cite>Coordinate Frame Rotation</cite> (EPSG operation method 9607).
The Position Vector convention is used by IAG and recommended by ISO 19111.</li>
</ul>
<div class="section">Source and target geodetic datum</div>
The <var>source datum</var> in above coordinates transformation is the <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>Default­Geodetic­Datum</code></a> instance
that contain this <code>Bursa­Wolf­Parameters</code>. It can be any datum, including datum that are valid only locally.
The <var><a href="#getTargetDatum()">target datum</a></var> is specified at construction time and is often,
but not necessarily, the <cite>World Geodetic System 1984</cite> (WGS 84) datum.
<p>If the source and target datum does not have the same <a href="DefaultGeodeticDatum.html#getPrimeMeridian()">prime meridian</a>, then it is user's responsibility to apply longitude rotation before to use the Bursa-Wolf
parameters.</p>
<div class="section">When Bursa-Wolf parameters are used</div>
<code>Bursa­Wolf­Parameters</code> are used in three contexts:
<ol>
<li>Created as a step while creating a <a href="../operation/AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">coordinate operation</a> from the EPSG database.</li>
<li>Associated to a <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>Default­Geodetic­Datum</code></a> with the WGS 84 <a href="#getTargetDatum()">target datum</a> for
providing the parameter values to display in the <code>TOWGS84[…]</code> element of <cite>Well Known Text</cite>
(WKT) version 1. Note that WKT version 2 does not have <code>TOWGS84[…]</code> element anymore.</li>
<li>Specified at <code>Default­Geodetic­Datum</code> construction time for arbitrary target datum.
Apache SIS will ignore those Bursa-Wolf parameters, except as a fallback if no parameters
can been found in the EPSG database for a given pair of source and target CRS.</li>
</ol>
<div class="note"><b>Note:</b>
In EPSG terminology, Apache SIS gives precedence to the <cite>late-binding</cite> approach
(case 1 above) over the <cite>early-binding</cite> approach (case 3 above).</div></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="DefaultGeodeticDatum.html#getBursaWolfParameters()"><code>Default­Geodetic­Datum​.get­Bursa­Wolf­Parameters()</code></a>,
<a href="http://en.wikipedia.org/wiki/Helmert_transformation">Wikipedia: Helmert transformation</a>,
<a href="../../../../../serialized-form.html#org.apache.sis.referencing.datum.BursaWolfParameters">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">
<!-- =========== 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>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dS">dS</a></span></code></th>
<td class="colLast">
<div class="block">The scale difference in parts per million (EPSG:8611).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rX">rX</a></span></code></th>
<td class="colLast">
<div class="block">X-axis rotation in arc-seconds (EPSG:8608), sign following the <cite>Position Vector</cite> convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rY">rY</a></span></code></th>
<td class="colLast">
<div class="block">Y-axis rotation in arc-seconds (EPSG:8609), sign following the <cite>Position Vector</cite> convention.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rZ">rZ</a></span></code></th>
<td class="colLast">
<div class="block">Z-axis rotation in arc-seconds (EPSG:8610), sign following the <cite>Position Vector</cite> convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tX">tX</a></span></code></th>
<td class="colLast">
<div class="block">X-axis translation in metres (EPSG:8605).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tY">tY</a></span></code></th>
<td class="colLast">
<div class="block">Y-axis translation in metres (EPSG:8606).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tZ">tZ</a></span></code></th>
<td class="colLast">
<div class="block">Z-axis translation in metres (EPSG:8607).</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)">BursaWolfParameters</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/GeodeticDatum.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">GeodeticDatum</a>&nbsp;targetDatum,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/extent/Extent.html?is-external=true" title="class or interface in org.opengis.metadata.extent" class="externalLink">Extent</a>&nbsp;domainOfValidity)</code></th>
<td class="colLast">
<div class="block">Creates a new instance for the given target datum and domain of validity.</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><a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">BursaWolfParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a copy of this object.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">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)</code></th>
<td class="colLast">
<div class="block">Compares the specified object with this object for equality.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#formatTo(org.apache.sis.io.wkt.Formatter)">formatTo</a></span>&#8203;(<a href="../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a>&nbsp;formatter)</code></th>
<td class="colLast">
<div class="block">Formats this object as a <cite>Well Known Text</cite> <code>To­WGS84[…]</code> element.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/extent/Extent.html?is-external=true" title="class or interface in org.opengis.metadata.extent" class="externalLink">Extent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDomainOfValidity()">getDomainOfValidity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the region or timeframe in which a coordinate transformation based on those Bursa-Wolf parameters is
valid, or <code>null</code> if unspecified.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/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="#getPositionVectorTransformation(java.util.Date)">getPositionVectorTransformation</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;time)</code></th>
<td class="colLast">
<div class="block">Returns the position vector transformation (geocentric domain) as an affine transform.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/GeodeticDatum.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">GeodeticDatum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetDatum()">getTargetDatum</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the target datum for this set of parameters, or <code>null</code> if unknown.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValues()">getValues</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the parameter values.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a hash value for this object.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invert()">invert</a></span>()</code></th>
<td class="colLast">
<div class="block">Inverts in-place the transformation by inverting the sign of all numerical parameters.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isIdentity()">isIdentity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform no operation.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTranslation()">isTranslation</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform only a translation.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reverseRotation()">reverseRotation</a></span>()</code></th>
<td class="colLast">
<div class="block">Inverts in-place the sign of rotation terms (<a href="#rX"><code>r­X</code></a>, <a href="#rY"><code>r­Y</code></a>, <a href="#rZ"><code>r­Z</code></a>).</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPositionVectorTransformation(org.opengis.referencing.operation.Matrix,double)">setPositionVectorTransformation</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Matrix.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Matrix</a>&nbsp;matrix,
double&nbsp;tolerance)</code></th>
<td class="colLast">
<div class="block">Sets all Bursa-Wolf parameters from the given <cite>Position Vector transformation</cite> matrix.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValues(double...)">setValues</a></span>&#8203;(double...&nbsp;elements)</code></th>
<td class="colLast">
<div class="block">Sets the parameters to the given values.</div>
</td>
</tr>
</table>
<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#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>
</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="tX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tX</h4>
<pre>public&nbsp;double tX</pre>
<div class="block">X-axis translation in metres (EPSG:8605).
The legacy OGC parameter name is <code>"dx"</code>.</div>
</li>
</ul>
<a id="tY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tY</h4>
<pre>public&nbsp;double tY</pre>
<div class="block">Y-axis translation in metres (EPSG:8606).
The legacy OGC parameter name is <code>"dy"</code>.</div>
</li>
</ul>
<a id="tZ">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tZ</h4>
<pre>public&nbsp;double tZ</pre>
<div class="block">Z-axis translation in metres (EPSG:8607).
The legacy OGC parameter name is <code>"dz"</code>.</div>
</li>
</ul>
<a id="rX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rX</h4>
<pre>public&nbsp;double rX</pre>
<div class="block">X-axis rotation in arc-seconds (EPSG:8608), sign following the <cite>Position Vector</cite> convention.
The legacy OGC parameter name is <code>"ex"</code>.</div>
</li>
</ul>
<a id="rY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rY</h4>
<pre>public&nbsp;double rY</pre>
<div class="block">Y-axis rotation in arc-seconds (EPSG:8609), sign following the <cite>Position Vector</cite> convention.
The legacy OGC parameter name is <code>"ey"</code>.</div>
</li>
</ul>
<a id="rZ">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rZ</h4>
<pre>public&nbsp;double rZ</pre>
<div class="block">Z-axis rotation in arc-seconds (EPSG:8610), sign following the <cite>Position Vector</cite> convention.
The legacy OGC parameter name is <code>"ez"</code>.</div>
</li>
</ul>
<a id="dS">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>dS</h4>
<pre>public&nbsp;double dS</pre>
<div class="block">The scale difference in parts per million (EPSG:8611).
The legacy OGC parameter name is <code>"ppm"</code>.
<div class="note"><b>Example:</b>
If a distance of 100 km in the source coordinate reference system translates into a distance of 100.001 km
in the target coordinate reference system, the scale difference is 1 ppm (the ratio being 1.000001).</div></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;(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BursaWolfParameters</h4>
<pre>public&nbsp;BursaWolfParameters&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/GeodeticDatum.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">GeodeticDatum</a>&nbsp;targetDatum,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/extent/Extent.html?is-external=true" title="class or interface in org.opengis.metadata.extent" class="externalLink">Extent</a>&nbsp;domainOfValidity)</pre>
<div class="block">Creates a new instance for the given target datum and domain of validity.
All numerical parameters are initialized to 0, which correspond to an identity transform.
Callers can assign numerical values to the public fields of interest after construction.
For example, many coordinate transformations will provide values only for the translation
terms (<a href="#tX"><code>t­X</code></a>, <a href="#tY"><code>t­Y</code></a>, <a href="#tZ"><code>t­Z</code></a>).
<p>Alternatively, numerical fields can also be initialized by a call to
<a href="#setPositionVectorTransformation(org.opengis.referencing.operation.Matrix,double)"><code>set­Position­Vector­Transformation(Matrix, double)</code></a>.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target­Datum</code> - the target datum (usually WGS 84) for this set of parameters, or <code>null</code> if unknown.</dd>
<dd><code>domain­Of­Validity</code> - area or region in which a coordinate transformation based on those Bursa-Wolf parameters
is valid, or <code>null</code> is unspecified.</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="getTargetDatum()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetDatum</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/datum/GeodeticDatum.html?is-external=true" title="class or interface in org.opengis.referencing.datum" class="externalLink">GeodeticDatum</a>&nbsp;getTargetDatum()</pre>
<div class="block">Returns the target datum for this set of parameters, or <code>null</code> if unknown.
This is usually the WGS 84 datum, but other targets are allowed.
<p>The source datum is the <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum"><code>Default­Geodetic­Datum</code></a> that contain this <code>Bursa­Wolf­Parameters</code>
instance.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the target datum for this set of parameters, or <code>null</code> if unknown.</dd>
</dl>
</li>
</ul>
<a id="getValues()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValues</h4>
<pre class="methodSignature">public&nbsp;double[]&nbsp;getValues()</pre>
<div class="block">Returns the parameter values. The length of the returned array depends on the values:
<ul>
<li>If this instance is an <a href="TimeDependentBWP.html" title="class in org.apache.sis.referencing.datum"><code>Time­Dependent­BWP</code></a>, then the array length will be 14.</li>
<li>Otherwise if this instance contains a non-zero <a href="#dS"><code>d­S</code></a> value, then the array length will be 7 with
<a href="#tX"><code>t­X</code></a>, <a href="#tY"><code>t­Y</code></a>, <a href="#tZ"><code>t­Z</code></a>, <a href="#rX"><code>r­X</code></a>, <a href="#rY"><code>r­Y</code></a>, <a href="#rZ"><code>r­Z</code></a> and <a href="#dS"><code>d­S</code></a> values
in that order.</li>
<li>Otherwise if this instance contains non-zero rotation terms,
then this method returns the first 6 of the above-cited values.</li>
<li>Otherwise (i.e. this instance <a href="#isTranslation()">is a translation</a>),
this method returns only the first 3 of the above-cited values.</li>
</ul>
<div class="note"><b>Note:</b>
the rules about the arrays of length 3, 6 or 7 are derived from the <cite>Well Known Text</cite> (WKT)
version 1 specification. The rule about the array of length 14 is an extension.</div></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parameter values as an array of length 3, 6, 7 or 14.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.6</dd>
</dl>
</li>
</ul>
<a id="setValues(double...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setValues</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setValues&#8203;(double...&nbsp;elements)</pre>
<div class="block">Sets the parameters to the given values. The given array can have any length. The first array elements will be
assigned to the <a href="#tX"><code>t­X</code></a>, <a href="#tY"><code>t­Y</code></a>, <a href="#tZ"><code>t­Z</code></a>, <a href="#rX"><code>r­X</code></a>, <a href="#rY"><code>r­Y</code></a>, <a href="#rZ"><code>r­Z</code></a> and <a href="#dS"><code>d­S</code></a>
fields in that order.
<ul>
<li>If the length of the given array is not sufficient for assigning a value to every fields,
then the remaining fields are left unchanged (they are <strong>not</strong> reset to zero,
but this is not a problem if this <code>Bursa­Wolf­Parameters</code> is a new instance).</li>
<li>If the length of the given array is greater than necessary, then extra elements are ignored by this base
class. Note however that those extra elements may be used by subclasses like <a href="TimeDependentBWP.html" title="class in org.apache.sis.referencing.datum"><code>Time­Dependent­BWP</code></a>.</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>elements</code> - the new parameter values, as an array of any length.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.6</dd>
</dl>
</li>
</ul>
<a id="isIdentity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIdentity</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isIdentity()</pre>
<div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform no operation.
This is true when the value of all parameters is zero.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the parameters describe no operation.</dd>
</dl>
</li>
</ul>
<a id="isTranslation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTranslation</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isTranslation()</pre>
<div class="block">Returns <code>true</code> if a transformation built from this set of parameters would perform only a translation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the parameters describe a translation only.</dd>
</dl>
</li>
</ul>
<a id="reverseRotation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reverseRotation</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;reverseRotation()</pre>
<div class="block">Inverts in-place the sign of rotation terms (<a href="#rX"><code>r­X</code></a>, <a href="#rY"><code>r­Y</code></a>, <a href="#rZ"><code>r­Z</code></a>).
This method can be invoked for converting a <cite>Coordinate Frame Rotation</cite> transformation
(EPSG operation method 9607) to a <em>Position Vector</em> transformation (EPSG operation method 9606).
The later convention is used by IAG and recommended by ISO 19111.</div>
</li>
</ul>
<a id="invert()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invert</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;invert()</pre>
<div class="block">Inverts in-place the transformation by inverting the sign of all numerical parameters.
The <a href="#getPositionVectorTransformation(java.util.Date)">position vector transformation</a> matrix
created from inverted Bursa-Wolf parameters will be <strong>approximately</strong> equals
to the <a href="../operation/matrix/MatrixSIS.html#inverse()">inverse</a>
of the matrix created from the original parameters. The equality holds approximately only
because the parameter values are very small (parts per millions and arc-seconds).</div>
</li>
</ul>
<a id="getPositionVectorTransformation(java.util.Date)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPositionVectorTransformation</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;getPositionVectorTransformation&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;time)</pre>
<div class="block">Returns the position vector transformation (geocentric domain) as an affine transform.
For transformations that do not depend on time, the formula is as below where <code>R</code>
is a conversion factor from arc-seconds to radians:
<blockquote><pre> R = toRadians(1″)
S = 1 + <a href="#dS">dS</a>/1000000
┌ ┐ ┌ ┐ ┌ ┐
│ X' │ │ S -<a href="#rZ">rZ</a>*RS +<a href="#rY">rY</a>*RS <a href="#tX">tX</a> │ │ X │
│ Y' │ = │ +<a href="#rZ">rZ</a>*RS S -<a href="#rX">rX</a>*RS <a href="#tY">tY</a> │ │ Y │
│ Z' │ │ -<a href="#rY">rY</a>*RS +<a href="#rX">rX</a>*RS S <a href="#tZ">tZ</a> │ │ Z │
│ 1 │ │ 0 0 0 1 │ │ 1 │
└ ┘ └ ┘ └ ┘</pre></blockquote>
This affine transform can be applied on <strong>geocentric</strong> coordinates.
This is identified as operation method 1033 in the EPSG database.
Those geocentric coordinates are typically converted from geographic coordinates
in the region or timeframe given by <a href="#getDomainOfValidity()"><code>get­Domain­Of­Validity()</code></a>.
<p>If the source datum and the <a href="#getTargetDatum()">target datum</a> do not use the same
<a href="DefaultGeodeticDatum.html#getPrimeMeridian()">prime meridian</a>, then it is caller's responsibility
to apply longitude rotation before to use the matrix returned by this method.</p>
<div class="section">Time-dependent transformation</div>
Some transformations use parameters that vary with time (e.g. operation method EPSG:1053).
Users can optionally specify a date for which the transformation is desired.
For transformations that do not depends on time, this date is ignored and can be null.
For time-dependent transformations, <code>null</code> values default to the transformation's
<a href="TimeDependentBWP.html#getTimeReference()">reference time</a>.
<div class="section">Inverse transformation</div>
The inverse transformation can be approximated by reversing the sign of the 7 parameters before to use them
in the above matrix. This is often considered sufficient since <cite>position vector transformations</cite>
are themselves approximations. However Apache SIS will rather use
<a href="../operation/matrix/MatrixSIS.html#inverse()"><code>Matrix­SIS​.inverse()</code></a> in order to increase the chances
that concatenation of transformations <var>A</var><var>B</var> followed by <var>B</var><var>A</var>
gives back the identity transform.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>time</code> - date for which the transformation is desired, or <code>null</code> for the transformation's reference time.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an affine transform in geocentric space created from this Bursa-Wolf parameters and the given time.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="DefaultGeodeticDatum.html#getPositionVectorTransformation(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)"><code>Default­Geodetic­Datum​.get­Position­Vector­Transformation(Geodetic­Datum, Extent)</code></a></dd>
</dl>
</li>
</ul>
<a id="setPositionVectorTransformation(org.opengis.referencing.operation.Matrix,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPositionVectorTransformation</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setPositionVectorTransformation&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Matrix.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Matrix</a>&nbsp;matrix,
double&nbsp;tolerance)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
<div class="block">Sets all Bursa-Wolf parameters from the given <cite>Position Vector transformation</cite> matrix.
The matrix shall comply to the following constraints:
<ul>
<li>The matrix shall be <a href="../operation/matrix/MatrixSIS.html#isAffine()">affine</a>.</li>
<li>The sub-matrix defined by <code>matrix</code> without the last row and last column shall be
<a href="http://en.wikipedia.org/wiki/Skew-symmetric_matrix">skew-symmetric</a> (a.k.a. antisymmetric).</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matrix</code> - the matrix from which to get Bursa-Wolf parameters.</dd>
<dd><code>tolerance</code> - the tolerance error for the skew-symmetric matrix test, in units of PPM or arc-seconds (e.g. 1E-8).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­Argument­Exception</a></code> - if the specified matrix does not met the conditions.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getPositionVectorTransformation(java.util.Date)"><code>get­Position­Vector­Transformation(Date)</code></a></dd>
</dl>
</li>
</ul>
<a id="getDomainOfValidity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDomainOfValidity</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/extent/Extent.html?is-external=true" title="class or interface in org.opengis.metadata.extent" class="externalLink">Extent</a>&nbsp;getDomainOfValidity()</pre>
<div class="block">Returns the region or timeframe in which a coordinate transformation based on those Bursa-Wolf parameters is
valid, or <code>null</code> if unspecified. If an extent was specified at construction time, then that extent is
returned. Otherwise the datum domain of validity (which may be <code>null</code>) is returned.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>area or region or timeframe in which the coordinate transformation is valid, or <code>null</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../metadata/iso/extent/DefaultExtent.html" title="class in org.apache.sis.metadata.iso.extent"><code>Default­Extent</code></a></dd>
</dl>
</li>
</ul>
<a id="clone()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre class="methodSignature">public&nbsp;<a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">BursaWolfParameters</a>&nbsp;clone()</pre>
<div class="block">Returns a copy of this object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><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></code>&nbsp;in class&nbsp;<code><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></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a copy of all parameters.</dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</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)</pre>
<div class="block">Compares the specified object with this object for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><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></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to compare with the parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given object is equal to this <code>Bursa­Wolf­Parameters</code>.</dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns a hash value for this object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a></code>&nbsp;in class&nbsp;<code><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></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the hash code value. This value does not need to be the same in past or future versions of this class.</dd>
</dl>
</li>
</ul>
<a id="formatTo(org.apache.sis.io.wkt.Formatter)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>formatTo</h4>
<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;formatTo&#8203;(<a href="../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a>&nbsp;formatter)</pre>
<div class="block">Formats this object as a <cite>Well Known Text</cite> <code>To­WGS84[…]</code> element.
The WKT contains the parameters in <var>translation</var>, <var>rotation</var>, <var>scale</var> order,
like below:
<blockquote><code>TOWGS84[<a href="#tX">t­X</a>, <a href="#tY">t­Y</a>, <a href="#tZ">t­Z</a>, <a href="#rX">r­X</a>,
<a href="#rY">r­Y</a>, <a href="#rZ">r­Z</a>, <a href="#dS">d­S</a>]</code></blockquote>
<div class="note"><b>Compatibility note:</b>
<code>TOWGS84</code> is defined in the WKT 1 specification only.</div>
The element name is <code>"To­WGS84"</code> in the common case where the <a href="#getTargetDatum()">target datum</a>
is WGS 84. For other targets, the element name will be derived from the datum name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../io/wkt/FormattableObject.html#formatTo(org.apache.sis.io.wkt.Formatter)">format­To</a></code>&nbsp;in class&nbsp;<code><a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">Formattable­Object</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>formatter</code> - The formatter where to format the inner content of this WKT element.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Usually <code>"To­WGS84"</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../io/wkt/FormattableObject.html#toWKT()"><code>Formattable­Object​.to­WKT()</code></a>,
<a href="../../io/wkt/FormattableObject.html#toString()"><code>Formattable­Object​.to­String()</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/BursaWolfParameters.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>Nested&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>