Skip to content

ZoomLevel

Namespace: ThinkGeo.Core

This class defines how InternalFeatures will be drawn based on their scale.

public class ZoomLevel

Inheritance ObjectZoomLevel

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.

Properties

IsActive

This property gets and sets whether the ZoomLevel is active and should draw.

public bool IsActive { get; set; }

Property Value

Boolean
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.

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

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.

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.

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.

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.

UseLegacyLabeling

public bool UseLegacyLabeling { get; set; }

Property Value

Boolean

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 Double
This paramter is the scale for the ZoomLevel.

Remarks:

This constructor allows you to provide the scale for this ZoomLevel.

Methods

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.

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 GeoCanvas
This 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.

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.

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.

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 GeoCanvas
This 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.

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.

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.

DrawCore(GeoCanvas, IEnumerable<Feature>, Collection<SimpleCandidate>, Collection<SimpleCandidate>)

This method draws the ZoomLevel.

protected void DrawCore(GeoCanvas canvas, IEnumerable<Feature> features, Collection<SimpleCandidate> currentLayerLabels, Collection<SimpleCandidate> allLayerLabels)

Parameters

canvas GeoCanvas
This 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.