public class JXMapViewer
extends javax.swing.JPanel
implements java.beans.DesignMode
GeoPosition
. The centerPosition property represents
the current center point of the map. If the user pans the map then the centerPosition point will
change but the addressLocation will not. Calling recenterToAddressLocation() will move the map
back to that center address. The center property represents the same point as the centerPosition
property, but as a Point2D in pixel space instead of a GeoPosition in lat/long space. Note that
the center property is a Point2D in the entire world bitmap, not in the portion of the map currently
visible. You can use the getViewportBounds() method to find the portion of the map currently visible
and adjust your calculations accordingly. Changing the center property will change the centerPosition
property and vice versa. All three properties are bound.javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
JXMapViewer()
Create a new JXMapViewer.
|
Modifier and Type | Method and Description |
---|---|
void |
calculateZoomFrom(java.util.Set<GeoPosition> positions)
Calculates a zoom level so that all points in the specified set will be visible on screen.
|
java.awt.geom.Point2D |
convertGeoPositionToPoint(GeoPosition pos)
Converts the specified GeoPosition to a point in the JXMapViewer's local coordinate space.
|
GeoPosition |
convertPointToGeoPosition(java.awt.geom.Point2D pt)
Converts the specified Point2D in the JXMapViewer's local coordinate space to a GeoPosition on the map.
|
protected void |
drawMapTiles(java.awt.Graphics g,
int zoom,
java.awt.Rectangle viewportBounds)
Draw the map tiles.
|
GeoPosition |
getAddressLocation()
Gets the current address location of the map.
|
java.awt.geom.Point2D |
getCenter()
Gets the current pixel center of the map.
|
GeoPosition |
getCenterPosition()
A property indicating the center position of the map
|
java.awt.Image |
getLoadingImage()
A property for an image which will be display when an image is still loading.
|
Painter<? super JXMapViewer> |
getOverlayPainter()
Gets the current map overlay
|
TileFactory |
getTileFactory()
Get the current factory
|
java.awt.Rectangle |
getViewportBounds()
Returns the bounds of the viewport in pixels.
|
int |
getZoom()
Gets the current zoom level
|
boolean |
isDesignTime()
Indicates whether the component is being used at design time, such as in a visual editor like NetBeans' Matisse
|
boolean |
isDrawTileBorders()
Indicates if the tile borders should be drawn.
|
boolean |
isHorizontalWrapped() |
boolean |
isInfiniteMapRendering() |
boolean |
isNegativeYAllowed()
Deprecated.
do not use
|
boolean |
isPanningEnabled()
Returns whether panning is enabled.
|
boolean |
isRestrictOutsidePanning() |
protected void |
paintComponent(java.awt.Graphics g) |
void |
recenterToAddressLocation()
Re-centers the map to have the current address location be at the center of the map, accounting for the map's
width and height.
|
void |
setAddressLocation(GeoPosition addressLocation)
Gets the current address location of the map
|
void |
setCenter(java.awt.geom.Point2D center)
Sets the new center of the map in pixel coordinates.
|
void |
setCenterPosition(GeoPosition geoPosition)
A property indicating the center position of the map
|
void |
setDesignTime(boolean b)
Indicate that the component is being used at design time, such as in a visual editor like NetBeans' Matisse
|
void |
setDrawTileBorders(boolean drawTileBorders)
Set if the tile borders should be drawn.
|
void |
setHorizontalWrapped(boolean horizontalWrapped) |
void |
setInfiniteMapRendering(boolean infiniteMapRendering)
Side note: This setting is ignored when horizontaklWrapped is set to true.
|
void |
setLoadingImage(java.awt.Image loadingImage)
A property for an image which will be display when an image is still loading.
|
void |
setOverlayPainter(Painter<? super JXMapViewer> overlay)
Sets the map overlay.
|
void |
setPanEnabled(boolean enabled)
Enables or disables panning.
|
void |
setRestrictOutsidePanning(boolean restrictOutsidePanning) |
void |
setTileFactory(TileFactory factory)
Set the current tile factory (must not be
null ) |
void |
setZoom(int zoom)
Set the current zoom level
|
void |
zoomToBestFit(java.util.Set<GeoPosition> positions,
double maxFraction)
Zoom and center the map to a best fit around the input GeoPositions.
|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, 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
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, 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 JXMapViewer()
protected void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
public void setDesignTime(boolean b)
setDesignTime
in interface java.beans.DesignMode
b
- indicates if the component is being used at design timepublic boolean isDesignTime()
isDesignTime
in interface java.beans.DesignMode
protected void drawMapTiles(java.awt.Graphics g, int zoom, java.awt.Rectangle viewportBounds)
g
- Graphicszoom
- zoom level to draw atviewportBounds
- the bounds to draw withinpublic void setOverlayPainter(Painter<? super JXMapViewer> overlay)
Painter<JXMapViewer>
which will paint on top of the map. It can be used to draw waypoints,
lines, or static overlays like text messages.overlay
- the map overlay to usepublic Painter<? super JXMapViewer> getOverlayPainter()
public java.awt.Rectangle getViewportBounds()
public void setZoom(int zoom)
zoom
- the new zoom levelpublic int getZoom()
public GeoPosition getAddressLocation()
public void setAddressLocation(GeoPosition addressLocation)
addressLocation
- the new address locationpublic void recenterToAddressLocation()
public boolean isDrawTileBorders()
public void setDrawTileBorders(boolean drawTileBorders)
drawTileBorders
- new value of this drawTileBorderspublic void setCenterPosition(GeoPosition geoPosition)
geoPosition
- the new property valuepublic GeoPosition getCenterPosition()
public TileFactory getTileFactory()
public void setTileFactory(TileFactory factory)
null
)factory
- the new property valuepublic java.awt.Image getLoadingImage()
public void setLoadingImage(java.awt.Image loadingImage)
loadingImage
- the new property valuepublic java.awt.geom.Point2D getCenter()
public void setCenter(java.awt.geom.Point2D center)
center
- the new center of the map in pixel coordinatespublic void calculateZoomFrom(java.util.Set<GeoPosition> positions)
positions
- A set of GeoPositions to calculate the new zoom frompublic void zoomToBestFit(java.util.Set<GeoPosition> positions, double maxFraction)
positions
- A set of GeoPositions to calculate the new zoom frommaxFraction
- the maximum fraction of the viewport that should be coveredpublic boolean isRestrictOutsidePanning()
public void setRestrictOutsidePanning(boolean restrictOutsidePanning)
restrictOutsidePanning
- set if panning is restricted or notpublic boolean isHorizontalWrapped()
public void setInfiniteMapRendering(boolean infiniteMapRendering)
infiniteMapRendering
- true when infinite map rendering should be enabledpublic boolean isInfiniteMapRendering()
public void setHorizontalWrapped(boolean horizontalWrapped)
horizontalWrapped
- true if horizontal wrap is enabledpublic java.awt.geom.Point2D convertGeoPositionToPoint(GeoPosition pos)
pos
- a GeoPosition on the mappublic GeoPosition convertPointToGeoPosition(java.awt.geom.Point2D pt)
pt
- a point in the local coordinate space of the map@Deprecated public boolean isNegativeYAllowed()
public void setPanEnabled(boolean enabled)
enabled
- if true, panning is enabled (the default), if false, panning is disabledpublic boolean isPanningEnabled()
PanMouseInputListener