blob: 033d4908eba3320acf1339c24e8c0adca1baae69 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>DefaultGeodeticDatum (Apache SIS 1.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.sis.referencing.datum, class: DefaultGeodeticDatum">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.referencing.datum.DefaultGeodeticDatum class">
<meta name="keywords" content="BURSA_WOLF_KEY">
<meta name="keywords" content="castOrCopy()">
<meta name="keywords" content="getInterface()">
<meta name="keywords" content="getEllipsoid()">
<meta name="keywords" content="getPrimeMeridian()">
<meta name="keywords" content="getBursaWolfParameters()">
<meta name="keywords" content="getPositionVectorTransformation()">
<meta name="keywords" content="isHeuristicMatchForName()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="computeHashCode()">
<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="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/DefaultGeodeticDatum.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#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li><a href="#field-summary">Field</a></li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li><a href="#field-detail">Field</a></li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<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="sub-nav-list">
<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>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.referencing.datum</a></div>
<h1 title="Class DefaultGeodeticDatum" class="title">Class DefaultGeodeticDatum</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance"><a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a>
<div class="inheritance"><a href="../AbstractIdentifiedObject.html" title="class in org.apache.sis.referencing">AbstractIdentifiedObject</a>
<div class="inheritance"><a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">AbstractDatum</a>
<div class="inheritance">DefaultGeodeticDatum</div>
</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Formattable.html" title="class or interface in java.util" class="external-link">Formattable</a></code>, <code><a href="../../util/Deprecable.html" title="interface in org.apache.sis.util">Deprecable</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.geoapi/org/opengis/referencing/datum/Datum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Datum</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Geodetic­Datum</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">DefaultGeodeticDatum</span>
<span class="extends-implements">extends <a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">AbstractDatum</a>
implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a></span></div>
<div class="block">Defines the location and orientation of an ellipsoid that approximates the shape of the earth.
Geodetic datum are used together with ellipsoidal coordinate system, and also with Cartesian
coordinate system centered in the ellipsoid (or sphere).
<h2>Bursa-Wolf parameters</h2>
One or many <a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum"><code>Bursa­Wolf­Parameters</code></a> can optionally be associated to each <code>Default­Geodetic­Datum</code> instance.
This association is not part of the ISO 19111 model, but still a common practice (especially in older standards).
Associating Bursa-Wolf parameters to geodetic datum is known as the <cite>early-binding</cite> approach.
A recommended alternative, discussed below, is the <cite>late-binding</cite> approach.
<p>The Bursa-Wolf parameters serve two purposes:</p>
<ol class="verbose">
<li><b>Fallback for datum shifts</b><br>
There is different methods for transforming coordinates from one geodetic datum to another datum,
and Bursa-Wolf parameters are used with some of them. However, different set of parameters may exist
for the same pair of (<var>source</var>, <var>target</var>) datum, so it is often not sufficient to
know those datum. The (<var>source</var>, <var>target</var>) pair of CRS are often necessary,
sometimes together with the geographic extent of the coordinates to transform.
<p>Apache SIS searches for datum shift methods (including Bursa-Wolf parameters) in the EPSG database when a
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Coordinate­Operation</code></a> or a
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Math­Transform</code></a> is requested for a pair of CRS.
This is known as the <cite>late-binding</cite> approach.
If a datum shift method is found in the database, it will have precedence over any <code>Bursa­Wolf­Parameters</code>
instance associated to this <code>Default­Geodetic­Datum</code>. Only if no datum shift method is found in the database,
then the <code>Bursa­Wolf­Parameters</code> associated to the datum may be used as a fallback.</p>
</li>
<li><b>WKT version 1 formatting</b><br>
The Bursa-Wolf parameters association serves another purpose: when a CRS is formatted in the older
<cite>Well Known Text</cite> (WKT 1) format, the formatted string may contain a <code>TOWGS84[…]</code> element
with the parameter values of the transformation to the WGS 84 datum. This element is provided as a help
for other Geographic Information Systems that support only the <cite>early-binding</cite> approach.
Apache SIS usually does not need the <code>TOWGS84</code> element, except as a fallback for datum that
do not exist in the EPSG database.
</li>
</ol>
<h2>Creating new geodetic datum instances</h2>
New instances can be created either directly by specifying all information to a factory method (choices 3
and 4 below), or indirectly by specifying the identifier of an entry in a database (choices 1 and 2 below).
Choice 1 in the following list is the easiest but most restrictive way to get a geodetic datum.
The other choices provide more freedom.
<ol>
<li>Create a <code>Geodetic­Datum</code> from one of the static convenience shortcuts listed in
<a href="../CommonCRS.html#datum()"><code>Common­CRS​.datum()</code></a>.</li>
<li>Create a <code>Geodetic­Datum</code> from an identifier in a database by invoking
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createGeodeticDatum(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Datum­Authority­Factory​.create­Geodetic­Datum(String)</code></a>.</li>
<li>Create a <code>Geodetic­Datum</code> by invoking the <code>Datum­Factory​.create­Geodetic­Datum(…)</code> method
(implemented for example by <a href="../factory/GeodeticObjectFactory.html" title="class in org.apache.sis.referencing.factory"><code>Geodetic­Object­Factory</code></a>).</li>
<li>Create a <code>Default­Geodetic­Datum</code> by invoking the
<a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.datum.Ellipsoid,org.opengis.referencing.datum.PrimeMeridian)">constructor</a>.</li>
</ol>
<b>Example:</b> the following code gets a <cite>World Geodetic System 1984</cite> datum:
<blockquote><pre>GeodeticDatum datum = CommonCRS.WGS84.<b>datum</b>();</pre></blockquote>
<h2>Immutability and thread safety</h2>
This class is immutable and thus thread-safe if the property <em>values</em> (not necessarily the map itself),
the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Ellipsoid</code></a> and the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/PrimeMeridian.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Prime­Meridian</code></a> given to the constructor are also immutable. Unless otherwise
noted in the javadoc, this condition holds if all components were created using only SIS factories and static
constants.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.4</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="DefaultEllipsoid.html" title="class in org.apache.sis.referencing.datum"><code>Default­Ellipsoid</code></a></li>
<li><a href="DefaultPrimeMeridian.html" title="class in org.apache.sis.referencing.datum"><code>Default­Prime­Meridian</code></a></li>
<li><a href="../CommonCRS.html#datum()"><code>Common­CRS​.datum()</code></a></li>
<li><a href="../factory/GeodeticAuthorityFactory.html#createGeodeticDatum(java.lang.String)"><code>Geodetic­Authority­Factory​.create­Geodetic­Datum(String)</code></a></li>
<li><a href="../../../../../serialized-form.html#org.apache.sis.referencing.datum.DefaultGeodeticDatum">Serialized Form</a></li>
</ul>
</dd>
<p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#BURSA_WOLF_KEY" class="member-name-link">BURSA_WOLF_KEY</a></code></div>
<div class="col-last even-row-color">
<div class="block">The <code>"bursa­Wolf"</code> property for
<a href="#getBursaWolfParameters()">Bursa-Wolf parameters</a>.</div>
</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-AbstractIdentifiedObject">Fields inherited from class&nbsp;<a href="../AbstractIdentifiedObject.html" title="class in org.apache.sis.referencing">AbstractIdentifiedObject</a></h3>
<code><a href="../AbstractIdentifiedObject.html#DEPRECATED_KEY">DEPRECATED_KEY</a>, <a href="../AbstractIdentifiedObject.html#LOCALE_KEY">LOCALE_KEY</a></code></div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-Datum">Fields inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Datum</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#ANCHOR_POINT_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">ANCHOR_POINT_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#DOMAIN_OF_VALIDITY_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">DOMAIN_OF_VALIDITY_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#REALIZATION_EPOCH_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">REALIZATION_EPOCH_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#SCOPE_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">SCOPE_KEY</a></code></div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-IdentifiedObject">Fields inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#ALIAS_KEY" title="class or interface in org.opengis.referencing" class="external-link">ALIAS_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#IDENTIFIERS_KEY" title="class or interface in org.opengis.referencing" class="external-link">IDENTIFIERS_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#NAME_KEY" title="class or interface in org.opengis.referencing" class="external-link">NAME_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#REMARKS_KEY" title="class or interface in org.opengis.referencing" class="external-link">REMARKS_KEY</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>&nbsp;</code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.datum.Ellipsoid,org.opengis.referencing.datum.PrimeMeridian)" class="member-name-link">Default­Geodetic­Datum</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;&nbsp;properties,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Ellipsoid</a>&nbsp;ellipsoid,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/PrimeMeridian.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Prime­Meridian</a>&nbsp;prime­Meridian)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a geodetic datum from the given properties.</div>
</div>
<div class="col-first odd-row-color"><code>protected </code></div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.opengis.referencing.datum.GeodeticDatum)" class="member-name-link">Default­Geodetic­Datum</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Geodetic­Datum</a>&nbsp;datum)</code></div>
<div class="col-last odd-row-color">
<div class="block">Creates a new datum with the same values than the specified one.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum">Default­Geodetic­Datum</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#castOrCopy(org.opengis.referencing.datum.GeodeticDatum)" class="member-name-link">cast­Or­Copy</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Geodetic­Datum</a>&nbsp;object)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a SIS datum implementation with the same values than the given arbitrary implementation.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#computeHashCode()" class="member-name-link">compute­Hash­Code</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Invoked by <code>hash­Code()</code> for computing the hash code when first needed.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object,
<a href="../../util/ComparisonMode.html" title="enum class in org.apache.sis.util">Comparison­Mode</a>&nbsp;mode)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Compare this datum with the specified object for equality.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#formatTo(org.apache.sis.io.wkt.Formatter)" class="member-name-link">format­To</a><wbr>(<a href="../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a>&nbsp;formatter)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Formats this datum as a <cite>Well Known Text</cite> <code>Datum[…]</code> element.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">Bursa­Wolf­Parameters</a>[]</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBursaWolfParameters()" class="member-name-link">get­Bursa­Wolf­Parameters</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns all Bursa-Wolf parameters specified in the <code>properties</code> map at construction time.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Ellipsoid</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getEllipsoid()" class="member-name-link">get­Ellipsoid</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the ellipsoid given at construction time.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Geodetic­Datum</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getInterface()" class="member-name-link">get­Interface</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the GeoAPI interface implemented by this class.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPositionVectorTransformation(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)" class="member-name-link">get­Position­Vector­Transformation</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Geodetic­Datum</a>&nbsp;target­Datum,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/Extent.html" title="class or interface in org.opengis.metadata.extent" class="external-link">Extent</a>&nbsp;area­Of­Interest)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the position vector transformation (geocentric domain) to the specified datum.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/PrimeMeridian.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Prime­Meridian</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrimeMeridian()" class="member-name-link">get­Prime­Meridian</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the prime meridian given at construction time.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isHeuristicMatchForName(java.lang.String)" class="member-name-link">is­Heuristic­Match­For­Name</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns <code>true</code> if either the <a href="../AbstractIdentifiedObject.html#getName()">primary name</a> or at least
one <a href="../AbstractIdentifiedObject.html#getAlias()">alias</a> matches the given string according heuristic rules.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-AbstractDatum">Methods inherited from class&nbsp;<a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">AbstractDatum</a></h3>
<code><a href="AbstractDatum.html#castOrCopy(org.opengis.referencing.datum.Datum)">cast­Or­Copy</a>, <a href="AbstractDatum.html#getAnchorPoint()">get­Anchor­Point</a>, <a href="AbstractDatum.html#getDomainOfValidity()">get­Domain­Of­Validity</a>, <a href="AbstractDatum.html#getRealizationEpoch()">get­Realization­Epoch</a>, <a href="AbstractDatum.html#getScope()">get­Scope</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-AbstractIdentifiedObject">Methods inherited from class&nbsp;<a href="../AbstractIdentifiedObject.html" title="class in org.apache.sis.referencing">AbstractIdentifiedObject</a></h3>
<code><a href="../AbstractIdentifiedObject.html#castOrCopy(org.opengis.referencing.IdentifiedObject)">cast­Or­Copy</a>, <a href="../AbstractIdentifiedObject.html#equals(java.lang.Object)">equals</a>, <a href="../AbstractIdentifiedObject.html#formatTo(java.util.Formatter,int,int,int)">format­To</a>, <a href="../AbstractIdentifiedObject.html#getAlias()">get­Alias</a>, <a href="../AbstractIdentifiedObject.html#getDescription()">get­Description</a>, <a href="../AbstractIdentifiedObject.html#getIdentifiers()">get­Identifiers</a>, <a href="../AbstractIdentifiedObject.html#getName()">get­Name</a>, <a href="../AbstractIdentifiedObject.html#getRemarks()">get­Remarks</a>, <a href="../AbstractIdentifiedObject.html#hashCode()">hash­Code</a>, <a href="../AbstractIdentifiedObject.html#isDeprecated()">is­Deprecated</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-FormattableObject">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></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Datum">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Datum</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#getAnchorPoint()" title="class or interface in org.opengis.referencing.datum" class="external-link">get­Anchor­Point</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#getDomainOfValidity()" title="class or interface in org.opengis.referencing.datum" class="external-link">get­Domain­Of­Validity</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#getRealizationEpoch()" title="class or interface in org.opengis.referencing.datum" class="external-link">get­Realization­Epoch</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#getScope()" title="class or interface in org.opengis.referencing.datum" class="external-link">get­Scope</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-IdentifiedObject">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getAlias()" title="class or interface in org.opengis.referencing" class="external-link">get­Alias</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getIdentifiers()" title="class or interface in org.opengis.referencing" class="external-link">get­Identifiers</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getName()" title="class or interface in org.opengis.referencing" class="external-link">get­Name</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getRemarks()" title="class or interface in org.opengis.referencing" class="external-link">get­Remarks</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#toWKT()" title="class or interface in org.opengis.referencing" class="external-link">to­WKT</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="BURSA_WOLF_KEY">
<h3>BURSA_WOLF_KEY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">BURSA_WOLF_KEY</span></div>
<div class="block">The <code>"bursa­Wolf"</code> property for
<a href="#getBursaWolfParameters()">Bursa-Wolf parameters</a>.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../constant-values.html#org.apache.sis.referencing.datum.DefaultGeodeticDatum.BURSA_WOLF_KEY">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(java.util.Map,org.opengis.referencing.datum.Ellipsoid,org.opengis.referencing.datum.PrimeMeridian)">
<h3>DefaultGeodeticDatum</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">DefaultGeodeticDatum</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;&nbsp;properties,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Ellipsoid</a>&nbsp;ellipsoid,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/PrimeMeridian.html" title="class or interface in org.opengis.referencing.datum" class="external-link">PrimeMeridian</a>&nbsp;primeMeridian)</span></div>
<div class="block">Creates a geodetic datum from the given properties. The properties map is given
unchanged to the <a href="AbstractDatum.html#%3Cinit%3E(java.util.Map)">super-class constructor</a>.
In addition to the properties documented in the parent constructor,
the following properties are understood by this constructor:
<table class="sis">
<caption>Recognized properties (non exhaustive list)</caption>
<tr>
<th>Property name</th>
<th>Value type</th>
<th>Returned by</th>
</tr>
<tr>
<td><a href="#BURSA_WOLF_KEY">"bursaWolf"</a></td>
<td><a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum"><code>BursaWolfParameters</code></a> (optionally as array)</td>
<td><a href="#getBursaWolfParameters()"><code>getBursaWolfParameters()</code></a></td>
</tr>
<tr>
<th colspan="3" class="hsep">Defined in parent classes (reminder)</th>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#NAME_KEY" title="class or interface in org.opengis.referencing" class="external-link">"name"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link"><code>ReferenceIdentifier</code></a> or <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a></td>
<td><a href="../AbstractIdentifiedObject.html#getName()"><code>AbstractIdentifiedObject.getName()</code></a></td>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#ALIAS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"alias"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link"><code>GenericName</code></a> or <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a> (optionally as array)</td>
<td><a href="../AbstractIdentifiedObject.html#getAlias()"><code>AbstractIdentifiedObject.getAlias()</code></a></td>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#IDENTIFIERS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"identifiers"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link"><code>ReferenceIdentifier</code></a> (optionally as array)</td>
<td><a href="../AbstractIdentifiedObject.html#getIdentifiers()"><code>AbstractIdentifiedObject.getIdentifiers()</code></a></td>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#REMARKS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"remarks"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/InternationalString.html" title="class or interface in org.opengis.util" class="external-link"><code>InternationalString</code></a> or <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a></td>
<td><a href="../AbstractIdentifiedObject.html#getRemarks()"><code>AbstractIdentifiedObject.getRemarks()</code></a></td>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#ANCHOR_POINT_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">"anchorPoint"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/InternationalString.html" title="class or interface in org.opengis.util" class="external-link"><code>InternationalString</code></a> or <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a></td>
<td><a href="AbstractDatum.html#getAnchorPoint()"><code>AbstractDatum.getAnchorPoint()</code></a></td>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#REALIZATION_EPOCH_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">"realizationEpoch"</a></td>
<td><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link"><code>Date</code></a></td>
<td><a href="AbstractDatum.html#getRealizationEpoch()"><code>AbstractDatum.getRealizationEpoch()</code></a></td>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#DOMAIN_OF_VALIDITY_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">"domainOfValidity"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/Extent.html" title="class or interface in org.opengis.metadata.extent" class="external-link"><code>Extent</code></a></td>
<td><a href="AbstractDatum.html#getDomainOfValidity()"><code>AbstractDatum.getDomainOfValidity()</code></a></td>
</tr>
<tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html#SCOPE_KEY" title="class or interface in org.opengis.referencing.datum" class="external-link">"scope"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/InternationalString.html" title="class or interface in org.opengis.util" class="external-link"><code>InternationalString</code></a> or <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a></td>
<td><a href="AbstractDatum.html#getScope()"><code>AbstractDatum.getScope()</code></a></td>
</tr>
</table>
If Bursa-Wolf parameters are specified, then the prime meridian of their
<a href="BursaWolfParameters.html#getTargetDatum()">target datum</a> shall be either the same than the
<code>prime­Meridian</code> given to this constructor, or Greenwich. This restriction is for avoiding
ambiguity about whether the longitude rotation shall be applied before or after the datum shift.
If the target prime meridian is Greenwich, then the datum shift will be applied in a coordinate
system having Greenwich as the prime meridian.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>properties</code> - the properties to be given to the identified object.</dd>
<dd><code>ellipsoid</code> - the ellipsoid.</dd>
<dd><code>prime­Meridian</code> - the prime meridian.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../factory/GeodeticObjectFactory.html#createGeodeticDatum(java.util.Map,org.opengis.referencing.datum.Ellipsoid,org.opengis.referencing.datum.PrimeMeridian)"><code>Geodetic­Object­Factory​.create­Geodetic­Datum(Map, Ellipsoid, Prime­Meridian)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(org.opengis.referencing.datum.GeodeticDatum)">
<h3>DefaultGeodeticDatum</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">DefaultGeodeticDatum</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a>&nbsp;datum)</span></div>
<div class="block">Creates a new datum with the same values than the specified one.
This copy constructor provides a way to convert an arbitrary implementation into a SIS one
or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API.
<p>This constructor performs a shallow copy, i.e. the properties are not cloned.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>datum</code> - the datum to copy.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="#castOrCopy(org.opengis.referencing.datum.GeodeticDatum)"><code>cast­Or­Copy(Geodetic­Datum)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="castOrCopy(org.opengis.referencing.datum.GeodeticDatum)">
<h3>castOrCopy</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="DefaultGeodeticDatum.html" title="class in org.apache.sis.referencing.datum">DefaultGeodeticDatum</a></span>&nbsp;<span class="element-name">castOrCopy</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a>&nbsp;object)</span></div>
<div class="block">Returns a SIS datum implementation with the same values than the given arbitrary implementation.
If the given object is <code>null</code>, then this method returns <code>null</code>.
Otherwise if the given object is already a SIS implementation, then the given object is returned unchanged.
Otherwise a new SIS implementation is created and initialized to the attribute values of the given object.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object to get as a SIS implementation, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>a SIS implementation containing the values of the given object (may be the
given object itself), or <code>null</code> if the argument was null.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getInterface()">
<h3>getInterface</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a>&gt;</span>&nbsp;<span class="element-name">getInterface</span>()</div>
<div class="block">Returns the GeoAPI interface implemented by this class.
The SIS implementation returns <code>Geodetic­Datum​.class</code>.
<div class="note"><b>Note for implementers:</b>
Subclasses usually do not need to override this method since GeoAPI does not define <code>Geodetic­Datum</code>
sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
own set of interfaces.</div></div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="AbstractDatum.html#getInterface()">get­Interface</a></code>&nbsp;in class&nbsp;<code><a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">Abstract­Datum</a></code></dd>
<dt>Returns:</dt>
<dd><code>Geodetic­Datum​.class</code> or a user-defined sub-interface.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getEllipsoid()">
<h3>getEllipsoid</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Ellipsoid</a></span>&nbsp;<span class="element-name">getEllipsoid</span>()</div>
<div class="block">Returns the ellipsoid given at construction time.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html#getEllipsoid()" title="class or interface in org.opengis.referencing.datum" class="external-link">get­Ellipsoid</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Geodetic­Datum</a></code></dd>
<dt>Returns:</dt>
<dd>the ellipsoid.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPrimeMeridian()">
<h3>getPrimeMeridian</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/PrimeMeridian.html" title="class or interface in org.opengis.referencing.datum" class="external-link">PrimeMeridian</a></span>&nbsp;<span class="element-name">getPrimeMeridian</span>()</div>
<div class="block">Returns the prime meridian given at construction time.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html#getPrimeMeridian()" title="class or interface in org.opengis.referencing.datum" class="external-link">get­Prime­Meridian</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Geodetic­Datum</a></code></dd>
<dt>Returns:</dt>
<dd>the prime meridian.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getBursaWolfParameters()">
<h3>getBursaWolfParameters</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BursaWolfParameters.html" title="class in org.apache.sis.referencing.datum">BursaWolfParameters</a>[]</span>&nbsp;<span class="element-name">getBursaWolfParameters</span>()</div>
<div class="block">Returns all Bursa-Wolf parameters specified in the <code>properties</code> map at construction time.
See class javadoc for a discussion about Bursa-Wolf parameters.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the Bursa-Wolf parameters, or an empty array if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPositionVectorTransformation(org.opengis.referencing.datum.GeodeticDatum,org.opengis.metadata.extent.Extent)">
<h3>getPositionVectorTransformation</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></span>&nbsp;<span class="element-name">getPositionVectorTransformation</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/GeodeticDatum.html" title="class or interface in org.opengis.referencing.datum" class="external-link">GeodeticDatum</a>&nbsp;targetDatum,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/Extent.html" title="class or interface in org.opengis.metadata.extent" class="external-link">Extent</a>&nbsp;areaOfInterest)</span></div>
<div class="block">Returns the position vector transformation (geocentric domain) to the specified datum.
If the returned matrix is non-null, then the transformation is represented by an affine transform which can be
applied on <strong>geocentric</strong> coordinates. This is identified in the EPSG database as operation method
1033 – <cite>Position Vector transformation (geocentric domain)</cite>, or
1053 – <cite>Time-dependent Position Vector transformation</cite>.
<p>If this datum and the given <code>target­Datum</code> do not use the same <a href="#getPrimeMeridian()">prime meridian</a>,
then it is caller's responsibility to apply longitude rotation before to use the matrix returned by this method.
The target prime meridian should be Greenwich (see <a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.datum.Ellipsoid,org.opengis.referencing.datum.PrimeMeridian)">constructor javadoc</a>), in which case the datum shift should be applied in a geocentric coordinate system having
Greenwich as the prime meridian.</p>
<div class="note"><b>Note:</b>
in EPSG dataset version 8.9, all datum shifts that can be represented by this method use Greenwich as the
prime meridian, both in source and target datum.</div>
<h4>Search criteria</h4>
If the given <code>area­Of­Interest</code> is non-null and contains at least one geographic bounding box, then this
method ignores any Bursa-Wolf parameters having a <a href="BursaWolfParameters.html#getDomainOfValidity()">domain
of validity</a> that does not intersect the given geographic extent.
This method performs the search among the remaining parameters in the following order:
<ol>
<li>If this <code>Geodetic­Datum</code> contains <code>Bursa­Wolf­Parameters</code> having the given
<a href="BursaWolfParameters.html#getTargetDatum()">target datum</a> (ignoring metadata),
then the matrix will be built from those parameters.</li>
<li>Otherwise if the other datum contains <code>Bursa­Wolf­Parameters</code> having this datum
as their target (ignoring metadata), then the matrix will be built from those parameters
and <a href="../operation/matrix/MatrixSIS.html#inverse()">inverted</a>.</li>
</ol>
<h4>Multi-occurrences resolution</h4>
If more than one <code>Bursa­Wolf­Parameters</code> instance is found in any of the above steps, then the one having
the largest intersection between its <a href="BursaWolfParameters.html#getDomainOfValidity()">domain of validity</a>
and the given extent will be selected. If more than one instance have the same intersection, then the first
occurrence is selected.
<h4>Time-dependent parameters</h4>
If the given extent contains a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/TemporalExtent.html" title="class or interface in org.opengis.metadata.extent" class="external-link">temporal extent</a>,
then the instant located midway between start and end time will be taken as the date where to evaluate the
Bursa-Wolf parameters. This is relevant only to <a href="TimeDependentBWP.html" title="class in org.apache.sis.referencing.datum">time-dependent parameters</a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>target­Datum</code> - the target datum.</dd>
<dd><code>area­Of­Interest</code> - the geographic and temporal extent where the transformation should be valid, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>an affine transform from <code>this</code> to <code>target</code> in geocentric space, or <code>null</code> if none.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="BursaWolfParameters.html#getPositionVectorTransformation(java.util.Date)"><code>Bursa­Wolf­Parameters​.get­Position­Vector­Transformation(Date)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isHeuristicMatchForName(java.lang.String)">
<h3>isHeuristicMatchForName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isHeuristicMatchForName</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Returns <code>true</code> if either the <a href="../AbstractIdentifiedObject.html#getName()">primary name</a> or at least
one <a href="../AbstractIdentifiedObject.html#getAlias()">alias</a> matches the given string according heuristic rules.
This method implements the flexibility documented in the
<a href="AbstractDatum.html#isHeuristicMatchForName(java.lang.String)">super-class</a>. In particular,
this method ignores the prime meridian name if that name is found between parenthesis in the datum name.
The meridian can be safely ignored in the datum name because the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/PrimeMeridian.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Prime­Meridian</code></a> object is already
compared by the <a href="../AbstractIdentifiedObject.html#equals(java.lang.Object)"><code>Abstract­Identified­Object​.equals(Object)</code></a> method.
<div class="note"><b>Example:</b>
if the datum name is <cite>"Nouvelle Triangulation Française (Paris)"</cite> and the prime meridian name is
<cite>"Paris"</cite>, then this method compares only the <cite>"Nouvelle Triangulation Française"</cite> part.
</div>
<h4>Future evolutions</h4>
This method implements heuristic rules learned from experience while trying to provide inter-operability
with different data producers. Those rules may be adjusted in any future SIS version according experience
gained while working with more data producers.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="AbstractDatum.html#isHeuristicMatchForName(java.lang.String)">is­Heuristic­Match­For­Name</a></code>&nbsp;in class&nbsp;<code><a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">Abstract­Datum</a></code></dd>
<dt>Parameters:</dt>
<dd><code>name</code> - the name to compare.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the primary name or at least one alias matches the specified <code>name</code>.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../IdentifiedObjects.html#isHeuristicMatchForName(org.opengis.referencing.IdentifiedObject,java.lang.String)"><code>Identified­Objects​.is­Heuristic­Match­For­Name(Identified­Object, String)</code></a></li>
<li><a href="../../util/Characters.Filter.html#LETTERS_AND_DIGITS"><code>Characters​.Filter​.LETTERS_AND_DIGITS</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object,
<a href="../../util/ComparisonMode.html" title="enum class in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</span></div>
<div class="block">Compare this datum with the specified object for equality.</div>
<dl class="notes">
<dt>Specified by:</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>Overrides:</dt>
<dd><code><a href="AbstractDatum.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in class&nbsp;<code><a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">Abstract­Datum</a></code></dd>
<dt>Parameters:</dt>
<dd><code>object</code> - the object to compare to <code>this</code>.</dd>
<dd><code>mode</code> - <a href="../../util/ComparisonMode.html#STRICT"><code>STRICT</code></a> for performing a strict comparison, or
<a href="../../util/ComparisonMode.html#IGNORE_METADATA"><code>IGNORE_METADATA</code></a> for comparing only
properties relevant to coordinate transformations.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if both objects are equal.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../AbstractIdentifiedObject.html#computeHashCode()"><code>Abstract­Identified­Object​.compute­Hash­Code()</code></a></li>
<li><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></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="computeHashCode()">
<h3>computeHashCode</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">computeHashCode</span>()</div>
<div class="block">Invoked by <code>hash­Code()</code> for computing the hash code when first needed.
See <a href="../AbstractIdentifiedObject.html#computeHashCode()"><code>Abstract­Identified­Object​.compute­Hash­Code()</code></a>
for more information.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="AbstractDatum.html#computeHashCode()">compute­Hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">Abstract­Datum</a></code></dd>
<dt>Returns:</dt>
<dd>the hash code value. This value may change in any future Apache SIS version.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="formatTo(org.apache.sis.io.wkt.Formatter)">
<h3>formatTo</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">formatTo</span><wbr><span class="parameters">(<a href="../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a>&nbsp;formatter)</span></div>
<div class="block">Formats this datum as a <cite>Well Known Text</cite> <code>Datum[…]</code> element.
<div class="note"><b>Example:</b> Well-Known Text of a WGS 84 datum.
<blockquote><pre>Datum["World Geodetic System 1984",
Ellipsoid["WGS84", 6378137.0, 298.257223563, LengthUnit["metre", 1]],
Id["EPSG", 6326, Citation["IOGP"], URI["urn:ogc:def:datum:EPSG::6326"]]]</pre></blockquote>
<p>Same datum using WKT 1.</p>
<blockquote><pre>DATUM["World Geodetic System 1984"
SPHEROID["WGS84", 6378137.0, 298.257223563],
AUTHORITY["EPSG", "6326"]]</pre></blockquote>
</div>
Note that the <a href="#getPrimeMeridian()">prime meridian</a> shall be formatted by the caller
as a separated element after the geodetic datum (for compatibility with WKT 1).</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="AbstractDatum.html#formatTo(org.apache.sis.io.wkt.Formatter)">format­To</a></code>&nbsp;in class&nbsp;<code><a href="AbstractDatum.html" title="class in org.apache.sis.referencing.datum">Abstract­Datum</a></code></dd>
<dt>Parameters:</dt>
<dd><code>formatter</code> - the formatter where to format the inner content of this WKT element.</dd>
<dt>Returns:</dt>
<dd><code>"Datum"</code> or <code>"Geodetic­Datum"</code>.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="http://docs.opengeospatial.org/is/12-063r5/12-063r5.html#51">WKT 2 specification §8.2</a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2010&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>