public class TLcdEarthCompositeTileSet extends ALcdEarthTileSet
ILcdEarthTileSet
objects into one new tileset. The tilesets from which coverages are taken
must all have the same tiling structure in order for them to be usable with
TLcdEarthCompositeTileSet
. The produceTile()
method
simply delegates to the tileset which originally contained the requested
coverage.
This tileset is thread-safe for tile reading if the registered tilesets are too.Constructor and Description |
---|
TLcdEarthCompositeTileSet(ILcdBounds aBounds,
int aLevels)
Constructs a new
TLcdEarthCompositeTileSet with the specified bounds and
levelcount but a default number of rows and columns at level 0. |
TLcdEarthCompositeTileSet(ILcdBounds aBounds,
int aLevels,
long aLevel0Rows,
long aLevel0Columns)
Constructs a new
TLcdEarthCompositeTileSet with the specified tile structure. |
Modifier and Type | Method and Description |
---|---|
void |
cancelTile(int aLevel,
long aTileX,
long aTileY,
ILcdEarthTileSetCoverage aCoverage,
ILcdGeoReference aGeoReference,
TLcdEarthTileFormat aFormat,
ILcdEarthTileSetCallback aCallback,
Object aContext)
Cancels any pending tile requests for the given parameters.
|
boolean |
canRegisterCoverage(ILcdEarthTileSet aTileSet,
ILcdEarthTileSetCoverage aCoverage)
Returns whether a single coverage of a tileset can be registered.
|
boolean |
containsTile(ILcdEarthTileSetCoverage aCoverage,
int aLevel,
long aX,
long aY,
Object aContext)
Returns true if the repository contains the specified tile.
|
void |
dispose()
Disposes each of the registered tilesets.
|
ILcdBounds |
getBounds()
Returns the bounds of this tile set, expressed in the model reference of the model that
contains this tile set.
|
ILcdEarthTileSet |
getRegisteredTileSet(ILcdEarthTileSetCoverage aCoverage)
Returns the tileset that is currently registered with a coverage.
|
ILcdEarthTileSetCoverage |
getTileSetCoverage(int aIndex)
Returns the coverage at the specified index.
|
int |
getTileSetCoverageCount()
Returns the number of coverages this tileset contains.
|
boolean |
isCoverageRegistered(ILcdEarthTileSet aTileSet,
ILcdEarthTileSetCoverage aCoverage)
Returns whether a coverage of a tileset is currently registered.
|
boolean |
isFormatSupported(ILcdEarthTileSetCoverage aCoverage,
TLcdEarthTileFormat aFormat)
Returns true only for the coverage's native format.
|
boolean |
isGeoReferenceSupported(ILcdEarthTileSetCoverage aCoverage,
ILcdGeoReference aGeoReference)
Returns true only for the coverage's native georeference.
|
ALcdEarthTile |
produceTile(ILcdEarthTileSetCoverage aCoverage,
int aLevel,
long aX,
long aY,
ILcdGeoReference aGeoReference,
TLcdEarthTileFormat aFormat,
Object aContext)
Gets a tile from the repository.
|
void |
produceTile(ILcdEarthTileSetCoverage aCoverage,
int aLevel,
long aTileX,
long aTileY,
ILcdGeoReference aGeoReference,
TLcdEarthTileFormat aFormat,
TLcdEarthTileOperationMode aMode,
ILcdEarthTileSetCallback aCallback,
Object aContext)
Produces the requested tile, and invoke the supplied callback when done.
|
void |
registerCoverage(ILcdEarthTileSet aTileSet,
ILcdEarthTileSetCoverage aCoverage)
Registers a single coverage of a tileset.
|
void |
registerTileSet(ILcdEarthTileSet aTileSet)
Registers all coverages of a tileset.
|
boolean |
unregisterCoverage(ILcdEarthTileSet aTileSet,
ILcdEarthTileSetCoverage aCoverage)
Unregisters a single coverage of a tileset if it is currently registered.
|
boolean |
unregisterTileSet(ILcdEarthTileSet aTileSet)
Unregisters all coverages of a tileset.
|
ALcdEarthTile |
updateTile(ALcdEarthTile aEarthTile,
Object aContext)
Returns an updated version of the specified tile.
|
void |
updateTile(ALcdEarthTile aTile,
TLcdEarthTileOperationMode aMode,
ILcdEarthTileSetCallback aCallback,
Object aContext)
Produces an updated version of the given tile, if necessary.
|
containsTileSetCoverage, getLevelCount, getTileBoundsSFCT, getTileColumnCount, getTileRowCount, getTileSetCoverage
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close
public TLcdEarthCompositeTileSet(ILcdBounds aBounds, int aLevels)
TLcdEarthCompositeTileSet
with the specified bounds and
levelcount but a default number of rows and columns at level 0.aBounds
- the bounds of the tileset.aLevels
- the number of levels.public TLcdEarthCompositeTileSet(ILcdBounds aBounds, int aLevels, long aLevel0Rows, long aLevel0Columns)
TLcdEarthCompositeTileSet
with the specified tile structure.aBounds
- the bounds of the tileset.aLevels
- the number of levels.aLevel0Rows
- the number of tile rows at level 0.aLevel0Columns
- the number of tile columns at level 0.public void registerTileSet(ILcdEarthTileSet aTileSet)
aTileSet
- A tileset with a proper configuration (e.g. bounds, levels, tile
counts).IllegalArgumentException
- if the specified tileset does not have the same tile structure
as this tileset or one of its coverages is already registered.public void registerCoverage(ILcdEarthTileSet aTileSet, ILcdEarthTileSetCoverage aCoverage)
aTileSet
- A tileset with a proper configuration.aCoverage
- A coverage in the given tileset.IllegalArgumentException
- if the specified tileset does not have the same tile structure
as this tileset or the coverage is already registered.NullPointerException
- if the specified coverage is null
public boolean canRegisterCoverage(ILcdEarthTileSet aTileSet, ILcdEarthTileSetCoverage aCoverage)
aTileSet
- A tileset with a proper configuration.aCoverage
- A coverage in the given tileset.registerCoverage(com.luciad.earth.tileset.ILcdEarthTileSet, com.luciad.earth.tileset.ILcdEarthTileSetCoverage)
public boolean unregisterTileSet(ILcdEarthTileSet aTileSet)
aTileSet
- A tileset.public boolean unregisterCoverage(ILcdEarthTileSet aTileSet, ILcdEarthTileSetCoverage aCoverage)
aTileSet
- A tileset.aCoverage
- A coverage in the given tileset.public boolean isCoverageRegistered(ILcdEarthTileSet aTileSet, ILcdEarthTileSetCoverage aCoverage)
aTileSet
- A tileset.aCoverage
- A coverage in the given tileset.public ILcdEarthTileSet getRegisteredTileSet(ILcdEarthTileSetCoverage aCoverage)
aCoverage
- A coverage in this tileset.null
if the specified
coverage is not of this tileset.public void produceTile(ILcdEarthTileSetCoverage aCoverage, int aLevel, long aTileX, long aTileY, ILcdGeoReference aGeoReference, TLcdEarthTileFormat aFormat, TLcdEarthTileOperationMode aMode, ILcdEarthTileSetCallback aCallback, Object aContext)
ILcdEarthTileSet
tileAvailable()
method. If the tile cannot be produced for some reason, the method tileNotAvailable()
should be called instead.
If the tileset supports it and aMode
is TLcdEarthTileOperationMode.PREFER_ASYNCHRONOUS
,
the tile request may be executed asynchronously. However, the callback
must be invoked at some point in time, unless the
cancelTile()
method is used to cancel the tile request before it is executed. If
aMode
is TLcdEarthTileOperationMode.FORCE_SYNCHRONOUS
,
the request must be executed synchronously and the callback must be
invoked before produceTile()
returns.
Tiles may be requested in reference systems other than the native
geo reference of the underlying data, provided that the isGeoReferenceSupported()
method returns true for the requested reference. If this is not the case,
the tileset should call tileNotAvailable()
. If the tileset
calls tileAvailable()
, the geo reference of the resulting tile
must be equal to aGeoReference
, and the tile's bounds
must likewise be expressed in this reference.
Similarly, tiles may be requested in different data formats, as described
by TLcdEarthTileFormat
. The format
determines the type of the data object that will be contained in the
requested tile. To check if a format is supported, use isFormatSupported()
.
If the specified format is not supported, the tileset should call
tileNotAvailable()
.
The context parameter may be used to pass application-specific data into
the tileset. If it is not needed, its value may be null
.
aCoverage
- the coverage from which the tile is requestedaLevel
- the level from which the tile is requestedaTileX
- the column index of the requested tileaTileY
- the row index of the requested tileaGeoReference
- the reference system in which the tile should be returnedaFormat
- the desired format of the tile's dataaMode
- controls the synchronous or asynchronous behaviour of the tilesetaCallback
- will be invoked when the tile is available to be usedaContext
- application-specific data to be used by the tileset, if anypublic ALcdEarthTile produceTile(ILcdEarthTileSetCoverage aCoverage, int aLevel, long aX, long aY, ILcdGeoReference aGeoReference, TLcdEarthTileFormat aFormat, Object aContext) throws IOException
ILcdEarthTileSet
produceTile
in interface ILcdEarthTileSet
produceTile
in class ALcdEarthTileSet
aCoverage
- the coverage from which to query a tileaLevel
- the detail level for which to query a tileaX
- the column index at which to query a tileaY
- the row index at which to query a tileaGeoReference
- the georeference of the requested tileaFormat
- the format of the requested tileaContext
- application-specific data to be used by the tileset, if anyIOException
- if the tile cannot be producedpublic void updateTile(ALcdEarthTile aTile, TLcdEarthTileOperationMode aMode, ILcdEarthTileSetCallback aCallback, Object aContext)
ILcdEarthTileSet
updateTile
in interface ILcdEarthTileSet
updateTile
in class ALcdEarthTileSet
aTile
- tile to checkaMode
- controls the synchronous or asynchronous behaviour of the tilesetaCallback
- will be invoked when the tile is available to be usedaContext
- application-specific data to be used by the tileset, if anypublic ALcdEarthTile updateTile(ALcdEarthTile aEarthTile, Object aContext) throws IOException
ILcdEarthTileSet
updateTile
in interface ILcdEarthTileSet
updateTile
in class ALcdEarthTileSet
aEarthTile
- the tile to checkaContext
- application-specific data to be used by the tileset, if anyIOException
- if the tile cannot be updatedpublic void cancelTile(int aLevel, long aTileX, long aTileY, ILcdEarthTileSetCoverage aCoverage, ILcdGeoReference aGeoReference, TLcdEarthTileFormat aFormat, ILcdEarthTileSetCallback aCallback, Object aContext)
ILcdEarthTileSet
cancelTile()
is called, the tileset is no longer required
to invoke the ILcdEarthTileSetCallback
for the tile in question.
The tileset is not obligated to honor the cancelTile()
request, but if cancelTile()
is not called, then it
is required to invoke the ILcdEarthTileSetCallback
at some
point.cancelTile
in interface ILcdEarthTileSet
cancelTile
in class ALcdEarthTileSet
aLevel
- the level from which the tile is requestedaTileX
- the column index of the requested tileaTileY
- the row index of the requested tileaCoverage
- the coverage from which the tile is requestedaGeoReference
- the reference system in which the tile is requestedaFormat
- the format in which the tile is requestedaCallback
- would be invoked when the tile would have been available to be usedaContext
- application-specific data to be used by the tileset, if anypublic boolean containsTile(ILcdEarthTileSetCoverage aCoverage, int aLevel, long aX, long aY, Object aContext)
ILcdEarthTileSet
containsTile
in interface ILcdEarthTileSet
containsTile
in class ALcdEarthTileSet
aCoverage
- the coverage from which to query a tileaLevel
- the detail level for which to query a tileaX
- the column index at which to query a tileaY
- the row index at which to query a tileaContext
- application-specific data to be used by the tileset, if anypublic void dispose()
dispose
in interface ILcdEarthTileSet
dispose
in interface ILcdDisposable
dispose
in class ALcdEarthTileSet
public ILcdBounds getBounds()
ILcdEarthTileSet
ILcdBounded.getBounds()
public int getTileSetCoverageCount()
ILcdEarthTileSet
public ILcdEarthTileSetCoverage getTileSetCoverage(int aIndex)
ILcdEarthTileSet
aIndex
- the index of the coverage to returnILcdEarthTileSetCoverage
public boolean isGeoReferenceSupported(ILcdEarthTileSetCoverage aCoverage, ILcdGeoReference aGeoReference)
ALcdEarthTileSet
isGeoReferenceSupported
in interface ILcdEarthTileSet
isGeoReferenceSupported
in class ALcdEarthTileSet
aCoverage
- the coverage to check foraGeoReference
- the reference to check forpublic boolean isFormatSupported(ILcdEarthTileSetCoverage aCoverage, TLcdEarthTileFormat aFormat)
ALcdEarthTileSet
isFormatSupported
in interface ILcdEarthTileSet
isFormatSupported
in class ALcdEarthTileSet
aCoverage
- the coverage to check foraFormat
- the format to check for