blob: f93e7e93ffa3044b7abe079ab760347929d61a64 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>WraparoundMethod (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.geometry, enum: WraparoundMethod">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.geometry.WraparoundMethod class">
<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="../../../../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/WraparoundMethod.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><a href="#nested-class-summary">Nested</a></li>
<li><a href="#enum-constant-summary">Enum Constants</a></li>
<li>Field</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li><a href="#enum-constant-detail">Enum Constants</a></li>
<li>Field</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><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#enum-constant-summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#enum-constant-detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&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.geometry</a></div>
<h1 title="Enum Class WraparoundMethod" class="title">Enum Class WraparoundMethod</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="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a>&gt;
<div class="inheritance">WraparoundMethod</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/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">Wraparound­Method</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">WraparoundMethod</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a>&gt;</span></div>
<div class="block">The strategy to use for representing a region crossing the anti-meridian or other wraparound limit.
Envelopes crossing the anti-meridian have a "lower" longitude value greater than the "upper" value
("lower" and "upper" should actually be understood as "starting point" and "ending point" in those cases) —
an illustration is provided in the <a href="GeneralEnvelope.html" title="class in org.apache.sis.geometry"><code>General­Envelope</code></a> documentation.
When such regions are used with libraries or algorithms that are not designed for handling wraparound axes,
it may be necessary to convert those regions to simpler geometric representations that algorithm can handle.
The <a href="#CONTIGUOUS"><code>CONTIGUOUS</code></a>, <a href="#CONTIGUOUS_LOWER"><code>CONTIGUOUS_LOWER</code></a>, <a href="#CONTIGUOUS_UPPER"><code>CONTIGUOUS_UPPER</code></a> and <a href="#EXPAND"><code>EXPAND</code></a> enumeration
values are strategies for simplifying the problem at the cost of shifting geometries partially outside the
coordinate system domain, or making geometry bigger than necessary.
<h2>Alternatives</h2>
All methods in this enumeration change the envelope or geometry without changing the coordinate system.
Another approach for solving the anti-meridian problem is to change the range of longitude values, for example
using [0 … 360]° instead of [−180 … +180]°, and then <a href="GeneralEnvelope.html#normalize()">normalize envelopes</a>
in that new range. But this approach is interesting only when all geometries are known to fit in the new range of
longitude values, otherwise this approach is only moving the problem to another part of the world.
<h2>Generalization</h2>
The documentation in this class talks about longitude values crossing the anti-meridian because it is the most
common case. But Apache SIS actually handles wraparound axes in a generic way. The same discussion applies also
for example to the temporal axis of climatological data (January averages, February averages, …, December averages
then back to January).</div>
<dl class="notes">
<dt>Since:</dt>
<dd>1.1</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="GeneralEnvelope.html#wraparound(org.apache.sis.geometry.WraparoundMethod)"><code>General­Envelope​.wraparound(Wraparound­Method)</code></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">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum​.Enum­Desc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
</section>
</li>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<li>
<section class="constants-summary" id="enum-constant-summary">
<h2>Enum Constant Summary</h2>
<div class="caption"><span>Enum Constants</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Enum Constant</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="#CONTIGUOUS" class="member-name-link">CONTIGUOUS</a></code></div>
<div class="col-last even-row-color">
<div class="block">Make geometries contiguous by possibly shifting any corner outside the coordinate system domain.</div>
</div>
<div class="col-first odd-row-color"><code><a href="#CONTIGUOUS_LOWER" class="member-name-link">CONTIGUOUS_LOWER</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Make geometries contiguous by possibly shifting lower corner outside the coordinate system domain.</div>
</div>
<div class="col-first even-row-color"><code><a href="#CONTIGUOUS_UPPER" class="member-name-link">CONTIGUOUS_UPPER</a></code></div>
<div class="col-last even-row-color">
<div class="block">Make geometries contiguous by possibly shifting upper corner outside the coordinate system domain.</div>
</div>
<div class="col-first odd-row-color"><code><a href="#EXPAND" class="member-name-link">EXPAND</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Possibly expand the envelope to include the whole area in a single envelope or geometry.</div>
</div>
<div class="col-first even-row-color"><code><a href="#NONE" class="member-name-link">NONE</a></code></div>
<div class="col-last even-row-color">
<div class="block">No check performed for wraparound axes.</div>
</div>
<div class="col-first odd-row-color"><code><a href="#NORMALIZE" class="member-name-link">NORMALIZE</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Envelope represented in a way where "lower" value may be greater than "upper" value.</div>
</div>
<div class="col-first even-row-color"><code><a href="#SPLIT" class="member-name-link">SPLIT</a></code></div>
<div class="col-last even-row-color">
<div class="block">Possibly separate the envelope in as many simple envelopes or geometries as needed.</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-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="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">Wraparound­Method</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#valueOf(java.lang.String)" class="member-name-link">value­Of</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 even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the enum constant of this class with the specified name.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">Wraparound­Method</a>[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#values()" class="member-name-link">values</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an array containing the constants of this enum class, in
the order they are declared.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Enum">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.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/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compare­To</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describe­Constable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.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/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">get­Declaring­Class</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">value­Of</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#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>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ ENUM CONSTANT DETAIL =========== -->
<li>
<section class="constant-details" id="enum-constant-detail">
<h2>Enum Constant Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="NONE">
<h3>NONE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">NONE</span></div>
<div class="block">No check performed for wraparound axes. If a <a href="GeneralEnvelope.html#normalize()">normalized envelope</a>
crosses the anti-meridian (lower longitude value &gt; upper value), then a polygon created from
the 4 envelope corners would define a different area than the envelope:
the "interior" and "exterior" of the geometry would be interchanged.
Use this method only when knowing that the envelopes or geometries do not cross the anti-meridian.
<p><b>Example:</b>
given the <code>BBOX(+170 0, -170 1)</code> envelope, a polygon created from the 4 corners
and ignoring the fact that the envelope crosses the anti-meridian may be as below:</p>
<blockquote><pre>POLYGON(+170 0, -170 0, -170 1, +170 1, +170 0)</pre></blockquote></div>
</section>
</li>
<li>
<section class="detail" id="NORMALIZE">
<h3>NORMALIZE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">NORMALIZE</span></div>
<div class="block">Envelope represented in a way where "lower" value may be greater than "upper" value.
This method can represent envelopes crossing the anti-meridian without the sacrifices imposed by
other methods (moving a corner outside the coordinate system domain or expanding the envelope).
However, this method can be used only with algorithms designed for handling this representation.
This is the case of Apache SIS <a href="GeneralEnvelope.html" title="class in org.apache.sis.geometry"><code>General­Envelope</code></a> but often not the case of geometry libraries.
<p>This method is said "normalized" because it is the only representation in Apache SIS which is guaranteed to
produce consistent results when <a href="GeneralEnvelope.html#add(org.opengis.geometry.DirectPosition)">adding points to an envelope</a>
or when computing <a href="GeneralEnvelope.html#add(org.opengis.geometry.Envelope)">unions</a> and <a href="GeneralEnvelope.html#intersect(org.opengis.geometry.Envelope)">intersections</a> of envelopes. All other methods may produce unpredictable or sub-optimal results,
depending for example whether two geometries have been made contiguous on the same side of the
coordinate system domain (<a href="#CONTIGUOUS_LOWER"><code>CONTIGUOUS_LOWER</code></a> versus <a href="#CONTIGUOUS_UPPER"><code>CONTIGUOUS_UPPER</code></a>).</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="GeneralEnvelope.html#normalize()"><code>General­Envelope​.normalize()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="CONTIGUOUS_UPPER">
<h3>CONTIGUOUS_UPPER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">CONTIGUOUS_UPPER</span></div>
<div class="block">Make geometries contiguous by possibly shifting upper corner outside the coordinate system domain.
If a <a href="GeneralEnvelope.html#normalize()">normalized envelope</a> crosses the anti-meridian
(upper longitude value &lt; lower value), then an integer amount of cycles (360°)
will be added to the upper longitude value until we get <code>upper &gt; lower</code>.
This will usually result in an upper corner value outside the [−180 … +180]° longitude range.
<p><b>Example:</b>
given the <code>BBOX(+170 0, -170 1)</code> envelope,
a polygon created after shifting the "upper" corner (-170 1) may be as below:</p>
<blockquote><pre>POLYGON(+170 0, +190 0, +190 1, +170 1, +170 0)</pre></blockquote></div>
</section>
</li>
<li>
<section class="detail" id="CONTIGUOUS_LOWER">
<h3>CONTIGUOUS_LOWER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">CONTIGUOUS_LOWER</span></div>
<div class="block">Make geometries contiguous by possibly shifting lower corner outside the coordinate system domain.
If a <a href="GeneralEnvelope.html#normalize()">normalized envelope</a> crosses the anti-meridian
(lower longitude value &gt; upper value), then an integer amount of cycles (360°)
will be subtracted from the lower longitude value until we get <code>lower &lt; upper</code>.
This will usually result in a lower corner value outside the [−180 … +180]° longitude range.
<p><b>Example:</b>
given the <code>BBOX(+170 0, -170 1)</code> envelope,
a polygon created after shifting the "lower" corner (+170 0) may be as below:</p>
<blockquote><pre>POLYGON(-190 0, -170 0, -170 1, -190 1, -190 0)</pre></blockquote></div>
</section>
</li>
<li>
<section class="detail" id="CONTIGUOUS">
<h3>CONTIGUOUS</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">CONTIGUOUS</span></div>
<div class="block">Make geometries contiguous by possibly shifting any corner outside the coordinate system domain.
This method is equivalent to either <a href="#CONTIGUOUS_LOWER"><code>CONTIGUOUS_LOWER</code></a> or <a href="#CONTIGUOUS_UPPER"><code>CONTIGUOUS_UPPER</code></a>,
depending which method minimizes the area outside the coordinate system domain.</div>
</section>
</li>
<li>
<section class="detail" id="EXPAND">
<h3>EXPAND</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">EXPAND</span></div>
<div class="block">Possibly expand the envelope to include the whole area in a single envelope or geometry.
If a <a href="GeneralEnvelope.html#normalize()">normalized envelope</a> crosses the anti-meridian
(lower corner values &gt; upper corner values), then the envelope is expanded to span
an area from axis minimum value to axis maximum value. This ensures that the geometry contains
the original envelope area but is wider. Compared to the <a href="#CONTIGUOUS"><code>CONTIGUOUS</code></a> methods,
this <code>EXPAND</code> method does not move any parts outside the coordinate system domain.
<p><b>Example:</b>
given the <code>BBOX(+170 0, -170 1)</code> envelope,
a polygon created after expanding the envelope may be as below:</p>
<blockquote><pre>POLYGON(-180 0, +180 0, +180 1, -180 1, -180 0)</pre></blockquote></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="GeneralEnvelope.html#simplify()"><code>General­Envelope​.simplify()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="SPLIT">
<h3>SPLIT</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">SPLIT</span></div>
<div class="block">Possibly separate the envelope in as many simple envelopes or geometries as needed.
If a <a href="GeneralEnvelope.html#normalize()">normalized envelope</a> crosses the anti-meridian
(lower corner values &gt; upper corner values), then a geometry created from this envelope
will be composed of 2 or more polygons on each side of the coordinate system.
This ensures that the geometries represent exactly the envelope interior but with more complexity.
<p><b>Example:</b>
given the <code>BBOX(+170 0, -170 1)</code> envelope,
polygons created after splitting the envelope may be as below:</p>
<blockquote><pre>MULTI-POLYGON(
(-180 0, -170 0, -170 1, -180 1, -180 0)
(+170 0, +180 0, +180 1, +170 1, +170 0))</pre></blockquote></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="AbstractEnvelope.html#toSimpleEnvelopes()"><code>Abstract­Envelope​.to­Simple­Envelopes()</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="values()">
<h3>values</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
<div class="block">Returns an array containing the constants of this enum class, in
the order they are declared.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an array containing the constants of this enum class, in the order they are declared</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="valueOf(java.lang.String)">
<h3>valueOf</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="WraparoundMethod.html" title="enum class in org.apache.sis.geometry">WraparoundMethod</a></span>&nbsp;<span class="element-name">valueOf</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 the enum constant of this class with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this class. (Extraneous whitespace characters are
not permitted.)</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - the name of the enum constant to be returned.</dd>
<dt>Returns:</dt>
<dd>the enum constant with the specified name</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if this enum class has no constant with the specified name</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">Null­Pointer­Exception</a></code> - if the argument is null</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>