Tools
Jump to navigation
Jump to search
Distance Tool
With the DistanceTool the user can create one or more measuring lines with multiple positions. A measuring line can be edited, e.g. add, insert, remove or move positions.
Tool Properties
Here is a list of the properties of the tool.
Name | Description |
---|---|
IsPannningEnabled | Set if map can be panned when not adding or editing a distance line. When true the IsAddInstanceEnabled property must be set to true before a new distance line can be drawn. |
IsInsertPointEnabled | Enable or disable if inserting a vertex is allowed. |
IsAddPointEnabled | Enable or disable if adding a vertex at start or end is allowed. |
IsMultiLine | Set if tool supports multiple lines. |
Positions | Returns a list of all the positions defined by the distance tool legs. Can also be used to set the positions of the measuring line. |
SelectedInstance | The selected measuring line instance. |
SelectedIndex | The selected vertex/position of the active measuring line instance. |
SnapsToPoint | When set the tool snaps to track or draw object points. |
SnapsToPointDistance | The distance in pixels when the tool snaps to a point. |
CalculationPath | Set how the measure line is calculated: Geodesics or Loxodrome. |
OverrideVertexRenderer | Renderer for overriding how distance line vertices are rendered. |
Tool Style Properties
Here is a list of the properties used to style the appearance of the tool.
Name | Description |
---|---|
LineThickness | The line thickness. |
LineColor | The line color. |
LineDashStyle | The line dash style. |
SelectedLineColor | The selected line color. |
OutlineThickness | The outline thickness of the line. |
OutlineColor | The outline color of the line. |
OutlineDashStyle | The outline dash style of the line. |
VertexLineThickness | The vertex line thickness. |
VertexLineColor | The vertex line color. |
VertexOutlineThickness | The vertex outline thickness. |
VertexOutlineColor | The vertex outline color. |
VertexFillColor | The vertex fill color. |
VertexSize | The vertex radius. |
HighlightColor | The highlight distance vertex color. |
SelectedVertexLineColor | The selected vertex line color. |
InsertVertexLineColor | The insert vertex line color. |
InsertVertexOutlineColor | The insert vertex outline color. |
InsertVertexFillColor | The insert vertex fill color. |
AreaFillColor | The area fill color. |
ForegroundColor | The text foreground color. |
BackgroundColor | The text background color. |
OutlineFontColor | The outline font color. |
FontTypeface | The text typeface. |
FontSize | The text size. |
Overriding The Vertex Rendering
To override how the vertices are rendered, create a class that implements the IDistanceToolOverrideRenderer interface and assign an instance of the class to the OverrideVertexRenderer property.
/// <summary>
/// Interface for renderer for overriding how distance line vertices are rendered.
/// </summary>
public interface IDistanceToolOverrideRenderer
{
/// <summary>
/// Render vertex.
/// </summary>
/// <param name="dc">The drawing context instance.</param>
/// <param name="p">The vertex point.</param>
/// <param name="isSelected">The selected state of the point.</param>
void RenderVertex(DrawingContext dc, Point p, bool isSelected);
/// <summary>
/// Render snap to vertex.
/// </summary>
/// <param name="dc">The drawing context instance.</param>
/// <param name="p">The vertex point.</param>
void RenderSnapToVertex(DrawingContext dc, Point p);
/// <summary>
/// Render insert vertex.
/// </summary>
/// <param name="dc">The drawing context instance.</param>
/// <param name="p">The vertex point.</param>
void RenderInsertVertex(DrawingContext dc, Point p);
/// <summary>
/// Render add start or end vertex.
/// </summary>
/// <param name="dc">The drawing context instance.</param>
/// <param name="p">The vertex point.</param>
void RenderAddVertex(DrawingContext dc, Point p);
/// <summary>
/// Render highlight distance vertex.
/// </summary>
/// <param name="dc">The drawing context instance.</param>
/// <param name="p">The vertex point.</param>
void RenderHighlightDistance(DrawingContext dc, Point p);
}
Set Initial Positions of The Tool
To set initial positions of the tool when it is activated, set the Positions and SelectedIndex properties after the tool is activated.
var geoPos1 = new GeoPos(lat1,lon1);
var geoPos2 = new GeoPos(lat2,lon2);
tool.Positions = new List<GeoPos>() { geoPos1 geoPos2 };
tool.SelectedIndex = tool.Positions.Count - 1;