com.bbn.openmap.layer.shape
Class MultiRoadLayer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by com.bbn.openmap.Layer
                  extended by com.bbn.openmap.layer.OMGraphicHandlerLayer
                      extended by com.bbn.openmap.layer.shape.ShapeLayer
                          extended by com.bbn.openmap.layer.shape.MultiShapeLayer
                              extended by com.bbn.openmap.layer.shape.MultiRoadLayer
All Implemented Interfaces:
ProjectionListener, GestureResponsePolicy, OMGraphicHandler, ProjectionPainter, PropertyConsumer, LayerView, RoadServices, DataBoundsProvider, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.io.Serializable, java.util.EventListener

public class MultiRoadLayer
extends MultiShapeLayer
implements RoadServices, ProjectionListener, LayerView

Imposes a road layer on the multi shape layer. The important method here is getPathOnRoad(implemented for the RoadServices interface) which returns a list of points on the road found between a start and an end point. You can see more about what the road layer is doing by setting drawIntersections to true, which will reveal what the road finder thinks are roads on the road layer, and drawResults to true, which will show each road path request and its result. The results shown accumulate over time.

See Also:
RoadServices, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String DrawIntersectionsProperty
          Property 'drawIntersections' will display the intersections on the road layer False by default.
static java.lang.String DrawResultsProperty
          Property 'drawResults' will display the results of each road request on the road layer False by default.
 
Fields inherited from class com.bbn.openmap.layer.shape.MultiShapeLayer
ShapeFileListProperty, spatialIndexes
 
Fields inherited from class com.bbn.openmap.layer.shape.ShapeLayer
box, drawingAttributes, pointImageURLProperty, shapeFileProperty, spatialIndex
 
Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
consumeEvents, ConsumeEventsProperty, filter, interruptable, InterruptableProperty, layerWorker, LAYERWORKER_LOCK, layerWorkerQueue, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList, TransparencyProperty
 
Fields inherited from class com.bbn.openmap.Layer
addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, attributes, autoPalette, AutoPaletteProperty, beanContextChildSupport, coordTransform, DataPathPrefixProperty, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, localHackList, maxScale, MaxScaleProperty, minScale, MinScaleProperty, palette, paletteListener, PrettyNameProperty, propertyPrefix, readyToPaint, RedrawCmd, removable, RemovableProperty, SWING_PACKAGE, TransformProperty, 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
MultiRoadLayer()
           
 
Method Summary
 java.util.List displayPathOnRoad(java.awt.Point start, java.awt.Point end, Route route, java.util.List segments)
          Displays a Route between two points on the map.
 java.util.List getGraphicList()
          Flattens nested OMGraphicLists of lists into one level list of OMGraphic items.
 Route getPathOnRoad(LatLonPoint start, LatLonPoint end)
          Returns the best Route between a start point and end point.
 java.util.List getPathOnRoad(java.awt.Point start, java.awt.Point end, java.util.List segments)
          Get points on the road between start and end Implemented for the RoadService interface
 RoadServices getRoadServices()
          Returns the RoadServices instance.
 void paint(java.awt.Graphics g)
          If drawIntersections or drawResults is true, will add intersection markers or returned road lines to what is rendered.
 void projectionChanged(ProjectionEvent e)
          Implemented for ProjectionListener
protected  void setDrawIntersections(boolean val)
           
protected  void setDrawResults(boolean val)
           
 void setExtraGraphics(java.util.List toDraw)
          Called from RoadFinder to tell it what extra to render (e.g.
protected  void setHelper()
           
 void setProperties(java.lang.String prefix, java.util.Properties props)
          Initializes this layer from the given properties.
 
Methods inherited from class com.bbn.openmap.layer.shape.MultiShapeLayer
getDataBounds, getGUI, getProperties, getPropertyInfo, getSpatialIndexes, prepare, setFileProperties, setSpatialIndexes, setSpatialIndexes
 
Methods inherited from class com.bbn.openmap.layer.shape.ShapeLayer
computeGraphics, createDbfHandler, getDrawingAttributes, getInfoText, getSpatialIndex, getToolTipTextFor, removed, setDrawingAttributes, setSpatialIndex
 
Methods inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
actionPerformed, canSetList, copy, createLayerWorker, cut, deselect, dispose, doAction, doPrepare, filter, filter, filter, getConsumeEvents, getDefaultSettingsPanel, getFilter, getItemsForMapMenu, getItemsForOMGraphicMenu, getLayerWorker, getList, getMapMouseListener, getMouseEventInterpreter, getMouseModeIDsForEvents, getProjectionChangePolicy, getRedrawButton, getRenderPolicy, getSelected, getSettingsButton, getTransparency, getTransparencyAdjustmentPanel, highlight, isCancelled, isHighlightable, isInterruptable, isSelectable, isWorking, leftClick, mouseOver, paste, receivesMapEvents, renderDataForProjection, resetFiltering, select, setConsumeEvents, setFilter, setInterruptable, setLayerWorker, setList, setMouseEventInterpreter, setMouseModeIDsForEvents, setProjectionChangePolicy, setRenderPolicy, setTransparency, supportsSQL, unhighlight, workerComplete
 
Methods inherited from class com.bbn.openmap.Layer
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, isReadyToPaint, isRemovable, notifyHideHack, prependDataPathPrefix, putAttribute, removeComponentListener, removeConfirmed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, setBeanContext, setCoordTransform, setIcon, setLayerProperties, setMaxScale, setMinScale, setName, setPaletteVisible, setProjection, setProjection, setProperties, setPropertyPrefix, setReadyToPaint, setRemovable, setVisible, setWindowSupport, showPalette
 
Methods inherited from class javax.swing.JComponent
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, 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
 
Methods inherited from class java.awt.Container
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, 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, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.tools.roads.LayerView
getProjection
 
Methods inherited from interface java.awt.event.ActionListener
actionPerformed
 
Methods inherited from interface com.bbn.openmap.util.DataBoundsProvider
getName
 
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

DrawIntersectionsProperty

public static final java.lang.String DrawIntersectionsProperty
Property 'drawIntersections' will display the intersections on the road layer False by default.

See Also:
Constant Field Values

DrawResultsProperty

public static final java.lang.String DrawResultsProperty
Property 'drawResults' will display the results of each road request on the road layer False by default.

See Also:
Constant Field Values
Constructor Detail

MultiRoadLayer

public MultiRoadLayer()
Method Detail

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties props)
Description copied from class: ShapeLayer
Initializes this layer from the given properties.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class ShapeLayer
Parameters:
prefix - the token to prefix the property names
props - the Properties holding settings for this layer

setDrawIntersections

protected void setDrawIntersections(boolean val)

setDrawResults

protected void setDrawResults(boolean val)

setHelper

protected void setHelper()

getPathOnRoad

public java.util.List getPathOnRoad(java.awt.Point start,
                                    java.awt.Point end,
                                    java.util.List segments)
Get points on the road between start and end Implemented for the RoadService interface

Specified by:
getPathOnRoad in interface RoadServices
Parameters:
start - from here
end - to there
segments - populated with road segments
Returns:
list of points on path

getPathOnRoad

public Route getPathOnRoad(LatLonPoint start,
                           LatLonPoint end)
Description copied from interface: RoadServices
Returns the best Route between a start point and end point.

This method works by finding the closest intersection to start and end points, and then finding a path from start intersection to end intersection. The method works in latitude/longitude coordinates.

Specified by:
getPathOnRoad in interface RoadServices
Parameters:
start - - Start point in latitude/longitude coordinates.
end - - End point in latitude/longitude coordinates.
Returns:
the best route to travel by Road from start to end
See Also:
RoadServices.getPathOnRoad(LatLonPoint, LatLonPoint)

displayPathOnRoad

public java.util.List displayPathOnRoad(java.awt.Point start,
                                        java.awt.Point end,
                                        Route route,
                                        java.util.List segments)
Description copied from interface: RoadServices
Displays a Route between two points on the map.

Specified by:
displayPathOnRoad in interface RoadServices
Parameters:
start - start from start point on map
end - to end point on map
route - the Route to travel from start to end
segments - as side effect, populated with PathSegments between returned WayPoints
Returns:
List of WayPoints
See Also:
RoadServices.displayPathOnRoad(Point, Point, Route, List)

getRoadServices

public RoadServices getRoadServices()
Returns the RoadServices instance.

Returns:
the RoadServices instance.

projectionChanged

public void projectionChanged(ProjectionEvent e)
Implemented for ProjectionListener

Specified by:
projectionChanged in interface ProjectionListener
Overrides:
projectionChanged in class OMGraphicHandlerLayer
Parameters:
e - ProjectionEvent
See Also:
ProjectionChangePolicy, StandardPCPolicy, ListResetPCPolicy

getGraphicList

public java.util.List getGraphicList()
Flattens nested OMGraphicLists of lists into one level list of OMGraphic items. Gets the original list of graphics items from getList.

Specified by:
getGraphicList in interface LayerView
Returns:
List of OMGraphic items that will be used to create roads

setExtraGraphics

public void setExtraGraphics(java.util.List toDraw)
Called from RoadFinder to tell it what extra to render (e.g. intersections, roads).

Specified by:
setExtraGraphics in interface LayerView

paint

public void paint(java.awt.Graphics g)
If drawIntersections or drawResults is true, will add intersection markers or returned road lines to what is rendered.

Overrides:
paint in class OMGraphicHandlerLayer
Parameters:
g - java.awt.Graphics object to render OMGraphics into.


Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details