public class NavigatableComponent extends javax.swing.JComponent implements Helpful
MapMover
. Used as map view and for the
zoomer in the download dialog.Modifier and Type | Class and Description |
---|---|
private static class |
NavigatableComponent.CursorInfo |
static interface |
NavigatableComponent.SoMChangeListener
Interface to notify listeners of the change of the system of measurement.
|
static interface |
NavigatableComponent.ZoomChangeListener
Interface to notify listeners of the change of the zoom area.
|
private class |
NavigatableComponent.ZoomData |
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
protected EastNorth |
center
Center n/e coordinate of the desired screen center.
|
private java.util.LinkedList<NavigatableComponent.CursorInfo> |
cursors |
Predicate<OsmPrimitive> |
isSelectablePredicate |
private java.awt.Polygon |
paintPoly |
private java.awt.Rectangle |
paintRect |
private java.lang.Object |
paintRequestLock |
static IntegerProperty |
PROP_SNAP_DISTANCE |
static java.lang.String |
PROPNAME_CENTER |
static java.lang.String |
PROPNAME_SCALE |
private double |
scale
The scale factor in x or y-units per pixel.
|
private static java.util.concurrent.CopyOnWriteArrayList<NavigatableComponent.SoMChangeListener> |
somChangeListeners |
private static java.util.concurrent.CopyOnWriteArrayList<NavigatableComponent.ZoomChangeListener> |
zoomChangeListeners
the zoom listeners
|
private java.util.Stack<NavigatableComponent.ZoomData> |
zoomRedoBuffer |
private java.util.Date |
zoomTimestamp |
private java.util.Stack<NavigatableComponent.ZoomData> |
zoomUndoBuffer |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
NavigatableComponent()
Constructs a new
NavigatableComponent . |
Modifier and Type | Method and Description |
---|---|
static void |
addSoMChangeListener(NavigatableComponent.SoMChangeListener listener)
Adds a SoM change listener
|
static void |
addZoomChangeListener(NavigatableComponent.ZoomChangeListener listener)
Adds a zoom change listener
|
private EastNorth |
calculateDefaultCenter() |
protected static void |
fireSoMChanged(java.lang.String oldSoM,
java.lang.String newSoM) |
protected static void |
fireZoomChanged() |
java.awt.geom.AffineTransform |
getAffineTransform() |
java.util.List<OsmPrimitive> |
getAllNearest(java.awt.Point p,
java.util.Collection<OsmPrimitive> ignore,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
java.util.List<OsmPrimitive> |
getAllNearest(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
static java.lang.String |
getAreaText(double area)
Returns the text describing the given area in the current system of measurement.
|
static java.lang.String |
getAreaText(double area,
java.text.NumberFormat format,
double threshold)
Returns the text describing the given area in the current system of measurement.
|
private BBox |
getBBox(java.awt.Point p,
int snapDistance) |
EastNorth |
getCenter() |
protected DataSet |
getCurrentDataSet() |
double |
getDist100Pixel() |
java.lang.String |
getDist100PixelText() |
static java.lang.String |
getDistText(double dist)
Returns the text describing the given distance in the current system of measurement.
|
static java.lang.String |
getDistText(double dist,
java.text.NumberFormat format,
double threshold)
Returns the text describing the given distance in the current system of measurement.
|
EastNorth |
getEastNorth(int x,
int y) |
LatLon |
getLatLon(double x,
double y) |
LatLon |
getLatLon(int x,
int y) |
Bounds |
getLatLonBounds(java.awt.Rectangle r) |
ProjectionBounds |
getMaxProjectionBounds() |
Node |
getNearestNode(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
Convenience method to
getNearestNode(Point, Predicate, boolean) . |
Node |
getNearestNode(java.awt.Point p,
Predicate<OsmPrimitive> predicate,
boolean useSelected)
The *result* depends on the current map selection state IF use_selected is true.
|
Node |
getNearestNode(java.awt.Point p,
Predicate<OsmPrimitive> predicate,
boolean useSelected,
java.util.Collection<OsmPrimitive> preferredRefs)
The *result* depends on the current map selection state IF use_selected is true
If more than one node within node.snap-distance pixels is found,
the nearest node selected is returned IF use_selected is true.
|
OsmPrimitive |
getNearestNodeOrWay(java.awt.Point p,
Predicate<OsmPrimitive> predicate,
boolean use_selected)
The *result* depends on the current map selection state IF use_selected is true.
|
java.util.List<Node> |
getNearestNodes(java.awt.Point p,
java.util.Collection<Node> ignore,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
java.util.List<Node> |
getNearestNodes(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
private java.util.Map<java.lang.Double,java.util.List<Node>> |
getNearestNodesImpl(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
java.util.List<OsmPrimitive> |
getNearestNodesOrWays(java.awt.Point p,
java.util.Collection<OsmPrimitive> ignore,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
java.util.List<OsmPrimitive> |
getNearestNodesOrWays(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
Way |
getNearestWay(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The *result* depends on the current map selection state.
|
java.util.List<Way> |
getNearestWays(java.awt.Point p,
java.util.Collection<Way> ignore,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
java.util.List<Way> |
getNearestWays(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
WaySegment |
getNearestWaySegment(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
Convenience method to
getNearestWaySegment(Point, Predicate, boolean) . |
WaySegment |
getNearestWaySegment(java.awt.Point p,
Predicate<OsmPrimitive> predicate,
boolean useSelected)
The *result* depends on the current map selection state IF use_selected is true.
|
WaySegment |
getNearestWaySegment(java.awt.Point p,
Predicate<OsmPrimitive> predicate,
boolean use_selected,
java.util.Collection<OsmPrimitive> preferredRefs)
The *result* depends on the current map selection state IF use_selected is true.
|
java.util.List<WaySegment> |
getNearestWaySegments(java.awt.Point p,
java.util.Collection<WaySegment> ignore,
Predicate<OsmPrimitive> predicate)
The result *order* depends on the current map selection state.
|
java.util.List<WaySegment> |
getNearestWaySegments(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The result *order* depends on the current map selection state.
|
private java.util.Map<java.lang.Double,java.util.List<WaySegment>> |
getNearestWaySegmentsImpl(java.awt.Point p,
Predicate<OsmPrimitive> predicate)
The *result* does not depend on the current map selection state,
neither does the result *order*.
|
java.awt.Point |
getPoint(EastNorth p) |
java.awt.Point |
getPoint(LatLon latlon) |
java.awt.Point |
getPoint(Node n) |
java.awt.geom.Point2D |
getPoint2D(EastNorth p)
Return the point on the screen where this Coordinate would be.
|
java.awt.geom.Point2D |
getPoint2D(LatLon latlon) |
java.awt.geom.Point2D |
getPoint2D(Node n) |
Projection |
getProjection() |
ProjectionBounds |
getProjectionBounds() |
Bounds |
getRealBounds() |
double |
getScale() |
static SystemOfMeasurement |
getSystemOfMeasurement()
Returns the current system of measurement.
|
int |
getViewID()
Return a ID which is unique as long as viewport dimensions are the same
|
boolean |
hasZoomRedoEntries() |
boolean |
hasZoomUndoEntries() |
java.lang.String |
helpTopic() |
private boolean |
isPrecedenceNode(Node osm,
java.awt.Point p,
boolean use_selected)
This is used as a helper routine to
getNearestNodeOrWay(Point, Predicate, boolean)
It decides, whether to yield the node to be tested or look for further (way) candidates. |
void |
paint(java.awt.Graphics g) |
static double |
perDist(java.awt.geom.Point2D pt,
java.awt.geom.Point2D a,
java.awt.geom.Point2D b) |
static java.awt.geom.Point2D |
project(double r,
java.awt.geom.Point2D a,
java.awt.geom.Point2D b)
if r = 0 returns a, if r=1 returns b,
if r = 0.5 returns center between a and b, etc..
|
static java.awt.geom.Point2D |
project(java.awt.geom.Point2D pt,
java.awt.geom.Point2D a,
java.awt.geom.Point2D b) |
private void |
pushZoomUndo(EastNorth center,
double scale) |
static void |
removeSoMChangeListener(NavigatableComponent.SoMChangeListener listener)
Removes a SoM change listener
|
static void |
removeZoomChangeListener(NavigatableComponent.ZoomChangeListener listener)
Removes a zoom change listener
|
void |
requestClearPoly()
Requests to clear the polyline previously drawn.
|
void |
requestClearRect()
Requests to clear the rectangled previously drawn.
|
void |
requestPaintPoly(java.awt.Polygon p)
Requests to paint the given
Polygon as a polyline (unclosed polygon). |
void |
requestPaintRect(java.awt.Rectangle r)
Requests to paint the given
Rectangle . |
void |
resetCursor(java.lang.Object reference)
Remove the new cursor and reset to previous
|
void |
setNewCursor(java.awt.Cursor cursor,
java.lang.Object reference)
Set new cursor.
|
void |
setNewCursor(int cursor,
java.lang.Object reference) |
static void |
setSystemOfMeasurement(java.lang.String somKey)
Sets the current system of measurement.
|
void |
smoothScrollTo(EastNorth newCenter)
Create a thread that moves the viewport to the given center in an
animated fashion.
|
void |
smoothScrollTo(LatLon newCenter) |
private void |
stripCursors(java.lang.Object reference) |
void |
zoomNext() |
private void |
zoomNoUndoTo(EastNorth newCenter,
double newScale)
Zoom to the given coordinate without adding to the zoom undo buffer.
|
void |
zoomPrevious() |
void |
zoomTo(Bounds box) |
void |
zoomTo(EastNorth newCenter) |
void |
zoomTo(EastNorth newCenter,
double newScale)
Zoom to the given coordinate.
|
void |
zoomTo(LatLon newCenter) |
void |
zoomTo(ProjectionBounds box) |
void |
zoomToFactor(double factor) |
void |
zoomToFactor(double x,
double y,
double factor) |
void |
zoomToFactor(EastNorth newCenter,
double factor) |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, 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, hide, 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, 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, setVisible, 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, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, 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, 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, removeComponentListener, 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, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public Predicate<OsmPrimitive> isSelectablePredicate
public static final IntegerProperty PROP_SNAP_DISTANCE
public static final java.lang.String PROPNAME_CENTER
public static final java.lang.String PROPNAME_SCALE
private static final java.util.concurrent.CopyOnWriteArrayList<NavigatableComponent.ZoomChangeListener> zoomChangeListeners
private static final java.util.concurrent.CopyOnWriteArrayList<NavigatableComponent.SoMChangeListener> somChangeListeners
private double scale
private final java.lang.Object paintRequestLock
private java.awt.Rectangle paintRect
private java.awt.Polygon paintPoly
private java.util.Stack<NavigatableComponent.ZoomData> zoomUndoBuffer
private java.util.Stack<NavigatableComponent.ZoomData> zoomRedoBuffer
private java.util.Date zoomTimestamp
private java.util.LinkedList<NavigatableComponent.CursorInfo> cursors
public NavigatableComponent()
NavigatableComponent
.public static void removeZoomChangeListener(NavigatableComponent.ZoomChangeListener listener)
listener
- the listener. Ignored if null or already absentpublic static void addZoomChangeListener(NavigatableComponent.ZoomChangeListener listener)
listener
- the listener. Ignored if null or already registered.protected static void fireZoomChanged()
public static void removeSoMChangeListener(NavigatableComponent.SoMChangeListener listener)
listener
- the listener. Ignored if null or already absentpublic static void addSoMChangeListener(NavigatableComponent.SoMChangeListener listener)
listener
- the listener. Ignored if null or already registered.protected static void fireSoMChanged(java.lang.String oldSoM, java.lang.String newSoM)
protected DataSet getCurrentDataSet()
private EastNorth calculateDefaultCenter()
public static java.lang.String getDistText(double dist)
dist
- The distance in metres.public static java.lang.String getDistText(double dist, java.text.NumberFormat format, double threshold)
dist
- The distance in metresformat
- A NumberFormat
to format the area valuethreshold
- Values lower than this threshold
are displayed as "< [threshold]"
public static java.lang.String getAreaText(double area)
area
- The distance in square metres.public static java.lang.String getAreaText(double area, java.text.NumberFormat format, double threshold)
area
- The area in square metresformat
- A NumberFormat
to format the area valuethreshold
- Values lower than this threshold
are displayed as "< [threshold]"
public java.lang.String getDist100PixelText()
public double getDist100Pixel()
public EastNorth getCenter()
public double getScale()
public EastNorth getEastNorth(int x, int y)
x
- X-Pixelposition to get coordinate fromy
- Y-Pixelposition to get coordinate frompublic ProjectionBounds getProjectionBounds()
public ProjectionBounds getMaxProjectionBounds()
public Bounds getRealBounds()
public LatLon getLatLon(int x, int y)
x
- X-Pixelposition to get coordinate fromy
- Y-Pixelposition to get coordinate frompublic Bounds getLatLonBounds(java.awt.Rectangle r)
r
- public java.awt.geom.AffineTransform getAffineTransform()
public java.awt.geom.Point2D getPoint2D(EastNorth p)
p
- The point, where this geopoint would be drawn.public java.awt.geom.Point2D getPoint2D(LatLon latlon)
public java.awt.geom.Point2D getPoint2D(Node n)
public void zoomTo(EastNorth newCenter, double newScale)
newCenter
- The center x-value (easting) to zoom to.newScale
- The scale to use.private void zoomNoUndoTo(EastNorth newCenter, double newScale)
newCenter
- The center x-value (easting) to zoom to.newScale
- The scale to use.public void smoothScrollTo(LatLon newCenter)
public void smoothScrollTo(EastNorth newCenter)
public void zoomToFactor(double x, double y, double factor)
public void zoomToFactor(EastNorth newCenter, double factor)
public void zoomToFactor(double factor)
public void zoomTo(ProjectionBounds box)
private void pushZoomUndo(EastNorth center, double scale)
public void zoomPrevious()
public void zoomNext()
public boolean hasZoomUndoEntries()
public boolean hasZoomRedoEntries()
private java.util.Map<java.lang.Double,java.util.List<Node>> getNearestNodesImpl(java.awt.Point p, Predicate<OsmPrimitive> predicate)
public final java.util.List<Node> getNearestNodes(java.awt.Point p, java.util.Collection<Node> ignore, Predicate<OsmPrimitive> predicate)
p
- the point for which to search the nearest segment.ignore
- a collection of nodes which are not to be returned.predicate
- the returned objects have to fulfill certain properties.public final java.util.List<Node> getNearestNodes(java.awt.Point p, Predicate<OsmPrimitive> predicate)
p
- the point for which to search the nearest segment.predicate
- the returned objects have to fulfill certain properties.getNearestNodes(Point, Collection, Predicate)
public final Node getNearestNode(java.awt.Point p, Predicate<OsmPrimitive> predicate, boolean useSelected)
p
- the screen pointpredicate
- this parameter imposes a condition on the returned object, e.g.
give the nearest node that is tagged.public final Node getNearestNode(java.awt.Point p, Predicate<OsmPrimitive> predicate, boolean useSelected, java.util.Collection<OsmPrimitive> preferredRefs)
p
- the screen pointpredicate
- this parameter imposes a condition on the returned object, e.g.
give the nearest node that is tagged.preferredRefs
- primitives, whose nodes we preferpublic final Node getNearestNode(java.awt.Point p, Predicate<OsmPrimitive> predicate)
getNearestNode(Point, Predicate, boolean)
.p
- the screen pointpredicate
- this parameter imposes a condition on the returned object, e.g.
give the nearest node that is tagged.private java.util.Map<java.lang.Double,java.util.List<WaySegment>> getNearestWaySegmentsImpl(java.awt.Point p, Predicate<OsmPrimitive> predicate)
public final java.util.List<WaySegment> getNearestWaySegments(java.awt.Point p, java.util.Collection<WaySegment> ignore, Predicate<OsmPrimitive> predicate)
p
- the point for which to search the nearest segments.ignore
- a collection of segments which are not to be returned.predicate
- the returned objects have to fulfill certain properties.public final java.util.List<WaySegment> getNearestWaySegments(java.awt.Point p, Predicate<OsmPrimitive> predicate)
p
- the point for which to search the nearest segments.predicate
- the returned objects have to fulfill certain properties.getNearestWaySegments(Point, Collection, Predicate)
public final WaySegment getNearestWaySegment(java.awt.Point p, Predicate<OsmPrimitive> predicate, boolean useSelected)
p
- the point for which to search the nearest segment.predicate
- the returned object has to fulfill certain properties.useSelected
- whether selected way segments should be preferred.getNearestWaySegments(Point, Collection, Predicate)
public final WaySegment getNearestWaySegment(java.awt.Point p, Predicate<OsmPrimitive> predicate, boolean use_selected, java.util.Collection<OsmPrimitive> preferredRefs)
p
- the point for which to search the nearest segment.predicate
- the returned object has to fulfill certain properties.use_selected
- whether selected way segments should be preferred.preferredRefs
- - prefer segments related to these primitives, may be nullgetNearestWaySegments(Point, Collection, Predicate)
public final WaySegment getNearestWaySegment(java.awt.Point p, Predicate<OsmPrimitive> predicate)
getNearestWaySegment(Point, Predicate, boolean)
.p
- the point for which to search the nearest segment.predicate
- the returned object has to fulfill certain properties.public final java.util.List<Way> getNearestWays(java.awt.Point p, java.util.Collection<Way> ignore, Predicate<OsmPrimitive> predicate)
p
- the point for which to search the nearest ways.ignore
- a collection of ways which are not to be returned.predicate
- the returned object has to fulfill certain properties.getNearestWaySegments(Point, Collection, Predicate)
public final java.util.List<Way> getNearestWays(java.awt.Point p, Predicate<OsmPrimitive> predicate)
p
- the point for which to search the nearest ways.predicate
- the returned object has to fulfill certain properties.getNearestWays(Point, Collection, Predicate)
public final Way getNearestWay(java.awt.Point p, Predicate<OsmPrimitive> predicate)
p
- the point for which to search the nearest segment.predicate
- the returned object has to fulfill certain properties.getNearestWaySegment(Point, Predicate)
public final java.util.List<OsmPrimitive> getNearestNodesOrWays(java.awt.Point p, java.util.Collection<OsmPrimitive> ignore, Predicate<OsmPrimitive> predicate)
p
- The point on screen.ignore
- a collection of ways which are not to be returned.predicate
- the returned object has to fulfill certain properties.getNearestNodes(Point, Collection, Predicate)
,
getNearestWays(Point, Collection, Predicate)
public final java.util.List<OsmPrimitive> getNearestNodesOrWays(java.awt.Point p, Predicate<OsmPrimitive> predicate)
p
- The point on screen.predicate
- the returned object has to fulfill certain properties.getNearestNodesOrWays(Point, Collection, Predicate)
private boolean isPrecedenceNode(Node osm, java.awt.Point p, boolean use_selected)
getNearestNodeOrWay(Point, Predicate, boolean)
It decides, whether to yield the node to be tested or look for further (way) candidates.osm
- node to checkp
- point clickeduse_selected
- whether to prefer selected nodespublic final OsmPrimitive getNearestNodeOrWay(java.awt.Point p, Predicate<OsmPrimitive> predicate, boolean use_selected)
getNearestNode(Point, Predicate)
to find
the nearest, selected node. If not found, try getNearestWaySegment(Point, Predicate)
to find the nearest selected way.
IF use_selected is false, or if no selected primitive was found, do the following.
If the nearest node found is within 4px of p, simply take it.
Else, find the nearest way segment. Then, if p is closer to its
middle than to the node, take the way segment, else take the node.
Finally, if no nearest primitive is found at all, return null.p
- The point on screen.predicate
- the returned object has to fulfill certain properties.use_selected
- whether to prefer primitives that are currently selected or referred by selected primitivesgetNearestNode(Point, Predicate)
,
getNearestWay(Point, Predicate)
public static double perDist(java.awt.geom.Point2D pt, java.awt.geom.Point2D a, java.awt.geom.Point2D b)
public static java.awt.geom.Point2D project(java.awt.geom.Point2D pt, java.awt.geom.Point2D a, java.awt.geom.Point2D b)
pt
- point to project onto (ab)a
- root of vectorb
- vectorpublic static java.awt.geom.Point2D project(double r, java.awt.geom.Point2D a, java.awt.geom.Point2D b)
r
- scale valuea
- root of vectorb
- vectorpublic final java.util.List<OsmPrimitive> getAllNearest(java.awt.Point p, java.util.Collection<OsmPrimitive> ignore, Predicate<OsmPrimitive> predicate)
p
- The point on screen.ignore
- a collection of ways which are not to be returned.predicate
- the returned object has to fulfill certain properties.public final java.util.List<OsmPrimitive> getAllNearest(java.awt.Point p, Predicate<OsmPrimitive> predicate)
p
- The point on screen.predicate
- the returned object has to fulfill certain properties.getAllNearest(Point, Collection, Predicate)
public Projection getProjection()
public int getViewID()
public static SystemOfMeasurement getSystemOfMeasurement()
public static void setSystemOfMeasurement(java.lang.String somKey)
somKey
- The system of measurement key. Must be defined in SystemOfMeasurement.ALL_SYSTEMS
.java.lang.IllegalArgumentException
- if somKey
is not knownpublic void setNewCursor(java.awt.Cursor cursor, java.lang.Object reference)
public void setNewCursor(int cursor, java.lang.Object reference)
public void resetCursor(java.lang.Object reference)
private void stripCursors(java.lang.Object reference)
public void paint(java.awt.Graphics g)
paint
in class javax.swing.JComponent
public void requestPaintRect(java.awt.Rectangle r)
Rectangle
.r
- The Rectangle to drawrequestClearRect()
public void requestPaintPoly(java.awt.Polygon p)
Polygon
as a polyline (unclosed polygon).p
- The Polygon to drawrequestClearPoly()
public void requestClearRect()
requestPaintRect(java.awt.Rectangle)
public void requestClearPoly()
requestPaintPoly(java.awt.Polygon)