Package gov.nasa.worldwind.layers
Class BasicTiledImageLayerBulkDownloader
- java.lang.Object
-
- java.lang.Thread
-
- gov.nasa.worldwind.retrieve.BulkRetrievalThread
-
- gov.nasa.worldwind.layers.BasicTiledImageLayerBulkDownloader
-
- All Implemented Interfaces:
java.lang.Runnable
public class BasicTiledImageLayerBulkDownloader extends BulkRetrievalThread
Downloads imagery not currently available in the WorldWind file cache or a specified file store. The class derives fromThread
and is meant to operate in its own thread.The sector and resolution associated with the downloader are specified during construction and are final.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
BasicTiledImageLayerBulkDownloader.BulkDownloadPostProcessor
-
Field Summary
Fields Modifier and Type Field Description protected static long
DEFAULT_AVERAGE_FILE_SIZE
protected BasicTiledImageLayer
layer
protected int
level
protected static int
MAX_TILE_COUNT_PER_REGION
protected java.util.ArrayList<TextureTile>
missingTiles
-
Fields inherited from class gov.nasa.worldwind.retrieve.BulkRetrievalThread
fileStore, progress, resolution, retrievable, RETRIEVAL_SERVICE_POLL_DELAY, retrievalListeners, sector
-
-
Constructor Summary
Constructors Constructor Description BasicTiledImageLayerBulkDownloader(BasicTiledImageLayer layer, Sector sector, double resolution, FileStore fileStore, BulkRetrievalListener listener)
Constructs a downloader to retrieve imagery not currently available in a specified file store.BasicTiledImageLayerBulkDownloader(BasicTiledImageLayer layer, Sector sector, double resolution, BulkRetrievalListener listener)
Constructs a downloader to retrieve imagery not currently available in the WorldWind file cache.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
callRetrievalListeners(Retriever retriever, TextureTile tile)
protected long
computeAverageTileSize(java.io.File dir)
protected Sector[]
computeRandomRegions(Sector sector, int div, int numRegions)
protected int
computeRegionDivisions(Sector sector, int levelNumber, int maxCount)
protected BasicTiledImageLayer.DownloadPostProcessor
createBulkDownloadPostProcessor(TextureTile tile)
protected long
estimateAverageTileSize()
protected long
estimateMissingTilesCount(int numSamples)
protected long
getEstimatedMissingDataSize()
Get the estimated size in byte of the missing imagery for the object'sSector
, resolution and file store.protected java.util.ArrayList<TextureTile>
getMissingTilesInSector(Sector sector, int levelNumber)
protected java.util.Iterator<Sector>
getRegionIterator(Sector sector, int div)
protected boolean
isTileLocalOrAbsent(TextureTile tile)
protected void
normalizeProgress()
protected void
removeAbsentTile(TextureTile tile)
protected void
removeRetrievedTile(TextureTile tile)
void
run()
protected void
submitMissingTilesRequests()
-
Methods inherited from class gov.nasa.worldwind.retrieve.BulkRetrievalThread
addRetrievalListener, callRetrievalListeners, getFileStore, getProgress, getResolution, getRetrievable, getSector, hasRetrievalListeners, removeRetrievalListener
-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, toString, yield
-
-
-
-
Field Detail
-
MAX_TILE_COUNT_PER_REGION
protected static final int MAX_TILE_COUNT_PER_REGION
- See Also:
- Constant Field Values
-
DEFAULT_AVERAGE_FILE_SIZE
protected static final long DEFAULT_AVERAGE_FILE_SIZE
- See Also:
- Constant Field Values
-
layer
protected final BasicTiledImageLayer layer
-
level
protected final int level
-
missingTiles
protected java.util.ArrayList<TextureTile> missingTiles
-
-
Constructor Detail
-
BasicTiledImageLayerBulkDownloader
public BasicTiledImageLayerBulkDownloader(BasicTiledImageLayer layer, Sector sector, double resolution, BulkRetrievalListener listener)
Constructs a downloader to retrieve imagery not currently available in the WorldWind file cache.The thread returned is not started during construction, the caller must start the thread.
- Parameters:
layer
- the layer for which to download imagery.sector
- the sector to download data for. This value is final.resolution
- the target resolution, provided in radians of latitude per texel. This value is final.listener
- an optional retrieval listener. May be null.- Throws:
java.lang.IllegalArgumentException
- if either the layer or sector are null, or the resolution is less than zero.
-
BasicTiledImageLayerBulkDownloader
public BasicTiledImageLayerBulkDownloader(BasicTiledImageLayer layer, Sector sector, double resolution, FileStore fileStore, BulkRetrievalListener listener)
Constructs a downloader to retrieve imagery not currently available in a specified file store.The thread returned is not started during construction, the caller must start the thread.
- Parameters:
layer
- the layer for which to download imagery.sector
- the sector to download data for. This value is final.resolution
- the target resolution, provided in radians of latitude per texel. This value is final.fileStore
- the file store in which to place the downloaded elevations.listener
- an optional retrieval listener. May be null.- Throws:
java.lang.IllegalArgumentException
- if either the layer, the sector or file store are null, or the resolution is less than zero.
-
-
Method Detail
-
run
public void run()
- Specified by:
run
in interfacejava.lang.Runnable
- Specified by:
run
in classBulkRetrievalThread
-
submitMissingTilesRequests
protected void submitMissingTilesRequests() throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
createBulkDownloadPostProcessor
protected BasicTiledImageLayer.DownloadPostProcessor createBulkDownloadPostProcessor(TextureTile tile)
-
callRetrievalListeners
protected void callRetrievalListeners(Retriever retriever, TextureTile tile)
-
removeRetrievedTile
protected void removeRetrievedTile(TextureTile tile)
-
removeAbsentTile
protected void removeAbsentTile(TextureTile tile)
-
normalizeProgress
protected void normalizeProgress()
-
getEstimatedMissingDataSize
protected long getEstimatedMissingDataSize()
Get the estimated size in byte of the missing imagery for the object'sSector
, resolution and file store. Note that the target resolution must be provided in radian latitude per texel - which is the resolution in meter divided by the globe radius.- Returns:
- the estimated size in byte of the missing imagery.
-
estimateMissingTilesCount
protected long estimateMissingTilesCount(int numSamples)
-
computeRegionDivisions
protected int computeRegionDivisions(Sector sector, int levelNumber, int maxCount)
-
computeRandomRegions
protected Sector[] computeRandomRegions(Sector sector, int div, int numRegions)
-
getMissingTilesInSector
protected java.util.ArrayList<TextureTile> getMissingTilesInSector(Sector sector, int levelNumber) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
isTileLocalOrAbsent
protected boolean isTileLocalOrAbsent(TextureTile tile)
-
estimateAverageTileSize
protected long estimateAverageTileSize()
-
computeAverageTileSize
protected long computeAverageTileSize(java.io.File dir)
-
-