|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--com.bbn.openmap.Layer | +--com.bbn.openmap.layer.OMGraphicHandlerLayer | +--com.bbn.openmap.layer.etopo.ETOPOLayer
ETOPOLayer extends Layer to provide rendering of the ETOPO5 world elevation data set. The ETOPO5 data consists of terrain altitude and ocean depth measurements at 5 minute intervals for the entire globe. Rendering is allowed in any projection that implements the inverse(int,int) method. Two types of rendering are provided: grayscale slope-shaded and colored slope-shaded.
The distribution consists of the following:
The sampled ETOPO data sets are provided to speed up the loading of data to compute the slope shading. The algorithm inverse projects the x/y screen coords (for the entire projection screen space) to get the corresponding lat/lon coords then samples the database to get altitude/depth and slope values. While this method is slower than the forward projection method, it does provide a more attractive screen presentation and will support all projections (not just the equidistant cylindrical). A palette provides the ability to choose between the 5,10, or 15 minute resolutions, as well as color or grayscale selection, transparency, and slope contrast.
The ETOPOLayer also relies on properties to set its variables, such as the etopo frame paths (there can be several at a time), the opaqueness of the frame images, number of colors to use, and some other display variables. The ETOPOLayer properties look something like this:
#------------------------------
# Properties for ETOPOLayer
#------------------------------
# This property should reflect
the paths to the etopo directory
etopo.path=c:/openmap/share
# Number between 0-255: 0 is transparent, 255 is opaque
etopo.opaque=255
# Number of colors to use on the maps - 16, 32, 216
etopo.number.colors=216
# Type of display for the data
# 0 = grayscale slope
shading
# 1 = colored slope shading
etopo.view.type=1
# Contrast setting, 1-5
etopo.contrast=3
# lat/lon spacing in minutes
# must be 5, 10, or 15
etopo.minute.spacing=10
#-------------------------------------
# End of properties for
ETOPOLayer
#-------------------------------------
Field Summary | |
protected int |
bandHeight
The elevation range to use for each color in band shading. |
protected static int[] |
blueElev
|
protected int |
bufferHeight
|
protected int |
bufferWidth
|
static int |
COLOREDSHADING
Colorized slope shading. |
protected short[] |
dataBuffer
The etopo elevation data |
static int |
DEFAULT_MINUTE_SPACING
Default minute spacing |
static int |
DEFAULT_OPAQUENESS
for colorizing |
static int |
DEFAULT_SLOPE_ADJUST
Default contrast setting for slope shading. |
protected static int[] |
elevLimit
elevation bands |
protected static int |
elevLimitCnt
number of elevation bands |
protected static java.lang.String[] |
etopoFileNames
ETOPO elevation files |
protected static int[] |
etopoHeights
|
static java.lang.String |
ETOPOMinuteSpacingProperty
|
static java.lang.String |
ETOPOPathProperty
property suffixes |
static java.lang.String |
ETOPOSlopeAdjustProperty
|
protected static double[] |
etopoSpacings
Spacings (in meters) between adjacent lon points at the equater. |
static java.lang.String |
ETOPOViewTypeProperty
|
protected static int[] |
etopoWidths
dimensions of the ETOPO files (don't mess with these!) |
protected static int[] |
greenElev
|
protected int |
minuteSpacing
The current resolution (in minutes) |
protected int |
opaqueness
transparency control |
static java.lang.String |
OpaquenessProperty
|
protected javax.swing.Box |
palette
The user interface palette for the ETOPO layer. |
protected java.lang.String |
path
The paths to the ETOPO directory, telling where the data is. |
protected static int[] |
redElev
elevation band colors (one for each elevation band) |
protected int |
slopeAdjust
A contrast adjustment, for slope shading (1-5). |
protected static java.awt.Color[][] |
slopeColors
for slope shading colors, indexed by elevation band then slope |
protected byte[] |
slopeMap
Holds the slope values, updated when the resolution changes or the slope adjustment (contrast) is changed. |
protected boolean |
slopeReset
|
static int |
SLOPESHADING
Gray scale slope shading, sun from the Northwest. |
protected boolean |
spacingReset
|
protected int |
viewType
The display type for the etopo images. |
Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer |
cancelled, CANCELLED_LOCK, consumeEvents, ConsumeEventsProperty, filter, layerWorker, LAYERWORKER_LOCK, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList |
Fields inherited from class com.bbn.openmap.Layer |
addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, autoPalette, AutoPaletteProperty, beanContextChildSupport, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, IDListeners, localHackList, lsListeners, paletteListener, PrettyNameProperty, propertyPrefix, RedrawCmd, removable, RemovableProperty, RemoveableProperty, SWING_PACKAGE, windowSupport |
Fields inherited from class javax.swing.JComponent |
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface com.bbn.openmap.PropertyConsumer |
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty |
Fields inherited from interface java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
ETOPOLayer()
The default constructor for the Layer. |
|
ETOPOLayer(java.lang.String pathToETOPODir)
The default constructor for the Layer. |
Method Summary | |
void |
actionPerformed(java.awt.event.ActionEvent e)
Used just for the redraw button. |
protected OMRaster |
buildRaster()
|
protected void |
buildSlopeMap()
Builds the slope index map. |
protected java.awt.Color |
getColor(short elevation,
byte slopeVal)
|
protected int |
getElevIndex(short el)
|
java.awt.Component |
getGUI()
Creates the interface palette. |
protected void |
loadBuffer()
Loads the database from the appropriate file based on the current resolution. |
OMGraphicList |
prepare()
Prepares the graphics for the layer. |
protected void |
setDefaultValues()
|
void |
setPath(java.lang.String pathToETOPODir)
|
void |
setProperties(java.lang.String prefix,
java.util.Properties properties)
Set all the ETOPO properties from a properties object. |
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update, updateUI |
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from class java.awt.Component |
action, add, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.beans.beancontext.BeanContextChild |
addPropertyChangeListener, removePropertyChangeListener |
Field Detail |
public static final int SLOPESHADING
public static final int COLOREDSHADING
public static final int DEFAULT_SLOPE_ADJUST
public static final int DEFAULT_MINUTE_SPACING
public static final int DEFAULT_OPAQUENESS
protected java.lang.String path
protected short[] dataBuffer
protected int bufferWidth
protected int bufferHeight
protected int minuteSpacing
protected static final java.lang.String[] etopoFileNames
protected static final int[] etopoWidths
protected static final int[] etopoHeights
protected static final double[] etopoSpacings
protected int viewType
protected int bandHeight
protected int slopeAdjust
protected int opaqueness
public static final java.lang.String ETOPOPathProperty
public static final java.lang.String OpaquenessProperty
public static final java.lang.String ETOPOViewTypeProperty
public static final java.lang.String ETOPOSlopeAdjustProperty
public static final java.lang.String ETOPOMinuteSpacingProperty
protected byte[] slopeMap
protected static final int[] elevLimit
protected static final int elevLimitCnt
protected static final int[] redElev
protected static final int[] greenElev
protected static final int[] blueElev
protected static java.awt.Color[][] slopeColors
protected boolean slopeReset
protected boolean spacingReset
protected javax.swing.Box palette
Constructor Detail |
public ETOPOLayer()
public ETOPOLayer(java.lang.String pathToETOPODir)
pathToETOPODir
- path to the directory holding the ETOPO
dataMethod Detail |
public void setPath(java.lang.String pathToETOPODir)
protected void setDefaultValues()
protected int getElevIndex(short el)
protected java.awt.Color getColor(short elevation, byte slopeVal)
public void setProperties(java.lang.String prefix, java.util.Properties properties)
setProperties
in interface PropertyConsumer
setProperties
in class OMGraphicHandlerLayer
prefix
- the token to prefix the property namesproperties
- the Properties
objectprotected void buildSlopeMap()
protected void loadBuffer()
protected OMRaster buildRaster()
public OMGraphicList prepare()
Occasionally it is necessary to abort a prepare call. When this happens, the map will set the cancel bit in the LayerThread, (the thread that is running the prepare). If this Layer needs to do any cleanups during the abort, it should do so, but return out of the prepare asap.
prepare
in class OMGraphicHandlerLayer
public java.awt.Component getGUI()
getGUI
in class Layer
public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed
in interface java.awt.event.ActionListener
actionPerformed
in class Layer
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |