Search Results for

    Show / Hide Table of Contents

    Class ScaleBarWidget

    A ScaleBarWidget displays the ratio of a distance on the map to the corresponding distance on the ground. It uses always the center of a given Viewport to calc this ratio.

    Usage To show a ScaleBarWidget, add a instance of the ScaleBarWidget to Map.Widgets by

    map.Widgets.Add(new ScaleBarWidget(map));

    Customize ScaleBarMode: Determines, how much scalebars are shown. Could be Single or Both. SecondaryUnitConverter: First UnitConverter for upper scalebar. There are UnitConverters for metric, imperial and nautical units. SecondaryUnitConverter = NauticalUnitConverter.Instance }); MaxWidth: Maximal width of the scalebar. Real width could be smaller. HorizontalAlignment: Where the ScaleBarWidget is shown. Could be Left, Right, Center or Position. VerticalAlignment: Where the ScaleBarWidget is shown. Could be Top, Bottom, Center or Position. PositionX: If HorizontalAlignment is Position, this value determines the distance to the left PositionY: If VerticalAlignment is Position, this value determines the distance to the top TextColor: Color for text and lines Halo: Color used around text and lines, so the scalebar is better visible TextAlignment: Alignment of scalebar text to the lines. Could be Left, Right or Center TextMargin: Space between text and lines of scalebar Font: Font which is used to draw text TickLength: Length of the ticks at scalebar

    Inheritance
    object
    Widget
    ScaleBarWidget
    Implements
    IWidget
    IWidgetTouchable
    INotifyPropertyChanged
    Inherited Members
    Widget.HorizontalAlignment
    Widget.VerticalAlignment
    Widget.MarginX
    Widget.MarginY
    Widget.Envelope
    Widget.Enabled
    Widget.CalculatePositionX(float, float, float)
    Widget.CalculatePositionY(float, float, float)
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Mapsui.Widgets.ScaleBar
    Assembly: Mapsui.dll
    Syntax
    public class ScaleBarWidget : Widget, IWidget, IWidgetTouchable, INotifyPropertyChanged

    Constructors

    | Edit this page View Source

    ScaleBarWidget(Map, IProjection?)

    Declaration
    public ScaleBarWidget(Map map, IProjection? projection = null)
    Parameters
    Type Name Description
    Map map
    IProjection projection

    Properties

    | Edit this page View Source

    Font

    Font to use for drawing text

    Declaration
    public Font? Font { get; set; }
    Property Value
    Type Description
    Font
    | Edit this page View Source

    Halo

    Halo color of scalebar and text, so that it is better visible

    Declaration
    public Color Halo { get; set; }
    Property Value
    Type Description
    Color
    | Edit this page View Source

    Height

    Real height of scalebar. Depends on number of unit converters and text size. Is calculated by renderer.

    Declaration
    public float Height { get; set; }
    Property Value
    Type Description
    float
    | Edit this page View Source

    MaxWidth

    Maximum usable width for scalebar. The real used width could be less, because we want only integers as text.

    Declaration
    public float MaxWidth { get; set; }
    Property Value
    Type Description
    float
    | Edit this page View Source

    Scale

    Declaration
    public float Scale { get; }
    Property Value
    Type Description
    float
    | Edit this page View Source

    ScaleBarMode

    ScaleBarMode of scalebar. Could be Single to show only one or Both for showing two units.

    Declaration
    public ScaleBarMode ScaleBarMode { get; set; }
    Property Value
    Type Description
    ScaleBarMode
    | Edit this page View Source

    SecondaryUnitConverter

    Secondary unit converter for lower text if ScaleBarMode is Both. Default is ImperialUnitConverter.

    Declaration
    public IUnitConverter? SecondaryUnitConverter { get; set; }
    Property Value
    Type Description
    IUnitConverter
    | Edit this page View Source

    ShowEnvelop

    Draw a rectangle around the scale bar for testing

    Declaration
    public bool ShowEnvelop { get; set; }
    Property Value
    Type Description
    bool
    | Edit this page View Source

    StrokeWidth

    Stroke width for lines

    Declaration
    public float StrokeWidth { get; set; }
    Property Value
    Type Description
    float
    | Edit this page View Source

    StrokeWidthHalo

    Stroke width for halo of lines

    Declaration
    public float StrokeWidthHalo { get; set; }
    Property Value
    Type Description
    float
    | Edit this page View Source

    TextAlignment

    Alignment of text of scalebar

    Declaration
    public Alignment TextAlignment { get; set; }
    Property Value
    Type Description
    Alignment
    | Edit this page View Source

    TextColor

    Foreground color of scalebar and text

    Declaration
    public Color TextColor { get; set; }
    Property Value
    Type Description
    Color
    | Edit this page View Source

    TextMargin

    Margin between end of tick and text

    Declaration
    public float TextMargin { get; }
    Property Value
    Type Description
    float
    | Edit this page View Source

    TickLength

    Length of the ticks

    Declaration
    public float TickLength { get; set; }
    Property Value
    Type Description
    float
    | Edit this page View Source

    Touchable

    Declaration
    public override bool Touchable { get; }
    Property Value
    Type Description
    bool
    Overrides
    Widget.Touchable
    | Edit this page View Source

    UnitConverter

    Normal unit converter for upper text. Default is MetricUnitConverter.

    Declaration
    public IUnitConverter UnitConverter { get; set; }
    Property Value
    Type Description
    IUnitConverter

    Methods

    | Edit this page View Source

    CanProject()

    Declaration
    public bool CanProject()
    Returns
    Type Description
    bool
    | Edit this page View Source

    GetScaleBarLengthAndText(Viewport)

    Calculates the length and text for both scalebars

    Declaration
    public (float scaleBarLength1, string? scaleBarText1, float scaleBarLength2, string? scaleBarText2) GetScaleBarLengthAndText(Viewport viewport)
    Parameters
    Type Name Description
    Viewport viewport
    Returns
    Type Description
    (float scaleBarLength1, string scaleBarText1, float scaleBarLength2, string scaleBarText2)

    Length of upper scalebar Text of upper scalebar Length of lower scalebar Text of lower scalebar

    | Edit this page View Source

    GetScaleBarLinePositions(Viewport, float, float, float)

    Get pairs of points, which determine start and stop of the lines used to draw the scalebar

    Declaration
    public IReadOnlyList<MPoint> GetScaleBarLinePositions(Viewport viewport, float scaleBarLength1, float scaleBarLength2, float stroke)
    Parameters
    Type Name Description
    Viewport viewport

    The viewport of the map

    float scaleBarLength1

    Length of upper scalebar

    float scaleBarLength2

    Length of lower scalebar

    float stroke

    Width of line

    Returns
    Type Description
    IReadOnlyList<MPoint>

    Array with pairs of Points. First is always the start point, the second is the end point.

    | Edit this page View Source

    GetScaleBarTextPositions(Viewport, MRect, MRect, MRect, float)

    Calculates the top-left-position of upper and lower text

    Declaration
    public (float posX1, float posY1, float posX2, float posY2) GetScaleBarTextPositions(Viewport viewport, MRect textSize, MRect textSize1, MRect textSize2, float stroke)
    Parameters
    Type Name Description
    Viewport viewport

    The viewport

    MRect textSize

    Default text size for the string "9999 m"

    MRect textSize1

    Size of upper text of scalebar

    MRect textSize2

    Size of lower text of scalebar

    float stroke

    Width of line

    Returns
    Type Description
    (float posX1, float posY1, float posX2, float posY2)

    posX1 as left position of upper scalebar text posY1 as top position of upper scalebar text posX2 as left position of lower scalebar text posY2 as top position of lower scalebar text

    | Edit this page View Source

    HandleWidgetTouched(Navigator, MPoint)

    Function, which is called, when a Widget is hidden

    Declaration
    public override bool HandleWidgetTouched(Navigator navigator, MPoint position)
    Parameters
    Type Name Description
    Navigator navigator

    Navigator of MapControl

    MPoint position

    Screen position

    Returns
    Type Description
    bool

    True, if the Widget had handled the touch event

    Overrides
    Widget.HandleWidgetTouched(Navigator, MPoint)

    Events

    | Edit this page View Source

    PropertyChanged

    Declaration
    public event PropertyChangedEventHandler? PropertyChanged
    Event Type
    Type Description
    PropertyChangedEventHandler

    Implements

    IWidget
    IWidgetTouchable
    INotifyPropertyChanged
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX