blob: b78ad2d4e7b56b5d9a721e4ba292f8a6246c96ca [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>AxesConvention (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.cs.AxesConvention class">
<meta name="keywords" content="CONVENTIONALLY_ORIENTED">
<meta name="keywords" content="values()">
<meta name="keywords" content="valueOf()">
<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="AxesConvention (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/AxesConvention.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="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.detail">Field</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.cs</a></div>
<h2 title="Enum AxesConvention" class="title">Enum AxesConvention</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a>&gt;</li>
<li>
<ul class="inheritance">
<li>AxesConvention</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/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">Axes­Convention</a>&gt;</code>, <code><a href="AxisFilter.html" title="interface in org.apache.sis.referencing.cs">Axis­Filter</a></code></dd>
</dl>
<hr>
<pre>public enum <span class="typeNameLabel">AxesConvention</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a>&gt;
implements <a href="AxisFilter.html" title="interface in org.apache.sis.referencing.cs">AxisFilter</a></pre>
<div class="block">High-level characteristics about the axes of a coordinate system.
This enumeration provides a convenient way to identify some common axes conventions like
axis order or range of longitude values. Apache SIS Coordinate System objects can be made
compliant to a given convention by calls to their <code>for­Convention(Axes­Convention)</code> method.
<p>The following table summarizes the coordinate system aspects that may be modified by each enum value,
with an example of change applied by the enum. Blank cells mean that the property is not changed by the
enum value.</p>
<table class="sis">
<caption>Coordinate system properties changed by enum values</caption>
<tr>
<th>Property</th>
<th>Example</th>
<th><a href="#NORMALIZED">Normalized</a></th>
<th><a href="#DISPLAY_ORIENTED"><code>Display<br>oriented</code></a></th>
<th><a href="#RIGHT_HANDED">Right<br>handed</a></th>
<th><a href="#POSITIVE_RANGE">Positive<br>range</a></th>
</tr>
<tr>
<td>Axis order</td>
<td>(<var>longitude</var>, <var>latitude</var>)</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td></td>
</tr>
<tr>
<td>Axis direction</td>
<td>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#EAST" title="class or interface in org.opengis.referencing.cs" class="externalLink">east</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#NORTH" title="class or interface in org.opengis.referencing.cs" class="externalLink">north</a>)</td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Unit of measurement</td>
<td>Angular degrees &amp; metres</td>
<td style="text-align:center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Range of values</td>
<td>[0 … 360]° of longitude</td>
<td></td>
<td></td>
<td></td>
<td style="text-align:center"></td>
</tr>
</table>
<div class="section">Note on axis order</div>
The axis order is specified by the authority (typically a national agency) defining the Coordinate Reference System
(CRS). The order depends on the CRS type and the country defining the CRS. In the case of geographic CRS, the
(<var>latitude</var>, <var>longitude</var>) axis order is widely used by geographers and pilotes for centuries.
However software developers tend to consistently use the (<var>x</var>,<var>y</var>) order for every kind of CRS.
Those different practices resulted in contradictory definitions of axis order for almost every CRS of kind
<code>Geographic­CRS</code>, for some <code>Projected­CRS</code> in the South hemisphere (South Africa, Australia, <i>etc.</i>)
and for some polar projections among others.
<p>Recent OGC standards mandate the use of axis order as defined by the authority. Oldest OGC standards used the
(<var>x</var>,<var>y</var>) axis order instead, ignoring any authority specification. Many software products still use
the old (<var>x</var>,<var>y</var>) axis order, because it is easier to implement. Apache SIS supports both conventions.
By default, SIS creates CRS with axis order as defined by the authority. Those CRS are created by calls to the
<a href="../CRS.html#forCode(java.lang.String)"><code>CRS​.for­Code(String)</code></a> method. The actual axis order can be verified after the CRS
creation with <code>System​.out​.println(crs)</code>. If (<var>x</var>,<var>y</var>) axis order is wanted for compatibility
with older OGC specifications or other software products, CRS forced to "longitude first" axis order can be created
using the <a href="#DISPLAY_ORIENTED"><code>DISPLAY_ORIENTED</code></a> or <a href="#NORMALIZED"><code>NORMALIZED</code></a> enumeration value.</p>
<div class="section">Note on range of longitude values</div>
Most geographic CRS have a longitude axis defined in the [-180 … +180]° range. All map projections in Apache SIS are
designed to work in that range. This is also the range of <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Math</code></a> trigonometric functions like <code>atan2(y,x)</code>.
However some data use the [0 … 360]° range instead. A geographic CRS can be shifted to that range of longitude values
using the <a href="#POSITIVE_RANGE"><code>POSITIVE_RANGE</code></a> enumeration value. The choice of longitude range will impact not only some
coordinate conversions, but also the methods that verify the <cite>domain of validity</cite>
(e.g. <a href="../../geometry/GeneralEnvelope.html#normalize()"><code>General­Envelope​.normalize()</code></a>).</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractCS.html#forConvention(org.apache.sis.referencing.cs.AxesConvention)"><code>Abstract­CS​.for­Convention(Axes­Convention)</code></a>,
<a href="../crs/AbstractCRS.html#forConvention(org.apache.sis.referencing.cs.AxesConvention)"><code>Abstract­CRS​.for­Convention(Axes­Convention)</code></a></dd>
<p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="enum.constant.summary">
<!-- -->
</a>
<h3>Enum Constant Summary</h3>
<table class="memberSummary">
<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum Constant</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#DISPLAY_ORIENTED">DISPLAY_ORIENTED</a></span></code></th>
<td class="colLast">
<div class="block">Axes are reordered and oriented toward directions commonly used for displaying purpose.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NORMALIZED">NORMALIZED</a></span></code></th>
<td class="colLast">
<div class="block">Axes order, direction and units of measurement are forced to commonly used predefined values.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#POSITIVE_RANGE">POSITIVE_RANGE</a></span></code></th>
<td class="colLast">
<div class="block">Axes having a <cite>wraparound</cite>
<a href="DefaultCoordinateSystemAxis.html#getRangeMeaning()">range meaning</a> are
shifted to their ranges of positive values.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#RIGHT_HANDED">RIGHT_HANDED</a></span></code></th>
<td class="colLast">
<div class="block">Axes are ordered for a <cite>right-handed</cite> coordinate system.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONVENTIONALLY_ORIENTED">CONVENTIONALLY_ORIENTED</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Renamed <a href="#DISPLAY_ORIENTED"><code>DISPLAY_ORIENTED</code></a> since "conventional" is too vague.</div>
</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="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>static <a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns the enum constant of this type with the specified name.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Enum">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compare­To</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.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/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">get­Declaring­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">to­String</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">value­Of</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#getClass()" title="class or interface in java.lang" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AxisFilter">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="AxisFilter.html" title="interface in org.apache.sis.referencing.cs">AxisFilter</a></h3>
<code><a href="AxisFilter.html#accept(org.opengis.referencing.cs.CoordinateSystemAxis)">accept</a>, <a href="AxisFilter.html#getDirectionReplacement(org.opengis.referencing.cs.CoordinateSystemAxis,org.opengis.referencing.cs.AxisDirection)">get­Direction­Replacement</a>, <a href="AxisFilter.html#getUnitReplacement(org.opengis.referencing.cs.CoordinateSystemAxis,javax.measure.Unit)">get­Unit­Replacement</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ENUM CONSTANT DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="enum.constant.detail">
<!-- -->
</a>
<h3>Enum Constant Detail</h3>
<a id="NORMALIZED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NORMALIZED</h4>
<pre>public static final&nbsp;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a> NORMALIZED</pre>
<div class="block">Axes order, direction and units of measurement are forced to commonly used predefined values.
This convention implies the following changes on a coordinate system:
<ul>
<li>Axes are oriented and ordered as defined for <a href="#DISPLAY_ORIENTED"><code>DISPLAY_ORIENTED</code></a> coordinate systems.</li>
<li>Known units are normalized (this list may be expanded in future SIS versions):
<ul>
<li>Angular units are set to <a href="../../measure/Units.html#DEGREE"><code>Units​.DEGREE</code></a>.</li>
<li>Linear units are set to <a href="../../measure/Units.html#METRE"><code>Units​.METRE</code></a>.</li>
<li>Temporal units are set to <a href="../../measure/Units.html#DAY"><code>Units​.DAY</code></a>.</li>
</ul>
</li>
</ul>
This convention does not normalize longitude values to the [-180 … +180]° range and does not set the
<a href="../datum/DefaultGeodeticDatum.html#getPrimeMeridian()">prime meridian</a> to Greenwich.
Those changes are not applied for avoiding discontinuity in conversions from the non-normalized CRS to the normalized CRS.
<div class="note"><b>Rational:</b>
The reason why we do not normalize the range and the prime meridian is because doing so
would cause the conversion between old and new coordinate systems to be non-affine for axes
having <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/RangeMeaning.html?is-external=true#WRAPAROUND" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>Range­Meaning​.WRAPAROUND</code></a>. Furthermore changing the
prime meridian would be a datum change rather than a coordinate system change, and datum
changes are more difficult to handle by coordinate operation factories.
</div></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../CommonCRS.html#normalizedGeographic()"><code>Common­CRS​.normalized­Geographic()</code></a>,
<a href="CoordinateSystems.html#replaceAxes(org.opengis.referencing.cs.CoordinateSystem,org.apache.sis.referencing.cs.AxisFilter)"><code>Coordinate­Systems​.replace­Axes(Coordinate­System, Axis­Filter)</code></a></dd>
</dl>
</li>
</ul>
<a id="DISPLAY_ORIENTED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DISPLAY_ORIENTED</h4>
<pre>public static final&nbsp;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a> DISPLAY_ORIENTED</pre>
<div class="block">Axes are reordered and oriented toward directions commonly used for displaying purpose.
Units of measurement are unchanged. This convention can be used for deriving a coordinate system with the
<i>(<var>longitude</var>, <var>latitude</var>)</i> or <i>(<var>x</var>,<var>y</var>)</i> axis order.
A similar concept appears in the Web Map Services (WMS) 1.3 specification, quoted here:
<div class="note"><b>6.7.2 Map CS</b>
The usual orientation of the Map CS shall be such that the <var>i</var> axis is parallel to the East-to-West axis
of the Layer CRS and increases Eastward, and the <var>j</var> axis is parallel to the North-to-South axis of the
Layer CRS and increases Southward. This orientation will not be possible in some cases, as (for example) in an
orthographic projection over the South Pole. The convention to be followed is that, wherever possible, East shall
be to the right edge and North shall be toward the upper edge of the Map CS.</div>
The above-cited <i>(<var>i</var>,<var>j</var>)</i> axes are mapped to <cite>display right</cite> and
<cite>display down</cite> directions respectively.
Other kinds of axis are mapped to <cite>east</cite> and <cite>north</cite> directions when possible.
More specifically, Apache SIS tries to setup the following directions
(replacing a direction by its "forward" counterpart when necessary, e.g. <code>SOUTH</code><code>NORTH</code>)
in the order shown below:
<table class="sis">
<caption>Axis directions and order</caption>
<tr>
<th>Preferred axis sequences</th>
<th>Purpose</th>
</tr><tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#EAST" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>EAST</code></a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#NORTH" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>NORTH</code></a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#UP" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>UP</code></a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#FUTURE" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>FUTURE</code></a></td>
<td>Commonly used <i>(<var>x</var>, <var>y</var>, <var>z</var>, <var>t</var>)</i> directions for coordinates.</td>
</tr><tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#DISPLAY_RIGHT" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>DISPLAY_RIGHT</code></a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#DISPLAY_DOWN" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>DISPLAY_DOWN</code></a></td>
<td>Commonly used <i>(<var>x</var>, <var>y</var>)</i> directions for screen devices.</td>
</tr><tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#ROW_POSITIVE" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>ROW_POSITIVE</code></a>,
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/AxisDirection.html?is-external=true#COLUMN_POSITIVE" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>COLUMN_POSITIVE</code></a></td>
<td>Indices in grids or matrices.</td>
</tr>
</table>
<div class="note"><b>Notes:</b>
we do not provide a <cite>"longitude or <var>x</var> axis first"</cite> enumeration value because such criterion
is hard to apply to inter-cardinal directions and has no meaning for map projections over a pole.
The <cite>display oriented</cite> enumeration name applies to a wider range of cases,
but still have a loosely definition which may be adjusted in future Apache SIS versions.
If a more stable definition is needed, consider using <a href="#RIGHT_HANDED"><code>RIGHT_HANDED</code></a> instead since
<cite>right-handed</cite> coordinate systems have a more precise meaning in Apache SIS.</div></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
</dl>
</li>
</ul>
<a id="RIGHT_HANDED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RIGHT_HANDED</h4>
<pre>public static final&nbsp;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a> RIGHT_HANDED</pre>
<div class="block">Axes are ordered for a <cite>right-handed</cite> coordinate system. Axis directions, ranges or coordinate values
and units of measurement are unchanged. In the two-dimensional case, the handedness is defined from the point of
view of an observer above the plane of the system.
<p>Note that a right-handed coordinate system does not guarantee that longitude or <var>x</var> axis
will be first in every cases. The most notable exception is the case of (West, North) orientations.
The following table lists that case, together with other common axis orientations.
The axes orientations implied by this <code>RIGHT_HANDED</code> enum is shown,
together with <a href="#DISPLAY_ORIENTED"><code>DISPLAY_ORIENTED</code></a> axes for reference:</p>
<div class="note">
<table class="sis">
<caption>Examples of left-handed and right-handed coordinate systems</caption>
<tr><th>Left-handed</th> <th>Right-handed</th> <th>Display oriented</th> <th>Remarks</th></tr>
<tr><td>North, East</td> <td>East, North</td> <td>East, North</td> <td>This is the most common case.</td></tr>
<tr><td>West, North</td> <td>North, West</td> <td>East, North</td> <td>This right-handed system has latitude first.</td></tr>
<tr><td>South, West</td> <td>West, South</td> <td>East, North</td> <td>Used for the mapping of southern Africa.</td></tr>
<tr><td>South along 0°,<br>South along 90° West</td>
<td>South along 90° West,<br>South along 0°</td>
<td>(Same as right-handed)</td>
<td>Can be used for the mapping of North pole.</td></tr>
</table></div></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="CoordinateSystems.html#angle(org.opengis.referencing.cs.AxisDirection,org.opengis.referencing.cs.AxisDirection)"><code>Coordinate­Systems​.angle(Axis­Direction, Axis­Direction)</code></a>,
<a href="http://en.wikipedia.org/wiki/Right_hand_rule">Right-hand rule on Wikipedia</a></dd>
</dl>
</li>
</ul>
<a id="POSITIVE_RANGE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>POSITIVE_RANGE</h4>
<pre>public static final&nbsp;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a> POSITIVE_RANGE</pre>
<div class="block">Axes having a <cite>wraparound</cite>
<a href="DefaultCoordinateSystemAxis.html#getRangeMeaning()">range meaning</a> are
shifted to their ranges of positive values. The units of measurement and range period (difference between
<a href="DefaultCoordinateSystemAxis.html#getMaximumValue()">maximum</a> and
<a href="DefaultCoordinateSystemAxis.html#getMinimumValue()">minimum value</a>)
are unchanged.
<div class="section">Usage</div>
The most frequent usage of this enum is for shifting longitude values from the [-180 … +180]° range
to the [0 … 360]° range. However this enum could also be used with climatological calendars if their
time axis has a wrapround range meaning.
<p>Note that conversions from an coordinate system using the [-180 … +180]° range to a coordinate system
using the [0 … 360]° range may not be affine. For example the data in the West hemisphere ([-180 … 0]°)
may need to move on the right side of the East hemisphere ([180 … 360]°).
Some geometries may need to be separated in two parts, and others may need to be merged.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/RangeMeaning.html?is-external=true#WRAPAROUND" title="class or interface in org.opengis.referencing.cs" class="externalLink"><code>Range­Meaning​.WRAPAROUND</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="CONVENTIONALLY_ORIENTED">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CONVENTIONALLY_ORIENTED</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public static final&nbsp;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a> CONVENTIONALLY_ORIENTED</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Renamed <a href="#DISPLAY_ORIENTED"><code>DISPLAY_ORIENTED</code></a> since "conventional" is too vague.
For example the (latitude, longitude) axis order is also conventional.</div>
</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.5</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="values()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public static&nbsp;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a>[]&nbsp;values()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
<pre>
for (AxesConvention c : AxesConvention.values())
&nbsp; System.out.println(c);
</pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array containing the constants of this enum type, in the order they are declared</dd>
</dl>
</li>
</ul>
<a id="valueOf(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
<pre class="methodSignature">public static&nbsp;<a href="AxesConvention.html" title="enum in org.apache.sis.referencing.cs">AxesConvention</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
not permitted.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the enum constant to be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the enum constant with the specified name</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 this enum type has no constant with the specified name</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Null­Pointer­Exception</a></code> - if the argument is null</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/AxesConvention.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="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li><a href="#field.detail">Field</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>