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
Inherited Members
Namespace: Mapsui.Widgets.ScaleBar
Assembly: Mapsui.dll
Syntax
public class ScaleBarWidget : Widget, IWidget, IWidgetTouchable, INotifyPropertyChanged
Constructors
| Edit this page View SourceScaleBarWidget(Map, IProjection?)
Declaration
public ScaleBarWidget(Map map, IProjection? projection = null)
Parameters
Type | Name | Description |
---|---|---|
Map | map | |
IProjection | projection |
Properties
| Edit this page View SourceFont
Font to use for drawing text
Declaration
public Font? Font { get; set; }
Property Value
Type | Description |
---|---|
Font |
Halo
Halo color of scalebar and text, so that it is better visible
Declaration
public Color Halo { get; set; }
Property Value
Type | Description |
---|---|
Color |
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 |
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 |
Scale
Declaration
public float Scale { get; }
Property Value
Type | Description |
---|---|
float |
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 |
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 |
ShowEnvelop
Draw a rectangle around the scale bar for testing
Declaration
public bool ShowEnvelop { get; set; }
Property Value
Type | Description |
---|---|
bool |
StrokeWidth
Stroke width for lines
Declaration
public float StrokeWidth { get; set; }
Property Value
Type | Description |
---|---|
float |
StrokeWidthHalo
Stroke width for halo of lines
Declaration
public float StrokeWidthHalo { get; set; }
Property Value
Type | Description |
---|---|
float |
TextAlignment
Alignment of text of scalebar
Declaration
public Alignment TextAlignment { get; set; }
Property Value
Type | Description |
---|---|
Alignment |
TextColor
Foreground color of scalebar and text
Declaration
public Color TextColor { get; set; }
Property Value
Type | Description |
---|---|
Color |
TextMargin
Margin between end of tick and text
Declaration
public float TextMargin { get; }
Property Value
Type | Description |
---|---|
float |
TickLength
Length of the ticks
Declaration
public float TickLength { get; set; }
Property Value
Type | Description |
---|---|
float |
Touchable
Declaration
public override bool Touchable { get; }
Property Value
Type | Description |
---|---|
bool |
Overrides
| Edit this page View SourceUnitConverter
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 SourceCanProject()
Declaration
public bool CanProject()
Returns
Type | Description |
---|---|
bool |
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 |
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. |
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 |
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
Events
| Edit this page View SourcePropertyChanged
Declaration
public event PropertyChangedEventHandler? PropertyChanged
Event Type
Type | Description |
---|---|
PropertyChangedEventHandler |