NASA World Wind

gov.nasa.worldwindx.examples.analytics
Class ExportableAnalyticSurface

java.lang.Object
  extended by gov.nasa.worldwindx.examples.analytics.AnalyticSurface
      extended by gov.nasa.worldwindx.examples.analytics.ExportableAnalyticSurface
All Implemented Interfaces:
Exportable, PreRenderable, Renderable

public class ExportableAnalyticSurface
extends AnalyticSurface
implements Exportable

An extension of AnalyticSurface that enables export of the surface to a KML ground overlay. To successfully export the surface, the export image path and export image name fields of instances of this class must be specified.


Nested Class Summary
 
Nested classes/interfaces inherited from class gov.nasa.worldwindx.examples.analytics.AnalyticSurface
AnalyticSurface.AnalyticSurfaceObject, AnalyticSurface.ClampToGroundSurface, AnalyticSurface.GridPointAttributes, AnalyticSurface.OrderedSurface, AnalyticSurface.RenderInfo, AnalyticSurface.ShadowSurface
 
Field Summary
protected  int exportImageHeight
           
protected  String exportImageName
           
protected  String exportImagePath
           
protected  int exportImageWidth
           
 
Fields inherited from class gov.nasa.worldwindx.examples.analytics.AnalyticSurface
altitude, altitudeMode, clampToGroundSurface, clientLayer, DEFAULT_ALTITUDE, DEFAULT_ALTITUDE_MODE, DEFAULT_COLOR, DEFAULT_DIMENSION, DEFAULT_GRID_POINT_ATTRIBUTES, DEFAULT_VALUE, expired, extremeValues, globeStateKey, height, pickObject, pickSupport, referencePoint, referencePos, regenTime, RELATIVE_TO_GROUND_REGEN_PERIOD, sector, shadowSurface, surfaceAttributes, surfaceRenderInfo, updateFailed, values, verticalScale, visible, width
 
Fields inherited from interface gov.nasa.worldwind.Exportable
FORMAT_NOT_SUPPORTED, FORMAT_PARTIALLY_SUPPORTED, FORMAT_SUPPORTED
 
Constructor Summary
ExportableAnalyticSurface()
           
 
Method Summary
 BufferedImage createImage(int imageWidth, int imageHeight)
          Create an exportable image from this surface's colors and attributes.
 void export(String mimeType, Object output)
          Export's this surface's color values as a KML GroundOverlay.
protected  void exportAsKML(Object output)
          Export the surface image to KML as a <GroundOverlay> element.
protected  void exportKMLLatLonBox(XMLStreamWriter xmlWriter)
           
 int getExportImageHeight()
          Indicates the image height of the ground overlay image when this surface is exported to KML.
 String getExportImageName()
          Indicates the name to give this surface's ground overlay image when the surface is exported to KML.
 String getExportImagePath()
          Indicates the directory in which this surface's export image is stored when exporting to KML.
 int getExportImageWidth()
          Indicates the image width of the ground overlay image when this surface is exported to KML.
 String isExportFormatSupported(String format)
          Does this object support a certain export format?
 void setExportImageHeight(int exportImageHeight)
          Specifies the image width of the ground overlay image when this surface is exported to KML.
 void setExportImageName(String exportImageName)
          Specifies the name of the ground overlay image file to create when this surface is exported to KML.
 void setExportImagePath(String path)
          Specifies the path at which to write this surface's exported image.
 void setExportImageWidth(int exportImageWidth)
          Specifies the image width of the ground overlay image when this surface is exported to KML.
 
Methods inherited from class gov.nasa.worldwindx.examples.analytics.AnalyticSurface
beginDrawing, bind, computeExtremeValues, computeExtremeValues, computeSurfacePoint, createClampToGroundSurface, createColorGradientAttributes, createColorGradientValues, createDefaultValues, createGridPointAttributes, createShadowSurface, doDrawOrderedRenderable, doUpdate, drawInterior, drawOrderedRenderable, drawOutline, drawSurfaceObjects, endDrawing, getAltitude, getAltitudeMode, getClientLayer, getDimensions, getExtent, getPickObject, getSector, getSurfaceAttributes, getValues, getVerticalScale, intersectsFrustum, isExpired, isVisible, makeOrderedRenderable, preRender, preRenderSurfaceObjects, render, setAltitude, setAltitudeMode, setClientLayer, setDimensions, setExpired, setPickObject, setSector, setSurfaceAttributes, setValues, setVerticalScale, setVisible, update, updateNextSurfacePoint, updateSurfaceNormals, updateSurfacePoints
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

exportImageHeight

protected int exportImageHeight

exportImageName

protected String exportImageName

exportImagePath

protected String exportImagePath

exportImageWidth

protected int exportImageWidth
Constructor Detail

ExportableAnalyticSurface

public ExportableAnalyticSurface()
Method Detail

createImage

public BufferedImage createImage(int imageWidth,
                                 int imageHeight)
Create an exportable image from this surface's colors and attributes. Note that only the surface's color values used to draw the interior, the surface's interior material attribute is ignored. Also ignored are the surface's opacity and shadow attributes.

Parameters:
imageWidth - The width of the image to create.
imageHeight - The height of the image to create.
Returns:
An ARGB image reflecting this surface's color values and outline attributes.

export

public void export(String mimeType,
                   Object output)
            throws IOException
Export's this surface's color values as a KML GroundOverlay. Only this surface's color values, outline color and outline width are used to create the ground overly image. The image is exported as clamp-to-ground. The following fields of this surface must be set prior to calling this method: exportImagePath and exportImageName. Optionally the exportImageWidth and exportImageHeight fields may be set to indicate the size of the exported ground overlay image. These values are both 1024 by default. The surface's opacity attributes are ignored, but any opacity values specified in the surface's color values are captured in the ground overlay image.

If color values have not been specified for the surface then the interior if the output image is blank. The image outline is exported only if the surface's drawOutline file is true.

Specified by:
export in interface Exportable
Parameters:
mimeType - Desired export format. Only "application/vnd.google-earth.kml+xml" is supported.
output - Object that will receive the exported data. The type of this object depends on the export format. All formats should support java.io.OutputStream. Text based format (for example, XML formats) should also support java.io.Writer. Certain formats may also support other object types.
Throws:
IOException - if an error occurs while writing the output file or its image.
See Also:
setExportImageName(String), setExportImagePath(String), setExportImageWidth(int), setExportImageHeight(int)

exportAsKML

protected void exportAsKML(Object output)
                    throws IOException,
                           XMLStreamException
Export the surface image to KML as a <GroundOverlay> element. The output object will receive the data. This object must be one of: java.io.Writer java.io.OutputStream javax.xml.stream.XMLStreamWriter

Parameters:
output - Object to receive the generated KML.
Throws:
XMLStreamException - If an exception occurs while writing the KML
IOException - if an exception occurs while exporting the data.

exportKMLLatLonBox

protected void exportKMLLatLonBox(XMLStreamWriter xmlWriter)
                           throws XMLStreamException
Throws:
XMLStreamException

getExportImageHeight

public int getExportImageHeight()
Indicates the image height of the ground overlay image when this surface is exported to KML. The default is 1024.

Returns:
The export image height.

getExportImageName

public String getExportImageName()
Indicates the name to give this surface's ground overlay image when the surface is exported to KML.

Returns:
This surface's export image name.

getExportImagePath

public String getExportImagePath()
Indicates the directory in which this surface's export image is stored when exporting to KML.

Returns:
This surface's export image path.

getExportImageWidth

public int getExportImageWidth()
Indicates the image width of the ground overlay image when this surface is exported to KML. The default is 1024.

Returns:
The export image width.

isExportFormatSupported

public String isExportFormatSupported(String format)
Description copied from interface: Exportable
Does this object support a certain export format?

Specified by:
isExportFormatSupported in interface Exportable
Parameters:
format - Desired export format.
Returns:
One of Exportable.FORMAT_SUPPORTED, Exportable.FORMAT_NOT_SUPPORTED, or Exportable.FORMAT_PARTIALLY_SUPPORTED.
See Also:
Exportable.export(String, Object)

setExportImageHeight

public void setExportImageHeight(int exportImageHeight)
Specifies the image width of the ground overlay image when this surface is exported to KML. The default is 1024.

Parameters:
exportImageHeight - The export image height.

setExportImageName

public void setExportImageName(String exportImageName)
Specifies the name of the ground overlay image file to create when this surface is exported to KML. The exported image is written to a file with this name in the directory identified by this surface's exportImagePath field.

Parameters:
exportImageName - The name of the file in which to write the exported image. This field must be non-null when this surface is exported.
See Also:
setExportImagePath(String)

setExportImagePath

public void setExportImagePath(String path)
Specifies the path at which to write this surface's exported image. Used only when exporting this surface as a KML ground overlay. This path should generally identify the directory holding the KML file that is being created. The exportImageName field must also be set. See setExportImageName(String).

Parameters:
path - The directory in which to store the exported ground overlay image. This field must be non-null when this surface is exported.
See Also:
setExportImageName(String)

setExportImageWidth

public void setExportImageWidth(int exportImageWidth)
Specifies the image width of the ground overlay image when this surface is exported to KML. The default is 1024.

Parameters:
exportImageWidth - The export image width.

NASA World Wind