public class ETOPOLayer extends OMGraphicHandlerLayer implements java.awt.event.ActionListener
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
#-------------------------------------
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
protected int |
bandHeight
The elevation range to use for each color in band shading.
|
protected 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 int[] |
elevLimit
elevation bands
|
protected 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 |
ETOPOPixelSpacerProperty |
static java.lang.String |
ETOPOSlopeAdjustProperty |
protected double[] |
etopoSpacings
Spacings (in meters) between adjacent lon points at the equator.
|
static java.lang.String |
ETOPOViewTypeProperty |
protected static int[] |
etopoWidths
dimensions of the ETOPO files (don't mess with these!)
|
protected int[] |
greenElev |
protected int |
minuteSpacing
The current resolution (in minutes)
|
protected int |
opaqueness
transparency control
|
static java.lang.String |
OpaquenessProperty |
protected javax.swing.Box |
paletteBox
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 int[] |
redElev
elevation band colors (one for each elevation band)
|
protected int |
slopeAdjust
A contrast adjustment, for slope shading (1-5).
|
protected 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 int |
spacer
Number of pixel spacers that should be added to a data file, per line, to
adjust for skewing.
|
protected boolean |
spacingReset |
protected int |
viewType
The display type for the etopo images.
|
consumeEvents, ConsumeEventsProperty, filter, interruptable, InterruptableProperty, layerWorker, LAYERWORKER_LOCK, layerWorkerQueue, logger, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList, TransparencyProperty, wrapItUp
addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, attributes, autoPalette, AutoPaletteProperty, beanContextChildSupport, coordTransform, DataPathPrefixProperty, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, localHackList, maxScale, MaxScaleProperty, minScale, MinScaleProperty, palette, paletteListener, PrettyNameProperty, propertyPrefix, RedrawCmd, removable, RemovableProperty, SWING_PACKAGE, TransformProperty, windowSupport
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty
Constructor and Description |
---|
ETOPOLayer()
The default constructor for the Layer.
|
ETOPOLayer(java.lang.String pathToETOPODir)
The default constructor for the Layer.
|
Modifier and Type | Method and Description |
---|---|
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.
|
canSetList, copy, createLayerWorker, cut, deselect, dispose, doAction, doPrepare, filter, filter, filter, getConsumeEvents, getFilter, getInfoText, getItemsForMapMenu, getItemsForOMGraphicMenu, getLayerWorker, getList, getMapMouseListener, getMouseEventInterpreter, getMouseModeIDsForEvents, getProjectionChangePolicy, getProperties, getPropertyInfo, getRenderPolicy, getSelected, getToolTipTextFor, getTransparency, getTransparencyAdjustmentPanel, highlight, interrupt, isCancelled, isHighlightable, isInterruptable, isSelectable, isWorking, leftClick, mouseOver, paint, paste, projectionChanged, receivesMapEvents, renderDataForProjection, resetFiltering, select, setCancelled, setConsumeEvents, setFilter, setInterruptable, setLayerWorker, setList, setMouseEventInterpreter, setMouseModeIDsForEvents, setProjectionChangePolicy, setRenderPolicy, setTransparency, shouldWrapItUp, supportsSQL, unhighlight, workerComplete
addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, disconnectFromBeanContext, finalize, findAndInit, findAndInit, findAndUndo, fireHideToolTip, firePaletteEvent, fireRequestBrowserContent, fireRequestBrowserContent, fireRequestCursor, fireRequestInfoLine, fireRequestInfoLine, fireRequestInfoLine, fireRequestMessage, fireRequestMessage, fireRequestToolTip, fireRequestToolTip, fireRequestURL, fireRequestURL, fireStatusUpdate, fireStatusUpdate, fireVetoableChange, getAddAsBackground, getAddToBeanContext, getAttribute, getBeanContext, getCoordTransform, getIcon, getMaxScale, getMinScale, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isRemovable, notifyHideHack, prependDataPathPrefix, putAttribute, removeComponentListener, removeConfirmed, removed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, setBeanContext, setCoordTransform, setIcon, setLayerProperties, setMaxScale, setMinScale, setName, setPaletteVisible, setProjection, setProjection, setProperties, setPropertyPrefix, setRemovable, setVisible, setWindowSupport, showPalette
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update, updateUI
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
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 double[] etopoSpacings
protected int viewType
protected int bandHeight
protected int slopeAdjust
protected int opaqueness
protected int spacer
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
public static final java.lang.String ETOPOPixelSpacerProperty
protected byte[] slopeMap
protected int[] elevLimit
protected int elevLimitCnt
protected int[] redElev
protected int[] greenElev
protected int[] blueElev
protected java.awt.Color[][] slopeColors
protected boolean slopeReset
protected boolean spacingReset
protected javax.swing.Box paletteBox
public ETOPOLayer()
public ETOPOLayer(java.lang.String pathToETOPODir)
pathToETOPODir
- path to the directory holding the ETOPO datapublic 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()
public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed
in interface java.awt.event.ActionListener
actionPerformed
in class OMGraphicHandlerLayer
Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details