doc/JavaDoc/ch/epfl/sdp/peakar/points/POICache.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_242-release) on Fri Jun 04 18:15:39 CEST 2021 -->
<title>POICache</title>
<meta name="date" content="2021-06-04">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="POICache";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../ch/epfl/sdp/peakar/points/LineOfSight.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../ch/epfl/sdp/peakar/points/POICacheContent.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?ch/epfl/sdp/peakar/points/POICache.html" target="_top">Frames</a></li>
<li><a href="POICache.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li>Field | </li>
<li>Constr | </li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li>Constr | </li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">ch.epfl.sdp.peakar.points</div>
<h2 title="Class POICache" class="title">Class POICache</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>ch.epfl.sdp.peakar.points.POICache</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">POICache</span>
extends java.lang.Object</pre>
<div class="block">Class used to cache list of POIs in the surrounding
The list of POI is converted to JSON, the corresponding bounding box
is added to the JSON and everything is saved in the cache folder
of the android device</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#deleteCacheFile-java.io.File-">deleteCacheFile</a></span>(java.io.File cacheDir)</code>
<div class="block">Deletes cache file from cache folder
/!\ this function should be used only to cleanup the cache
when the POI detection range has changed</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.ArrayList<<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#getCachedPOIPoints-java.io.File-">getCachedPOIPoints</a></span>(java.io.File cacheDir)</code>
<div class="block">Returns the list of POI points from the cache</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>androidx.core.util.Pair<int[][],java.lang.Double></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#getCachedTopography-java.io.File-">getCachedTopography</a></span>(java.io.File cacheDir)</code>
<div class="block">Return the cached topography map</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html" title="class in ch.epfl.sdp.peakar.points">POICache</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#getInstance--">getInstance</a></span>()</code>
<div class="block">Get singleton</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#isCacheFilePresent-java.io.File-">isCacheFilePresent</a></span>(java.io.File cacheDir)</code>
<div class="block">Checks if cache file is present in device Cache folder</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#isUserInBoundingBox-ch.epfl.sdp.peakar.points.UserPoint-java.io.File-">isUserInBoundingBox</a></span>(<a href="../../../../../ch/epfl/sdp/peakar/points/UserPoint.html" title="class in ch.epfl.sdp.peakar.points">UserPoint</a> userPoint,
java.io.File cacheDir)</code>
<div class="block">Check if the user is located inside the middle part of the bounding box
Using cached bounding box, a shrink-ed bounding box is computed.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#savePOIDataToCache-java.util.ArrayList-org.osmdroid.util.BoundingBox-androidx.core.util.Pair-java.io.File-">savePOIDataToCache</a></span>(java.util.ArrayList<<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>> cachedPOIPoints,
org.osmdroid.util.BoundingBox cachedBoundingBox,
androidx.core.util.Pair<int[][],java.lang.Double> cachedTopography,
java.io.File cacheDir)</code>
<div class="block">Save downloaded POIs, bounding box and topography map to cache file</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getInstance--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInstance</h4>
<pre>public static <a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html" title="class in ch.epfl.sdp.peakar.points">POICache</a> getInstance()</pre>
<div class="block">Get singleton</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>POICache instance</dd>
</dl>
</li>
</ul>
<a name="savePOIDataToCache-java.util.ArrayList-org.osmdroid.util.BoundingBox-androidx.core.util.Pair-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>savePOIDataToCache</h4>
<pre>public void savePOIDataToCache(java.util.ArrayList<<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>> cachedPOIPoints,
org.osmdroid.util.BoundingBox cachedBoundingBox,
androidx.core.util.Pair<int[][],java.lang.Double> cachedTopography,
java.io.File cacheDir)</pre>
<div class="block">Save downloaded POIs, bounding box and topography map to cache file</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cachedPOIPoints</code> - POI points to cache</dd>
<dd><code>cachedBoundingBox</code> - bounding box to cache</dd>
<dd><code>cachedTopography</code> - topography map to cache (3D MAP)</dd>
<dd><code>cacheDir</code> - path to cache directory</dd>
</dl>
</li>
</ul>
<a name="isUserInBoundingBox-ch.epfl.sdp.peakar.points.UserPoint-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUserInBoundingBox</h4>
<pre>public boolean isUserInBoundingBox(<a href="../../../../../ch/epfl/sdp/peakar/points/UserPoint.html" title="class in ch.epfl.sdp.peakar.points">UserPoint</a> userPoint,
java.io.File cacheDir)</pre>
<div class="block">Check if the user is located inside the middle part of the bounding box
Using cached bounding box, a shrink-ed bounding box is computed.
The methods then checks if the user position is somewhere inside this
smaller bounding box</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userPoint</code> - user location</dd>
<dd><code>cacheDir</code> - path to cache directory</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the user is in the middle of the cached bounding box
false if not</dd>
</dl>
</li>
</ul>
<a name="isCacheFilePresent-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCacheFilePresent</h4>
<pre>public boolean isCacheFilePresent(java.io.File cacheDir)</pre>
<div class="block">Checks if cache file is present in device Cache folder</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache folder</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if file is present. False if no file found</dd>
</dl>
</li>
</ul>
<a name="getCachedPOIPoints-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCachedPOIPoints</h4>
<pre>public java.util.ArrayList<<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>> getCachedPOIPoints(java.io.File cacheDir)</pre>
<div class="block">Returns the list of POI points from the cache</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache folder</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of POI Points</dd>
</dl>
</li>
</ul>
<a name="getCachedTopography-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCachedTopography</h4>
<pre>public androidx.core.util.Pair<int[][],java.lang.Double> getCachedTopography(java.io.File cacheDir)</pre>
<div class="block">Return the cached topography map</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache directory</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>topography map</dd>
</dl>
</li>
</ul>
<a name="deleteCacheFile-java.io.File-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>deleteCacheFile</h4>
<pre>public void deleteCacheFile(java.io.File cacheDir)</pre>
<div class="block">Deletes cache file from cache folder
/!\ this function should be used only to cleanup the cache
when the POI detection range has changed</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache directory</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../ch/epfl/sdp/peakar/points/LineOfSight.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../ch/epfl/sdp/peakar/points/POICacheContent.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?ch/epfl/sdp/peakar/points/POICache.html" target="_top">Frames</a></li>
<li><a href="POICache.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li>Field | </li>
<li>Constr | </li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li>Constr | </li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>