com.esri.adf.web.ags.data
Class AGSTileFunctionality

java.lang.Object
  extended by com.esri.adf.web.ags.data.AGSTileFunctionality
All Implemented Interfaces:
GISFunctionality, TileFunctionality, Serializable

public class AGSTileFunctionality
extends Object
implements TileFunctionality, Serializable

See Also:
Serialized Form

Field Summary
protected  AGSMapResource agsMapRes
           
protected  String baseUrl
           
protected  WebLodInfo currLodInfo
           
protected  ContainingTile currOriginContainingTile
           
protected  ArrayList<WebLodInfo> lodInfos
           
protected  AGSMapFunctionality mfunc
           
protected  WebPoint origin
           
protected  com.esri.arcgisws.TileCacheInfo tci
           
protected  int tileHeight
           
protected  String tileImageFormat
           
protected  int tileWidth
           
protected  boolean tilingAvailable
           
protected  boolean useVirtualCacheDirectory
           
protected  WebMap wmap
           
 
Fields inherited from interface com.esri.adf.web.data.TileFunctionality
FUNCTIONALITY_NAME
 
Constructor Summary
AGSTileFunctionality()
           
 
Method Summary
protected  com.esri.arcgisws.EnvelopeN adjustCurrentMapExtent()
           
 void applyCandidateTileInfo(CandidateTileInfo candidate)
           Computes the tiles to be fetched by applying the info contained in the given candidate tile.
 void computeCurrentOriginContainingTile()
           Computes the top-left tile for the current extent.
 void destroyFunctionality()
           The cleanup chores (such as releasing held resources) for the functionality must be performed in this method.
 String getBaseUrl()
           Returns the base URL for the tiled images.
 WebLodInfo getCurrentLodInfo()
           Returns the level of detail (LOD) used to display the current extent.
 ContainingTile getCurrentOriginContainingTile()
           Returns the top-left tile for the current extent.
 List<WebLodInfo> getLodInfos()
           Returns a List of the levels of detail (LODs) supported by this resource.
 WebPoint getOrigin()
           Returns the origin of the tiling scheme used by this resource.
 AGSMapResource getResource()
           Returns the GISResource associated with this functionality.
 int getTileHeight()
           Returns the height of the tiled images.
 String getTileImageFormat()
           Returns the format of the tiled images.
 int getTileWidth()
           Returns the width of the tiled images.
 long getTokenExpiration()
          Return the token expiration duration in minutes.
 void initFunctionality(GISResource resource)
           The initialization chores for the functionality must be performed in this method.
 boolean isTilingAvailable()
           Returns true if tiling is available for this resource.
 boolean isUseVirtualCacheDirectory()
           Returns true if tiles are to be fetched using a direct URL to the tile image.
 void setTokenExpiration(long minutes)
          Sets the token expiration duration in minutes.
 void setUseVirtualCacheDirectory(boolean useVirtualCacheDirectory)
           
 void zoomToLevel(int level)
           Zooms the map to the given level of detail (LOD).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

agsMapRes

protected AGSMapResource agsMapRes

mfunc

protected AGSMapFunctionality mfunc

wmap

protected WebMap wmap

tilingAvailable

protected boolean tilingAvailable

currLodInfo

protected WebLodInfo currLodInfo

currOriginContainingTile

protected ContainingTile currOriginContainingTile

lodInfos

protected ArrayList<WebLodInfo> lodInfos

origin

protected WebPoint origin

baseUrl

protected String baseUrl

tileImageFormat

protected String tileImageFormat

tci

protected com.esri.arcgisws.TileCacheInfo tci

tileWidth

protected int tileWidth

tileHeight

protected int tileHeight

useVirtualCacheDirectory

protected boolean useVirtualCacheDirectory
Constructor Detail

AGSTileFunctionality

public AGSTileFunctionality()
Method Detail

initFunctionality

public void initFunctionality(GISResource resource)
Description copied from interface: GISFunctionality

The initialization chores for the functionality must be performed in this method. This method is called by the resource when the functionality needs to be initialized. This happens either when the resource itself is being initialized or if users add this functionality to the resource using the GISResource.addFunctionality(String, GISFunctionality) method after the resource has already been initialized.

Classes which implement this method should maintain the resource as a class instance variable and return the same in the GISFunctionality.getResource() method. The functionality is ready for use only after this method has been called.

Specified by:
initFunctionality in interface GISFunctionality
Parameters:
resource - the GISResource that this functionality supports
See Also:
GISResource.init(WebContext)

destroyFunctionality

public void destroyFunctionality()
Description copied from interface: GISFunctionality

The cleanup chores (such as releasing held resources) for the functionality must be performed in this method. This method is called by the GISResource when the resource itself is being destroyed.

The functionality is no longer usable after this method has been called.

Specified by:
destroyFunctionality in interface GISFunctionality
See Also:
GISResource.destroy()

computeCurrentOriginContainingTile

public void computeCurrentOriginContainingTile()
Description copied from interface: TileFunctionality

Computes the top-left tile for the current extent.

This is important because only this information is passed by the MapControl to the client browser. The JavaScript residing on the browser uses this information to fetch the required tiles by directly requesting the tile images from the server.

Specified by:
computeCurrentOriginContainingTile in interface TileFunctionality

applyCandidateTileInfo

public void applyCandidateTileInfo(CandidateTileInfo candidate)
Description copied from interface: TileFunctionality

Computes the tiles to be fetched by applying the info contained in the given candidate tile.

If there are no matching LODs for the LOD info contained in the candidate, no tiles will be fetched for this functionality and subsequent calls to TileFunctionality.getCurrentOriginContainingTile() will return null.

Specified by:
applyCandidateTileInfo in interface TileFunctionality
Parameters:
candidate - the CandidateTileInfo based on which the tiles to be fetched will be computed

adjustCurrentMapExtent

protected com.esri.arcgisws.EnvelopeN adjustCurrentMapExtent()

zoomToLevel

public void zoomToLevel(int level)
Description copied from interface: TileFunctionality

Zooms the map to the given level of detail (LOD). If the requested level is not supported no action should be taken.

Specified by:
zoomToLevel in interface TileFunctionality
Parameters:
level - the level of detail (LOD) that the map should be zoomed to

getResource

public AGSMapResource getResource()
Description copied from interface: GISFunctionality

Returns the GISResource associated with this functionality.

The resource passed to GISFunctionality.initFunctionality(GISResource) is maintained as a class variable and is accessible through this method.

Specified by:
getResource in interface GISFunctionality
Returns:
the GISResource associated with this functionality

isTilingAvailable

public boolean isTilingAvailable()
Description copied from interface: TileFunctionality

Returns true if tiling is available for this resource.

If users try to use this functionality even when tiled maps are not supported by this resource, this method should return false. The WebMap uses this method to determine if it should fetch tiles or dynamically export images.

Specified by:
isTilingAvailable in interface TileFunctionality
Returns:
true if tiling is available

getCurrentOriginContainingTile

public ContainingTile getCurrentOriginContainingTile()
Description copied from interface: TileFunctionality

Returns the top-left tile for the current extent.

This is important because only this information is passed by the MapControl to the client browser. The JavaScript residing on the browser uses this information to fetch the required tiles by directly requesting the tile images from the server.

Specified by:
getCurrentOriginContainingTile in interface TileFunctionality
Returns:
the top-left tile for the current extent.

getLodInfos

public List<WebLodInfo> getLodInfos()
Description copied from interface: TileFunctionality

Returns a List of the levels of detail (LODs) supported by this resource.

The map tiles are generated by the server for pre-defined scales (LODs). This information is important to compute which LOD should be used to display the current extent requested by the user.

Specified by:
getLodInfos in interface TileFunctionality
Returns:
a List of the levels of detail supported by this resource

getCurrentLodInfo

public WebLodInfo getCurrentLodInfo()
Description copied from interface: TileFunctionality

Returns the level of detail (LOD) used to display the current extent.

The map tiles are generated by the server for pre-defined scales (LODs). This information is important to compute which LOD should be used to display the current extent requested by the user.

Specified by:
getCurrentLodInfo in interface TileFunctionality
Returns:
the level of detail (LOD) used to display the current extent

getOrigin

public WebPoint getOrigin()
Description copied from interface: TileFunctionality

Returns the origin of the tiling scheme used by this resource.

Specified by:
getOrigin in interface TileFunctionality
Returns:
the origin of the tiling scheme used by this resource

getBaseUrl

public String getBaseUrl()
Description copied from interface: TileFunctionality

Returns the base URL for the tiled images. The client-side JavaScript append the virtual path or append the query string to this base URL to fetch the appropriate tiled image from the server.

Specified by:
getBaseUrl in interface TileFunctionality
Returns:
the base URL for the tiled images

getTileWidth

public int getTileWidth()
Description copied from interface: TileFunctionality

Returns the width of the tiled images.

Specified by:
getTileWidth in interface TileFunctionality
Returns:
the width of the tiled images

getTileHeight

public int getTileHeight()
Description copied from interface: TileFunctionality

Returns the height of the tiled images.

Specified by:
getTileHeight in interface TileFunctionality
Returns:
the height of the tiled images

setUseVirtualCacheDirectory

public void setUseVirtualCacheDirectory(boolean useVirtualCacheDirectory)

isUseVirtualCacheDirectory

public boolean isUseVirtualCacheDirectory()
Description copied from interface: TileFunctionality

Returns true if tiles are to be fetched using a direct URL to the tile image. If false, the tiles are fetched using a query string encoded URL.

Specified by:
isUseVirtualCacheDirectory in interface TileFunctionality
Returns:
true if tiles are to be fetched using a direct URL to the tile image

getTileImageFormat

public String getTileImageFormat()
Description copied from interface: TileFunctionality

Returns the format of the tiled images. (For ex. jpg, png, etc.)

Specified by:
getTileImageFormat in interface TileFunctionality
Returns:
the format of the tiled images. (For ex. jpg, png, etc.)

setTokenExpiration

public void setTokenExpiration(long minutes)
Sets the token expiration duration in minutes. By default it uses the token service default value.

Parameters:
minutes - the token expiration duration in minutes

getTokenExpiration

public long getTokenExpiration()
Return the token expiration duration in minutes.

Returns:
the token expiration duration in minutes