Class GeographicalMap

All Implemented Interfaces:
ComponentListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants, FullGeoMapIfc, GeoMapIfc, ShutdownHandler, FilterChangeListener, GpsDataListener, FirstWindowInitIfc, GeoMapGuiIfc, PortMgmtListener, PrintableView

This class defines a map window for YAAC, using Java AWT/Swing and the OpenMap library to provide the graphical interface and manage user input to the map.
Author:
Andrew Pavlin, KA2DDO, James Palmer, AG5VQ
See Also:
  • Constructor Details

    • GeographicalMap

      public GeographicalMap(MainGui mainGui)
      Create the main window of YAAC, containing the geographic map, the menu bar, and a few other toolbar controls.
      Parameters:
      mainGui - GUI core object to fetch common GUI information from
    • GeographicalMap

      public GeographicalMap(MainGui mainGui, String title, double lat, double lon)
      Create a secondary map window, containing the geographic map, the menu bar, and a few other toolbar controls.
      Parameters:
      mainGui - GUI core object to fetch common GUI information from
      title - String title to specify on map window title bar
      lat - double latitude of map center in fractional degrees North
      lon - double lomgitude of map center in fractional degrees East
  • Method Details

    • addMapLayer

      public static void addMapLayer(GeographicalMap.LayerCreator lc)
      Allow plugin to insert a new Layer into the GeographicalMap when it is created. Note that this method should be called before the second phase of initializing the first window is invoked; a good way to do this is from the Provider.runInitializersAfter() method of the plugin defining the new Layer.
      Parameters:
      lc - LayerCreator object defining the Z order and means of creating and initializing the new Layer
      See Also:
    • isUseGroundObstructions

      public static boolean isUseGroundObstructions()
      Report whether ground obstructions found in OpenStreetMap data should be plotted on LineOfSightPanes.
      Returns:
      boolean true if ground obstructions should be plotted
    • setUseGroundObstructions

      public static void setUseGroundObstructions(boolean useGroundObstructions)
      Specify whether ground obstructions found in OpenStreetMap data should be plotted on LineOfSightPanes.
      Parameters:
      useGroundObstructions - boolean true if ground obstructions should be plotted
    • registerMapKeystrokeActions

      public void registerMapKeystrokeActions(int modifiers, InputMap inputMap, ActionMap actionMap)
      Register the keystrokes that can be used to move this object's map around. Presumably, this will be called on the map itself, but may also be called on other widgets (such as the LineOfSightPane) that will take over keyboard focus from the map but still affect the map.
      Specified by:
      registerMapKeystrokeActions in interface GeoMapGuiIfc
      Parameters:
      modifiers - int KeyEvent modifiers (in case we have a conflict with mouse and key strokes)
      inputMap - InputMap of component(s) to add hot-keys to
      actionMap - ActionMap of component(s) to add hot-keys to
    • setMainFrameTitle

      public void setMainFrameTitle()
      Specify the title displayed in the main window's title bar.
    • dispose

      public void dispose()
      Releases all of the native screen resources used by this Window, its subcomponents, and all of its owned children. That is, the resources for these Components will be destroyed, any memory they consume will be returned to the OS, and they will be marked as undisplayable.
      Overrides:
      dispose in class Window
    • setScale

      public void setScale(float scale)
      Change the scale of the map.
      Specified by:
      setScale in interface GeoMapIfc
      Parameters:
      scale - new scaling factor
    • getScale

      public float getScale()
      Get the current scale factor of the map.
      Specified by:
      getScale in interface GeoMapIfc
      Returns:
      scaling factor
    • getZoomScale

      public float getZoomScale()
      Get the current scale of the map in current DistanceUnits.
      Specified by:
      getZoomScale in interface GeoMapIfc
      Returns:
      half the width of the map in current units
    • setCenter

      public void setCenter(double lat, double lon)
      Set the current center position of the map.
      Specified by:
      setCenter in interface GeoMapGuiIfc
      Specified by:
      setCenter in interface GeoMapIfc
      Parameters:
      lat - latitude in degrees North
      lon - longitude in degrees East
    • setCenter

      public void setCenter(com.bbn.openmap.proj.coords.LatLonPoint p)
      Set the current center position of the map.
      Specified by:
      setCenter in interface GeoMapIfc
      Parameters:
      p - LatLonPoint for new center
    • getCenterLatitude

      public double getCenterLatitude()
      Get the latitude of the current center of the map.
      Specified by:
      getCenterLatitude in interface GeoMapIfc
      Returns:
      map center latitude in fractional degrees North
    • getCenterLongitude

      public double getCenterLongitude()
      Get the longitude of the current center of the map.
      Specified by:
      getCenterLongitude in interface GeoMapIfc
      Returns:
      map center longitude in fractional degrees East
    • getTopLatitude

      public double getTopLatitude()
      Get the latitude of the top edge of the map.
      Specified by:
      getTopLatitude in interface GeoMapIfc
      Returns:
      map top edge latitude in fractional degrees North
    • getLeftLongitude

      public double getLeftLongitude()
      Get the longitude of the left edge of the map.
      Specified by:
      getLeftLongitude in interface GeoMapIfc
      Returns:
      map left edge longitude in fractional degrees East
    • getBottomLatitude

      public double getBottomLatitude()
      Get the latitude of the bottom edge of the map.
      Specified by:
      getBottomLatitude in interface GeoMapIfc
      Returns:
      map bottom edge latitude in fractional degrees North
    • getRightLongitude

      public double getRightLongitude()
      Get the longitude of the right edge of the map.
      Specified by:
      getRightLongitude in interface GeoMapIfc
      Returns:
      map right edge longitude in fractional degrees East
    • initMenuBar

      public void initMenuBar()
      Phase 2 of initializing the GUI (stuff that needs the GUI property of the main YAAC object to be already initialized).
      Specified by:
      initMenuBar in interface FirstWindowInitIfc
    • locateASpecificStation

      public void locateASpecificStation(ArrayList<StationState> matchList, String callsign)
      Locate a specific station on the map window.
      Specified by:
      locateASpecificStation in interface GeoMapIfc
      Parameters:
      matchList - ArrayList of StationStates to locate
      callsign - String callsign or tactical alias of the located station
    • displayAttentionAlert

      public void displayAttentionAlert(StationState ss)
      Display a locate AttentionAlert (flashing arrows) on the map for a particular station or object.
      Parameters:
      ss - StationState of the station or object to highlight
    • displayAttentionAlert

      public void displayAttentionAlert(double latitude, double longitude, AX25Message.Precedence precedence)
      Display an AttentionAlert (flashing arrows) on the map for a particular position.
      Specified by:
      displayAttentionAlert in interface GeoMapIfc
      Parameters:
      latitude - double fractional degrees North
      longitude - double fraction degrees East
      precedence - code for color level to use; ROUTINE is used for station locates
    • isNightMode

      public boolean isNightMode()
      Report if the displays are in night mode.
      Specified by:
      isNightMode in interface GeoMapGuiIfc
      Specified by:
      isNightMode in interface GeoMapIfc
      Returns:
      boolean true if in night mode
    • setNightMode

      public void setNightMode(boolean isNight)
      Specify that the displays should be in night mode (black backgrounds with white text/lines, for not ruining the night vision of the operator).
      Specified by:
      setNightMode in interface GeoMapIfc
      Parameters:
      isNight - boolean true if should be in night mode
    • isMapAutoCentered

      public boolean isMapAutoCentered()
      Report whether the map should automatically pan to keep the local station centered on the map.
      Specified by:
      isMapAutoCentered in interface GeoMapGuiIfc
      Specified by:
      isMapAutoCentered in interface GeoMapIfc
      Returns:
      boolean true if map should auto-center, false otherwise
    • setMapAutoCentering

      public void setMapAutoCentering(boolean isAutoCentered)
      Specify whether the map should automatically pan to keep the local station centered on the map.
      Specified by:
      setMapAutoCentering in interface GeoMapGuiIfc
      Specified by:
      setMapAutoCentering in interface GeoMapIfc
      Parameters:
      isAutoCentered - boolean true if map should auto-center, false otherwise
    • refresh

      public void refresh()
      Force the map to immediately regenerate itself based on current state data.
      Specified by:
      refresh in interface GeoMapIfc
    • regenerateTopo

      public void regenerateTopo()
      Force the topographic layer to regenerate its overlay immediately.
      Specified by:
      regenerateTopo in interface FullGeoMapIfc
    • regenerateStations

      public void regenerateStations()
      Force the station renderer layer to regenerate its overlay immediately.
      Specified by:
      regenerateStations in interface GeoMapIfc
    • getMapBean

      public com.bbn.openmap.MapBean getMapBean()
      Get the JavaBean that actually contains the map canvas.
      Specified by:
      getMapBean in interface GeoMapGuiIfc
      Returns:
      MapBean
    • getMapPanel

      public com.bbn.openmap.gui.BasicMapPanel getMapPanel()
      Get the panel containing the rendered map.
      Returns:
      BasicMapPanel
    • getCenter

      public Point2D getCenter()
      Get the latitude/longitude coordinates of the center of the rendered map.
      Returns:
      Point2D containing the latitude (Y) and longitude (X) coordinates
    • getOSMLayer

      public final OSMLayer getOSMLayer()
      Get the street map rendering layer of this map.
      Specified by:
      getOSMLayer in interface GeoMapGuiIfc
      Returns:
      OSMLayer of this map
    • getRasterMapOverlay

      public final RasterMapOverlay getRasterMapOverlay()
      Get the raster map rendering layer of this map.
      Returns:
      RasterMapOverlay
    • getStationRenderer

      public final StationRenderer getStationRenderer()
      Get the station and object rendering layer of this map.
      Returns:
      StationRenderer
    • getTopoLayer

      public final TopoLayer getTopoLayer()
      Get the elevation topography rendering layer of this map.
      Specified by:
      getTopoLayer in interface GeoMapGuiIfc
      Returns:
      TopoLayer
    • gpsDataUpdated

      public void gpsDataUpdated(GPSDistributor distributor, GpsFix currentFix, boolean isLocal, String source)
      Do not call. Listener method used to inform the map bean that the map should be refreshed because the GPS position of the local station has changed.
      Specified by:
      gpsDataUpdated in interface GpsDataListener
      Parameters:
      distributor - GPSDistributor containing the current GPS state
      currentFix - current GpsFix
      isLocal - boolean true if this is GPS data for the local station, false if for a remote GPS receiver
      source - String name assigned to remote GPS receiver, or null if for the local receiver
    • satDataUpdated

      public void satDataUpdated(GPSDistributor distributor, SatelliteCatalog satCatalog, boolean isLocal, String source)
      Do not call. Listener method called when the satellite constellation in use changes (ignored).
      Specified by:
      satDataUpdated in interface GpsDataListener
      Parameters:
      distributor - instance of the GPSDistributor
      satCatalog - updated SatelliteCatalog instance
      isLocal - boolean true if this is GPS data for the local station, false if for a remote GPS receiver
      source - String name assigned to remote GPS receiver, or null if for the local receiver
    • copyMap

      public RenderedImage copyMap()
      Make a screenshot copy of the current map.
      Returns:
      RenderedImage containing the current map panel contents
    • setDrawToolBarVisibility

      public void setDrawToolBarVisibility(boolean isVisible)
      Specify whether the toolbar for the drawing tools should be visible or not.
      Specified by:
      setDrawToolBarVisibility in interface FullGeoMapIfc
      Parameters:
      isVisible - boolean true if draw toolbar should be shown
    • getMouseDelegator

      public com.bbn.openmap.MouseDelegator getMouseDelegator()
      Description copied from interface: GeoMapGuiIfc
      Get the OpenMap MouseDelegator for this map widget.
      Specified by:
      getMouseDelegator in interface GeoMapGuiIfc
      Returns:
      MouseDelegator
    • portCreated

      public void portCreated(PortConnector connector)
      Do not call. Callback to report that the specified port has been added to the configuration.
      Specified by:
      portCreated in interface PortMgmtListener
      Parameters:
      connector - PortConnector that was added
    • portDeleted

      public void portDeleted(PortConnector connector)
      Do not call. Callback to report that the specified port has been removed from the configuration..
      Specified by:
      portDeleted in interface PortMgmtListener
      Parameters:
      connector - PortConnector that was removed
    • shutdown

      public void shutdown()
      Do whatever cleanup this object needs for program shutdown.
      Specified by:
      shutdown in interface ShutdownHandler
    • makeGBC

      public static GridBagConstraints makeGBC(int x, int y)
      Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.
      Parameters:
      x - int value to use for gridx
      y - int value to use for gridy
      Returns:
      GridBagConstraints
    • makeGBC

      public static GridBagConstraints makeGBC(int x, int y, int w)
      Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.
      Parameters:
      x - int value to use for gridx
      y - int value to use for gridy
      w - int value to use for gridwidth
      Returns:
      GridBagConstraints
    • makeGBC

      public static GridBagConstraints makeGBC(int x, int y, int w, int h)
      Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.
      Parameters:
      x - int value to use for gridx
      y - int value to use for gridy
      w - int value to use for gridwidth
      h - int value to use for gridheight
      Returns:
      GridBagConstraints
    • showLayerSelectorTool

      public void showLayerSelectorTool()
      Display the dialog for selecting which parts of the OpenStreetMap database should be rendered on the map.
      Specified by:
      showLayerSelectorTool in interface FullGeoMapIfc
    • loadDrawing

      public void loadDrawing()
      Load drawing overlay.
      Specified by:
      loadDrawing in interface FullGeoMapIfc
    • loadGpsLog

      public void loadGpsLog()
      Load a GPS file into a map overlay.
      Specified by:
      loadGpsLog in interface GeoMapIfc
    • moveObject

      public void moveObject(StationState ss, ObjectReport or, MoveObjectListener moveObjectListener)
      Graphically drag a station or object across the map to a new location, updating the object's position appropriately and converting a station to an object if needed.
      Specified by:
      moveObject in interface FullGeoMapIfc
      Parameters:
      ss - StationState object describing the station or object
      or - ObjectReport to be modified by the move
      moveObjectListener - MoveObjectListener to inform when movement is over
    • showRasterMapDialog

      public void showRasterMapDialog()
      Display the dialog for managing raster map images overlays on the map window.
      Specified by:
      showRasterMapDialog in interface FullGeoMapIfc
    • printThisView

      public void printThisView()
      Print this PrintableView to the Java printing subsystem. All operations necessary, including finding an appropriate print service, creating some type of print job, and sending the contents to the job, are the responsibility of this method and the methods it calls.
      Specified by:
      printThisView in interface PrintableView
    • setMemoryGCPanelVisible

      public void setMemoryGCPanelVisible(boolean visible)
      Change the visibility of the memory usage status monitor.
      Specified by:
      setMemoryGCPanelVisible in interface GeoMapIfc
      Parameters:
      visible - boolean true if memory status monitor should be visible
    • isMemoryGCPanelVisible

      public boolean isMemoryGCPanelVisible()
      Report the current visibility of the MemoryGCPanel.
      Returns:
      boolean true if panel is visible
    • zoomPanToSelectedFeature

      public void zoomPanToSelectedFeature(GTNWrapper gtnWrapper)
      Zoom and pan the map so the specified map feature nearly fills the map.
      Specified by:
      zoomPanToSelectedFeature in interface GeoMapIfc
      Parameters:
      gtnWrapper - GTNWrapper around the GenericTaggedNode to be seen
    • displayLocateAmenityDialog

      public void displayLocateAmenityDialog()
      Display the Locate Amenity dialog, and handle user input to it.
      Specified by:
      displayLocateAmenityDialog in interface FullGeoMapIfc
    • displayNWSActiveZonesDialog

      public void displayNWSActiveZonesDialog()
      Display the Severe Weather dialog.
      Specified by:
      displayNWSActiveZonesDialog in interface FullGeoMapIfc
    • panZoomToWeatherZone

      public void panZoomToWeatherZone(int zoneRowIndex)
      Pan and zoom the map to show a specific severe weather zone.
      Specified by:
      panZoomToWeatherZone in interface FullGeoMapIfc
      Parameters:
      zoneRowIndex - zero-based row index into the table of severe weather zones
    • isDrawAllTrackStripes

      public boolean isDrawAllTrackStripes()
      Indicate whether all moving stations should have track stripes plotted.
      Specified by:
      isDrawAllTrackStripes in interface FullGeoMapIfc
      Returns:
      boolean true if all moving stations should have track stripes
    • setDrawAllTrackStripes

      public void setDrawAllTrackStripes(boolean drawAllTrackStripes)
      Specify whether all moving stations should have track stripes plotted.
      Specified by:
      setDrawAllTrackStripes in interface FullGeoMapIfc
      Parameters:
      drawAllTrackStripes - boolean true if all moving stations should have track stripes
    • clearAllSpecificTrackStripes

      public void clearAllSpecificTrackStripes()
      Clear the plotting of all specific station/object track stripes.
      Specified by:
      clearAllSpecificTrackStripes in interface FullGeoMapIfc
    • addSpecificTrackStripe

      public void addSpecificTrackStripe(String identifier)
      Add the identifier of a single station or object whose track stripe is to be plotted.
      Specified by:
      addSpecificTrackStripe in interface FullGeoMapIfc
      Parameters:
      identifier - String station or object identifier
    • removeSpecificTrackStripe

      public boolean removeSpecificTrackStripe(String identifier)
      Remove the identifier of a single station or object whose track stripe is no longer to be plotted.
      Specified by:
      removeSpecificTrackStripe in interface FullGeoMapIfc
      Parameters:
      identifier - String station or object identifier
      Returns:
      boolean true if identifier was removed
    • isSpecificallyTracked

      public boolean isSpecificallyTracked(String identifier)
      Test if a given identifier is on the tracking list.
      Specified by:
      isSpecificallyTracked in interface FullGeoMapIfc
      Parameters:
      identifier - String station or object identifier
      Returns:
      boolean true if this identifier is marked for track stripe display
    • isSpecificallyTracking

      public boolean isSpecificallyTracking()
      Test if any identifiers are on the tracking list.
      Specified by:
      isSpecificallyTracking in interface FullGeoMapIfc
      Returns:
      boolean true if any stations are specifically tagged for tracking
    • getMaxTrackDuration

      public long getMaxTrackDuration()
      Get the maximum duration of a track stripe in milliseconds.
      Specified by:
      getMaxTrackDuration in interface FullGeoMapIfc
      Returns:
      maximum plotted track duration in milliseconds
    • setMaxTrackDuration

      public void setMaxTrackDuration(long maxTrackDuration)
      Set the maximum duration of a track stripe in milliseconds.
      Specified by:
      setMaxTrackDuration in interface FullGeoMapIfc
      Parameters:
      maxTrackDuration - maximum plotted track duration in milliseconds
    • isDrawRangeCircles

      public boolean isDrawRangeCircles()
      Report whether radio range circles are being drawn for stations reporting or implying transmission range limits.
      Specified by:
      isDrawRangeCircles in interface GeoMapIfc
      Returns:
      boolean true if range circles are being drawn
    • setDrawRangeCircles

      public void setDrawRangeCircles(boolean drawRangeCircles)
      Specify whether range circles should be drawn around stations reporting or implying transmission range limits.
      Specified by:
      setDrawRangeCircles in interface GeoMapIfc
      Parameters:
      drawRangeCircles - boolean true if range circles should be drawn
    • isDrawMicEStatusCircles

      public boolean isDrawMicEStatusCircles()
      Report whether color-coded circles indicating Mic-E status codes are be drawn around stations reporting those codes.
      Specified by:
      isDrawMicEStatusCircles in interface GeoMapIfc
      Returns:
      boolean true if Mic-E status color circles are drawn
    • setDrawMicEStatusCircles

      public void setDrawMicEStatusCircles(boolean drawMicEStatusCircles)
      Specify whether color-coded circles indicating Mic-E status codes should be drawn around stations reporting those codes.
      Specified by:
      setDrawMicEStatusCircles in interface GeoMapIfc
      Parameters:
      drawMicEStatusCircles - boolean true if Mic-E status color circles should be drawn
    • isDrawSelf

      public boolean isDrawSelf()
      Report whether the local station is plotted on the map.
      Specified by:
      isDrawSelf in interface GeoMapIfc
      Returns:
      boolean true if local station is drawn
    • setDrawSelf

      public void setDrawSelf(boolean drawSelf)
      Specify whether the local station should be plotted on the map.
      Specified by:
      setDrawSelf in interface GeoMapIfc
      Parameters:
      drawSelf - boolean true if local station should be drawn
    • isDrawSelfLikeOther

      public boolean isDrawSelfLikeOther()
      Report whether local station is drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.
      Specified by:
      isDrawSelfLikeOther in interface GeoMapIfc
      Returns:
      boolean true to use APRS symbol, or false to use crosshairs for fixed station or pointer arrowhead for moving station
      See Also:
    • setDrawSelfLikeOther

      public void setDrawSelfLikeOther(boolean drawSelfLikeOther)
      Specify whether local station should be drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.
      Specified by:
      setDrawSelfLikeOther in interface GeoMapIfc
      Parameters:
      drawSelfLikeOther - boolean true to use APRS symbol, or false to use crosshairs for fixed station or pointer arrowhead for moving station
      See Also:
    • isDrawWeatherAsWeather

      public boolean isDrawWeatherAsWeather()
      Report whether weather stations are drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.
      Specified by:
      isDrawWeatherAsWeather in interface FullGeoMapIfc
      Returns:
      boolean true if weather stations should be plotted with weather map symbols, false if using APRS icon
    • setDrawWeatherAsWeather

      public void setDrawWeatherAsWeather(boolean drawWeatherAsWeather)
      Specify whether weather stations should be drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.
      Specified by:
      setDrawWeatherAsWeather in interface FullGeoMapIfc
      Parameters:
      drawWeatherAsWeather - boolean true if weather stations should be plotted with weather map symbols, false if using APRS icon
    • isDrawAge

      public boolean isDrawAge()
      Report whether the time interval since last receipt of a message from or about a station or object is plotted below the station/object's name.
      Specified by:
      isDrawAge in interface FullGeoMapIfc
      Returns:
      boolean true if age is to be plotted
    • setDrawAge

      public void setDrawAge(boolean drawAge)
      Specify whether the time interval since last receipt of a message from or about a station or object should be plotted below the station/object's name.
      Specified by:
      setDrawAge in interface FullGeoMapIfc
      Parameters:
      drawAge - boolean true if age is to be plotted
    • isDrawDeadObjects

      public boolean isDrawDeadObjects()
      Report whether Objects that have been "killed" are plotted on the map.
      Specified by:
      isDrawDeadObjects in interface FullGeoMapIfc
      Returns:
      boolean true if "killed" Objects are plotted
    • setDrawDeadObjects

      public void setDrawDeadObjects(boolean drawDeadObjects)
      Specify whether Objects that have been "killed" should still be plotted on the map.
      Specified by:
      setDrawDeadObjects in interface FullGeoMapIfc
      Parameters:
      drawDeadObjects - boolean true if "killed" Objects should be plotted
    • isDrawAlohaCircle

      public boolean isDrawAlohaCircle()
      Report whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) are plotted on the map.
      Specified by:
      isDrawAlohaCircle in interface FullGeoMapIfc
      Returns:
      boolean true if aloha circles are drawn
    • setDrawAlohaCircle

      public void setDrawAlohaCircle(boolean drawAlohaCircle)
      Specify whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) should be plotted on the map. Note these will only appear if the local station has RF ports that can have collisions.
      Specified by:
      setDrawAlohaCircle in interface FullGeoMapIfc
      Parameters:
      drawAlohaCircle - boolean true if aloha circles should be drawn
    • isDrawItemStatus

      public boolean isDrawItemStatus()
      Report whether a color-coded "halo" is drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.
      Specified by:
      isDrawItemStatus in interface GeoMapIfc
      Returns:
      boolean true if status halo is drawm
      See Also:
    • setDrawItemStatus

      public void setDrawItemStatus(boolean drawItemStatus)
      Specify whether a color-coded "halo" should be drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.
      Specified by:
      setDrawItemStatus in interface GeoMapIfc
      Parameters:
      drawItemStatus - boolean true if status halo should be drawm
      See Also:
    • isDrawSpeed

      public boolean isDrawSpeed()
      Report whether the motion speed and bearing of a station or object should be plotted below the station/object's name.
      Specified by:
      isDrawSpeed in interface FullGeoMapIfc
      Returns:
      boolean true if speed is to be plotted
    • setDrawSpeed

      public void setDrawSpeed(boolean drawSpeed)
      Specify whether the motion speed and bearing of a station or object should be plotted below the station/object's name.
      Specified by:
      setDrawSpeed in interface FullGeoMapIfc
      Parameters:
      drawSpeed - boolean true if mobile station speed and course is to be plotted
    • isDrawAmbiguityCircle

      public boolean isDrawAmbiguityCircle()
      Report whether a translucent ambiguity circle is drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.
      Specified by:
      isDrawAmbiguityCircle in interface GeoMapIfc
      Returns:
      boolean true if ambiguity circles are plotted
    • setDrawAmbiguityCircle

      public void setDrawAmbiguityCircle(boolean drawAmbiguityCircle)
      Specify whether a translucent ambiguity circle should be drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.
      Specified by:
      setDrawAmbiguityCircle in interface GeoMapIfc
      Parameters:
      drawAmbiguityCircle - boolean true if ambiguity circles should be plotted
    • isDrawDeadReckoning

      public boolean isDrawDeadReckoning()
      Report whether deadreckoning position updates for moving stations and objects are calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.
      Specified by:
      isDrawDeadReckoning in interface FullGeoMapIfc
      Returns:
      boolean true if deadreckoning is plotted
    • setDrawDeadReckoning

      public void setDrawDeadReckoning(boolean drawDeadReckoning)
      Specify whether deadreckoning position updates for moving stations and objects should be calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.
      Specified by:
      setDrawDeadReckoning in interface FullGeoMapIfc
      Parameters:
      drawDeadReckoning - boolean true if deadreckoning should be plotted
    • getMaxAgeDRStation

      public long getMaxAgeDRStation()
      Get the maximum time that dead reckoning will be projected for a station (self-transmitter).
      Specified by:
      getMaxAgeDRStation in interface FullGeoMapIfc
      Returns:
      maximum dead reckon interval in milliseconds
    • setMaxAgeDRStation

      public void setMaxAgeDRStation(long maxAgeDRStation)
      Set the maximum time that dead reckoning will be projected for a station (self-transmitter).
      Specified by:
      setMaxAgeDRStation in interface FullGeoMapIfc
      Parameters:
      maxAgeDRStation - maximum dead reckon interval in milliseconds
    • getMaxAgeDRObject

      public long getMaxAgeDRObject()
      Get the maximum time that dead reckoning will be projected for an object (non-self-transmitter).
      Specified by:
      getMaxAgeDRObject in interface FullGeoMapIfc
      Returns:
      maximum dead reckon interval in milliseconds
    • setMaxAgeDRObject

      public void setMaxAgeDRObject(long maxAgeDRObject)
      Set the maximum time that dead reckoning will be projected for an object (non-self-transmitter).
      Specified by:
      setMaxAgeDRObject in interface FullGeoMapIfc
      Parameters:
      maxAgeDRObject - maximum dead reckon interval in milliseconds
    • getMaxAgeDRSpecialObject

      public long getMaxAgeDRSpecialObject()
      Specified by:
      getMaxAgeDRSpecialObject in interface FullGeoMapIfc
    • setMaxAgeDRSpecialObject

      public void setMaxAgeDRSpecialObject(long maxAgeDRSpecialObject)
      Specified by:
      setMaxAgeDRSpecialObject in interface FullGeoMapIfc
    • isDrawDF

      public boolean isDrawDF()
      Report whether direction-finding cones are plotted from stations reporting DFS vector information
      Specified by:
      isDrawDF in interface FullGeoMapIfc
      Returns:
      boolean true if direction-finding cones are drawm
    • setDrawDF

      public void setDrawDF(boolean drawDF)
      Specify whether direction-finding cones should be plotted from stations reporting DFS vector information
      Specified by:
      setDrawDF in interface FullGeoMapIfc
      Parameters:
      drawDF - boolean true if direction-finding cones should be drawm
    • isDrawNWSMultiLine

      public boolean isDrawNWSMultiLine()
      Report whether encoded polylines (generally used for National Weather Service severe weather regions) are plotted on the map.
      Specified by:
      isDrawNWSMultiLine in interface FullGeoMapIfc
      Returns:
      boolean true if multilines are plotted
    • setDrawNWSMultiLine

      public void setDrawNWSMultiLine(boolean drawNWSMultiLine)
      Specify whether encoded polylines (generally used for National Weather Service severe weather regions) should be plotted on the map.
      Specified by:
      setDrawNWSMultiLine in interface FullGeoMapIfc
      Parameters:
      drawNWSMultiLine - boolean true if multilines should be plotted
    • isShowSevereWeatherZones

      public boolean isShowSevereWeatherZones()
      Indicate whether severe weather zone boundaries should be drawn on the map.
      Specified by:
      isShowSevereWeatherZones in interface FullGeoMapIfc
      Returns:
      boolean true if zones should be drawn
    • setShowSevereWeatherZones

      public void setShowSevereWeatherZones(boolean showSevereWeatherZones)
      Specify whether severe weather zone boundaries should be drawn on the map.
      Specified by:
      setShowSevereWeatherZones in interface FullGeoMapIfc
      Parameters:
      showSevereWeatherZones - boolean true if zones should be drawn
    • isDrawCallsign

      public boolean isDrawCallsign()
      Report whether callsign label should be drawn for each station/object.
      Specified by:
      isDrawCallsign in interface GeoMapIfc
      Returns:
      boolean true if callsign label should be drawn on map
    • setDrawCallsign

      public void setDrawCallsign(boolean drawCallsign)
      Specify whether callsign labels should be drawn for each station/object.
      Specified by:
      setDrawCallsign in interface GeoMapIfc
      Parameters:
      drawCallsign - boolean true if callsign label should be drawn on map
    • isDrawAliasInsteadOfCallsign

      public boolean isDrawAliasInsteadOfCallsign()
      Report whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..
      Specified by:
      isDrawAliasInsteadOfCallsign in interface GeoMapIfc
      Returns:
      boolean true if alias should be drawn instead of callsign
    • setDrawAliasInsteadOfCallsign

      public void setDrawAliasInsteadOfCallsign(boolean drawAliasInsteadOfCallsign)
      Specify whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..
      Specified by:
      setDrawAliasInsteadOfCallsign in interface GeoMapIfc
      Parameters:
      drawAliasInsteadOfCallsign - boolean true if alias should be drawn instead of callsign
    • isDontRotateIcons

      public boolean isDontRotateIcons()
      Report whether mobile station icons should be rotated to indicate the direction of station travel (bearing).
      Specified by:
      isDontRotateIcons in interface GeoMapIfc
      Returns:
      boolean true if icons should not be rotated
    • setDontRotateIcons

      public void setDontRotateIcons(boolean dontRotateIcons)
      Specify whether mobile station icons should be rotated to indicate the direction of station travel (bearing).
      Specified by:
      setDontRotateIcons in interface GeoMapIfc
      Parameters:
      dontRotateIcons - boolean true if icons should not be rotated
    • isKeepSpecificallyTrackedStationsOnScreen

      public boolean isKeepSpecificallyTrackedStationsOnScreen()
      Report whether the map should auto-pan to keep specifically tracked mobile stations on the map.
      Specified by:
      isKeepSpecificallyTrackedStationsOnScreen in interface FullGeoMapIfc
      Returns:
      boolean true if map should pan to keep tracked stations on the map
    • setKeepSpecificallyTrackedStationsOnScreen

      public void setKeepSpecificallyTrackedStationsOnScreen(boolean keepSpecificallyTrackedStationsOnScreen)
      Specify whether the map should auto-pan to keep specifically tracked mobile stations on the map.
      Specified by:
      setKeepSpecificallyTrackedStationsOnScreen in interface FullGeoMapIfc
      Parameters:
      keepSpecificallyTrackedStationsOnScreen - boolean true if map should pan to keep tracked stations on the map
    • isDrawDoubleSizedSymbols

      public boolean isDrawDoubleSizedSymbols()
      Report if symbols are being drawn double-sized.
      Specified by:
      isDrawDoubleSizedSymbols in interface GeoMapIfc
      Returns:
      boolean true if symbols are rendered double-size
    • setDrawDoubleSizedSymbols

      public void setDrawDoubleSizedSymbols(boolean drawDoubleSizedSymbols)
      Specify whether symbols should be drawn double-sized (32x32 pixels) instead of single-sized (16x16).
      Specified by:
      setDrawDoubleSizedSymbols in interface GeoMapIfc
      Parameters:
      drawDoubleSizedSymbols - boolean true if symbols should be rendered double-size
    • isDrawDigipeatHops

      public boolean isDrawDigipeatHops()
      Report if digipeater hop paths are drawn for stations.
      Specified by:
      isDrawDigipeatHops in interface FullGeoMapIfc
      Returns:
      boolean true if digipeater hop paths are drawn for stations
    • setDrawDigipeatHops

      public void setDrawDigipeatHops(boolean drawDigipeatHops)
      Specify whether digipeater hop paths should be drawn for stations.
      Specified by:
      setDrawDigipeatHops in interface FullGeoMapIfc
      Parameters:
      drawDigipeatHops - boolean true if digipeater hop paths should be drawn for stations
    • isShowUnlabeledWays

      public boolean isShowUnlabeledWays()
      Report if unlabeled and untyped map features should be displayed.
      Specified by:
      isShowUnlabeledWays in interface GeoMapIfc
      Returns:
      boolean true if unlabeled/untyped map elements should be plotted
    • setShowUnlabeledWays

      public void setShowUnlabeledWays(boolean showUnlabeledWays)
      Specify if unlabeled and untyped map features should be displayed.
      Specified by:
      setShowUnlabeledWays in interface GeoMapIfc
      Parameters:
      showUnlabeledWays - boolean true if unlabeled/untyped map elements should be plotted
    • isShowLabelsInEnglish

      public boolean isShowLabelsInEnglish()
      Report whether map labels should be displayed in English if the default name is in some other locale and OpenStreetMap provides an English translation.
      Specified by:
      isShowLabelsInEnglish in interface GeoMapIfc
      Returns:
      boolean true if English labels should be used
    • setShowLabelsInEnglish

      public void setShowLabelsInEnglish(boolean showLabelsInEnglish)
      Specify whether map labels should be displayed in English if the default name is in some other locale and OpenStreetMap provides an English translation.
      Specified by:
      setShowLabelsInEnglish in interface GeoMapIfc
      Parameters:
      showLabelsInEnglish - boolean true if English labels should be used
    • isAutoLoadMapTiles

      public boolean isAutoLoadMapTiles()
      Report whether map tiles will be auto-downloaded (if the author's website can be reached) for any tiles that have not already been downloaded.
      Specified by:
      isAutoLoadMapTiles in interface GeoMapIfc
      Returns:
      boolean true if auto-download is enabled
    • setAutoLoadMapTiles

      public void setAutoLoadMapTiles(boolean autoLoadMapTiles)
      Specify whether missing OpenStreetMap imported tiles should be automatically downloaded from the author's website.
      Specified by:
      setAutoLoadMapTiles in interface GeoMapIfc
      Parameters:
      autoLoadMapTiles - boolean true to enable auto-download
    • isShowTopoContours

      public boolean isShowTopoContours()
      Report whether the topographic map should be rendered as contour lines.
      Specified by:
      isShowTopoContours in interface FullGeoMapIfc
      Returns:
      boolean true if topography should be rendered as contour lines
    • isGraticuleVisible

      public boolean isGraticuleVisible()
      Indicate whether the graticule (latitude/longitude grid lines) are displayed on the map.
      Specified by:
      isGraticuleVisible in interface FullGeoMapIfc
      Returns:
      boolean true if graticule is displayed
    • setGraticuleVisible

      public void setGraticuleVisible(boolean visible)
      Specify whether the graticule (latitude/longitude grid lines) are displayed on the map.
      Specified by:
      setGraticuleVisible in interface FullGeoMapIfc
      Parameters:
      visible - boolean true if graticule is displayed
    • isShowTopoRegions

      public boolean isShowTopoRegions()
      Report whether the topographic map overlay should be displayed as filled regions.
      Specified by:
      isShowTopoRegions in interface FullGeoMapIfc
      Returns:
      boolean true if topographic overlay is displayed
    • setShowTopoRegions

      public void setShowTopoRegions(boolean visible)
      Specify whether the topographic map overlay should be rendered as filled region. Note this is independent of whether there actually is any topographic data to render.
      Specified by:
      setShowTopoRegions in interface FullGeoMapIfc
      Parameters:
      visible - boolean true if topographic layer should be rendered as regions
    • setShowTopoContours

      public void setShowTopoContours(boolean visible)
      Specify whether the topographic map overlay should be rendered as contour lines. Note this is independent of whether there actually is any topographic data to render.
      Specified by:
      setShowTopoContours in interface FullGeoMapIfc
      Parameters:
      visible - boolean true if topographic layer should be rendered as contour lines
    • editTopoColors

      public void editTopoColors()
      Invoke an editor for adjusting the colors and elevation thresholds used to render topographic map layers.
      Specified by:
      editTopoColors in interface FullGeoMapIfc
    • startLineOfSight

      public void startLineOfSight()
      Enable defining a line of sight between two points on the map; the user presses the mouse at the starting point, drags to the ending position, and releases.
      Specified by:
      startLineOfSight in interface FullGeoMapIfc
    • startLineOfSightFromHere

      public void startLineOfSightFromHere(int mouseX, int mouseY)
      Enable defining a line of sight starting at the specified position on the map.
      Specified by:
      startLineOfSightFromHere in interface FullGeoMapIfc
      Parameters:
      mouseX - int horizontal pixel coordinate in map
      mouseY - int vertical pixel coordinate in map
    • startLineOfSightFromMe

      public void startLineOfSightFromMe(int mouseX, int mouseY)
      Show the line of sight between this station's position and the position clicked on the map, updating this station's end of the line if it moves.
      Specified by:
      startLineOfSightFromMe in interface FullGeoMapIfc
      Parameters:
      mouseX - int horizontal pixel coordinate in map
      mouseY - int vertical pixel coordinate in map
    • startLineOfSightFromMe

      public void startLineOfSightFromMe(StationState targetStation)
      Show the line of sight between this station's position and the station or object clicked on the map, updating both ends of the line if either moves.
      Specified by:
      startLineOfSightFromMe in interface FullGeoMapIfc
      Parameters:
      targetStation - StationState of station or object to trace the path to
    • getLastElapsedPaintTime

      public long getLastElapsedPaintTime()
      Return the amount of time (in milliseconds) for the last station render.
      Specified by:
      getLastElapsedPaintTime in interface FullGeoMapIfc
      Returns:
      elapsed time in milliseconds for last StationRenderer run
    • getLastNumDrawnObjects

      public int getLastNumDrawnObjects()
      Return the number of Objects (non-transmitters) rendered in the last station render.
      Specified by:
      getLastNumDrawnObjects in interface FullGeoMapIfc
      Returns:
      count of rendered Objects
    • getLastNumDrawnStations

      public int getLastNumDrawnStations()
      Return the number of stations (transmitters) rendered in the last station render.
      Specified by:
      getLastNumDrawnStations in interface FullGeoMapIfc
      Returns:
      count of rendered stations
    • isMapCenteredOnAlerts

      public boolean isMapCenteredOnAlerts()
      Specify whether this map should be re-centered on AttentionAlerts of EMERGENCY or ROUTINE precedence.
      Specified by:
      isMapCenteredOnAlerts in interface GeoMapIfc
      Returns:
      boolean true if map should center on AttentionAlerts
    • flushFileCache

      public void flushFileCache()
      Flush all caches of File objects referencing map data.
      Specified by:
      flushFileCache in interface GeoMapIfc
    • filterSettingsChanged

      public void filterSettingsChanged(Filter changedFilter, boolean changedByUser)
      Called when the specified Filter's matching criteria have been changed.
      Specified by:
      filterSettingsChanged in interface FilterChangeListener
      Parameters:
      changedFilter - Filter that has changed
      changedByUser - boolean true if change was manually made by user, false if change was made automatically by dynamic filter logic
    • componentResized

      public void componentResized(ComponentEvent e)
      Invoked when the map window's size changes.
      Specified by:
      componentResized in interface ComponentListener
      Parameters:
      e - ComponentEvent
    • componentMoved

      public void componentMoved(ComponentEvent e)
      Invoked when the map window's position changes.
      Specified by:
      componentMoved in interface ComponentListener
      Parameters:
      e - ComponentEvent
    • componentShown

      public void componentShown(ComponentEvent e)
      Invoked when the map window has been made visible.
      Specified by:
      componentShown in interface ComponentListener
      Parameters:
      e - ComponentEvent
    • componentHidden

      public void componentHidden(ComponentEvent e)
      Invoked when the map window has been made invisible.
      Specified by:
      componentHidden in interface ComponentListener
      Parameters:
      e - ComponentEvent
    • getWindow

      public Window getWindow()
      Get the java.awt.Window containing this map widget.
      Specified by:
      getWindow in interface GeoMapGuiIfc
      Returns:
      Window