NASA World Wind

gov.nasa.worldwind.layers
Class ScalebarLayer

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.WWObjectImpl
          extended by gov.nasa.worldwind.layers.AbstractLayer
              extended by gov.nasa.worldwind.layers.ScalebarLayer
All Implemented Interfaces:
AVList, Disposable, MessageListener, Layer, Restorable, WWObject, PropertyChangeListener, EventListener

public class ScalebarLayer
extends AbstractLayer

Renders a scalebar graphic in a screen corner.


Field Summary
static String UNIT_IMPERIAL
           
static String UNIT_METRIC
           
 
Constructor Summary
ScalebarLayer()
          Renders a scalebar graphic in a screen corner
 
Method Summary
 void doPick(DrawContext dc, Point pickPoint)
           
 void doRender(DrawContext dc)
           
 void draw(DrawContext dc)
           
 int getBorderWidth()
           
 Color getColor()
          Get the scalebar color
 Font getFont()
          Get the scalebar legend Fon
 Vec4 getLocationCenter()
          Returns the current scalebar center location.
 Vec4 getLocationOffset()
          Returns the current location offset.
 double getPixelSize()
          Get the apparent pixel size in meter at the reference position.
 String getPosition()
           
 String getResizeBehavior()
          Returns the layer's resize behavior.
 Dimension getSize()
          Get the scalebar graphic Dimension (in pixels)
 double getToViewportScale()
          Returns the scalebar-to-viewport scale factor.
 String getUnit()
           
 void setBorderWidth(int borderWidth)
          Sets the scalebar offset from the viewport border.
 void setColor(Color color)
          Set the scalbar Color
 void setFont(Font font)
          Set the scalebar legend Fon
 void setLocationCenter(Vec4 locationCenter)
          Specifies the screen location of the scalebar center.
 void setLocationOffset(Vec4 locationOffset)
          Specifies a placement offset from the scalebar's position on the screen.
 void setPosition(String position)
          Sets the relative viewport location to display the scalebar.
 void setResizeBehavior(String resizeBehavior)
          Sets the behavior the layer uses to size the scalebar when the viewport size changes, typically when the World Wind window is resized.
 void setSize(Dimension size)
          Set the scalebar graphic Dimenion (in pixels)
 void setToViewportScale(double toViewportScale)
          Sets the scale factor applied to the viewport size to determine the displayed size of the scalebar.
 void setUnit(String unit)
          Sets the unit the scalebar uses to display distances.
 String toString()
           
 
Methods inherited from class gov.nasa.worldwind.layers.AbstractLayer
createLayerConfigElements, dispose, doPreRender, getDataFileStore, getExpiryTime, getLayerConfigParams, getMaxActiveAltitude, getMaxEffectiveAltitude, getMinActiveAltitude, getMinEffectiveAltitude, getName, getOpacity, getRestorableState, getScale, getScreenCredit, isAtMaxResolution, isEnabled, isLayerActive, isLayerConfigDocument, isLayerInView, isMultiResolution, isNetworkRetrievalEnabled, isPickEnabled, pick, preRender, render, restoreState, setDataFileStore, setEnabled, setExpiryTime, setMaxActiveAltitude, setMinActiveAltitude, setName, setNetworkRetrievalEnabled, setOpacity, setPickEnabled, setScreenCredit
 
Methods inherited from class gov.nasa.worldwind.WWObjectImpl
onMessage, propertyChange
 
Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface gov.nasa.worldwind.avlist.AVList
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from interface java.beans.PropertyChangeListener
propertyChange
 
Methods inherited from interface gov.nasa.worldwind.event.MessageListener
onMessage
 

Field Detail

UNIT_IMPERIAL

public static final String UNIT_IMPERIAL
See Also:
Constant Field Values

UNIT_METRIC

public static final String UNIT_METRIC
See Also:
Constant Field Values
Constructor Detail

ScalebarLayer

public ScalebarLayer()
Renders a scalebar graphic in a screen corner

Method Detail

doPick

public void doPick(DrawContext dc,
                   Point pickPoint)
Overrides:
doPick in class AbstractLayer

doRender

public void doRender(DrawContext dc)
Specified by:
doRender in class AbstractLayer

draw

public void draw(DrawContext dc)

getBorderWidth

public int getBorderWidth()

getColor

public Color getColor()
Get the scalebar color

Returns:
the scalebar Color

getFont

public Font getFont()
Get the scalebar legend Fon

Returns:
the scalebar legend Font

getLocationCenter

public Vec4 getLocationCenter()
Returns the current scalebar center location.

Returns:
the current location center. May be null.

getLocationOffset

public Vec4 getLocationOffset()
Returns the current location offset. See #setLocationOffset for a description of the offset and its values.

Returns:
the location offset. Will be null if no offset has been specified.

getPixelSize

public double getPixelSize()
Get the apparent pixel size in meter at the reference position.

Returns:
the apparent pixel size in meter at the reference position.

getPosition

public String getPosition()

getResizeBehavior

public String getResizeBehavior()
Returns the layer's resize behavior.

Returns:
the layer's resize behavior

getSize

public Dimension getSize()
Get the scalebar graphic Dimension (in pixels)

Returns:
the scalebar graphic Dimension

getToViewportScale

public double getToViewportScale()
Returns the scalebar-to-viewport scale factor.

Returns:
the scalebar-to-viewport scale factor

getUnit

public String getUnit()

setBorderWidth

public void setBorderWidth(int borderWidth)
Sets the scalebar offset from the viewport border.

Parameters:
borderWidth - the number of pixels to offset the scalebar from the borders indicated by setPosition(String).

setColor

public void setColor(Color color)
Set the scalbar Color

Parameters:
color - the scalebar Color

setFont

public void setFont(Font font)
Set the scalebar legend Fon

Parameters:
font - the scalebar legend Font

setLocationCenter

public void setLocationCenter(Vec4 locationCenter)
Specifies the screen location of the scalebar center. May be null. If this value is non-null, it overrides the position specified by #setPosition. The location is specified in pixels. The origin is the window's lower left corner. Positive X values are to the right of the origin, positive Y values are upwards from the origin. The final scalebar location will be affected by the currently specified location offset if a non-null location offset has been specified (see #setLocationOffset).

Parameters:
locationCenter - the scalebar center. May be null.
See Also:
setPosition(java.lang.String), setLocationOffset(gov.nasa.worldwind.geom.Vec4)

setLocationOffset

public void setLocationOffset(Vec4 locationOffset)
Specifies a placement offset from the scalebar's position on the screen.

Parameters:
locationOffset - the number of pixels to shift the scalebar from its specified screen position. A positive X value shifts the image to the right. A positive Y value shifts the image up. If null, no offset is applied. The default offset is null.
See Also:
setLocationCenter(gov.nasa.worldwind.geom.Vec4), setPosition(java.lang.String)

setPosition

public void setPosition(String position)
Sets the relative viewport location to display the scalebar. Can be one of AVKey.NORTHEAST, AVKey.NORTHWEST, AVKey.SOUTHEAST (the default), or AVKey.SOUTHWEST. These indicate the corner of the viewport.

Parameters:
position - the desired scalebar position

setResizeBehavior

public void setResizeBehavior(String resizeBehavior)
Sets the behavior the layer uses to size the scalebar when the viewport size changes, typically when the World Wind window is resized. If the value is AVKey.RESIZE_KEEP_FIXED_SIZE, the scalebar size is kept to the size specified in its Dimension scaled by the layer's current icon scale. If the value is AVKey.RESIZE_STRETCH, the scalebar is resized to have a constant size relative to the current viewport size. If the viewport shrinks the scalebar size decreases; if it expands then the scalebar enlarges. If the value is AVKey.RESIZE_SHRINK_ONLY (the default), scalebar sizing behaves as for AVKey.RESIZE_STRETCH but it will not grow larger than the size specified in its Dimension.

Parameters:
resizeBehavior - the desired resize behavior

setSize

public void setSize(Dimension size)
Set the scalebar graphic Dimenion (in pixels)

Parameters:
size - the scalebar graphic Dimension

setToViewportScale

public void setToViewportScale(double toViewportScale)
Sets the scale factor applied to the viewport size to determine the displayed size of the scalebar. This scale factor is used only when the layer's resize behavior is AVKey.RESIZE_STRETCH or AVKey.RESIZE_SHRINK_ONLY. The scalebar's width is adjusted to occupy the proportion of the viewport's width indicated by this factor. The scalebar's height is adjusted to maintain the scalebar's Dimension aspect ratio.

Parameters:
toViewportScale - the scalebar to viewport scale factor

setUnit

public void setUnit(String unit)
Sets the unit the scalebar uses to display distances. Can be one of UNIT_METRIC (the default), or UNIT_IMPERIAL.

Parameters:
unit - the desired unit

toString

public String toString()
Overrides:
toString in class AbstractLayer

NASA World Wind