public abstract class TiledImageLayer extends AbstractLayer
| Modifier and Type | Class and Description | 
|---|---|
| protected class  | TiledImageLayer.CompositionRetrievalPostProcessor | 
| protected static class  | TiledImageLayer.LevelComparer | 
| Modifier and Type | Field and Description | 
|---|---|
| protected boolean | atMaxResolution | 
| protected TextureTile | currentResourceTile | 
| protected ArrayList<TextureTile> | currentTiles | 
| protected double | detailHint | 
| protected double | detailHintOrigin | 
| protected boolean | drawBoundingVolumes | 
| protected boolean | drawTileBoundaries | 
| protected boolean | forceLevelZeroLoads | 
| protected static TiledImageLayer.LevelComparer | levelComparer | 
| protected LevelSet | levels | 
| protected boolean | levelZeroLoaded | 
| protected PriorityBlockingQueue<Runnable> | requestQ | 
| protected boolean | retainLevelZeroTiles | 
| protected ArrayList<String> | supportedImageFormats | 
| protected String | textureFormat | 
| protected String | tileCountName | 
| protected ArrayList<TextureTile> | topLevels | 
| protected boolean | useMipMaps | 
| protected boolean | useTransparentTextures | 
| Constructor and Description | 
|---|
| TiledImageLayer(LevelSet levelSet) | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | addTile(DrawContext dc,
       TextureTile tile) | 
| protected void | addTileOrDescendants(DrawContext dc,
                    TextureTile tile) | 
| protected void | addTileToCurrent(TextureTile tile) | 
| protected void | assembleTiles(DrawContext dc) | 
| protected boolean | atMaxLevel(DrawContext dc) | 
| protected void | checkTextureExpiration(DrawContext dc,
                      List<TextureTile> tiles) | 
| BufferedImage | composeImageForSector(Sector sector,
                     int canvasWidth,
                     int canvasHeight,
                     double aspectRatio,
                     int levelNumber,
                     String mimeType,
                     boolean abortOnError,
                     BufferedImage image,
                     int timeout)Create an image for the portion of this layer lying within a specified sector. | 
| int | computeLevelForResolution(Sector sector,
                         double resolution) | 
| protected Vec4 | computeReferencePoint(DrawContext dc) | 
| long | countImagesInSector(Sector sector) | 
| long | countImagesInSector(Sector sector,
                   int levelNumber) | 
| static Document | createTiledImageLayerConfigDocument(AVList params)Creates a configuration document for a TiledImageLayer described by the specified params. | 
| static Element | createTiledImageLayerConfigElements(AVList params,
                                   Element context)Appends TiledImageLayer configuration parameters as elements to the specified context. | 
| protected void | createTopLevelTiles() | 
| protected void | doRender(DrawContext dc) | 
| protected void | downloadImage(TextureTile tile,
             String mimeType,
             int timeout) | 
| protected void | draw(DrawContext dc) | 
| protected void | drawBoundingVolumes(DrawContext dc,
                   ArrayList<TextureTile> tiles) | 
| protected void | drawTileIDs(DrawContext dc,
           ArrayList<TextureTile> tiles) | 
| protected abstract void | forceTextureLoad(TextureTile tile) | 
| List<String> | getAvailableImageFormats() | 
| String | getDefaultImageFormat() | 
| protected double | getDetailFactor() | 
| double | getDetailHint()Indicates the layer's detail hint, which is described in  setDetailHint(double). | 
| protected BufferedImage | getImage(TextureTile tile,
        String mimeType,
        int timeout) | 
| protected static AVList | getLegacyTiledImageLayerConfigParams(Element domElement,
                                    AVList params)Parses TiledImageLayer configuration parameters from previous versions of configuration documents. | 
| LevelSet | getLevels() | 
| Double | getMaxEffectiveAltitude(Double radius)Indicates the altitude above which this layer likely has low value or is not expected to be active. | 
| Double | getMinEffectiveAltitude(Double radius)Indicates the altitude below which this layer likely has low value or is not expected to be active. | 
| protected Vec4 | getReferencePoint(DrawContext dc) | 
| protected PriorityBlockingQueue<Runnable> | getRequestQ() | 
| String | getTextureFormat()Returns the format used to store images in texture memory, or null if images are stored in their native format. | 
| static AVList | getTiledImageLayerConfigParams(Element domElement,
                              AVList params)Parses TiledImageLayer configuration parameters from the specified DOM document. | 
| TextureTile[][] | getTilesInSector(Sector sector,
                int levelNumber) | 
| List<TextureTile> | getTopLevels() | 
| Object | getValue(String key)Returns the value for a specified key. | 
| boolean | isAtMaxResolution()Indicates whether the most recent rendering of the layer rendered the highest resolution imagery or other data
 available. | 
| boolean | isDrawBoundingVolumes() | 
| boolean | isDrawTileBoundaries() | 
| boolean | isDrawTileIDs() | 
| boolean | isForceLevelZeroLoads() | 
| boolean | isImageFormatAvailable(String imageFormat) | 
| boolean | isLayerInView(DrawContext dc)Indicates whether the layer is in the view. | 
| boolean | isMultiResolution()Indicates whether the layer provides multiple resolutions of imagery or other data. | 
| boolean | isRetainLevelZeroTiles() | 
| protected boolean | isTileVisible(DrawContext dc,
             TextureTile tile) | 
| boolean | isUseMipMaps() | 
| boolean | isUseTransparentTextures() | 
| protected void | loadAllTopLevelTextures(DrawContext dc) | 
| protected boolean | meetsRenderCriteria(DrawContext dc,
                   TextureTile tile) | 
| protected boolean | needToSplit(DrawContext dc,
           Sector sector,
           Level level) | 
| void | render(DrawContext dc)Cause the layer to draw its representation. | 
| protected BufferedImage | requestImage(TextureTile tile,
            String mimeType) | 
| protected abstract void | requestTexture(DrawContext dc,
              TextureTile tile) | 
| protected void | retrieveLocalImage(TextureTile tile,
                  String mimeType,
                  int timeout) | 
| protected void | retrieveRemoteImage(TextureTile tile,
                   String mimeType,
                   int timeout) | 
| protected void | sendRequests() | 
| protected void | setAvailableImageFormats(String[] formats) | 
| protected void | setBlendingFunction(DrawContext dc) | 
| void | setDetailHint(double detailHint)Modifies the default relationship of image resolution to screen resolution as the viewing altitude changes. | 
| void | setDrawBoundingVolumes(boolean drawBoundingVolumes) | 
| void | setDrawTileBoundaries(boolean drawTileBoundaries) | 
| void | setDrawTileIDs(boolean drawTileIDs) | 
| void | setExpiryTime(long expiryTime)Specifies the time of the layer's most recent dataset update, beyond which cached data is invalid. | 
| void | setForceLevelZeroLoads(boolean forceLevelZeroLoads) | 
| void | setName(String name)Set the layer's name. | 
| void | setRetainLevelZeroTiles(boolean retainLevelZeroTiles) | 
| void | setTextureFormat(String textureFormat)Specifies the format used to store images in texture memory, or null to store images in their native format. | 
| void | setUseMipMaps(boolean useMipMaps) | 
| void | setUseTransparentTextures(boolean useTransparentTextures) | 
| Object | setValue(String key,
        Object value)Adds a key/value pair to the list. | 
createLayerConfigElements, dispose, doPick, doPreRender, getDataFileStore, getExpiryTime, getLayerConfigParams, getMaxActiveAltitude, getMinActiveAltitude, getName, getOpacity, getRestorableState, getScale, getScreenCredit, isEnabled, isLayerActive, isLayerConfigDocument, isNetworkRetrievalEnabled, isPickEnabled, pick, preRender, restoreState, setDataFileStore, setEnabled, setMaxActiveAltitude, setMinActiveAltitude, setNetworkRetrievalEnabled, setOpacity, setPickEnabled, setScreenCredit, toStringonMessage, propertyChangeaddPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValuesclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValuespropertyChangeonMessageprotected boolean atMaxResolution
protected TextureTile currentResourceTile
protected ArrayList<TextureTile> currentTiles
protected double detailHint
protected double detailHintOrigin
protected boolean drawBoundingVolumes
protected boolean drawTileBoundaries
protected boolean forceLevelZeroLoads
protected static final TiledImageLayer.LevelComparer levelComparer
protected final LevelSet levels
protected boolean levelZeroLoaded
protected PriorityBlockingQueue<Runnable> requestQ
protected boolean retainLevelZeroTiles
protected String textureFormat
protected String tileCountName
protected ArrayList<TextureTile> topLevels
protected boolean useMipMaps
protected boolean useTransparentTextures
public TiledImageLayer(LevelSet levelSet)
protected void addTile(DrawContext dc, TextureTile tile)
protected void addTileOrDescendants(DrawContext dc, TextureTile tile)
protected void addTileToCurrent(TextureTile tile)
protected void assembleTiles(DrawContext dc)
protected boolean atMaxLevel(DrawContext dc)
protected void checkTextureExpiration(DrawContext dc, List<TextureTile> tiles)
public BufferedImage composeImageForSector(Sector sector, int canvasWidth, int canvasHeight, double aspectRatio, int levelNumber, String mimeType, boolean abortOnError, BufferedImage image, int timeout) throws Exception
sector - the sector of interest.canvasWidth - the width of the canvas.canvasHeight - the height of the canvas.aspectRatio - the aspect ratio, width/height, of the window. If the aspect ratio is greater or equal to
                     one, the full width of the canvas is used for the image; the height used is proportional to
                     the inverse of the aspect ratio. If the aspect ratio is less than one, the full height of the
                     canvas is used, and the width used is proportional to the aspect ratio.levelNumber - the target level of the tiled image layer.mimeType - the type of image to create, e.g., "png" and "jpg".abortOnError - indicates whether to stop assembling the image if an error occurs. If false, processing
                     continues until all portions of the layer that intersect the specified sector have been added
                     to the image. Portions for which an error occurs will be blank.image - if non-null, a BufferedImage in which to place the image. If null, a new buffered
                     image is created. The image must be the width and height specified in the
                     canvasWidth and canvasHeight arguments.timeout - The amount of time to allow for reading the image from the server.canvasWidth and
 canvasHeight. If the specified aspect ratio is one, all pixels contain values. If the aspect ratio
 is greater than one, a full-width segment along the top of the canvas is blank. If the aspect ratio is less than
 one, a full-height segment along the right side of the canvase is blank. If the image argument was
 non-null, that buffered image is returned.IllegalArgumentException - if sector is null.Exception;public int computeLevelForResolution(Sector sector, double resolution)
protected Vec4 computeReferencePoint(DrawContext dc)
public long countImagesInSector(Sector sector)
public long countImagesInSector(Sector sector, int levelNumber)
public static Document createTiledImageLayerConfigDocument(AVList params)
BasicTiledImageLayer.params - parameters describing the TiledImageLayer.public static Element createTiledImageLayerConfigElements(AVList params, Element context)
| Parameter | Element Path | Type | 
|---|---|---|
| AVKey.SERVICE_NAME | Service/@serviceName | String | 
| AVKey.IMAGE_FORMAT | ImageFormat | String | 
| AVKey.AVAILABLE_IMAGE_FORMATS | AvailableImageFormats/ImageFormat | String array | 
| AVKey.FORCE_LEVEL_ZERO_LOADS | ForceLevelZeroLoads | Boolean | 
| AVKey.RETAIN_LEVEL_ZERO_TILES | RetainLevelZeroTiles | Boolean | 
| AVKey.TEXTURE_FORMAT | TextureFormat | String | 
| AVKey.USE_MIP_MAPS | UseMipMaps | Boolean | 
| AVKey.USE_TRANSPARENT_TEXTURES | UseTransparentTextures | Boolean | 
| AVKey.URL_CONNECT_TIMEOUT | RetrievalTimeouts/ConnectTimeout/Time | Integer milliseconds | 
| AVKey.URL_READ_TIMEOUT | RetrievalTimeouts/ReadTimeout/Time | Integer milliseconds | 
| AVKey.RETRIEVAL_QUEUE_STALE_REQUEST_LIMIT | RetrievalTimeouts/StaleRequestLimit/Time | Integer milliseconds | 
AbstractLayer.createLayerConfigElements(gov.nasa.worldwind.avlist.AVList,
 org.w3c.dom.Element) and DataConfigurationUtils.createLevelSetConfigElements(gov.nasa.worldwind.avlist.AVList,
 org.w3c.dom.Element).params - the key-value pairs which define the TiledImageLayer configuration parameters.context - the XML document root on which to append TiledImageLayer configuration elements.IllegalArgumentException - if either the parameters or the context are null.protected void createTopLevelTiles()
protected final void doRender(DrawContext dc)
doRender in class AbstractLayerprotected void downloadImage(TextureTile tile, String mimeType, int timeout) throws Exception
Exceptionprotected void draw(DrawContext dc)
protected void drawBoundingVolumes(DrawContext dc, ArrayList<TextureTile> tiles)
protected void drawTileIDs(DrawContext dc, ArrayList<TextureTile> tiles)
protected abstract void forceTextureLoad(TextureTile tile)
public String getDefaultImageFormat()
protected double getDetailFactor()
public double getDetailHint()
setDetailHint(double).setDetailHint(double)protected BufferedImage getImage(TextureTile tile, String mimeType, int timeout) throws Exception
Exceptionprotected static AVList getLegacyTiledImageLayerConfigParams(Element domElement, AVList params)
| Parameter | Element Path | Type | 
|---|---|---|
| AVKey.TEXTURE_FORMAT | CompressTextures | "image/dds" if CompressTextures is "true"; null otherwise | 
domElement - the XML document root to parse for legacy TiledImageLayer configuration parameters.params - the output key-value pairs which recieve the TiledImageLayer configuration parameters. A null
                   reference is permitted.IllegalArgumentException - if the document is null.public LevelSet getLevels()
public Double getMaxEffectiveAltitude(Double radius)
LayerLayer.setMaxActiveAltitude(double) and does not reflect it.
 
 The returned altitude is valid when the field of view indicated by View.getFieldOfView()
 is set to its default value. Changing the field of view to any value other than the default may change this
 layer's maximum effective altitude, but the returned altitude will not reflect that change.getMaxEffectiveAltitude in interface LayergetMaxEffectiveAltitude in class AbstractLayerradius - the radius of the Globe the layer is associated with. May be
               null, in which case the Earth's equatorial radius is used, Earth.WGS84_EQUATORIAL_RADIUS.public Double getMinEffectiveAltitude(Double radius)
LayerLayer.setMinActiveAltitude(double) and does not reflect it.
 
 The returned altitude is valid when the field of view indicated by View.getFieldOfView()
 is set to its default value. Changing the field of view to any value other than the default may change this
 layer's minimum effective altitude, but the returned altitude will not reflect that change.getMinEffectiveAltitude in interface LayergetMinEffectiveAltitude in class AbstractLayerradius - the radius of the Globe the layer is associated with. May be
               null, in which case the Earth's equatorial radius is used, Earth.WGS84_EQUATORIAL_RADIUS.protected Vec4 getReferencePoint(DrawContext dc)
protected PriorityBlockingQueue<Runnable> getRequestQ()
public String getTextureFormat()
setTextureFormat(String)public static AVList getTiledImageLayerConfigParams(Element domElement, AVList params)
| Parameter | Element Path | Type | 
|---|---|---|
| AVKey.SERVICE_NAME | Service/@serviceName | String | 
| AVKey.IMAGE_FORMAT | ImageFormat | String | 
| AVKey.AVAILABLE_IMAGE_FORMATS | AvailableImageFormats/ImageFormat | String array | 
| AVKey.FORCE_LEVEL_ZERO_LOADS | ForceLevelZeroLoads | Boolean | 
| AVKey.RETAIN_LEVEL_ZERO_TILES | RetainLevelZeroTiles | Boolean | 
| AVKey.TEXTURE_FORMAT | TextureFormat | Boolean | 
| AVKey.USE_MIP_MAPS | UseMipMaps | Boolean | 
| AVKey.USE_TRANSPARENT_TEXTURES | UseTransparentTextures | Boolean | 
| AVKey.URL_CONNECT_TIMEOUT | RetrievalTimeouts/ConnectTimeout/Time | Integer milliseconds | 
| AVKey.URL_READ_TIMEOUT | RetrievalTimeouts/ReadTimeout/Time | Integer milliseconds | 
| AVKey.RETRIEVAL_QUEUE_STALE_REQUEST_LIMIT | RetrievalTimeouts/StaleRequestLimit/Time | Integer milliseconds | 
AbstractLayer.getLayerConfigParams(org.w3c.dom.Element,
 gov.nasa.worldwind.avlist.AVList) and DataConfigurationUtils.getLevelSetConfigParams(org.w3c.dom.Element,
 gov.nasa.worldwind.avlist.AVList).domElement - the XML document root to parse for TiledImageLayer configuration parameters.params - the output key-value pairs which recieve the TiledImageLayer configuration parameters. A null
                   reference is permitted.IllegalArgumentException - if the document is null.public TextureTile[][] getTilesInSector(Sector sector, int levelNumber)
public List<TextureTile> getTopLevels()
public Object getValue(String key)
AVListgetValue in interface AVListgetValue in class AVListImplkey - the attribute name. May not be null.null.public boolean isAtMaxResolution()
Layertrue.
 Typically such layers also return false from Layer.isMultiResolution().isAtMaxResolution in interface LayerisAtMaxResolution in class AbstractLayertrue if the layer is at maximum resolution, otherwise false.public boolean isDrawBoundingVolumes()
public boolean isDrawTileBoundaries()
public boolean isDrawTileIDs()
public boolean isForceLevelZeroLoads()
public boolean isImageFormatAvailable(String imageFormat)
public boolean isLayerInView(DrawContext dc)
LayerisLayerInView in interface LayerisLayerInView in class AbstractLayerdc - the current draw contexttrue if the layer is in the view, false otherwise.public boolean isMultiResolution()
LayerisMultiResolution in interface LayerisMultiResolution in class AbstractLayertrue if the layer provides multiple resolutions, else false.public boolean isRetainLevelZeroTiles()
protected boolean isTileVisible(DrawContext dc, TextureTile tile)
public boolean isUseMipMaps()
public boolean isUseTransparentTextures()
protected void loadAllTopLevelTextures(DrawContext dc)
protected boolean meetsRenderCriteria(DrawContext dc, TextureTile tile)
protected boolean needToSplit(DrawContext dc, Sector sector, Level level)
public void render(DrawContext dc)
Layerrender in interface Layerrender in class AbstractLayerdc - the current draw contextprotected BufferedImage requestImage(TextureTile tile, String mimeType) throws URISyntaxException, InterruptedIOException, MalformedURLException
protected abstract void requestTexture(DrawContext dc, TextureTile tile)
protected void retrieveLocalImage(TextureTile tile, String mimeType, int timeout) throws Exception
Exceptionprotected void retrieveRemoteImage(TextureTile tile, String mimeType, int timeout) throws Exception
Exceptionprotected void sendRequests()
protected void setAvailableImageFormats(String[] formats)
protected void setBlendingFunction(DrawContext dc)
public void setDetailHint(double detailHint)
detailHint - the degree to modify the default relationship of image resolution to screen resolution with
                   changing view altitudes. Values greater than 1 increase the resolution. Values less than zero
                   decrease the resolution. The default value is 0.public void setDrawBoundingVolumes(boolean drawBoundingVolumes)
public void setDrawTileBoundaries(boolean drawTileBoundaries)
public void setDrawTileIDs(boolean drawTileIDs)
public void setExpiryTime(long expiryTime)
setExpiryTime in interface LayersetExpiryTime in class AbstractLayerexpiryTime - the expiry time of any cached data, expressed as a number of milliseconds beyond the epoch. The
                   default expiry time is zero.for a description of milliseconds beyond the epoch.public void setForceLevelZeroLoads(boolean forceLevelZeroLoads)
public void setName(String name)
LayersetName in interface LayersetName in class AbstractLayername - the name to assign to the layer.public void setRetainLevelZeroTiles(boolean retainLevelZeroTiles)
public void setTextureFormat(String textureFormat)
image/dds - Stores images in the compressed DDS
 format. If the image is already in DDS format it's stored as-is.textureFormat - the texture image format; null to store images in their native format.public void setUseMipMaps(boolean useMipMaps)
public void setUseTransparentTextures(boolean useTransparentTextures)
public Object setValue(String key, Object value)
AVListsetValue in interface AVListsetValue in class AVListImplkey - the attribute name. May not be null.value - the attribute value. May be null, in which case any existing value for the key is
              removed from the collection.