blob: da27989975f193445d1546ee52af9697fb15bd1d [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>org.apache.sis.storage.tiling (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.storage.tiling">
<meta name="generator" content="javadoc/PackageWriterImpl">
<meta name="keywords" content="org.apache.sis.storage.tiling package">
<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="package-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 class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-use.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#package">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Package:</p>
<ul>
<li><a href="#package-description">Description</a></li>
<li><a href="#related-package-summary">Related Packages</a></li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li><a href="#package-description">Description</a>&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</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">
<div class="header">
<h1 title="Package org.apache.sis.storage.tiling" class="title">Package org.apache.sis.storage.tiling</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">org.apache.sis.storage.tiling</span></div>
<section class="package-description" id="package-description">
<div class="block">Base types for retrieving and saving tiles in resources.
A <a href="TiledResource.html" title="interface in org.apache.sis.storage.tiling"><code>Tiled­Resource</code></a> if a resource capable to describe its tiling schemes as <a href="TileMatrixSet.html" title="interface in org.apache.sis.storage.tiling"><code>Tile­Matrix­Set</code></a> instances.
A <a href="TileMatrixSet.html" title="interface in org.apache.sis.storage.tiling"><code>Tile­Matrix­Set</code></a> is a collection of <a href="TileMatrix.html" title="interface in org.apache.sis.storage.tiling"><code>Tile­Matrix</code></a> instances in the same CRS but at different scale levels.
A <a href="TileMatrix.html" title="interface in org.apache.sis.storage.tiling"><code>Tile­Matrix</code></a> is a collection of <a href="Tile.html" title="interface in org.apache.sis.storage.tiling"><code>Tile</code></a> instances with the same size and properties placed on a regular grid with no overlapping.
The "tile" word is used because of its wide usage with two-dimensional data, but actually this package has no restriction
on the number of dimensions and can work with multi-dimensional "tiles" as well.
<h2>References</h2>
<ul>
<li><a href="https://www.ogc.org/standards/tms">OGC Two Dimensional Tile Matrix Set</a> — the core standard used in this package.</li>
<li><a href="https://www.ogc.org/standards/wmts">OGC Web Map Tile Service (WMTS)</a> — a common use of above standard.</li>
<li><a href="https://docs.opengeospatial.org/is/17-066r1/17-066r1.html">OGC Geopackage: Extension for Tiled Gridded Coverage Data</a> — another common use.</li>
<li><a href="https://docs.ogc.org/per/18-074.html">OGC Geopackage: Extension for vector tiles</a> — experimental work for tiled geometries.</li>
</ul>
The concepts developed in above references are also used, often with different names, by other projects such as
<a href="https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification">OSGeo Tile Map Service Specification</a>,
<a href="https://github.com/CesiumGS/quantized-mesh">Cesium QuantizedMesh</a>,
<a href="https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames">Open Street Map: Slippy Map</a>,
<a href="https://developers.google.com/maps/documentation/javascript/coordinates">Google Map</a> and
<a href="https://docs.mapbox.com/mapbox-tiling-service/guides/">MapBox Tiling service</a>.
<h2>Relationship with OGC specifications</h2>
The <code>Tile­Matrix</code> and <code>Tile­Matrix­Set</code> class names are reused as defined by OGC.
The "2D" suffix in class names is omitted because this package is fully multi-dimensional.
The concept of "tiling scheme" is encapsulated in a <a href="../../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Geometry</code></a>.
<h3>Departures with OGC specifications</h3>
The OGC <code>Tile­Matrix­Limits</code> class is replaced by <a href="../../coverage/grid/GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a>.
The OGC restriction against negative numbers is removed (Apache SIS accepts negative tile indices).
The <var>tile span</var> and <var>tile matrix min/max</var> coefficients are replaced by a more generic
"grid to CRS" <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>, usually affine but not necessarily.
Users may need to enforce above OGC restrictions themselves if compatibility with OGC specification is desired).
<h2>Relationship with Java2D rendered image</h2>
OGC tiles can be mapped to <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTile(int,int)" title="class or interface in java.awt.image" class="external-link">Java2D tiles</a>
with the following restrictions:
<ul>
<li>Java2D tile indices and pixel indices are 32 bits integer instead of 64 bits.
See <a href="../../coverage/grid/GridCoverage.html#render(org.apache.sis.coverage.grid.GridExtent)">grid coverage render</a>
(in particular the relative pixel coordinates) for the workaround applied in Apache SIS.</li>
<li>Java2D does not support coalescence coefficient (used in OGC tiles for compensating distortions near poles).
Tiles in Java2D are expanded as needed as if the <code>Tile­Matrix</code> had no coalescence.</li>
</ul></div>
<dl class="notes">
<dt>Since:</dt>
<dd>1.2</dd>
<p><font size="-1">Defined in the <code>sis-storage</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="../package-summary.html">org.apache.sis.storage</a></div>
<div class="col-last even-row-color">
<div class="block"><a href="../DataStore.html" title="class in org.apache.sis.storage">Data store</a> base types for retrieving and saving geospatial data
in various storage formats.</div>
</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab1', 2)" class="table-tab">Interfaces</button><button id="class-summary-tab3" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab3', 2)" class="table-tab">Enum Classes</button></div>
<div id="class-summary.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab1"><a href="Tile.html" title="interface in org.apache.sis.storage.tiling">Tile</a></div>
<div class="col-last even-row-color class-summary class-summary-tab1">
<div class="block">A small hyper-rectangular representation of data which is part of a tiling scheme.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="TiledResource.html" title="interface in org.apache.sis.storage.tiling">TiledResource</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">A resource which content can be accessed by smaller chunks called tiles.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab1"><a href="TileMatrix.html" title="interface in org.apache.sis.storage.tiling">TileMatrix</a></div>
<div class="col-last even-row-color class-summary class-summary-tab1">
<div class="block">A collection of tiles with the same size and properties placed on a regular grid with no overlapping.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="TileMatrixSet.html" title="interface in org.apache.sis.storage.tiling">TileMatrixSet</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">A collection of <code>Tile­Matrix</code> in the same CRS but at different scale levels.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab3"><a href="TileStatus.html" title="enum class in org.apache.sis.storage.tiling">TileStatus</a></div>
<div class="col-last even-row-color class-summary class-summary-tab3">
<div class="block">Information about the availability of a tile.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="WritableTiledResource.html" title="interface in org.apache.sis.storage.tiling">WritableTiledResource</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">A <code>Tiled­Resource</code> that can write and delete tile matrix sets.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab1"><a href="WritableTileMatrix.html" title="interface in org.apache.sis.storage.tiling">WritableTileMatrix</a></div>
<div class="col-last even-row-color class-summary class-summary-tab1">
<div class="block">A <code>Tile­Matrix</code> that can write and delete tiles.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="WritableTileMatrixSet.html" title="interface in org.apache.sis.storage.tiling">WritableTileMatrixSet</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">A <code>Tile­Matrix­Set</code> that can write and delete tile matrices.</div>
</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</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>