Class ZoomLevel
This class defines how InternalFeatures will be drawn based on their scale.
public class ZoomLevel
- Inheritance
-
ZoomLevel
- Inherited Members
Remarks
This class defines how InternalFeatures will be drawn based on their scale. Inside of the ZoomLevelSet there are a number of zoom levels. We will determine which ZoomLevel to use based on which one has the Scale property closest to the current scale. The matching one will define the styles that will be used to draw the InternalFeatures on the map.
Constructors
ZoomLevel()
This is a constructor for the class.
public ZoomLevel()
Remarks
This is the default constructor. If you use this constructor, you should set the require properties on the class manually.
ZoomLevel(double)
This is a constructor for the class.
public ZoomLevel(double scale)
Parameters
scale
doubleThis paramter is the scale for the ZoomLevel.
Remarks
This constructor allows you to provide the scale for this ZoomLevel.
Properties
ApplyUntilZoomLevel
This property gets and sets the zoom to which we will use this zoom level's styles.
public ApplyUntilZoomLevel ApplyUntilZoomLevel { get; set; }
Property Value
- ApplyUntilZoomLevel
This property gets the zoom to which we will use this zoom level's styles.
Remarks
This property allows you to apply the current ZoomLevel's styles across many ZoomLevels. For example, you may want to display roads as a thin line from ZoomLevel10 through ZoomLevel15. To accomplish this easily, you can set the correct styles on ZoomLevel10 and then set its ApplyUntilZoomLevel property to Level15. This will mean that Level10's style will be used until Level15. There is no need to set Level11, Level12, Level13 and so on.
CustomStyles
This property gets a collection of custom styles used to draw.
public Collection<Style> CustomStyles { get; }
Property Value
- Collection<Style>
This property gets a collection of custom styles used to draw.
Remarks
This is a collection of styles to draw. If you only need to draw one style, then we suggest you do not use this collection and instead use one of the default styles, such as DefaultAreaStyle, DefaultLineStyle, DefaultTextStyle, etc.
DefaultAreaStyle
This property gets and sets the default AreaStyle used to draw.
public AreaStyle DefaultAreaStyle { get; set; }
Property Value
- AreaStyle
This property gets the default AreaStyle used to draw.
Remarks
If you set this style, then it will be used for drawing.
If you use the default styles, you should only use one. The one you use should
match your feature data. For example, if your features are lines, then you should use the
DefaultLineStyle.
DefaultLineStyle
This property gets and sets the default LineStyle used to draw.
public LineStyle DefaultLineStyle { get; set; }
Property Value
- LineStyle
This property gets the default LineStyle used to draw.
Remarks
If you set this style, then it will be used for drawing.
If you use the default styles, you should only use one. The one you use should
match your feature data. For example, if your features are lines, then you should use the
DefaultLineStyle.
DefaultPointStyle
This property gets and sets the default PointStyle used to draw.
public PointStyle DefaultPointStyle { get; set; }
Property Value
- PointStyle
This property gets the default PointStyle used to draw.
Remarks
If you set this style, then it will be used for drawing.
If you use the default styles, you should only use one. The one you use should
match your feature data. For example, if your features are lines, then you should use the
DefaultLineStyle.
DefaultTextStyle
This property gets and sets the default TextStyle used to draw.
public TextStyle DefaultTextStyle { get; set; }
Property Value
- TextStyle
This property gets the default TextStyle used to draw.
Remarks
If you set this style, then it will be used for drawing.
If you use the default styles, you should only use one. The one you use should
match your feature data. For example, if your features are lines, then you should use the
DefaultLineStyle.
IsActive
This property gets and sets whether the ZoomLevel is active and should draw.
public bool IsActive { get; set; }
Property Value
- bool
This property gets whether the ZoomLevel is active and should draw.
Remarks
Setting the value to false means that this zoom level will not be considered in the ZoomLevelSet and thus will not draw.
Name
This property gets and sets the name for the ZoomLevel.
public string Name { get; set; }
Property Value
- string
This property gets the name for the ZoomLevel.
Remarks
The name is user defined. It is useful to set, as it may be used for higher level components such as legends, etc.
Scale
This property gets and sets the scale for the ZoomLevel.
public double Scale { get; set; }
Property Value
- double
This property gets and sets the scale for the ZoomLevel.
Remarks
The scale
UseLegacyLabeling
public bool UseLegacyLabeling { get; set; }
Property Value
Methods
Draw(GeoCanvas, IEnumerable<BaseShape>, Collection<SimpleCandidate>, Collection<SimpleCandidate>)
This method draws the ZoomLevel.
public void Draw(GeoCanvas canvas, IEnumerable<BaseShape> shapes, Collection<SimpleCandidate> currentLayerLabels, Collection<SimpleCandidate> allLayerLabels)
Parameters
canvas
GeoCanvasThis parameter is the Canvas used to draw the InternalFeatures.
shapes
IEnumerable<BaseShape>This parameter is the collection of shapes that we will draw.
currentLayerLabels
Collection<SimpleCandidate>This parameter is the collection of labels in the current layer.
allLayerLabels
Collection<SimpleCandidate>This parameter is the collection of labels in all layers.
Remarks
This method is the concrete wrapper for the abstract method DrawCore. This
method draws the representation of the Layer based on the extent you provided.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- ArgumentNullException
If you pass a null as the features, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the view, we will throw an ArgumentNullException.
Draw(GeoCanvas, IEnumerable<Feature>, Collection<SimpleCandidate>, Collection<SimpleCandidate>)
This method draws the ZoomLevel.
public void Draw(GeoCanvas canvas, IEnumerable<Feature> features, Collection<SimpleCandidate> currentLayerLabels, Collection<SimpleCandidate> allLayerLabels)
Parameters
canvas
GeoCanvasThis parameter is the Canvas used to draw the InternalFeatures.
features
IEnumerable<Feature>This parameter is the collection of features that we will draw.
currentLayerLabels
Collection<SimpleCandidate>This parameter is the collection of labels in the current layer.
allLayerLabels
Collection<SimpleCandidate>This parameter is the collection of labels in all layers.
Remarks
This method is the concrete wrapper for the abstract method DrawCore. This
method draws the representation of the Layer based on the extent you provided.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- ArgumentNullException
If you pass a null as the features, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the view, we will throw an ArgumentNullException.
DrawCore(GeoCanvas, IEnumerable<Feature>, Collection<SimpleCandidate>, Collection<SimpleCandidate>)
This method draws the ZoomLevel.
protected virtual void DrawCore(GeoCanvas canvas, IEnumerable<Feature> features, Collection<SimpleCandidate> currentLayerLabels, Collection<SimpleCandidate> allLayerLabels)
Parameters
canvas
GeoCanvasThis parameter is the Canvas used to draw the InternalFeatures.
features
IEnumerable<Feature>This parameter is the collection of feature that we will draw.
currentLayerLabels
Collection<SimpleCandidate>This parameter is the collection of labels in the current layer.
allLayerLabels
Collection<SimpleCandidate>This parameter is the collection of labels in all layers.
Remarks
This method draws the representation of the Layer based on the extent you provided.
GetRequiredColumnNames()
This method returns the column data for each feature that is required for the styles to properly draw.
public Collection<string> GetRequiredColumnNames()
Returns
- Collection<string>
This method returns a collection containing the required column names.
Remarks
In this method, we return the column names that are required for the styles to
draw the feature properly. For example, if you have a style that colors areas blue when
a certain column value is over 100, then you need to be sure you include the column
name. This will ensure that the column data is returned to you in the feature when it
is ready to draw.
In many of the styles, we add properties to allow the user to specify which field they
need; then, in the GetRequiredColumnNamesCore, we read that property and add it to the
collection.
HasValidStyles()
public bool HasValidStyles()