Class ScalebarLayer

    • Field Detail

      • size

        protected java.awt.Dimension size
      • color

        protected java.awt.Color color
      • borderWidth

        protected int borderWidth
      • position

        protected java.lang.String position
      • resizeBehavior

        protected java.lang.String resizeBehavior
      • unit

        protected java.lang.String unit
      • defaultFont

        protected java.awt.Font defaultFont
      • toViewportScale

        protected double toViewportScale
      • locationCenter

        protected Vec4 locationCenter
      • locationOffset

        protected Vec4 locationOffset
      • frameStampForPicking

        protected long frameStampForPicking
      • frameStampForDrawing

        protected long frameStampForDrawing
    • Constructor Detail

      • ScalebarLayer

        public ScalebarLayer()
        Renders a scalebar graphic in a screen corner
    • Method Detail

      • getSize

        public java.awt.Dimension getSize()
        Get the scalebar graphic Dimension (in pixels)
        Returns:
        the scalebar graphic Dimension
      • setSize

        public void setSize​(java.awt.Dimension size)
        Set the scalebar graphic Dimenion (in pixels)
        Parameters:
        size - the scalebar graphic Dimension
      • getColor

        public java.awt.Color getColor()
        Get the scalebar color
        Returns:
        the scalebar Color
      • setColor

        public void setColor​(java.awt.Color color)
        Set the scalbar Color
        Parameters:
        color - the scalebar Color
      • getToViewportScale

        public double getToViewportScale()
        Returns the scalebar-to-viewport scale factor.
        Returns:
        the scalebar-to-viewport scale factor
      • setToViewportScale

        public void setToViewportScale​(double toViewportScale)
        Sets the scale factor applied to the viewport size to determine the displayed size of the scalebar. This scale factor is used only when the layer's resize behavior is AVKey.RESIZE_STRETCH or AVKey.RESIZE_SHRINK_ONLY. The scalebar's width is adjusted to occupy the proportion of the viewport's width indicated by this factor. The scalebar's height is adjusted to maintain the scalebar's Dimension aspect ratio.
        Parameters:
        toViewportScale - the scalebar to viewport scale factor
      • getPosition

        public java.lang.String getPosition()
      • setPosition

        public void setPosition​(java.lang.String position)
        Sets the relative viewport location to display the scalebar. Can be one of AVKey.NORTHEAST, AVKey.NORTHWEST, AVKey.SOUTHEAST (the default), or AVKey.SOUTHWEST. These indicate the corner of the viewport.
        Parameters:
        position - the desired scalebar position
      • getLocationCenter

        public Vec4 getLocationCenter()
        Returns the current scalebar center location.
        Returns:
        the current location center. May be null.
      • setLocationCenter

        public void setLocationCenter​(Vec4 locationCenter)
        Specifies the screen location of the scalebar center. May be null. If this value is non-null, it overrides the position specified by #setPosition. The location is specified in pixels. The origin is the window's lower left corner. Positive X values are to the right of the origin, positive Y values are upwards from the origin. The final scalebar location will be affected by the currently specified location offset if a non-null location offset has been specified (see #setLocationOffset).
        Parameters:
        locationCenter - the scalebar center. May be null.
        See Also:
        setPosition(java.lang.String), setLocationOffset(gov.nasa.worldwind.geom.Vec4)
      • getLocationOffset

        public Vec4 getLocationOffset()
        Returns the current location offset. See #setLocationOffset for a description of the offset and its values.
        Returns:
        the location offset. Will be null if no offset has been specified.
      • setLocationOffset

        public void setLocationOffset​(Vec4 locationOffset)
        Specifies a placement offset from the scalebar's position on the screen.
        Parameters:
        locationOffset - the number of pixels to shift the scalebar from its specified screen position. A positive X value shifts the image to the right. A positive Y value shifts the image up. If null, no offset is applied. The default offset is null.
        See Also:
        setLocationCenter(gov.nasa.worldwind.geom.Vec4), setPosition(java.lang.String)
      • getResizeBehavior

        public java.lang.String getResizeBehavior()
        Returns the layer's resize behavior.
        Returns:
        the layer's resize behavior
      • setResizeBehavior

        public void setResizeBehavior​(java.lang.String resizeBehavior)
        Sets the behavior the layer uses to size the scalebar when the viewport size changes, typically when the World Wind window is resized. If the value is AVKey.RESIZE_KEEP_FIXED_SIZE, the scalebar size is kept to the size specified in its Dimension scaled by the layer's current icon scale. If the value is AVKey.RESIZE_STRETCH, the scalebar is resized to have a constant size relative to the current viewport size. If the viewport shrinks the scalebar size decreases; if it expands then the scalebar enlarges. If the value is AVKey.RESIZE_SHRINK_ONLY (the default), scalebar sizing behaves as for AVKey.RESIZE_STRETCH but it will not grow larger than the size specified in its Dimension.
        Parameters:
        resizeBehavior - the desired resize behavior
      • getBorderWidth

        public int getBorderWidth()
      • setBorderWidth

        public void setBorderWidth​(int borderWidth)
        Sets the scalebar offset from the viewport border.
        Parameters:
        borderWidth - the number of pixels to offset the scalebar from the borders indicated by setPosition(String).
      • getUnit

        public java.lang.String getUnit()
      • setUnit

        public void setUnit​(java.lang.String unit)
        Sets the unit the scalebar uses to display distances. Can be one of UNIT_METRIC (the default), or UNIT_IMPERIAL.
        Parameters:
        unit - the desired unit
      • getFont

        public java.awt.Font getFont()
        Get the scalebar legend Fon
        Returns:
        the scalebar legend Font
      • setFont

        public void setFont​(java.awt.Font font)
        Set the scalebar legend Fon
        Parameters:
        font - the scalebar legend Font
      • addOrderedImage

        protected void addOrderedImage​(DrawContext dc)
      • computePixelSize

        protected double computePixelSize​(DrawContext dc,
                                          Position referencePosition)