DotSpatial.Symbology
This class contains two separate layers. The first is the BackImage where features that don't change
over time are drawn. This way if heavy calculations are required to draw the background, you don't
have to re-draw the background over and over again every time a sprite moves. The Front image is
for small sprites that change rapidly, but
The real world extents for the entire buffer
The image being shown
Creates a new BackBuffer bitmap that is the specified size.
The width of the bitmap
The height of the bitmap
Clears the back buffer.
Calculates a system.Drawing rectangle that corresponds to the specified real world
envelope if it were drawn in pixels on the background image.
Fires the ExtentsChanged event
Occurs after something changes the geographic extents. This refers to the outer
geographic extents, not the view extents.
Gets or sets the geographic extents for the entire back buffer.
Gets the graphics drawing surface for the BackBuffer
Gets or sets the height of this backbuffer in pixels
Gets or sets the actual Bitmap being used as the back buffer.
Boolean, true if the current thread is different from the original thread, indicating
that cross-threading is taking place.
Gets or sets the width of the back buffer in pixels. This will copy
the old back buffer to a new bitmap with the new width/height
Obtains a graphics object already organized into world coordinates.
The client rectangle and world coordinates are used in order to determine
the scale and translation of the transform necessary in the graphics object.
The envelope bounds in geographic coordinates.
BitmapFormatException
An EventArgs specifically tailored to ColorCategory.
Initializes a new instance of the ColorCategoryEventArgs class.
The IColorCategory that is involved in this event.
Gets the ColorCategory associated with this event.
An EventArgs specifically tailored to DynamicVisibilityMode.
Initializes a new instance of the DynamicVisibilityModeEventArgs class.
The item that supports IDynamicVisibility.
Gets the item that supports dynamic visibility.
Adds the given DataColumn as Field.
DataColumn that should be added.
False, if DataColumn was null.
Uses the parsed expression to calculate the expression for the given row. If the expression is invalid only the Fields are replaced (This was the default action for expressions before DS 1.8).
Row the expression gets calculated for.
FID value that is used to replace the FID field.
The calculated expression.
Clears the fields.
Checks whether the operations are valid.
Example result if operation is valid.
Datarow that should be used to show as example result if the operation is valid.
True, if operations can be calculated.
Parses the given string to Expression.
True if string can be parsed to expression.
Replaces the current fields with the given datacolumns.
Columns that should be added as fields.
False if columns was null.
Calculates the whole expression.
Calculates the given operation for the values of the given part.
Calculates the operations that are allowed for two boolean values.
Calculates the operations that are allowed for two double values.
Calculates the operations that are allowed for two string values.
Seeks operation with the highest priority and operands.
Checks whether opening- and closingSymbol can be found.
Expression that is checked.
Returns position of openingSymbol if found.
Returns position of closingSymbol if found.
OpeningSymbol that is searched for.
ClosingSymbol that is searched for.
True if opening- and closingSymbol where found.
Gets the ExpressionValue of the element of the given part.
Part that contains the element.
Id of the element whose value is returned.
Value of the element.
Checks whether the given character could belong to a number.
Character that is checked.
Remembers whether last character was exponential to check whether +- are allowed.
False if character can't belong to a number.
Checks whether the ExpressionString is empty.
True, if ExpressionString is empty.
Creates elements of the expression parts and checks.
ExpressionString whose bracketed parts are parsed.
True if partsyntax was correct.
Checks whether there is a value or unary operator at the given position.
Checks whether there is an operation at the given position.
Replaces only the Fields in invalid expressions. Before DS 1.8 this was the only thing that got replaced in expressions.
Datarow that contains the data used to replace the fields.
FID that is used to replace the FID field.
ExpressionString with replaced Fields.
Replace the old substring with the new one.
String in which the substring gets replaced.
Startposition of old substring.
Length of old substring.
New substring.
Converts the given value to string. Uses _floatingFormat for double.
Value that gets converted.
value as string
Sets the ErrorMessage according to the given parameters.
Position that caused the error.
String that was searched.
Indicates whether operator or operand is missing.
Finds the next position that is not a space.
String to check.
Startposition.
FloatingFormat that is used to convert double values to string.
ErrorMessage that was raised by last method.
Extension methods for extent that are related to System.Drawing, and not data.
This method assumes that there was a direct correlation between this envelope and the original
rectangle. This reproportions this window to match the specified newRectangle.
The original envelope
The original rectangle
The new rectangle
A new IEnvelope
Feature Set Apply Edit Args.
Initializes a new instance of the FeatureSetApplyEditArgs class.
The IFeatureSet edit copy.
The delegate should point to a method handler to work with the edit copy.
Invokes the method that will handle changes using the EditCopy.
Gets or sets a duplicate of the IFeatureSet being referenced so that
changes might be applied.
Defines the structure of the method that would handle the actual
changes for an apply changes request.
The IFeatureSet edit copy being manipulated.
This interface provides ability to use in ColorCategory any custom actions (including GUI-dependent dialogs)
Show edit dialog
Instance of ColorCategory
An shared interface for members that wish to set dynamic visiblity.
Dynamic visibility represents layers that only appear when you zoom in close enough.
This value represents the geographic width where that happens.
This controls whether the layer is visible when zoomed in closer than the dynamic
visiblity width or only when further away from the dynamic visibility width
Gets or sets a boolean indicating whether dynamic visibility should be enabled.
This interface provides ability to use in FeatureLayer any custom actions (including GUI-dependent dialogs)
Show properties
Feature layer
Show Join Excel
Feature set
Show dynamic visibility dialog
Dynamic visibility
Show label setup dialog
Label layer
Show attributes dialog
Feature layer
Show export dialog
Feature layer
This interface provides ability to use in ImageLayer any custom actions (including GUI-dependent dialogs)
Show properties dialog
Image layer
Show export dialog
Image data
This interface provides ability to use in Layer any custom actions (including GUI-dependent dialogs)
Show Dynamic Visibility dialog
Dynamic Visibility
An EventArgs specifically tailored to ImageLayerEventArgs.
Initializes a new instance of the ImageLayerEventArgs class.
The IImageLayer that is involved in this event.
Gets the ImageLayer associated with this event.
CantBeDeletedException
Creates a new instance of CantBeDeletedException
LegendItem
Descriptors are simple classes that are used for storing symbology or other basic characteristics.
They are presumed to be made up of value types and other descriptors, and are expected to be serializable.
This being said, some basic capabilities are supported for randomizing, copying and comparing the
properties of descriptors.
Creates a new instance of CopyBase
Creates a duplicate of this descriptor using MemberwiseClone
A clone of this object as a duplicate
PropertyInfo returns overridden members as separate entries. We would rather work with each members
only one time.
All the properties, including duplicates created by overridden members
An Array of PropertyInfo members
This occurs during the Copy method and is overridable by sub-classes
The duplicate descriptor
IDescriptor
Matching is defined as being a different object, but having properties
that would make it indistinguishable from the comparision property.
This is an alternative to overriding the equals behavior in cases
where you might ALSO need to see if the object reference is the same.
Tests this object against the comparison object. If any of the
value type members are different, or if any of the properties
are IMatchable and do not match, then this returns false.
The other IMatcheable object of the same type
The list of property names that do not match
Boolean, true if the properties are comparably equal.
IRandomizable
This method will set the values for this class with random values that are
within acceptable parameters for this class.
An existing random number generator so that the random seed can be controlled
This copies the public descriptor properties from the specified object to
this object.
An object that has properties that match the public properties on this object.
Creates a new instance of MatchableObject
For each of the publicly accessible properties found on this object, this attempts
to copy a public property from the source object of the same name, if it can find it.
For each matching property name/type, it will attempt to copy the value.
The
Compares the properties of this object with the specified IMatchable other.
This does not test every property of other, but does test every property
of this item. As long as the other item has corresponding properties
for every property on this item, the items are said to match.
The IMatchable interface allows custom definitions of matching.
For collections to match, all of their sub-members must match.
The default behavior is to cycle through all the properties of this
object, and call Randomize on any that implement the IRandomizable interface.
The Random seed generator for controling how the random content is created
This occurs while copying properties from the specified source, and
is the default handling for subclasses
This gives sub-classes the chance to directly override, control or otherwise tamper
with the matching process. This is also where normal matching is performed,
so to replace it, simply don't call the base.OnMatch method. To tweak the results,
the base method should be performed first, and the results can then be modified.
This allows overrideable behavior that can replace or extend the basic behavior,
which is to call Randomize on any public properties that are listed as randomizeable.
This does nothing to normal properties or non public members and needs to be overriden
to provide the special case functionality for sub-classes.
The random number generator to be used during randomization
The LegendItem interface controls specifically the
properties associated with the legend. It is assumed that
All layers will support one legend item, but this way
ostensibly we can eventually add things to the legend that
are not technically layers.
Any item which can be contained by a parent item
The type class of the potential parent
Gets the parent item relative to this item.
Sets teh parent legend item for this item
Tests the specified legend item to determine whether or not
it can be dropped into the current item.
Any object that implements ILegendItem
Boolean that is true if a drag-drop of the specified item will be allowed.
Instructs this legend item to perform custom drawing for any symbols.
A Graphics surface to draw on
The rectangular coordinates that confine the symbol.
Prints the formal legend content without any resize boxes or other notations.
The graphics object to print to
The system.Drawing.Font to use for the lettering
The color of the font
Assuming 0, 0 is the top left, this is the maximum extent
Gets the size of the symbol to be drawn to the legend
This is a list of menu items that should appear for this layer.
These are in addition to any that are supported by default.
Handlers should be added to this list before it is retrieved.
Gets or sets whether or not this legend item should be visible.
This will not be altered unless the LegendSymbolMode is set
to CheckBox.
Gets or sets whether this legend item is expanded.
Gets or sets whether this legend item is currently selected (and therefore drawn differently)
Gets whatever the child collection is and returns it as an IEnumerable set of legend items
in order to make it easier to cycle through those values.
Gets or sets a boolean, that if false will prevent this item, or any of its child items
from appearing in the legend when the legend is drawn.
Gets the symbol mode for this legend item.
The text that will appear in the legend
Gets or sets a pre-defined behavior in the legend when referring to drag and drop functionality.
Creates a new instance of the legend item
Configures the default settings of the legend item
Returns a boolean indicating whether or not this item can have other items dropped on it.
By default this is false. This can be overridden for more customized behaviors.
The item to test for dropping.
Draws the symbol for this specific category to the legend
Prints the formal legend content without any resize boxes or other notations.
The graphics object to print to
The system.Drawing.Font to use for the lettering
The color of the font
Assuming 0, 0 is the top left, this is the maximum extent
Gets the nearest value.
The value.
The values.
Bytes the range.
The value.
Handles updating event handlers during a copy process
Allows the ItemChanged event to fire in response to individual changes again.
This will also fire the event once if there were any changes that warent it
that were made while the event was suspended.
Each suspend call increments an integer, essentially keeping track of the depth of
suspension. When the same number of ResumeChangeEvents methods have been called
as SuspendChangeEvents have been called, the suspension is aborted and the
legend item is allowed to broadcast its changes.
Gets or sets the size of the symbol to be drawn to the legend
Gets the Parent Legend item for this category. This should probably be the appropriate layer item.
Sets the parent legend item for this category.
Allows for the set behavior for the parent item to be overridden in child classes
Fires the ItemChanged event
Fires the ItemChanged event, optionally specifying a different
sender
Instructs the parent legend item to remove this item from the list of legend items.
Occurs whenever the symbol content has been updated
Occurs whenever the item should be removed from the parent collection
Boolean, true if changes are suspended
Gets or sets a boolean that indicates whether or not this legend item can be dragged to a new position in the legend.
Gets or sets a boolean, that if false will prevent this item, or any of its child items
from appearing in the legend when the legend is drawn.
Because these are in symbol mode, this is not used.
Gets the MenuItems that should appear in the context menu of the legend for this category
Gets or sets a boolean that indicates whether or not the legend should draw the child LegendItems for this category.
Gets or sets whether this legend item has been selected in the legend
Gets whatever the child collection is and returns it as an IEnumerable set of legend items
in order to make it easier to cycle through those values. This defaults to null and must
be overridden in specific cases where child legend items exist.
Gets or sets the symbol mode for the legend. By default this should be "Symbol", but this can be overridden
Gets or sets the text for this category to appear in the legend. This might be a category name,
or a range of values.
Gets or sets a pre-defined behavior in the legend when referring to drag and drop functionality.
If this is true, then "can receive
Creates a new instance of Category
Creaates a new instance of this category, and tailors the range to the specifeid values.
The start value
The end value
Creates a category that has the same value for both minimum and maximum
The value to use
Applies the snapping rule directly to the categories, instead of the breaks.
Searches the list and returns the nearest value in the list to the specified value.
Since rasters are numeric and not relying on an SQL expression, this allows
this only sets the legend text using the method and digits to help with
formatting.
An EditorSettings from either a feature scheme or color scheme.
Tests to see if the specified value falls in the range specified by this ColorCategory
The value of type int to test
Boolean, true if the value was found in the range
Returns this Number as a string. This uses the DotSpatial.Globalization.CulturePreferences and
Controls the number type using the NumberFormat enumeration plus the DecimalCount to create
a number format.
The string created using the specified number format and precision.
Returns this Number as a string.
Specifies how the numbers are modified so that the numeric text can be cleaned up.
An integer clarifying digits for rounding or significant figure situations.
A string with the formatted number.
Maximum this is a convenient caching tool only, and doesn't control the filter expression at all.
Use ApplyMinMax after setting this to update the filter expression.
Gets or sets the color to be used for this break. For
BiValued breaks, this only sets one of the colors. If
this is higher than the high value, both are set to this.
If this equals the high value, IsBiValue will be false.
Gets the numeric Range for this color break.
Gets or sets a status message for this string.
This is not used by DotSpatial, but is provided for convenient linking for this object
in plugins or other applications.
Forces the Changed event to fire. If events are suspended,
then this simply will mark the changes so that when
the ResumeChanges is called it will automatically fire
the Changed events.
Resumes the events. If any changes occured during the period of time when
the events were suspended, this will automatically fire the chnaged event.
Causes this filter collection to suspend the Changed event, so that
it will only be fired once after a series of updates.
Fires the Changed event as long as ChangesSuspended is not true.
Occurs when members are added to or removed from this collection. If SuspendChanges
is called, this will temporarilly prevent this event from firing, until ResumeEvents
has been called.
To suspend events, call SuspendChanges. Then to resume events, call ResumeEvents. If the
suspension is greater than 0, then events are suspended.
Creates a new instance of ChangedObjectEvent
Gets the item that has been changed
Misc extensions for class
Creates a color with the same hue and saturation but that is slightly brighter than this color.
The starting color
The floating point value of brightness to add to this color.
If the combined result is greater than 1, the result will equal one.
A color lighter than this color
Creates a color with the same hue and saturation but that is slightly darker than this color.
The starting color
The floating point value of brightness to add to this color.
if the combined result is less than 0, the result will equal 0.
A color darker than this color.
Calculates the opacity as a function of the Alpha channel.
The color to determine the opacity for
Given a floating point opacity, where 0 is fully transparent and 1 is fully opaque,
this will generate a new color that is the transparent version.
Returns an equivalent version of this color that is fully opaque (having an alpha value of 255)
The transparent color
The new Color
uses a linear ramp to extrapolate the midpoint between the specified color and the new color
as defined by ARGB values independantly
This color
The color to blend with this color
A color that is midway between this color and the specified color
DeadSea
Desert
Fall Leaves
Glacier
Highway
Meadow
Summer Mountains
Valley Fires
ILabel
Occurs when the Symbolizer for this label is changed.
Gets or sets the geographic position for the anchoring the label. The relationship
between this and the text depends on the horizontal alignment.
Gets the integer index for this label
Gets the Symbol group that currently contains this label.
Gets or sets the text that appears on this layer.
Gets or sets the symbolizer for this specific label. This allows customization for
individual labels, but at the same time can allow many labels to point to one set
of symbolic characteristics.
Gets or sets the symbolizer that is being used. Symbol groups are defined by the
original symbolizer, and there is only one selection symbolizer per group. This
simply is a shortcut to accessing the symbolgroup's selection symbolizer.
This interface provides ability to use in RasterLayer any custom actions (including GUI-dependent dialogs)
SHow properties dialog
Raster layer
Show export dialog
Raster
ITextSymbolGroup
Add a new integer into this group.
The label to be added to the group.
Boolean, false if the integer was already in this group.
Removes all the selected indices and returns them to the regular indices.
This returns a list of integer indices for the labels that were changed.
Selects a single label
The integer label to select
Unselect a single label in this group.
The integer label
Gets or sets the text symbolizer for this group of labels
Gets or sets the list of regular labels based on their index in the actual list of labels
Gets or sets the list of selected labels based on their index in the actual list of labels
Gets or sets the set of symbolic characteristics that should be used for drawing selected labels.
A generic event argument that also allows sending the strong typed item.
The generic item associated with the event.
Creates a new instance of hte LegendItemEventArgs
The item associated with the event. This is not necessarilly the sender.
The item associated with this event. This is not necessarilly the sender.
An EventArgs specifically tailored to LabelLayerEventArgs.
Initializes a new instance of the LabelLayerEventArgs class.
The ILabelLayer that is involved in this event.
Gets the LabelLayer associated with this event.
Creates a new instance of LayerEventArgs
Layer that was moved.
Position the layer was moved to.
PointFConverter
True if the source type is a string
Boolean, true if source type is a string
Uses a string to return a new Position2D
A String
Creates a string from the specified Position2D
A Position2D
An EventArgs specifically tailored to RasterLayer.
Initializes a new instance of the RasterLayerEventArgs class.
The IRasterLayer that is involved in this event.
Gets the RasterLayer associated with this event.
The ExpandableSetConverter works by assuming that a pair of
Returns true if the source type is string
Converts a string into a Size2D
Converts the Size2D into a string
Create Hillshade of values ranging from 0 to 1, or -1 for no-data regions.
This should be a little faster since we are accessing the Data field directly instead of working
through a value parameter.
The raster to create the hillshade from.
An implementation of IShadedRelief describing how the hillshade should be created.
An implementation of IProgressHandler for progress messages
Create Hillshade of values ranging from 0 to 1, or -1 for no-data regions.
This should be a little faster since we are accessing the Data field directly instead of working
through a value parameter.
The raster to create the hillshade from.
An implementation of IShadedRelief describing how the hillshade should be created.
An implementation of IProgressHandler for progress messages
Creates a bitmap from this raster using the specified rasterSymbolizer
The raster to draw to a bitmap
The raster symbolizer to use for assigning colors
This must be an Format32bbpArgb bitmap that has already been saved to a file so that it exists.
The progress handler to use.
rasterSymbolizer cannot be null
Creates a bitmap from this raster using the specified rasterSymbolizer
The raster to draw to a bitmap
The raster symbolizer to use for assigning colors
Byte values representing the ARGB image bytes
The stride
The progress meter to use.
rasterSymbolizer cannot be null
Creates a bitmap using only the colorscheme, even if a hillshade was specified.
The Raster containing values that need to be drawn to the bitmap as a color scheme.
The raster symbolizer to use.
The bitmap to edit. Ensure that this has been created and saved at least once.
An IProgressHandler implementation to receive progress updates.
rasterSymbolizer cannot be null.
Creates a bitmap using only the colorscheme, even if a hillshade was specified.
The Raster containing values that need to be drawn to the bitmap as a color scheme.
The raster symbolizer to use.
The bitmap to edit. Ensure that this has been created and saved at least once.
An IProgressHandler implementation to receive progress updates.
cannot be null, cannot be null, cannot be null
Obtains a list of unique values from the grid.
The IRaster to obtain unique values for
A list of double values, where no value is repeated.
Obtains an set of unique values. If there are more than maxCount values, the process stops and overMaxCount is set to true.
the raster to obtain the unique values from.
An integer specifying the maximum number of values to add to the list of unique values
A boolean that will be true if the process was halted prematurely.
A set of doubles representing the independant values.
This will sample randomly from the raster, preventing duplicates.
If the sampleSize is larger than this raster, this returns all of the
values from the raster. If a "Sample" has been prefetched and stored
in the Sample array, then this will return that.
DrawArgs contains the parameters necessary for 2D drawing
Creates a new instance of DrawArgs
A System.Windows.Drawing.Graphics object
A DotSpatial.Drawing.DrawWindow to draw to
Creates a new instance of DrawArgs
A System.Windows.Drawing.Graphics object
A DotSpatial.Drawing.DrawWindow to draw to
An integer part representing a value from 0 to NumParts being drawn
Creates a new instance of DrawArgs
A System.Windows.Drawing.Graphics object
A DotSpatial.Drawing.DrawWindow to draw to
An integer part representing a value from 0 to NumParts being drawn
The integer stage representing an object that has several stages, for all of the parts to be passed through
Gets the Graphics device to draw to
Gets the geographic extent for the drawing operation
Gets the part index being drawn.
Gets the integer stage index. As an example, if all the borders are drawn first, and then all the fillings are drawn,
but each stage has several parts, the stage gives a way to subdivide a larger object into several drawing passes.
A set of PaintEventArgs that can be used before a drawing function in order to cancel an event.
Creates a new instance of the DrawCompleted Event Arguments
A Graphics surface
An implementation of DotSpatial.Geometries.IEnvelope defining the geographic drawing region
True if the draw method was cancelled before any rendering took place. A Cancel is different from when an acception is thrown.
If an exception occured during rendering, this will not be null.
Creates a default DrawCompleted event for the situation where the drawing was successful, not cancelled and no exception occured
The DrawArgs being used during the drawing, specifying the Graphics device and geographic envelope
A boolean parameter specifying whether or not the drawing was cancelled
Creates a new DrawCompleted in the case where an exception was thrown
The drawing arguments for drawing, specifying the Graphics device and the geographic envelope
The Exception being thrown
Boolean, true if the draw method was cancelled before rendering took place.
This will not be true if visible was false or an exception was thrown.
An Exception object for situations where the drawing threw an exception.
A set of PaintEventArgs that can be used before a drawing function in order to cancel an event.
Creates a new instance of the CancelPaint Event Arguments.
The device that contains the drawing information for the event to determine whether or not to cancel.
The geographic bounds of the draw event
The part being drawn. This is usually 0, unless NumParts is greater than 1.
The 0-based integer index indicating the stage of the drawing.
A boolean specifying the default setting for the draw args.
Constructs a new instance with cancel set to false using an Existing DrawArgs
Returns a boolean specifying whether the action that caused the default drawing
for this event should be prevented.
A Draw Window is a special type of envelope that supports some basic transformations
Creates a new instance of DrawWindow, making the assumption that the map is in Geographic coordinates of decimal degrees
Creates a new draw window with the specified coordinates
The first x-value.
The second x-value.
The first y-value.
The second y-value.
The first z-value.
The second z-value.
Constructs a new DrawWindow based on the specified IEnvelope. The envelope becomes
the GeographicView for this DrawWindow.
Replaces the inherited Envelope copy in order to create a copy of the DrawWindow instead
Replaces the inherited clone in order to make a copy of the DrawWindow
Converts two dimensions of the specified coordinate into a two dimensional PointF
A PointF
Converts two dimensions of the specified coordinate into a two dimensional PointF
Any valid ICoordinate
A PointF
Converts two dimensions of the specified coordinate into a two dimensional PointF.
Converts a PointF from the draw window back into the double precision data coordinate.
Converts an Array of PointF values from the draw window back into the double precision data coordinates.
There will be uncertainty based on how zoomed in you are.
Calculates a geographic envelope from the specified window in the DrawWindow coordinates.
This calculates the DrawWindowView from the GeographicView
This is the the current extent of the map in geographic coordinates.
Retrieves the MinX value of the GeographicView, in DrawWindow coordinates
The main difference here is that tests against the DrawWindow happen before the nested Draw2D methods.
The DrawWindow is editable at this stage, but will become read-only during drawing.
Creates a new instance of DrawArgs
A System.Windows.Drawing.Graphics object
A DotSpatial.Drawing.DrawWindow to draw to
Gets the Graphics device to draw to
Gets or sets the geographic extent for the drawing operation
DynamicVisibilityModes
The layer will only be visible when zoomed in closer than the
DynamicVisibilityWidth.
The layer will only be visible when zoomed out beyond the
DynamicVisibilityWidth.
EditorSettings
Creates a new instance of EditorSettings
Gets or sets the characteristics of the "right" color.
Gets or sets a string that allows the user to use any of the
data fields to eliminate values from being considered as part
of the histogram for statistical interval calculations.
Gets or sets a boolean indicating to display
the hue, saturation, lightness as bounds
instead of start-color, end-color.
Gets or sets the hue shift.
Gets or sets the interval method
Gets or sets the maximum sample count.
Gets or sets the integer count if equal breaks are used
Gets or sets whether this editor should ramp the colors,
or use randomly generated colors. The default is random.
Gets or sets the characteristics of the "left" color.
Gets or sets whether to use the color specifications
Gets or sets how intervals like equal breaks choose the
actual values, and whether they are rounded or snapped.
Gets or sets the number of digits to preserve when IntervalSnapMethod is set to Rounding
World or pixel coordinates
No referencing was specified so the default will be used
The coordinates are given relative to the geographic locations, rather than pixel coordinates
The coordinates are given in pixels
An enumeration showing whetehr this item should use a picture or an image
No specification was set, so use the default
Specifies to use an icon
Specifies to use an image
Gives an enumeration for several different line styles
Specifies that none of the normal options were chosen so a default should be used.
This will draw the specified line so that the curve joins itself
at the ends.
Draws a cardinal spline through the points of this feature
Draws a set of line segments through the points of this feature
This is like a boolean, but with a "default" of empty. Empty signifies
that the value is not specified.
Not specified
Specified as true
Specified as false
Specifies the OGC type of connection that can occur between two segments
Flat?
Rounded
Beveled
Specifies the OGC treatment to give the line at the end-points
Flat?
Round
flat but a little outwards
Creates a new instance of EnvelopeArgs
Gets the envelope specific to this event.
Creates a new instance of SelectionEventArgs
Gets the list of features that were changed by this event.
FeatureChangeEnvelopeArgs
Creates a new instance of FeatureChangeEnvelopeArgs
Gets the geographic envelope for the most recent selection event.
Adds all the features in the specified range. This will throw an exception if the
the features are not already in the feature list, since this is simply trying
to select those features.
The IFilterCollection to add the range to
The features being selected.
This uses extent checking (rather than full polygon intersection checking). It will add
any members that are either contained by or intersect with the specified region
depending on the SelectionMode property. The order of operation is the region
acting on the feature, so Contains, for instance, would work with points.
True if any item was actually added to the collection
Removes the entire list of features
The IFilterCollection to remove the range from
The enumerable collection of IFeatures.
Tests each member currently in the selected features based on
the SelectionMode. If it passes, it will remove the feature from
the selection.
The IFilterCollection that this should be applied to
The geographic region to remove
Boolean, true if the collection was changed
An enumeration specifying the way that a gradient of color is attributed to the values in the specified range.
The values are colored in even steps in each of the Red, Green and Blue bands.
The even steps between values are used as powers of two, greatly increasing the impact of higher values.
The log of the values is used, reducing the relative impact of the higher values in the range.
GraphicsPathEM
Adds a round rectangle to the graphics path where the integer radius specified determines how rounded the rectangle should become.
This can be thought of rounded arcs connected by straight lines.
Adds the unclosed set of lines that are the top and left of the shape
Adds the unclosed set of lines that are the bottom and right of the shape
Tests each of the points in the graphics path, and calculates a RectangleF that completely contains
all of the points in the graphics path.
The grpahics path to test.
A RectangleF
Group
RenderableLegendItem
Items with this setup can both be organized as an item,
and feature the elemental control methods and properties
around drawing. Layers, MapFrames, groups etc can fall in this
category.
Anything that can draw itself to the map is an IRenderable. This is implemented by RenderBase.
Invalidates the drawing methods
Occurs whenever the geographic bounds for this renderable object have changed
Occurs when an outside request is sent to invalidate this object
Occurs immediately after the visible parameter has been adjusted.
Obtains an IEnvelope in world coordinates that contains this object
Gets whether or not the unmanaged drawing structures have been created for this item
If this is false, then the drawing function will not render anything.
Warning! This will also prevent any execution of calculations that take place
as part of the drawing methods and will also abort the drawing methods of any
sub-members to this IRenderable.
Creates a new instance of RenderBase
Invalidates the drawing methods
Fires the EnvelopeChanged event.
The object sender for this event (this)
The EnvelopeArgs specifying the envelope
Fires the Invalidated event
The object sender (usually this)
An EventArgs parameter
Fires the Visible Changed event
The object sender (usually this)
An EventArgs parameter
Occurs whenever the geographic bounds for this renderable object have changed
Occurs when an outside request is sent to invalidate this object
Occurs immediately after the visible parameter has been adjusted.
The protected extent is a direct, sealed accessor for the extent variable.
This is safe to use in constructors.
Obtains an IEnvelope in world coordinates that contains this object. This is virtual, and
will usually be reconfigured in subclasses to simply show the dataset extent.
Gets whether or not the unmanaged drawing structures have been created for this item
If this is false, then the drawing function will not render anything.
Warning! This will also prevent any execution of calculations that take place
as part of the drawing methods and will also abort the drawing methods of any
sub-members to this IRenderable.
Just specifies the organization of interfaces that make up a layer.
It is recommended to create derived classes that inherit from an
abstract layer that implements the majority of this shared functionality
This supports the FeatureLayer event SelectionChanged, for both groups and feature layers, or
any other layer that supports both an ISelection and inherits from IFeatureLayer.
Removes any members from existing in the selected state
Inverts the selected state of any members in the specified region.
The geographic region to invert the selected state of members
The geographic region when working with absolutes, without a tolerance
The selection mode determining how to test for intersection
The geographic region encapsulating the changed members
Boolean, true if members were changed by the selection process.
Adds any members found in the specified region to the selected state as long as
SelectionEnabled is set to true.
The geographic region where selection occurs
The geographic region when working with absolutes, without a tolerance
The selection mode
The envelope affected area
Boolean, true if any members were added to the selection
Removes any members found in the specified region from the selection
The geographic region to investigate
The geographic region when working with absolutes, without a tolerance
The selection mode to use for selecting items
The geographic region containing all the shapes that were altered
Boolean, true if any members were removed from the selection
OCcurs after all of the layers have been updated with new selection content.
Gets or sets the Boolean indicating whether this item is actively supporting selection
Given a geographic extent, this tests the "IsVisible", "UseDynamicVisibility",
"DynamicVisibilityMode" and "DynamicVisibilityWidth"
In order to determine if this layer is visible.
The geographic extent, where the width will be tested.
Boolean, true if this layer should be visible for this extent.
Notifies the layer that the next time an area that intersects with this region
is specified, it must first re-draw content to the image buffer.
The envelope where content has become invalidated.
Queries this layer and the entire parental tree up to the map frame to determine if
this layer is within the selected layers.
Occurs before the properties are actually shown, also allowing the event to be handled.
Occurs if the maps should zoom to this layer.
Occurs if this layer was selected
Occurs when all aspects of the layer finish loading.
Gets or sets the core dataset for this layer.
Gets the currently invalidated region.
Gets the MapFrame that contains this layer.
Gets or sets the progress handler
Creates a new Layer, but this should be done from the derived classes
Creates a new Layer, but this should be done from the derived classes
The container this layer should be a member of
Creates a new layer with only a progress handler
Creates a new Layer, but this should be done from the derived classes
The container this layer should be a member of
A progress handler for handling progress messages
Given a geographic extent, this tests the "IsVisible", "UseDynamicVisibility",
"DynamicVisibilityMode" and "DynamicVisibilityWidth"
In order to determine if this layer is visible for the specified scale.
The geographic extent, where the width will be tested.
Boolean, true if this layer should be visible for this extent.
Tests the specified legend item. If the item is another layer or a group or a map-frame, then this
will return false. Furthermore, if the parent of the item is not also this object, then it will
also return false. The idea is that layers can have sub-nodes move around, but not transport from
place to place.
the legend item to test
Boolean that if true means that it is ok to insert the specified item into this layer.
Queries this layer and the entire parental tree up to the map frame to determine if
this layer is within the selected layers.
Notifies the layer that the next time an area that intersects with this region
is specified, it must first re-draw content to the image buffer.
The envelope where content has become invalidated.
Notifies parent layer that this item is invalid and should be redrawn.
Fires the zoom to layer event.
Fires the zoom to layer event, but specifies the extent.
IEnvelope env
Occurs before showing the properties dialog. If the handled member
was set to true, then this class will not show the event args.
This should be overridden to copy the symbolizer properties from editCopy
The version that went into the property dialog
Zooms to the specific layer
Removes this layer from its parent list
Fires the LayerSelected event
Fires the OnFinishedLoading event.
Occurs when instructions are being sent for this layer to export data.
special treatment for event handlers during a copy event
Opens a fileName using the default layer provider and returns a new layer. The layer will not automatically have a container or be added to a map.
The string fileName of the layer to open
An ILayer interface
Opens a fileName using the default layer provider and returns a new layer. The layer will not automatically have a container or be added to a map.
The string fileName of the layer to open
An IProgresshandler that overrides the Default Layer Manager's progress handler
An ILayer interface with the new layer.
Opens a new layer and automatically adds it to the specified container.
A String fileName to attempt to open.
The container (usually a LayerCollection) to add to
The layer after it has been created and added to the container
Attempts to call the open fileName method for any ILayerProvider plugin
that matches the extension on the string.
A String fileName to attempt to open.
A boolean value that if true will attempt to force a load of the data into memory. This value overrides the property on this LayerManager.
A container to open this layer in
Specifies the progressHandler to receive progress messages. This value overrides the property on this LayerManager.
An ILayer
This is overriden in sub-classes
This is overriden in sub-classes
The geographic envelope in cases like cliking near points where tolerance is allowed
The geographic region when working with absolutes, without a tolerance
This is overriden in sub-classes
The geographic envelope in cases like cliking near points where tolerance is allowed
The geographic region when working with absolutes, without a tolerance
This is overriden in sub-classes
The geographic envelope in cases like cliking near points where tolerance is allowed
The geographic region when working with absolutes, without a tolerance
Disposes the memory objects in this layer.
Locks dispose. This typically adds one instance of an internal reference counter.
Unlocks dispose. This typically removes one instance of an internal reference counter.
Reprojects the dataset for this layer.
The target projection to use.
Fires the SelectionChanged event
Finalizes an instance of the Layer class.
This allows overriding layers to handle any memory cleanup.
True if managed resources should be set to null.
Occurs if this layer was selected
Occurs if the maps should zoom to this layer.
Occurs before the properties are actually shown, also allowing the event to be handled.
Occurs when all aspects of the layer finish loading.
Occurs after the selection is changed
Occurs when layer disposed.
Gets or sets custom actions for Layer
Gets or sets the internal data set. This can be null, as in the cases of groups or map-frames.
Copying a layer should not create a duplicate of the dataset, but rather it should point to the
original dataset. The ShallowCopy attribute is used so even though the DataSet itself may be cloneable,
cloning a layer will treat the dataset like a shallow copy.
Dynamic visibility represents layers that only appear when you zoom in close enough.
This value represents the geographic width where that happens.
This controls whether the layer is visible when zoomed in closer than the dynamic
visibility width or only when further away from the dynamic visibility width
Gets the currently invalidated region.
Gets the map frame of the parent LayerCollection.
Gets or sets the ProgressHandler for this layer. Setting this overrides the default
behavior which is to use the
Gets or sets a boolean indicating whether to allow the dynamic visibility
envelope to control visibility.
Layers launch a "Property Grid" by default. However, this can be overridden with a different UIEditor by this
Gets or sets the progress meter being used internally by layer classes.
Gets or sets a boolean indicating whether the memory objects have already been disposed of.
Gets or sets the boolean that controls whether or not items from the layer can be selected
Gets a value indicating whether an existing reference is requesting that the object is not disposed of.
Automatic disposal, as is the case when a layer is removed from the map, will not take place until
all the locks on dispose have been removed.
Gets a Boolean indicating if this layer can be reprojected.
Gets the or sets the projection information for the dataset of this layer.
This only defines the projection information and does not reproject the dataset or the layer.
Gets or sets the unmodified projection string that can be used regardless of whether the
DotSpatial.Projection module is available. This string can be in the Proj4string or in the
EsriString format. Setting the Projection string only defines projection information.
Call the Reproject() method to actually reproject the dataset and layer.
Group
Resume events will resume events on the layers if all the suspensions are
canceled out.
Adds one more increment of suspension which will prevent events from firing
for the layers.
Gets the layers cast as ILayer without any information about the actual drawing methods.
This is useful for handling methods that my come from various types of maps.
An enumerable collection of ILayer
Returns the number of data layers, not counting groups. If recursive is true, then layers that are within
groups will be counted, even though the groups themselves are not.
Boolean, if true forces checking even the number of child members.
An integer representing the total number of layers in this collection and its children.
Returns a snapshot image of this group
Width in pixels of the returned image (height is determined by the number of layers in the group)
Bitmap of the group and sublayers (expanded)
Gets the layer handle of the specified layer
0 based index into list of layers
Layer's handle on success, -1 on failure
This occurs when a new layer is added either to this group, or one of the child groups within this group.
This occurs when a layer is removed from this group.
Gets whether or not the events are suspended on the layer collection
Gets the integer handle for this group
Gets or sets the icon
Gets the integer count of layers. This can also be accessed through Layers.Count.
Gets or sets the visibility of the layers within this group.
Note: When reading this property, it returns true if any layer is visible within
this group
Gets the parent group of this group.
gets or sets the locked property, which prevents the user from changing the visual state
except layer by layer
Creates a new instance of Group
Creates a group that sits in a layer list and uses the specified progress handler
the progress handler
Creates a group that sits in a layer list and uses the specified progress handler
the layer list
the progress handler
Gets the layer handle of the specified layer
0 based index into list of layers
Layer's handle on success, -1 on failure
Creates a virtual method when sub-groups are being created
Given a new LayerCollection, we need to be sensitive to certain events
Occurs when removing a layer. This also fires the LayerRemoved event.
Simply echo this event out to members above this group that might be listening to it.
When setting an old layer collection it is advisable to not only add
new handlers to the new collection, but remove the handlers related
to the old collection.
Disposes the unmanaged resourced of this group. If disposeManagedResources is true, then this will
also dispose the resources of the child layers and groups unless they are dispose locked.
Boolean, true to dispose child objects and set managed members to null.
This occurs when a new layer is added either to this group, or one of the child groups within this group.
This occurs when a layer is removed from this group.
gets or sets the list of layers.
Boolean, true if any sub-layers in the group are visible. Setting this
will force all the layers in this group to become visible.
The envelope that contains all of the layers for this data frame. Essentially this would be
the extents to use if you want to zoom to the world view.
Gets the integer handle for this group
Gets or sets the icon
Gets the currently invalidated region as a union of all the
invalidated regions of individual layers in this group.
Returns the count of the layers that are currently stored in this map frame.
Gets a boolean that is true if any of the immediate layers or groups contained within this
control are visible. Setting this will set the visibility for each of the members of this
map frame.
This is a different view of the layers cast as legend items. This allows
easier cycling in recursive legend code.
Gets the parent group of this group.
Gets or sets the progress handler to use. Setting this will set the progress handler for
each of the layers in this map frame.
gets or sets the locked property, which prevents the user from changing the visual state
except layer by layer
ICategory
Applies the minimum and maximum in order to create the filter expression. This will also
count the members that match the specified criteria.
Applies the snapping rule directly to the categories, instead of the breaks.
For quantitative categories, this simply tests to see if the specified value can be
found between the minimum and maximum range values.
The double value to check against the minimum and maximum values.
Boolean, true if the value is inside the range.
Returns this Number as a string.
Specifies how the numbers are modified so that the numeric text can be cleaned up.
An integer clarifying digits for rounding or significant figure situations.
A string with the formatted number.
Minimum this is a convenient caching tool only, and doesn't control the filter expression at all.
Use ApplyMinMax after setting this to update the filter expression.
Maximum this is a convenient caching tool only, and doesn't control the filter expression at all.
Use ApplyMinMax after setting this to update the filter expression.
Gets or sets the value range, which overrides any existing min/max setup.
This is only valid for numeric values that can be expressed as doubles.
Gets or sets a status message for this string.
This is not used by DotSpatial, but is provided for convenient linking for this object
in plugins or other applications.
IChangeable
Resumes the events. If any changes occured during the period of time when
the events were suspended, this will automatically fire the chnaged event.
Causes this filter collection to suspend the Changed event, so that
it will only be fired once after a series of updates.
Occurs when members are added to or removed from this collection. If SuspendChanges
is called, this will temporarilly prevent this event from firing, until ResumeEvents
has been called.
To suspend events, call SuspendChanges. Then to resume events, call ResumeEvents. If the
suspension is greater than 0, then events are suspended.
This interface stores a single extent window describing a view, and also contains
the list of all the layers associated with that view. The layers are ordered.
This will create a new layer from the featureset and add it.
Any valid IFeatureSet that does not yet have drawing characteristics
Occurs when some items should no longer render, and the map needs a refresh.
Occurs after zooming to a specific location on the map and causes a camera recent.
Gets or sets a boolean that controls whether or not a newly added layer
will also force a zoom to that layer. If this is true, then nothing
will happen. Otherwise, adding layers to this frame or a group in this
frame will set the extent.
Drawing layers are tracked separately, and do not appear in the legend.
Gets or sets the currently active layer.
Controls the smoothing mode. Default or None will have faster performance
at the cost of quality.
This is the geographic envelope in view.
A layer or other object capable of containing
Draws every label in the layer without worrying about any collision testing
or specific tests outside of this label container. If LabelCollisionTesting
is set to true, it should still do collision testing for the labels INSIDE
this label container.
The list of integers corresponds to the integer values that were returned as
keys to the GetLabelExtents dictionary. The Layer will then draw each of the
specific lables to draw.
Gets the list of non-rotated extents for labels visible in the current display.
The integer keys represent the index of the labeled item.
The envelope values represent the actual rectangles that the labels occupy for
collision testing. If LabelCollisionTesting is true, then collisions should
be resolved for the entire layer first based on whatever internal priority
methods exist. Only the non-colliding visible labels will be returned.
Gets the list of possibly rotated label boundaries visible in the current display.
The integer keys represent the index of the labeled item.
The envelope values represent the actual rectangles that the labels occupy for
collision testing. If LabelCollisionTesting is true, then collisions should
be resolved for the entire layer first based on whatever internal priority
methods exist. Only the non-colliding visible labels will be returned.
The integer indexed list of all the labels in this container.
If this is set to true, then the only labels being sent to GetLabelExtents
should be the labels that actually need to be drawn.
A priority rating for all the labels in this layer. The higher this number,
the more likely the labels from this layer are to win a collision contest
between layers.
ILayerCollection2
Constructor
ILayerEvents
Selects the layer to use for tools or operations that act on a single layer.
The integer index indicating the layer to select in this collection.
Occurs when a layer is added to this item.
Occurs when a layer is moved.
Occurs when a layer is removed from this item.
Occurs when one of the layers in this collection changes visibility.
Zooms to a layer
Occurs immediately after the layer is selected.
Occurs when the selection on a feature layer changes.
Occurs after the selection has been updated for all the layers.
Given a base name, this increments a number for appending
if the name already exists in the collection.
The string base name to start with
The base name modified by a number making it unique in the collection
Gets or sets the ParentGroup for this layer collection, even if that parent group
is not actually a map frame.
Gets or sets the MapFrame for this layer collection.
Gets or sets the currently active layer.
IDataManager
This launches an open file dialog and attempts to load the specified file.
This launches an open file dialog and attempts to load the specified file.
The layer will be created in the specified collection
A Layer
This launches an open file dialog and attempts to load the specified file.
Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager.
A Layer
Opens a new layer and automatically adds it to the specified container.
A String fileName to attempt to open.
The container (usually a LayerCollection) to add to
The layer after it has been created and added to the container
This launches an open file dialog and attempts to load the specified file.
A String fileName to attempt to open.
Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager.
A Layer
Attempts to call the open fileName method for any IDataProvider plugin
that matches the extension on the string.
A String fileName to attempt to open.
Attempts to call the open fileName method for any IDataProvider plugin
that matches the extension on the string.
A String fileName to attempt to open.
A boolean value that if true will attempt to force a load of the data into memory. This value overrides the property on this DataManager.
any valid IContainer that this should be added to
Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager.
This opens a file, but populates the dialog filter with only raster formats.
An IRaster with the data from the file specified in an open file dialog
This opens a file, but populates the dialog filter with only raster formats.
An IFeatureSet with the data from the file specified in a dialog
This attempts to open the specified raster file and returns an associated layer
The string fileName to open
An IRaster with the data from the file specified in an open file dialog
This attempts to open the specified vector file and returns an associated layer
the string fileName to open
An IFeatureSet with the data from the file specified in a dialog
This create new method implies that this provider has the priority for creating a new file.
An instance of the dataset should be created and then returned. By this time, the fileName
will already be checked to see if it exists, and deleted if the user wants to overwrite it.
The string fileName for the new instance
The string short name of the driver for creating the raster
The number of columns in the raster
The number of rows in the raster
The number of bands to create in the raster
The data type to use for the raster
The options to be used.
An IRaster
Checks a dialog filter and returns a list of just the extensions.
The Dialog Filter to read extensions from
A list of extensions
Given a string fileName for the "*.dll" file, this will attempt to load any classes that implement the
IDataProvder interface.
The string path of the assembly to load from.
A list that contains only the providers that were just loaded. This may be a list of count 0, but shouldn't return null.
This should be called once all the permitted directories have been set in the code.
This will not affect the PreferredProviders or the general list of Providers.
These automatically have the lowest priority and will only be used if nothing
else works. Use the PreferredProviders to force preferential loading of
a plugin DataProvider.
A list of just the newly added DataProviders from this method.
Occurs after the directory providers have been loaded into the project.
Gets or sets a temporary list of active project layers. This is designed to house
the layers from a map frame when the property grids are shown for layers in that
map frame. This list on the DefaultLayerManager is what is used to create the
list that populates dropdowns that can take a Layer as a parameter.
Gets or sets the list of IDataProviders that should be used in the project.
Gets or sets the path (either as a full path or as a path relative to
the DotSpatial.dll) to search for plugins that implement the IDataProvider interface.
Gets or sets the dialog read filter to use for opening data files.
Gets or sets the dialog write filter to use for saving data files.
Sets the default condition for how this data manager should try to load layers.
This will be overridden if the inRam property is specified as a parameter.
Gets or sets the dialog read filter to use for opening data files that are specifically raster formats.
Gets or sets the dialog write filter to use for saving raster files.
Gets or sets the dialog read filter to use for opening vector files.
Gets or sets the dialog write filter to use for saving vector files.
Gets or sets a dictionary of IDataProviders keyed by the extension. The
standard order is to try to load the data using a PreferredProvider. If that
fails, then it will check the list of dataProviders, and finally, if that fails,
it will check the plugin Data Providers in directories.
Gets or sets a progress handler for any open operations that are intiated by this
DataManager.
Creates a new instance of the ImageGraphics class for assisting with drawing.
The destination rectangle on the bitmap where drawing should occur.
The geographic extents where drawing will take place.
A strongly-typed resource class, for looking up localized strings, etc.
Returns the cached ResourceManager instance used by this class.
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
IImageLayer
Gets or sets a class that has some basic parameters that control how the image layer
is drawn.
Gets or sets the dataset specifically as an IImageData object
Gets or sets the image being drawn by this layer
IImageSymbolizer
Gets or sets a float value from 0 to 1, where 1 is fully opaque while 0 is fully transparent
GeoImageLayer
Creates a blank image layer that needs to be configured later.
Creates a new instance of the ImageLayer by opening the specified fileName
Creates a new instance of the ImageLayer by opening the specified fileName, relaying progress to the
specified handler, and automatically adds the new layer to the specified container.
The fileName to open
A ProgressHandler that can receive progress updates
The layer list that should contain this image layer
Creates a new instance of the image layer by opening the specified fileName and
relaying progress to the specified handler.
The fileName to open
The progressHandler
Creates a new instance of GeoImageLayer
Creates a new instance of a GeoImageLayer
The image to draw as a layer
The Layers collection that keeps track of the image layer
Handles when this layer should show its properties by firing the event on the shared event sender
Handles export data from this layer.
Dispose memory objects.
True if managed memory objects should be set to null.
Gets or sets the underlying data for this object
Gets the geographic bounding envelope for the image
Gets or sets a class that has some basic parameters that control how the image layer
is drawn.
Gets or sets the image being drawn by this layer
Gets or sets custom actions for ImageLayer
Gets or sets a float value from 0 to 1, where 1 is fully opaque while 0 is fully transparent.
ITiledImageLayer
Gets or sets the TiledImage that supports the tile data for this image.
TiledImageLayer
Creates a new instance of TiledImageLayer
The bounding envelope of the image layer
The tiled image dataset
IPropertyDialogProvider
Shows a PropertyGrid Dialog and uses the specified object as the edit copy.
A clone of the actual object to be edited. This should not be the original object.
Fires an event signifying that the item has been updated
Gets the item that was changed by this operation.
IScheme
Adds a new scheme, assuming that the new scheme is the correct type.
The category to add
Applies the snapping rule directly to the categories, based on the most recently
collected set of values, and the current VectorEditorSettings.
Creates the category using a random fill color
The base color to use for creating the category
For points this is the maximal point size, for lines this is the maximum line width
A new IFeatureCategory that matches the type of this scheme
Uses the settings on this scheme to create a random category.
A new ICategory
Reduces the index value of the specified category by 1 by
exchaning it with the category before it. If there is no
category before it, then this does nothing.
/// The category to decrease the index of
Draws the regular symbolizer for the specified cateogry to the specified graphics
surface in the specified bounding rectangle.
The integer index of the feature to draw.
The Graphics object to draw to
The rectangular bounds to draw in
Re-orders the specified member by attempting to exchange it with the next higher
index category. If there is no higher index, this does nothing.
The category to increase the index of
Inserts the category at the specified index
The integer index where the category should be inserted
The category to insert
Removes the specified category
The category to insert
Suspends the category events
Resumes the category events
Clears the categories
Gets or sets the editor settings that control how this scheme operates.
This is cached until a GetValues call is made, at which time the statistics will
be re-calculated from the values.
Gets the current list of values calculated in the case of numeric breaks.
This includes only members that are not excluded by the exclude expression,
and have a valid numeric value.
Characterizes
Boolean Tests a value against the minimum and maximum values.
If the value is greater than or equal to the MinValue and
is less than or equal to the MaxValue then it will be included.
The IComparable value to test. This is usually a numeric value.
True if value is between MinValue and MaxValue
The classification must implement IComparable. The normal value types like
strings, doubles and integers already do this. If the CompareTo method
on value returns 0 when compared to the Classification property of this
instance, this method will return true. Otherwise, it returns false.
Any valid implementation of IComparable. This can be either
the default value types like integer or string, or else it can be a custom
implementation of IComparable.
Boolean, true if value.CompareTo returns 0 when compared against this classification.
The minimum value, inclusive, in a range of values. If
the value being tested is less than this value,
then these properties should not be applied.
Describes the maximum value, inclusive, in a range of values. If
the value being tested is greater than this value, then these
properties should not be applied.
The classification for this symbol. This is the same as
specifying the MinValue and MaxValue to be equal and testing
the IsInRange property.
A smaller interface that just gives the user enough control to draw on a map surface
without giving them the ability to change the base control.
Causes the view to shift in geographic coordinates by the specified dX and dY.
The geographic width and height of the Extents will remain the same, as
will the aspect ratio.
Double specifying the pixel change in X position
Double specifying the pixel change in Y position
Expands or shrinks the envelope so that it's new size is the specified
percent of the previous size. The aspect ratio will be preserved.
The double percentage of the previous size
Zoom in to a geographic extents half as large: Zoom(50);
Zoom out to a geographic extents twice as large: Zoom(200);
Transforms a valid location on the screen (relative to the upper left corner of
the map) into world coordinates (like longitude, latitude)
The integer pixel location relative to the left of the control
The integer pixel location relative to the top of the control
The double horizontal or longitude coordinate
The double vertical or latitude coordinate
Transforms a valid location on the screen (relative to the upper left corner of
the map) into world coordinates (like longitude, latitude)
A Point showing the PixelPosition
A Valid ICoordiante showing the location of the point in geographic coordinates
Transforms a valid location on the screen (relative to the upper left corner of
the map) into world coordinates (like longitude, latitude)
A Rectangle in pixel coordinates to find the geographic equivalent of
A Valid IEnvelope that shows the location on the screen
Transforms the specified world location (like latitude, longitude) into a
valid screen location (measured in pixels from the upper left corner of the map)
The double horizontal or longitude coordinate
The double vertical or latitude coordinate
The integer pixel location relative to the left of the control
The integer pixel location relative to the top of the control
Transforms the specified world location (like latitude, longitude) into a
valid screen location (measured in pixels from the upper left corner of the map)
Transforms the specified world envelope (like latitude, longitude) into a
valid screen rectangle (measured in pixels from the upper left corner of the map)
The envelope in geographic coordinates
A Rectangle relative to the upper left corner of the control
Gets a graphics surface that is essentially the "white box" area of a map to draw on.
By default the GraphicsUnit should be set to world and the PageScale and PageOffset
should be set to the appropriate value for world coordinates.
Gets the IEnvelope representing the world coordinate extents of the map
Occurs when the visible region being displayed on the map changes
FastLabelDrawnState
Gets or sets the category
Gets or sets whether the label is selected
Creates a new drawn state with the specified category
The category
ILabelCategory
Returns a shallow copy of this object cast as a LabelCategory.
A shallow copy of this object.
Calculates the expression for the given row. The Expression.Columns have to be in sync with the Features columns for calculation to work without error.
Datarow the expression gets calculated for.
Indicates whether the feature is selected.
The FID of the feature, the expression gets calculated for.
null if there was an error while parsing the expression, else the calculated expression
Updates the Expression-Object with the columns that exist inside the features that belong to this category. The will be used for calculating the expression.
Columns that should be updated.
False if columns were not set.
Gets or sets the string expression that controls the integration of field values into the label text.
This is the raw text that is used to do calculations and concat fields and strings.
Gets or sets the string filter expression that controls which features
that this should apply itself to.
Gets or sets the string name
Gets or sets the text symbolizer to use for this category
Gets or sets the text symbolizer to use for this category
ILabelLayer
Clears the current selection, reverting the geometries back to their
normal colors.
Expression creates the labels based on the given string expression. Field names in
square brackets will be replaced by the values for those fields in the FeatureSet.
Invalidates any cached content for this layer.
Highlights the values from a specified region. This will not unselect any members,
so if you want to select a new region instead of an old one, first use ClearSelection.
This is the default selection that only tests the anchor point, not the entire label.
An IEnvelope showing a 3D selection box for intersection testing.
True if any members were added to the current selection.
Gets or sets the featureSet that defines the text for the labels on this layer.
Gets or sets an optional layer to link this layer to. If this is specified, then drawing will
be associated with this layer.
Gets or sets the symbology
Gets or sets the selection symbolizer from the first TextSymbol group.
Gets or sets the regular symbolizer from the first TextSymbol group.
ILabelScheme
Adds a category to the scheme, and also names the category with an integer that has not yet been used.
A new category with a name that has not yet been used
returns a duplicate scheme, where the categories are copied, but
the underlying featureset is not duplicated.
A copy of this label scheme
Attempts to reduce the integer index representing this categories rank in the
list. By doing this, it will be drawn sooner, and therefore subsequent
layers will be drawn on top of this layer, and so it reduces the categories
priority. If this collection does not contain the category or it is already
at index 0, this will return false.
The ILabelCategory to demote
Boolean, true if the demotion was successful
This attempts to increase the numeric index, which will cause it to be drawn later,
or higher up on the cue, which means it will be drawn AFTER the previous layers,
and therefore is a higher priority. If the category does not exist in the collection
or the category is already at the highest value, this returns false.
The category to promote if possible.
Boolean, true if the promotion was successful
Gets or sets the list of categories that make up this label scheme
ITextSymbolizer
Uses the properties defined on this symbolizer to return a font.
A new font
Gets or sets the orientation of line labels.
Gets or sets a boolean indicating whether or not the LineOrientation gets used.
Gets or sets the labeling method
Gets or sets the labeling method
Gets or sets the way features with multiple parts are labeled
Gets or sets the the multi-line text alignment in the box.
Gets or set the angle that the font should be drawn in
Gets or set a boolean indicating whether or not should be used
Gets or set the field with angle to draw label
Gets or set a boolean indicating whether or not should be used
Gets or sets the background color
Gets or sets a boolean indicating whether or not a background color should be used
Gets or sets the border color
Gets or sets a boolean indicating whether or not a border should be drawn around the label.
Gets or sets a boolean that will force a shadow to be drawn if this is true.
Gets or sets the color of the actual shadow. Use the alpha channel to specify opacity.
Gets or sets an X and Y geographic offset that is only used if ScaleMode is set to Geographic
Gets or sets an X and Y pixel offset that is used if the ScaleMode is set to Symbolic or Simple.
Gets or sets the string font family name
gets or sets the font size
Gets or sets the font style.
Gets or set the color that the font should be drawn in.
Gets or sets a boolean that governs whether or not to draw a halo.
Gets or sets the color of the halo that surrounds the text.
Gets or sets the X offset in pixels from the center of each feature.
Gets or sets the Y offset in pixels from the center of each feature.
Gets or sets a boolean. If true, as high priority labels are placed, they
take up space and will not allow low priority labels that conflict for the
space to be placed.
Gets or sets the string field name for the field that controls which labels
get placed first. If collision detection is on, a higher priority means
will get placed first. If it is off, higher priority will be labeled
on top of lower priority.
Gets or sets a boolean. Normally high values from the field are given
a higher priority. If this is true, low values are given priority instead.
Gets or sets the position of the label relative to the placement point
Gets or sets the scaling behavior for the text
Gets or sets format string used to draw float fields. E.g.:
#.##, 0.000. If empty - then format not used.
Creates a new instance of LabelCategory
Returns the Copy() method cast as an object.
Returns a shallow copy of this category with the exception of
the TextSymbolizer, which is duplicated. This uses memberwise
clone, so sublcasses using this method will return an appropriate
version.
A shallow copy of this object.
Updates the Expression-Object with the columns that exist inside the features that belong to this category. They are used for calculating the expression.
Columns that should be updated.
False if columns were not set.
Calculates the expression for the given row. The Expression.Columns have to be in sync with the Features columns for calculation to work without error.
Datarow the expression gets calculated for.
Indicates whether the feature is selected.
The FID of the feature, the expression gets calculated for.
null if there was an error while parsing the expression, else the calculated expression
Gets or sets the string filter expression that controls which features
that this should apply itself to.
Gets or sets the string expression that controls the integration of field values into the label text.
This is the raw text that is used to do calculations and concat fields and strings.
Gets or sets the string name
Gets or sets the text symbolizer to use for this category
Gets or sets the text symbolizer to use for this category
LabelDrawState
A LabelCategory interface representing the drawing information for this label.
A boolean indicating whether or not this is selected.
A boolean indicating whether the associated feature should be drawn.
Creates a new instance of the LabelDrawState class where selected is false
but visible is true.
The category
Creates a new instance of the LabelDrawState based on the specified parameters.
The category
Boolean, true if the label is selected
Boolean, true if the label should be visible
LabelLayer
Creates a new instance of LabelLayer
Creates a new layer that uses the attributes from the given featureSet
Creates a new label layer based on the features in the
Clears the current selection, reverting the geometries back to their
normal colors.
This builds the _drawnStates based on the current label scheme.
Highlights the values from a specified region. This will not unselect any members,
so if you want to select a new region instead of an old one, first use ClearSelection.
This is the default selection that only tests the anchor point, not the entire label.
An IEnvelope showing a 3D selection box for intersection testing.
True if any members were added to the current selection.
This builds the _drawnStates based on the current label scheme.
Removes the features in the given region
the geographic region to remove the feature from the selection on this layer
Boolean true if any features were removed from the selection.
Fires the selection cleared event
Fires the selection extended event
Occurs after the selection has been cleared
Occurs after the selection is updated by the addition of new members
Gets or sets the dictionary that quickly identifies the category for
each label.
Gets or sets the indexed collection of drawn states
Gets or sets a valid IList of ILabels. This can just be a List of labels, but allows for
custom list development later.
Gets or sets the featureSet that defines the text for the labels on this layer.
Gets or sets an optional layer to link this layer to. If this is specified, then drawing will
be associated with this layer. This also updates the FeatureSet property.
Gets or sets the labeling scheme as a collection of categories.
Gets or sets the selection symbolizer from the first TextSymbol group.
Gets or sets the regular symbolizer from the first TextSymbol group.
Methods used in calculating the placement of a label.
Use the centroid of the feature.
Use the center of the extents of the feature.
Use the closest point to the centroid that is in the feature.
Orientation of the line label is parallel to the line at the PlacementPosition.
Orientation of the line label is perpendicular to the line at the PlacementPosition.
Methods used to calculate the placement of line labels.
Uses the longest segment of the LineString.
Uses the first segment of the LineString.
Uses the middle segment of the LineString.
Uses the last segment of the LineString.
Determines if all parts should be labeled or just the largest.
Label all parts.
Only label the largest part.
LabelScheme
Creates a new instance of LabelScheme
Adds a category to the scheme, and also names the category with an integer that has not yet been used.
A new category with a name that has not yet been used
Returns the Copy, but as an object.
Attempts to reduce the integer index representing this categories rank in the
list. By doing this, it will be drawn sooner, and therefore subsequent
layers will be drawn on top of this layer, and so it reduces the categories
priority. If this collection does not contain the category or it is already
at index 0, this will return false.
The ILabelCategory to demote
Boolean, true if the demotion was successful
This attempts to increase the numeric index, which will cause it to be drawn later,
or higher up on the cue, which means it will be drawn AFTER the previous layers,
and therefore is a higher priority. If the category does not exist in the collection
or the category is already at the highest value, this returns false.
The category to promote if possible.
Boolean, true if the promotion was successful
The individual categories are copied, meaning that the text symbolizers
will be new, and disconnected from the original text symbolizers of this
scheme. MemberwiseClone is used so that any subclass members appended
to this will be shallow copies unless this method is overridden.
A Duplicate LabelScheme, but with new, duplicated categories and symbolizers
Gets or sets the Categories
Creates a new instance of TextSymbolizer
Uses the properties defined on this symbolizer to return a font.
A new font
Gets or sets the background color
Gets or sets the border color
Gets or set the color that the font should be drawn in.
Gets or sets the multi-line text alignment in the box. I.e., Control the positioning of the text within the rectangular bounds.
Gets or set the angle that the font should be drawn in
Gets or set a boolean indicating whether or not should be used
Gets or set the field with angle to draw label
Gets or set a boolean indicating whether or not should be used
Gets or sets the background color
Gets or sets a boolean indicating whether or not a background color should be used
Gets or sets the border color
Gets or sets a boolean indicating whether or not a border should be drawn around the label.
Gets or sets a boolean that will force a shadow to be drawn if this is true.
Gets or sets the color of the actual shadow. Use the alpha channel to specify opacity.
Gets or sets an X and Y geographic offset that is only used if ScaleMode is set to Geographic
Gets or sets an X and Y pixel offset that is used if the ScaleMode is set to Symbolic or Simple.
Gets or sets format string used to draw float fields. E.g.:
#.##, 0.000. If empty - then format not used.
Gets or sets the string font family name
Gets or sets the font size
Gets or sets the font style.
Gets or sets the orientation relative to the placement point. I.e., Controls the position of the label relative to the feature.
Gets or set the color that the font should be drawn in.
Gets or sets a boolean that governs whether or not to draw a halo.
Gets or sets the color of the halo that surrounds the text.
Gets or sets the labeling method
Gets or sets the labeling method for line labels.
Gets or sets the orientation of line labels.
Gets or sets the way features with multiple parts are labeled
Gets or sets the X offset in pixels from the center of each feature.
Gets or sets the Y offset in pixels from the center of each feature.
Gets or sets a boolean. If true, as high priority labels are placed, they
take up space and will not allow low priority labels that conflict for the
space to be placed.
Gets or sets the string field name for the field that controls which labels
get placed first. If collision detection is on, a higher priority means
will get placed first. If it is off, higher priority will be labeled
on top of lower priority.
Gets or sets a boolean. Normally high values from the field are given
a higher priority. If this is true, low values are given priority instead.
Gets or sets the scaling behavior for the text
Gets or sets a boolean indicating whether or not the LineOrientation gets used.
This extends the ChangeEventList by providing methods that allow access by an object Key, and will pass
This extends the ChangeEventList by providing methods that allow access by an object Key, and will pass
This selects the layer with the specified integer index
THe zero based integer index
Standard Dispose implementation since layers are now disposable.
Adds one request to prevent disposal of this object and its children.
Removes one request to prevent disposal of this object and its children.
Extends the event listeners to include events like ZoomToLayer and VisibleChanged
Occurs when the selection is changed
Ensures that we re-draw the content when inserting new layers
Removes the extended event listeners once a layer is removed from this list.
Fires the LayerMoved event.
The layer that was moved.
LayerEventArgs
Fires the LayerRemoved event.
Handles the default selection behavior and fires the LayerSelected event.
The integer index of the layer being selected
Fires the LayerSelected event and adjusts the selected state of the layer.
The layer to select
Boolean, true if the specified layer is selected
Fires the ItemChanged event and the MembersChanged event and resets any cached lists
Fires the ZoomToLayer method when one of the layers fires its ZoomTo event
The layer to zoom to
The extent of the layer
Fires the LayerAdded event
The layer that was added
LayerEventArgs
Fires the selection changed event
the object sender of the event
The FeatureLayerSelectionEventArgs of the layer
Finalizes an instance of the LayerEventList class.
Overrides the dispose behavior. If disposeManagedMemory objects is true, then managed objects
should be set to null, effectively removing reference counts. If it is false, then only
unmanaged memory objects should be removed.
Boolean, true if managed memory objects should be set to null, and
if the Dispose method should be called on contained objects.
Occurs if the maps should zoom to this layer.
Occurs when one of the layers in this collection changes visibility.
Occurs when a layer is added to this item.
Occurs when a layer is moved.
Occurs when a layer is removed from this item.
Occurs immediately after a layer is selected.
Occurs when the selection on a feature layer changes.
Occurs after the selection has changed, and all the layers have had their selection information updated.
Gets the currently selected layer in this collection.
The envelope that contains all of the layers for this data frame. Essentially this would be
the extents to use if you want to zoom to the world view.
Gets a value indicating whether dispose has already been called on this object.
Gets a value indicating whether there are requests to prevent disposal of this object.
Creates a new blank instance of a MapLayer collection. This is especially useful
for tracking layers that can draw themselves. This does not concern itself with
view extents like a dataframe, but rather is a grouping of layers that is itself
also an IMapLayer.
Creates a new layer collection where the parent group is different from the
map frame.
Creates a LayerCollection that is not confined in a MapFrame
Occurs when wiring events
Occurs when unwiring events
Occurs when layer was moved.
Layer that was moved.
Position the layer was moved to.
Given a base name, this increments a number for appending
if the name already exists in the collection.
The string base name to start with
The base name modified by a number making it unique in the collection
Gets the index of the specified item in this collection if it is a layer
Inserts the specified item into this collection if it is a layer
Adds a range of values
Gets the current count.
Gets the map frame of this layer collection
Gets or sets the ParentGroup for this layer collection, even if that parent group
is not actually a map frame.
LayerEnumerator
Creates a new instance of LayerEnumerator
Calls the Dispose method
Moves to the next member
boolean, true if the enumerator was able to advance
Resets to before the first member
Retrieves the current member as an ILegendItem
Returns the current member as an object
Creates a new instance of LayerEventArgs
Gets a layer
This is a class that organizes a list of renderable layers into a single "view" which might be
shared by multiple displays. For instance, if you have a map control and a print preview control,
you could draw the same data frame property on both, just by passing the graphics object for each.
Be sure to handle any scaling or translation that you require through the Transform property
of the graphics object as it will ultimately be that scale which is used to back-calculate the
appropriate pixel sizes for point-size, line-width and other non-georeferenced characteristics.
The Constructor for the MapFrame object
Draws the layers icon to the legend
Suspends firing the ExtentsChanges event. It only fires if all suspension is gone.
Resumes firing the method, and will fire it automatically if any changes have occurred.
This will create a new layer from the featureset and add it.
Any valid IFeatureSet that does not yet have drawing characteristics
This adjusts the extents when ZoomToLayer is called in one of the internal layers.
Zooms to the envelope if no envelope has been established for this frame.
Fires the ExtentsChanged event
Fires the ExtentsChanged event
This is responsible for wiring the ZoomToLayer event from any layers
in the map frame whenever the layer collection is changed.
This is responsible for unwiring the ZoomToLayer event.
Occurs when the visible region being displayed on the map should update
Occurs after zooming to a specific location on the map and causes a camera recent.
Drawing layers are tracked separately, and do not appear in the legend.
Overrides the default behavior for groups, which should return null in the
event that they have no layers, with a more tolerant, getting started
behavior where geographic coordinates are assumed.
Gets the container control that this MapFrame belongs to.
If this is false, then the drawing function will not render anything.
Warning! This will also prevent any execution of calculations that take place
as part of the drawing methods and will also abort the drawing methods of any
sub-members to this IRenderable.
Gets the currently selected layer. This will be an active layer that is used for operations.
Controls the smoothing mode. Default or None will have faster performance
at the cost of quality.
This should be the geographic extents visible in the map.
This can be used as a component to work as a LayerManager. This also provides the
very important DefaultLayerManager property, which is where the developer controls
what LayerManager should be used for their project.
Creates a new instance of the LayerManager class. A data manager is more or less
just a list of data providers to use. The very important
LayerManager.DefaultLayerManager property controls which LayerManager will be used
to load data. By default, each LayerManager sets itself as the default in its
constructor.
Checks a dialog filter and returns a list of just the extensions.
The Dialog Filter to read extensions from
A list of extensions
This opens a file, but populates the dialog filter with only raster formats.
An IRaster with the data from the file specified in an open file dialog
This opens a file, but populates the dialog filter with only raster formats.
An IFeatureSet with the data from the file specified in a dialog
This attempts to open the specified raster file and returns an associated layer
The string fileName to open
An IRaster with the data from the file specified in an open file dialog
This attempts to open the specified vector file and returns an associated layer
the string fileName to open
An IFeatureSet with the data from the file specified in a dialog
Opens a new layer and automatically adds it to the specified container.
The container (usually a LayerCollection) to add to
The layer after it has been created and added to the container
This launches an open file dialog and attempts to load the specified file.
Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager.
A Layer
This launches an open file dialog and attempts to load the specified file.
A Layer created from the file
Attempts to call the open fileName method for any ILayerProvider plugin
that matches the extension on the string.
A String fileName to attempt to open.
Opens a new layer and automatically adds it to the specified container.
A String fileName to attempt to open.
The container (usually a LayerCollection) to add to
The layer after it has been created and added to the container
This launches an open file dialog and attempts to load the specified file.
A String fileName to attempt to open.
Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager.
A Layer
Attempts to call the open fileName method for any ILayerProvider plugin
that matches the extension on the string.
A String fileName to attempt to open.
A boolean value that if true will attempt to force a load of the data into memory. This value overrides the property on this LayerManager.
A container to open this layer in
Specifies the progressHandler to receive progress messages. This value overrides the property on this LayerManager.
An ILayer
This create new method implies that this provider has the priority for creating a new file.
An instance of the dataset should be created and then returned. By this time, the fileName
will already be checked to see if it exists, and deleted if the user wants to overwrite it.
The string fileName for the new instance.
The string short name of the driver for creating the raster.
The number of columns in the raster.
The number of rows in the raster.
The number of bands to create in the raster.
The data type to use for the raster.
The options to be used.
A new IRasterLayer.
This opens a file, but populates the dialog filter with only raster formats.
for now an ILayerSet
Triggers the DirectoryProvidersLoaded event
This should be called once all the permitted directories have been set in the code.
This will not affect the PreferredProviders or the general list of Providers.
These automatically have the lowest priority and will only be used if nothing
else works. Use the PreferredProviders to force preferential loading of
a plugin LayerProvider.
A list of just the newly added LayerProviders from this method.
Given a string fileName for the "*.dll" file, this will attempt to load any classes that implement the
ILayerProvder interface.
The string path of the assembly to load from.
A list that contains only the providers that were just loaded. This may be a list of count 0, but shouldn't return null.
Gets or sets the implemenation of ILayerManager for the project to use when
accessing data. This is THE place where the LayerManager can be replaced
by a different data manager. If you add this data manager to your
project, this will automatically set itself as the DefaultLayerManager.
However, since each DM will do this, you may have to control this manually
if you add more than one LayerManager to the project in order to set the
one that will be chosen.
Gets or sets a temporary list of active project layers. This is designed to house
the layers from a map frame when the property grids are shown for layers in that
map frame. This list on the DefaultLayerManager is what is used to create the
list that populates dropdowns that can take a Layer as a parameter.
Gets or sets the dialog read filter to use for opening data files.
Gets or sets the dialog write filter to use for saving data files.
Gets or sets the list of ILayerProviders that should be used in the project.
Gets or sets the path (either as a full path or as a path relative to
the DotSpatial.dll) to search for plugins that implement the ILayerProvider interface.
Gets or sets the dialog read filter to use for opening data files.
Gets or sets the dialog write filter to use for saving data files.
Gets or sets the dialog read filter to use for opening data files that are specifically raster formats.
Gets or sets the dialog write filter to use for saving data files.
Gets or sets the dialog read filter to use for opening data files.
Gets or sets the dialog write filter to use for saving data files.
Sets the default condition for how this data manager should try to load layers.
This will be overridden if the inRam property is specified as a parameter.
Gets or sets a dictionary of ILayerProviders with corresponding extensions. The
standard order is to try to load the data using a PreferredProvider. If that
fails, then it will check the list of dataProviders, and finally, if that fails,
it will check the plugin Layer Providers in directories.
Gets or sets a progress handler for any open operations that are intiated by this
LayerManager and don't override this value with an IProgressHandler specified in the parameters.
Occurs after the directory providers have been loaded into the project.
DataProviders
Creates a new instance of DataProviders
Specifies a list of IDataProviders
Gets the list of providers for this event.
Creates a new instance of LayerEventArgs
Gets a boolean that indicates whether or not the layer is selected
LegendIcon
Creates a new instance of LegendIcon
Gets the legend symbol size (as an icon size)
Draws the icon to the legend
The icon to draw for this legend item
Contains extension methods for ILegendItems
This method starts with this legend item and tests to see if it can contain
the specified target. As it moves up the
This legend item
The target legend item to test
An ILegendItem that is one of the parent items of this item, but that can receive the target.
Given the starting position, which might not be able to contain the drop item,
determine the index in the valid container where this item should end up.
The legend item that may not be a sibling or be able to contain the drop item
The item being added to the legend
The integer index of the valid container where insertion should occur when dropping onto this item.
Searches through the LegendItems recursively, looking for the 0 index
member of the deepest part of the tree.
This method starts with this legend item and searches through the
parent groups until it finds a valid mapframe.
The ILegendItem to start from
The IMapFrame that contains this item.
LegendType
Schemes can contain symbols and be contained by layers
The ability to contain another layer type is controlled by CanReceiveItem instead
of being specified by these pre-defined criteria.
Groups can be contained by groups, and contain groups or layers, but not categories or symbols
Layers can contain symbols or categories, but not other layers or groups
Symbols can't contain anything, but can be contained by layers and categories
MatchableEM
This tests the public properties from the two objects. If any properties implement
the IMatchable interface, and do not match, this returns false. If any public
properties are value types, and they are not equal, then this returns false.
This matchable item
The other item to compare to this item
Boolean, true if there is a match
This class simply stores enough information for the appropriate menu item to be
generated. It is not the Windows Forms MenuItem.
Creates a new instance of the menu item
The name or text to appear for this item
The icon to draw for this menu item
The click event handler
Creates a new instance of the menu item
The name or text to appear for this item
The icon to draw for this menu item
The click event handler
Creates a new instance of the menu item
The name or text to appear for this item
The click event handler
Creates a new instance of the menu item
The name or text to appear for this item
Gets or sets the name for this menu item
Gets or sets the icon for this menu item
Gets or sets the image for this menu item
Gets or sets the set of sub-menu items.
The handler for the click event.
Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
Sucht eine lokalisierte Zeichenfolge, die Data ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Creating Shaded Relief ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Painting color scheme to bitmap. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Painting Hillshade To Bitmap ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Export Data ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The closing bracket wasn't found. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The expression is empty. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The expression contains empty fields. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The following field wasn't found: ähnelt.
Sucht eine lokalisierte Zeichenfolge, die No left operand was found. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The value is not a number: ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Expected operand. Found character {0} at position {1}. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Failed to find operation. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Operation not supported. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Expected operator. Found character {0} at position {1}. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die There is an operator in place of a value. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die + operation isn't allowed for boolean values. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die No right operand was found. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The expression contains unpaired square brackets. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The expression contains unpaired text quotes. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Division by zero. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Create Layer from Selected Features ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Join Excel file 'Data' Label ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Label Setup ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Labeling ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Select All ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Selection ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Unselect All ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Zoom to Selected Features ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The file %S can't be deleted, probably because it is currently in use by another application. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Properties ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Create Group ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Map Layers ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Remove Map Frame ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Zoom to Map Frame ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The specified file type is not supported. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die An incompatible feature type was supplied and was not of type Line. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die The argument %S cannot be null. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die An incompatible feature type was supplied and was not of type Point. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die An incompatible feature type was supplied and was not of type polygon. ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Properties ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Remove Layer ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Set Dynamic Visibility Scale ähnelt.
Sucht eine lokalisierte Zeichenfolge, die Zoom to Layer ähnelt.
Calculates a new rectangle by using the input points to define the far corners.
The position of the points doesn't matter.
One of the points to form a rectangle with.
The second point to use when drawing a rectangle.
A Rectangle created from the points.
ILayerProvider
This open method is only called if this plugin has been given priority for one
of the file extensions supported in the DialogReadFilter property supplied by
this control. Failing to provide a DialogReadFilter will result in this plugin
being added to the list of DataProviders being supplied under the Add Other Data
option in the file menu.
A string specifying the complete path and extension of the file to open.
A boolean that, if ture, will request that the data be loaded into memory
Any valid IContainer that should have the new layer automatically added to it
An IProgressHandler interface for status messages
A List of IDataSets to be added to the Map. These can also be groups of datasets.
Gets a dialog read filter that lists each of the file type descriptions and file extensions, delimeted
by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided
on this object.
Gets a dialog filter that lists each of the file type descriptions and extensions for a Save File Dialog.
Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided on this object.
Gets a prefereably short name that identifies this data provider. Example might be GDAL.
This will be prepended to each of the DialogReadFilter members from this plugin.
This provides a basic description of what your provider does.
A DataProvider that is specific to raster formats.
This create new method implies that this provider has the priority for creating a new file.
An instance of the dataset should be created and then returned. By this time, the fileName
will already be checked to see if it exists, and deleted if the user wants to overwrite it.
The string fileName for the new instance.
The string short name of the driver for creating the raster.
The number of columns in the raster.
The number of rows in the raster.
The number of bands to create in the raster.
The data type to use for the raster.
The options to be used.
A new IRaster.
IFeatureProvider
This create new method implies that this provider has the priority for creating a new file.
An instance of the dataset should be created and then returned. By this time, the fileName
will already be checked to see if it exists, and deleted if the user wants to overwrite it.
The string fileName for the new instance
Point, Line, Polygon etc. Sometimes this will be specified, sometimes it will be "Unspecified"
Boolean, true if the dataset should attempt to store data entirely in ram
The container for this layer. This can be null.
An IProgressHandler for status messages.
An IRaster
Position2D is much simpler than a typical geometric construct, using fields instead of properties to make it work faster.
The position in the X, or horizontal direction
The position in the Y or vertical direction
Creates a new instance of Position2D
Creates a new position2D class using the specified coordinates
The X or horizontal coordinate
The Y or vertical coordinate
Randomizes the position by selecting a random position from -1000 to 1000 for X and Y
The random number generator so that a seed can be chosen.
Creates a valid 2D coordinate using this position2D class
This is a custom (predefined) symbolizer which is displayed in the 'Predefined symbol' control.
Interface for a predefined symbolizer which can be stored in a xml symbolizer file.
Jiri's code to save to XML
The xml data source to load the symbology from
Jiri's code to load from XML
The xml Data source to load the symbology from
A Unique name for the symbology item
Jiri's code to load from XML
The xml Data source to load the symbology from
The organizational group or category
The string name within the specified group or category
Gets or sets the symbolizer for this predifined symbolizer
Gets or sets the string name for this predefined symbolizer
Gets or sets the string group for this predefined symbolizer
Gets or sets the unique name for this predefined symbolizer.
Gets the symbolizer type of this predefined symbolizer
Constructs a new instance of a custom symbolizer
Creates a new instance of CustomSymbolizer
Jiri's code to save to XML
The xml data source to load the symbology from
Jiri's code to load from XML
The xml Data source to load the symbology from
A Unique name for the symbology item
Jiri's code to load from XML
The xml Data source to load the symbology from
The organizational group or category
The string name within the specified group or category
Gets or sets the symbolizer for this predifined symbolizer
Gets or sets the string name for this predefined symbolizer
Gets or sets the string group for this predefined symbolizer
Gets or sets the unique name for this predefined symbolizer.
The type of the symbolizer (point, line, polygon)
Creates a new CustomSymbolizer for symbolizing lines
Creates a new Custom Line symbolizer with the specified properties
the unique name
the name of the custom symbolizer
the map category of the custom symbolizer
the associated line symbolizer
Gets or sets the line symbolizer
//Editor(typeof(LineSymbolizerEditor), typeof(UITypeEditor))
This class provides a list of predefined symbolizers.
In the current implementation the symbolizers are 'hard-coded'.
In other implementations they will be loaded from a xml resource file.
The interface IPredefinedLineSymbolProvider defines methods to save and load predefined
line symbolizers from a xml file or from another source.
Loads a list of custom line symbolizers from a data file
The file name
The list of custom line symbolizers
Saves a list of custom line symbolizers to a data file
Creates a new instance of PredefinedLineSymbolProvider
Gets a string array of all available categories (groups) of custom predefined symbols
Returns all available predefined custom line symbols
A list of vailable custom line symbols
Gets a list of all predefined custom symbols that belong to the specific category
The name of the category group
The list of custom symbols
Loads a list of custom line symbolizers from a binary serialized file
The serialized binary file
The list of custom line symbolizers
Saves
Creates a new CustomSymbolizer for symbolizing Points
Creates a new Custom Point symbolizer with the specified properties
the unique name
the name of the custom symbolizer
the map category of the custom symbolizer
the associated Point symbolizer
Gets or sets the Point symbolizer
[Editor(typeof(PointSymbolizerEditor), typeof(UITypeEditor))]
Creates a new CustomSymbolizer for symbolizing Polygons
Creates a new Custom Polygon symbolizer with the specified properties
the unique name
the name of the custom symbolizer
the map category of the custom symbolizer
the associated Polygon symbolizer
Gets or sets the Polygon symbolizer
[Editor(typeof(PolygonSymbolizerEditor), typeof(UITypeEditor))]
Extension methods for a collection of custom symbolizers
Saves a list of custom line symbolizers to a file.
The list of custom line symbolizers
the file name
This class returns a list of predefined symbolizers.
In the current implementation the symbolizers are 'hard-coded'.
In other implementations they will be loaded from a xml resource file.
Creates a new instance of PredefinedLineSymbolProvider
Gets a string array of all available categories (groups) of custom predefined symbols
The available feature symbolizer types
The type is PointSymbolizer
The type is LineSymbolizer
The type is PolygonSymbolizer
The type is RasterSymbolizer
The type of the symbolizer is unknown
Gets the first member in the enumerable collection of property info with the specified name.
Determines whether there is a member with the specified name
Extensions for class
Generates a boolean at random from this generator.
THe random class that generates the random content.
A boolean that has equal probability of being on or off.
Extends the Random class to also allow it to generate random colors
This random number generator
Generates a floating point value from 0 to 1
The random class to extend
A new randomly created floating point value from 0 to 1
Generates a random floating point value from 0 to the specified extremeValue, which can
be either positive or negative.
This random class
The floating point maximum for the number being calculated
A value ranging from 0 to ma
Calculates a random floating point value that ranges between (inclusive) the specified minimum and maximum values.
The random class to generate the random value
The floating point maximum
The floating point minimum
A floating point value that is greater than or equal to the minimum and less than or equal to the maximum
Given any enumeration of type T, this will return a random instance of that enumeration
The type of the enumeration
This random generator
The T type to generate
Generates an array of boolean values that ranges from minLength to maxLength
The Random class for generating random values
THe minimum length of the array
The maximum length of the array
An array of boolean values.
Numeric range using doubles
Boolean, true if the upper bounds includes the maximum value.
The maximum value. If this is null, the upper range is unbounded.
Boolean, true if the the lower bounds includes the minimum value.
The minimum value. If this is null, the lower range is unbounded.
Creates a new instance of Range (with undefined interval)
Creates a new instance of Range
Either bound of the range
The other bound of the range
Creates an equality type range where both the minimum and maximum are the
same value and both are inclusive.
A string expression that can be two separate numbers separated by a dash,
Expresses this range in string form. By default, ranges include the maximum,
and exclude the minimum. A null value for one expression will result in a
a semi-unbounded range using the greater than or less than symbols. A null
expression for both values is completely unbounded and will result in a string
that reads like [All Values].
A string representing the range.
This is a slightly more complex specification where the numeric formatting
controls how the generated string will appear.
The interval snap method
This is only used for rounding or significant figures, but controls those options
A string equivalent of this range, but using a number format.
Generates a valid SQL query expression for this range, using the field string
as the member being compared. The field string should already be bound in
brackets, or put together as a normal composit like "[males]/[pop1990]"
The field name to build into an expression. This should already be wrapped in square brackets.
The string SQL query expression.
Tests to determine if this range contains the specified double value.
the double value to test
Boolean, true if the value is within the current bounds.
If the minimum and maximum are out of order, this reverses them.
Gets or sets teh Minimum value. If this is null, the lower range is unbounded.
The maximum value. If this is null, the upper range is unbounded.
Boolean, true if the the lower bounds includes the minimum value.
Boolean, true if the upper bounds includes the maximum value.
BinaryLayerProvider
Creates a new BinaryRasterLayer
IRasterLayer
Opens an existing raster and returns a layer containing it
The string fileName to open
Opens in ram
A container to automatically add this layer to
Returns progress
An ILayer
Gets a dialog read filter that lists each of the file type descriptions and file extensions, delimeted
by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided
on this object.
Gets a dialog filter that lists each of the file type descriptions and extensions for a Save File Dialog.
Each will appear in DotSpatial's open file dialog filter, preceeded by the name provided on this object.
Gets a prefereably short name that identifies this data provider. Example might be GDAL.
This will be prepended to each of the DialogReadFilter members from this plugin.
This is a basic description that will fall next to your plugin in the Add Other Data dialog.
This will only be shown if your plugin does not supply a DialogReadFilter.
ColorCategory
IColorCategory
This is primarilly used in the BiValue situation where a color needs to be generated
somewhere between the startvalue and the endvalue.
The integer value to be converted into a color from the range on this colorbreak
A color that is selected from the range values.
Gets or sets how the color changes are distributed across the
BiValued range. If IsBiValue is false, this does nothing.
Gets or sets the second of two colors to be used.
This is only used for BiValued breaks.
This not only indicates that there are two values,
but that the values are also different from one another.
Gets or sets the color to be used for this break. For
BiValued breaks, this only sets one of the colors. If
this is higher than the high value, both are set to this.
If this equals the high value, IsBiValue will be false.
Creates a new instance of ColorCategory
Creates a ColorBreak that has a single value, which can be an object of any type.
The LowValue field will contain this single value.
The value to test.
Creates a ColorBreak that has a single value, which can be an object of any type.
The LowValue field will contain this single value.
The value to test.
The color to use as the low value.
Creates a new color category, but doesn't specify the colors themselves.
The start value
The end value
Creates a bi-valued colorbreak that will automatically test which of the specified values is higher
and use that as the high value. The other will become the low value. This will be set to a
bi-value colorbreak.
One of the values to use in this colorbreak.
The other value to use in this colorbreak.
The color to assign to the higher of the two values
The color to assign to the lower of the two values
Fires the EditItem event. If e returns handled, then this will not launch the default editor
The HandledEventArgs
This is primarily used in the BiValue situation where a color needs to be generated
somewhere between the start value and the end value.
The value to be converted into a color from the range on this color break
A color that is selected from the range values.
Paints legend symbol
Occurs when this ColorBreak received instructions to show an editor. If this is
handled, then no action will be taken.
Gets or sets custom actions for ColorCategory
Gets or sets how the color changes are distributed across the
BiValued range. If IsBiValue is false, this does nothing.
Gets or sets the second of two colors to be used.
This is only used for BiValued breaks.
This not only indicates that there are two values,
but that the values are also different from one another.
Gets or sets the color to be used for this break. For
BiValued breaks, this only sets one of the colors. If
this is higher than the high value, both are set to this.
If this equals the high value, IsBiValue will be false.
Gets or sets the opacity for the low color. This was added to save opacity to dspx.
Gets or sets the opacity for the high color. This was added to save opacity to dspx.
ColorCategoryCollection
Default constructor for the PolygonCategoryCollection class.
Initializes a new PolygonCategoryCollection instance with the supplied scheme.
The scheme to use ofr this collection.
Ensures that newly added categories can navigate to higher legend items.
The newly added legend item.
Changes the parent item of the specified category
Updates all of the categories so that they have a parent item that matches the
schemes parent item.
Gets or sets the parent scheme for this collection
DrawingScheme
Creates a new instance of DrawingScheme
Creates the category using a random fill color
The base color to use for creating the category
For points this is the larger dimension, for lines this is the largest width
A new IFeatureCategory that matches the type of this scheme
Draws the regular symbolizer for the specified cateogry to the specified graphics
surface in the specified bounding rectangle.
The integer index of the feature to draw.
The Graphics object to draw to
The rectangular bounds to draw in
Adds a new scheme, assuming that the new scheme is the correct type.
The category to add
Reduces the index value of the specified category by 1 by
exchaning it with the category before it. If there is no
category before it, then this does nothing.
The category to decrease the index of
Removes the specified category
The category to insert
Inserts the category at the specified index
The integer index where the category should be inserted
The category to insert
Re-orders the specified member by attempting to exchange it with the next higher
index category. If there is no higher index, this does nothing.
The category to increase the index of
Suspends the category events
Resumes the category events
Clears the categories
Generates the break categories for this scheme
THe defaul
Creates a list of generated colors according to the convention
specified in the EditorSettings.
The integer count of the number of colors to create.
The list of colors created.
Uses the settings on this scheme to create a random category.
A new ICategory
Creates the colors in the case where the color range controls are not being used.
This can be overriddend for handling special cases like ponit and line symbolizers
that should be using the template colors.
The integer count to use
The default behavior for creating ramp colors is to create colors in the mid-range for
both lightness and saturation, but to have the full range of hue
Creates a random color, but accepts a given random class instead of creating a new one.
Applies the snapping rule directly to the categories, based on the most recently
collected set of values, and the current VectorEditorSettings.
Uses the currently calculated Values in order to calculate a list of breaks
that have equal separations.
Applies the snapping type to the given breaks
Searches the list and returns the nearest value in the list to the specified value.
Attempts to create the specified number of breaks with equal numbers of members in each.
The integer count.
A list of breaks.
Sets the names for the break categories
Gets or sets the editor settings that control how this scheme operates.
This is cached until a GetValues call is made, at which time the statistics will
be re-calculated from the values.
Gets or sets the list of breaks for this scheme
Gets the current list of values calculated in the case of numeric breaks.
This includes only members that are not excluded by the exclude expression,
and have a valid numeric value.
Breaks for value ranges
A double value for the maximum value for the break
The string name
Creates a new instance of a break
Creates a new instance of a break with a given name
The string name for the break
IColorScheme
Applies the specified color scheme from a list of predefined scheme options.
The predefined color scheme
The raster that provides values to govern symbolizing
Creates the categories for this scheme based on statistics and values
sampled from the specified raster.
The raster to use when creating categories
Gets the values from the raster. If MaxSampleCount is less than the
number of cells, then it randomly samples the raster with MaxSampleCount
values. Otherwise it gets all the values in the raster.
The raster to sample
Gets or sets the floating point value for the opacity
Gets or sets the collection of color scheme categories to use.
gets or sets the editor settings for controls that affect the color scheme.
Creates a new instance of ColorScheme
Creates a new instance of a color scheme using a predefined color scheme and the minimum and maximum specified
from the raster itself
The predefined scheme to use
The raster to obtain the minimum and maximum settings from
This creates a new scheme, applying the specified color scheme, and using the minimum and maximum values indicated.
The predefined color scheme
The minimum
The maximum
Applies the specified color scheme and uses the specified raster to define the
minimum and maximum to use for the scheme.
Creates the category using a random fill color
The base color to use for creating the category
For points this is the larger dimension, for lines this is the largest width
A new IFeatureCategory that matches the type of this scheme
Creates the categories for this scheme based on statistics and values
sampled from the specified raster.
The raster to use when creating categories
Gets the values from the raster. If MaxSampleCount is less than the
number of cells, then it randomly samples the raster with MaxSampleCount
values. Otherwise it gets all the values in the raster.
The raster to sample
Applies the specified color scheme and uses the specified raster to define the
minimum and maximum to use for the scheme.
ColorSchemeType
THe minimum value to use for the scheme
THe maximum value to use for the scheme
Uses the settings on this scheme to create a random category.
A new IFeatureCategory
Occurs when setting the parent item and updates the parent item pointers
Draws the category in the specified location.
Adds the specified category
Attempts to decrease the index value of the specified category, and returns
true if the move was successful.
The category to decrease the index of
Removes the specified category
Inserts the item at the specified index
Attempts to increase the position of the specified category, and returns true
if the index increase was successful.
The category to increase the position of
Boolean, true if the item's position was increased
Suspends the change item event from firing as the list is being changed
Allows the ChangeItem event to get passed on when changes are made
Clears the categories
Gets or sets the floating point value for the opacity
Gets or sets the raster categories
Gets or sets the raster editor settings associated with this scheme.
Some of the more common relationships between elevation and geographic coordinates
The elevation values are in centimeters, but the geographic projection uses decimal degrees
The elevation values are in centimeters, but the geographic projection uses Meters
The elevation values are in centimeters, but the geographic projection uses Feet
The elevation values are in feet, but the geographic projection uses decimal degrees
The elevation values are in feet, but the geographic projection uses meters
The elevation values are in feet, but the geographic projection uses feet
The elevation values are in meters, but the geographic projection uses decimal degrees
The elevation values are in meters, but the geographic projection uses meters
The elevation values are in meters, but the geographic projection uses feet
A raster layer describes using a single raster, and the primary application will be using this as a texture.
Creates a bmp texture and saves it to the same fileName as the raster, but with a bmp ending.
This also generates a bpw world file for the texture.
Creates a bmp texture and saves it to the same fileName as the raster but with a bmp ending.
This also generates a bpw world file for the texture.
An implementation of IProgressHandler to recieve status messages
Creates a bmp texture and saves it to the specified fileName. The fileName should end in bmp.
This also generates a bpw world file for the texture.
The string fileName to write to
The image band type.
Creates a bmp texture and saves it to the specified fileName. The fileName should end in bmp.
This also generates a bpw world file for the texture.
The string fileName to write to
The progress handler for creating a new bitmap.
The image band type.
Gets or sets the boundaries of the raster.
Gets or sets the item that controls rendering this raster as a bitmap.
Gets the geographic width of the cells for this raster (East-West)
Gets the geographic height of the cells for this raster (North-South)
Gets or sets the underlying dataset raster for this object
Gets the data type of the values in this raster.
Gets the eastern boundary of this raster.
This is a conversion factor that is required in order to convert the elevation units into the same units as the geospatial projection for the latitude and logitude values of the grid.
Gets the exaggeration beyond normal elevation values. A value of 1 is normal elevation, a vlaue of 0 would be flat,
while a value of 2 would be twice the normal elevation. This applies to the three-dimensional rendering and is
not related to the shaded relief pattern created by the texture.
Gets the fileName where this raster is saved.
Gets the maximum value of this raster. If this is an elevation raster, this is also the top.
Gets the minimum value of this raster. If this is an elevation raster, this is also the bottom.
Gets the value that is used when no actual data exists for the specified location.
Gets the northern boundary of this raster.
Gets the number of bands in this raster.
Gets the number of columns in this raster.
Gets the number of rows in this raster.
Gets the southern boundary of this raster.
Gets or sets the collection of symbolizer properties to use for this raster.
Gets the western boundary of this raster.
IRasterSymbolizer
Creates a bmp from the in-memory portion of the raster.
Causes the raster to calculate a hillshade based on this symbolizer
Causes the raster to calculate a hillshade using the specified progress handler
The progress handler to use
Gets the color for a specific row and column. This does not include any hillshade information.
The double value to find in the colorbreaks.
A Color
Creates a bitmap based on the specified RasterSymbolizer
the bitmap to paint to
The progress handler
Sends a symbology updated event, which should cause the layer to be refreshed.
Indicates that the bitmap has been updated and that the colorscheme is currently
synchronized with the characteristics of this symbolizer. This also fires the
ColorSchemeChanged event.
This event occurs after a new bitmap has been created to act as a texture.
If this value is true, whenever a texture is created, the vector layers are drawn onto the texture.
Gets or sets the editor settings class to help setup up the symbology controls appropriately.
This is kept separate from extrusion to reduce confusion. This is a conversion factor that will
convert the units of elevation into the same units that the latitude and longitude are stored in.
To convert feet to decimal degrees is around a factor of .00000274. This is used only in the
3D-context and does not affect ShadedRelief.
A float value expression that modifies the "height" of the apparent shaded relief. A value
of 1 should show the mountains at their true elevations, presuming the ElevationFactor is
correct. A value of 0 would be totally flat, while 2 would be twice the value. This controls
the 3D effects and has nothing to do with the creation of shaded releif on the texture.
Gets the calculated hillshade map, or re-calculates it if something has changed
Gets or sets the symbol characteristics for the border of this raster
Gets or sets a boolean that determines whether to treat the values as if they are elevation
in the 3-D context. If this is true, then it will automatically use this grid for
calculating elevation values.
Gets or sets whether or not this raster should render itself
Gets or sets whether or not htis raster should be anti-alliased
Gets or sets the color to use if the value of the cell corresponds to a No-Data value
Gets or sets a float value from 0 to 1, where 1 is fully opaque while 0 is fully transparent
Gets or sets the raster that should provide elevation values, but only if "IsElevation" is false.
This should be set to true if the elevation values have changed
Gets or sets the parent layer. This is not always used, but can be useful for symbolic editing
that may require a bitmap to be drawn with draped vector layers.
Gets or sets the coloring scheme for the raster.
Gets or sets the characteristics of the shaded relief. This only affects the coloring,
and will not control any 3-D properties.
This should be set to true if the texture needs to be reloaded from a file
IShadedRelief
Returns the normalized light direction in X, Y, Z format
Occurs when the shading for this object has been altered.
Gets or sets a float specifying how strong the ambient directional light is. This should probably be about 1.
This is kept separate from extrusion to reduce confusion. This is a conversion factor that will
convert the units of elevation into the same units that the latitude and longitude are stored in.
To convert feet to decimal degrees is around a factor of .00000274
A float value expression that modifies the "height" of the apparent shaded relief. A value
of 1 should show the mountains at their true elevations, presuming the ElevationFactor is
correct. A value of 0 would be totally flat, while 2 would be twice the value.
Gets or sets a boolean value indicating whether the ShadedRelief should be used or not.
This specifies a float that should probably be around 1, which controls the light intensity.
Gets the zenith angle in degrees measured with 0 at the horizon and 90 vertically up
The Azimuth light direction in degrees measured clockwise from North
Gets whether or not the values have been changed on this ShadedRelief more recently than
a HillShade map has been calculated from it.
Creates a new instance of VectorEditorSettings
Gets or sets the minimum value that will contribute to statistics
Gets or sets the maximum value that will contribute to statistics.
A raster layer describes using a single raster, and the primary application will be using this as a texture.
Gets or sets maximum number of cells which can be stored in memory.
By default it is 8000 * 8000.
Opens the specified fileName using the layer manager.
Opens the specified fileName and automatically creates a raster that can be used by this raster layer.
The string fileName to use in order to open the file
The progress handler to show progress messages
Creates a new raster layer using the progress handler defined on the DefaultLayerManager
The raster to create this layer for
Creates a new instance of RasterLayer
The Raster
The Progress handler for any status updates
This only updates the bitmap representation of the raster. It does not write to a file unless
the file is too large to fit in memory, in which case it will update the pyramid image.
This only updates the bitmap representation of this raster. This can be overridden, but currently
uses the default implementation.
An implementation of IProgressHandler to receive status messages
Creates a bmp texture and saves it to the specified fileName.
The string fileName to write to
The color band type.
Creates a new filename and saves the content from the current BitmapGetter to the
file format. This relies on the DataManager and will only be successful for
formats supported by the write format possibility. This will not update this raster
The string fileName to write to
The progress handler for creating a new bitmap.
The band type ot use.
Clean up any resources being used.
true if managed resources should be disposed; otherwise, false.
Render the full raster block by block, and then save the values to the pyramid raster.
This will probably be nasty and time consuming, but what can you do.
This does not have to be used to work, but provides a default implementation for writing bitmap,
and will be used by the MapRasterLayer class during file creation.
Handles the situation for exporting the layer as a new source.
Occurs when this member should raise the shared event to show the property dialog for this raster layer.
Reprojects the dataset for this layer.
The target projection to use.
Gets or sets custom actions for RasterLayer
Gets or sets the boundaries of the raster.
[Editor(typeof(Forms.PropertyGridEditor), typeof(UITypeEditor))]
[TypeConverter(typeof(Forms.GeneralTypeConverter))]
This is what the raster layer uses to retrieve a bitmap representing the specified
extent. This could later be redesigned to generate the bitmap on the fly, but I think
that that would be slow, so caching is probably better.
Gets the geographic height of the cells for this raster (North-South)
Gets the geographic width of the cells for this raster (East-West)
Gets or sets whether this should appear as checked in the legend. This is also how the
layer will
Gets the data type of the values in this raster.
Gets the eastern boundary of this raster.
This is a conversion factor that is required in order to convert the elevation units into the same units as the geospatial projection for the latitude and logitude values of the grid.
Obtains an envelope
Gets the exaggeration beyond normal elevation values. A value of 1 is normal elevation,
a value of 0 would be flat, while a value of 2 would be twice the normal elevation.
This applies to the three-dimensional rendering and is not related to the shaded relief pattern
created by the texture.
Gets the fileName where this raster is saved.
If this is false, then the drawing function will not render anything.
Warning! This will also prevent any execution of calculations that take place
as part of the drawing methods and will also abort the drawing methods of any
sub-members to this IRenderable.
Gets or sets the complete list of legend items contained within this legend item
The text that will appear in the legend
Gets the maximum value of this raster. If this is an elevation raster, this is also the top.
Gets the minimum value of this raster. If this is an elevation raster, this is also the bottom.
Gets the value that is used when no actual data exists for the specified location.
Gets the northern boundary of this raster.
Gets the number of bands in this raster.
Gets the number of columns in this raster.
Gets the number of rows in this raster.
Gets or sets the underlying dataset
[TypeConverter(typeof(Forms.GeneralTypeConverter))]
[Editor(typeof(Forms.PropertyGridEditor), typeof(UITypeEditor))]
Gets or sets the collection of symbolzier properties to use for this raster.
[Editor(typeof(Forms.RasterColorSchemeEditor), typeof(UITypeEditor))]
[TypeConverter(typeof(Forms.GeneralTypeConverter))]
Gets the southern boundary of this raster.
Gets the western boundary of this raster.
Initializes a new instance of the ProjectionHelper class.
The geographic extents to project to and from.
The view rectangle in pixels to transform with.
Gets or sets the geographic extent to use.
Gets or sets the rectangular pixel region to use.
RasterSymbolizer
Creates a new instance of the raster symbolizer
The parent item
Creates a new instance of Raste
Causes the raster to calculate a hillshade based on this symbolizer
Causes the raster to calculate a hillshade using the specified progress handler
The progress handler to use
Creates a bmp from the in-memory portion of the raster. This will be stored as a
fileName with the same name as the current raster, but ends in bmp.
Gets the color information for a specific value. This does not include any hillshade information.
Specifies the value to obtain a color for.
A Color
Sends a symbology updated event, which should cause the layer to be refreshed.
Creates a bitmap based on the specified RasterSymbolizer
the bitmap to paint to
The progress handler
Indicates that the bitmap has been updated and that the colorscheme is currently
synchronized with the characteristics of this symbolizer. This also fires the
ColorSchemeChanged event.
Fires the SymbologyUpdated event, which should happen after symbology choices are finalized,
a new texture has been created and we are ready for an update.
Fires the on color scheme changed event
Fires the SymbologyChanged event
This event occurs after a new bitmap has been created to act as a texture.
Occurs when the symbology has been changed
Occurs if any of the properties that would contribute to bitmap construction have changed
This should be set to true if the texture needs to be reloaded from a file
This should be set to true if the elevation values have changed
Gets or sets a boolean that indicates if the color has changed.
If this value is true, whenever a texture is created, the vector layers are drawn onto the texture.
Gets or sets the editor settings class to help setup up the symbology controls appropriately.
This is kept separate from extrusion to reduce confusion. This is a conversion factor that will
convert the units of elevation into the same units that the latitude and longitude are stored in.
To convert feet to decimal degrees is around a factor of .00000274. This is used only in the
3D-context and does not affect ShadedRelief.
A float value expression that modifies the "height" of the apparent shaded relief. A value
of 1 should show the mountains at their true elevations, presuming the ElevationFactor is
correct. A value of 0 would be totally flat, while 2 would be twice the value. This controls
the 3D effects and has nothing to do with the creation of shaded releif on the texture.
Gets the calculated hillshade map, or re-calculates it if something has changed
Gets or sets the symbol characteristics for the border of this raster
Gets or sets a boolean that determines whether to treat the values as if they are elevation
in the 3-D context. If this is true, then it will automatically use this grid for
calculating elevation values. This does not affect ShadedRelief texture creation.
Gets or sets whether or not this raster should render itself
Gets or sets the color to use if the value of the cell corresponds to a No-Data value
Gets or sets the raster that should provide elevation values, but only if "IsElevation" is false.
Gets or sets the parent layer. This is not always used, but can be useful for symbolic editing
that may require a bitmap to be drawn with draped vector layers.
Gets or sets a float value from 0 to 1, where 1 is fully opaque while 0 is fully transparent
Gets or sets the characteristics of the shaded relief. This is specifically used
to control HillShade characteristics of the BitMap texture creation.
Gets or sets whether or not htis raster should be anti-alliased
Gets or sets the raster coloring scheme.
ShadedRelief
Creates a new instance of the ShadedRelief preset for elevation in feet and coordinates in decimal degrees
Creates a new instance of ShadedRelief based on some more common
elevation to goegraphic coordinate sysetem scenarios
Returns a normalized vector in 3 dimensions representing the angle
of the light source.
Fires the ShadingChanged event
Occurs when the shading for this object has been altered.
Gets or sets a float specifying how strong the ambient directional light is. This should probably be about 1.
This is kept separate from extrusion to reduce confusion. This is a conversion factor that will
convert the units of elevation into the same units that the latitude and longitude are stored in.
To convert feet to decimal degrees is around a factor of .00000274
A float value expression that modifies the "height" of the apparent shaded relief. A value
of 1 should show the mountains at their true elevations, presuming the ElevationFactor is
correct. A value of 0 would be totally flat, while 2 would be twice the value.
Gets or sets a boolean value indicating whether the ShadedRelief should be used or not.
Gets or sets the zenith angle for the light direction in degrees from 0 (at the horizon) to 90 (straight up).
Gets or sets a double that represents the light direction in degrees clockwise from North
This specifies a float that should probably be around 1, which controls the light intensity.
Gets whether or not the values have been changed on this ShadedRelief more recently than
a HillShade map has been calculated from it.
Specifies whether non-coordinate drawing properties like width or size
use pixels or map coordinates. If pixels are used, a "back transform"
to approximate pixel sizes.
Uses the simplest symbology possible, but can draw quickly
Symbol sizing parameters are based in world coordinates and will get smaller when zooming out like a real object.
The symbols approximately preserve their size as you zoom
Extends the ISelectable interface with some overloads that ignore the output affected areas
Clears the selection, and ignores the affected area.
This selectable item
Boolean, true if members were removed from the selection
This ignores the affected region and assumes that you want to use a selection based on
the Intersects selection mode.
The ISelectable object
The region where selection should take place
The region in cases where tolerance is not used
Boolean, true if the selected state of any members of this item were altered
Inverts the selection state of members that intersect the specified region.
The affected area will be returned.
The IFeatureLayer to modify the selection for
The geographic envelope in cases like cliking near points where tolerance is allowed
The geographic region when working with absolutes, without a tolerance
The affected area to modify
Boolean, true if the selection state was modified by this action
This ignores the affected region and assumes that you want to use a selection based on
the Intersects selection mode.
This ISelectable
The geographic envelope in cases like cliking near points where tolerance is allowed
The geographic region when working with absolutes, without a tolerance
Boolean, true if any items were added to the selection
Highlights the values in the specified region, and returns the affected area from the selection,
which should allow for slightly faster drawing in cases where only a small area is changed.
The IFeatureLayer from which to select features
The geographic envelope in cases like cliking near points where tolerance is allowed
The geographic region when working with absolutes, without a tolerance
The geographic envelope of the region impacted by the selection.
True if any members were added to the current selection.
This ignores the affected region and assumes that you want to use a selection based on
the Intersects selection mode.
This ISelectable
The geographic envelope in cases like cliking near points where tolerance is allowed
The geographic region when working with absolutes, without a tolerance
Boolean, true if any items were added to the selection
Un-highlights or returns the features that intersect with the specified region.
The IFeatureLayer from which to unselect features.
The geographic envelope in cases like cliking near points where tolerance is allowed.
The geographic region when working with absolutes, without a tolerance.
The geographic envelope that will be visibly impacted by the change.
Boolean, true if members were removed from the selection.
Normally, cloning an object starts with MemberwiseClone, which
creates a shallow copy of the object. For any members that
derive from the Descriptor, however, any public properties
or fields that implement ICloneable are copied (deep copy behavior).
This is not always desirable, even if the member CAN be copied.
This attribute causes the deep copy behavior to skip over
properties marked with this attribute.
LayerEventArgs
Creates a new instance of LayerEventArgs
Gets a layer
Size2D
Gets or sets the height
Gets or sets the width
Creates a new instance of Size2D
Creates a new instance of a Size2D
The double width
The double height
Tests for equality against an object.
Tests for equality against another size.
the size to compare this size to
boolean, true if the height and width are the same in each case.
Gets the string equivalent of this object
Determines if the height and width are both equal
Determiens if the height and width are not equal
Returns the basic hash code for the object.
Generates random doubles for the size from 1 to 100 for both the width and height
SnapShotEventArgs
Creates a new instance of SnapShotEventArgs
Gets the picture that was taken by the snapshot
This describes the three permitted states for legend items.
Items can have a checkbox or a symbol, but not both.
Display a checkbox next to the legend item
Draws a symbol, but also allows collapsing.
Display a symbol next to the legend item
Display only legend text
Global has some basic methods that may be useful in lots of places.
An instance of Random that is created when needed and sits around so we don't keep creating new ones.
Gets a cool Highlight brush for highlighting things
The rectangle in the box
The color to use for the higlight
Draws a rectangle with ever so slightly rounded edges. Good for selection borders.
The Graphics object
The pen to draw with
The rectangle to draw to.
Obtains a system.Drawing.Rectangle based on the two points, using them as
opposite extremes for the rectangle.
one corner point of the rectangle.
The opposing corner of the rectangle.
A System.Draing.Rectangle
Returns a completely random opaque color.
A random color.
This allows the creation of a transparent color with the specified opacity.
A float ranging from 0 for transparent to 1 for opaque
A Color
This allows the creation of a transparent color with the specified opacity.
A float ranging from 0 for transparent to 1 for opaque
A Color
This allows the creation of a transparent color with the specified opacity.
A float ranging from 0 for transparent to 1 for opaque
A Color
Converts a colour from HSL to RGB
Adapted from the algoritm in Foley and Van-Dam
A double representing degrees ranging from 0 to 360 and is equal to the GetHue() on a Color structure.
A double value ranging from 0 to 1, where 0 is gray and 1 is fully saturated with color.
A double value ranging from 0 to 1, where 0 is black and 1 is white.
A Color structure with the equivalent hue saturation and brightness
Creates a new instance of MemberChangedEventArgs
Gets the Label that was updated
Gets the previous symbolizer that this label no longer uses.
Gets the new symbolizer that this label now uses.
ClassificationTypes
Each category is designed with a custom expression
Unique values are added
A Quantile scheme is applied, which forces the behavior of continuous categories.
IDrawingFilter
This will set all values to the default (0) category. Then, it will use the filter
expressions on the remaining categories to change the categories for those members.
This means that an item will be classified as the last filter that it qualifies for.
The scheme of categories to apply to the drawing states
Invalidates this drawing filter, forcing a re-creation
of the entire dictionary from the source featureset.
This should only be done if changes are made to the
feature list while SuspendChanges on the list is true.
If UseChunks is true, this uses the index value combined with the chunk size
to calculate the chunk, and also sets the category to the [0] category and the
selection state to unselected. This can be overridden in sub-classes to come up
with a different default state.
The integer index to get the default state of
An IDrawnState
Occurs after this filter has built its internal list of items.
Gets or sets the scheme category to use
Gets the integer chunk that the filter should use
Gets or sets the integer size of each chunk. Setting this to
a new value will cycle through and update the chunk on all
the features.
If the drawing state for any features has changed, or else if
the state of any members has changed, this will cycle through
the filter members and cache a new count. If nothing has
changed, then this will simply return the cached value.
Gets the default category for the scheme.
Gets the dictionary of drawn states that this drawing filter uses.
Gets the underlying list of features that this drawing filter
is ultimately based upon.
If chunks are being used, then this indicates the total count of chunks.
Otherwise, this returns 1 as everything is effectively in one chunk.
If UseSelection is true, this will get or set the boolean selection state
that will be used to select values.
This uses the feature as the key and attempts to find the specified drawn state
that describes selection, chunk and category.
The feature
The strength is that if someone inserts a new member or re-orders
the features in the featureset, we don't forget which ones are selected.
The disadvantage is that duplicate features in the same featureset
will cause an exception.
This is less direct as it requires searching two indices rather than one, but
allows access to the drawn state based on the feature ID.
The integer index in the underlying featureSet.
The current IDrawnState for the current feature.
Gets or sets a boolean that indicates whether we should use the chunk
Gets or sets a boolean that indicates whether this filter should use the Selected
Gets or sets a boolean that indicates whether the filter should subdivide based on category.
Gets or sets a boolean that indicates whether the filter should consider the IsVisible property
Gets or sets a boolean that specifies whether to return visible, or hidden features if UseVisibility is true.
Creates a new instance of DrawingFilter without using any chunks. The use chunks
value will be false, and sub-categories will not be selected based on the chunk.
Creates a new instance of DrawingFilter, sub-dividing the features into chunks.
regardless of selection or category, chunks simply subdivide the filter
into chunks of equal size.
Creates a shallow copy
Returns a shallow copy of this object.
This will use the filter expressions on the categories to change the categories for those members.
This means that an item will be classified as the last filter that it qualifies for.
The scheme of categories to apply to the drawing states
If UseChunks is true, this uses the index value combined with the chunk size
to calculate the chunk, and also sets the category to the [0] category and the
selection state to unselected. This can be overridden in sub-classes to come up
with a different default state.
The integer index to get the default state of
An IDrawnState
Gets an enumator for cycling through exclusively the features that satisfy all the listed criteria,
including chunk index, selected state, and scheme category.
An Enumerator for cycling through the values
Invalidates this drawing filter, effectively eliminating all the original
categories, selection statuses, and only keeps the basic chunk size.
Fires the Initialized Event
This block of code actually cycles through the source features, and assigns a default
drawing state to each feature. I thought duplicate features would be less of a problem
then people re-ordering an indexed list at some point, so for now we are using
features to index the values.
Occurs after this filter has built its internal list of items.
Gets or sets the scheme category to use
Gets the integer chunk that the filter should use
Gets or sets the integer size of each chunk. Setting this to
a new value will cycle through and update the chunk on all
the features.
If the drawing state for any features has changed, or else if
the state of any members has changed, this will cycle through
the filter members and cache a new count. If nothing has
changed, then this will simply return the cached value.
Gets the default category for the scheme.
Gets the dictionary of drawn states that this drawing filter uses.
Gets the underlying list of features that this drawing filter
is ultimately based upon.
If chunks are being used, then this indicates the total count of chunks.
Otherwise, this returns 1 as everything is effectively in one chunk.
If UseSelection is true, this will get or set the boolean selection state
that will be used to select values.
This uses the feature as the key and attempts to find the specified drawn state
that describes selection, chunk and category.
The feature
The strength is that if someone inserts a new member or re-orders
the features in the featureset, we don't forget which ones are selected.
The disadvantage is that duplicate features in the same featureset
will cause an exception.
This is less direct as it requires searching two indices rather than one, but
allows access to the drawn state based on the feature ID.
The integer index in the underlying featureSet.
The current IDrawnState for the current feature.
Gets or sets a boolean that indicates whether the filter should subdivide based on category.
Gets or sets a boolean that indicates whether we should use the chunk
Gets or sets a boolean that indicates whether this filter should use the Selected
Gets or sets the boolean indicating whether or not this feature should be drawn.
Gets or sets a boolean that specifies whether to return visible, or hidden features if UseVisibility is true.
DrawFeatures simply group the feature with characteristics like selected and category for easier tracking.
IDrawnFeature
Gets or sets the integer chunk that this item belongs to.
Gets or sets the scheme category
Gets or sets a boolean, true if this feature is currently selected
Gets or sets whether this feature is currently being drawn.
Creates a new instance of DrawnState class that helps to narrow down the features to be drawn.
Creates a new instance of a DrawnState class for subdividing features.
A category that the feature belongs to
Boolean, true if the feature is currently selected
An integer chunk that this feature should belong to
A boolean indicating whether this feature is visible or not
Not entirely sure about using these features this way. It might not work well with interfaces.
Takes any object, but attempts to compare it with values as an IDrawnState. If it can satisfy
the IDrawnState interface and all the values are the same then this returns true.
Overrides the standard equal operator
Overrides the not-equal to operator
Gets or sets the scheme category
Gets or sets a boolean, true if this feature is currently selected
Gets or sets whether this feature is currently being drawn.
Gets or sets the integer chunk that this item belongs to.
Creates a new instance of StringEventArgs
The string expression for this event args
The string expression for this event.
FastDrawnState uses fields, not properties.
The category that describes the symbolic drawing for this item.
Boolean, true if this item should be drawn as being selected
A Boolean that indicates whether or not this feature should be drawn at all.
This should default to true.
Creates a blank fast drawn state
Creates a new FastDrawnState with the specified parameters
Overrides ToString to give a description of the FastDrawnState.
Equality based on the Boolean and category settings
The fast drawn state to compare with
For ordering in a dictionary, if get hash code is the same, then equals is used to test equality.
For performance, try to make sure that hash codes are different enough for organizing in the
dictionary, but are the same in cases where Category and Selected are the same.
An integer hash code for this item.
A Scheme category does not reference individual members or indices, but simply describes a symbolic representation that
can be used by an actual category.
IFeatureCategory
Queries this layer and the entire parental tree up to the map frame to determine if
this layer is within the selected layers.
This gets a single color that attempts to represent the specified
category. For polygons, for example, this is the fill color (or central fill color)
of the top pattern. If an image is being used, the color will be gray.
The System.Color that can be used as an approximation to represent this category.
This applies the color to the top symbol stroke or pattern.
The Color to apply
In some cases, it is useful to simply be able to show an approximation of the actual expression.
This also removes brackets from the field names to make it slightly cleaner.
Occurs when the select features context menu is clicked.
Occurs when the deselect features context menu is clicked.
Gets or sets the symbolizer used for this category.
Gets or sets the symbolizer used for this category
Gets or set the filter expression that is used to add members to generate a category based on this scheme.
Creates a new instance of FeatureSchemeCategory
Applies the minimum and maximum in order to create the filter expression. This will also
count the members that match the specified criteria.
Controls what happens in the legend when this item is instructed to draw a symbol.
Queries this layer and the entire parental tree up to the map frame to determine if
this layer is within the selected layers.
This gets a single color that attempts to represent the specified
category. For polygons, for example, this is the fill color (or central fill color)
of the top pattern. If an image is being used, the color will be gray.
The System.Color that can be used as an approximation to represent this category.
This applies the color to the top symbol stroke or pattern.
The Color to apply
In some cases, it is useful to simply be able to show an approximation of the actual expression.
This also removes brackets from the field names to make it slightly cleaner.
Makes it so that if there are any pre-existing listeners to the SelectFeatuers
event when creating a clone of this object, those listeners are removed.
They should be added correctly when the cloned item is added to the collection,
after being cloned.
Forces the creation of an entirely new context menu list. That way, we are not
pointing to an event handler in the previous parent.
Fires the SelectFeatures event
Triggers the DeselectFeatures event.
Occurs when the select features context menu is clicked.
Occurs when the deselect features context menu is clicked.
Gets or sets the symbolizer used for this category.
Gets or sets the symbolizer used for this category
Gets or set the filter expression that is used to add members to generate a category based on this scheme.
[Editor(typeof(ExpressionEditor), typeof(UITypeEditor))]
FeatureSchemeCategoryCollection
Creates a new instance of the FeatureSchemeCategoryCollection
Occurs when including legend items
Occurs when excluding legend items
Optionally allows the scheme to identify itself for future reference.
Creates a new instance of VectorEditorSettings
Gets or sets the unique values.
Gets or sets the double size for the last item in the range
Gets or sets the field name that categories are based on
Gets or sets the normalization field
Gets or sets the gradient angle if use gradient is true
and the shape is a polygon shape.
Gets or sets the double start size for point or line size ranges
Gets or sets the feature symbolizer that acts as a template for
any characteristics not covered by the size and color ranges.
Gets or sets a boolean indicating whether or not to
use a gradient when randomly calculating polygon
forms.
Gets or sets a boolean indicating whether the size range should be used instead of
the size specified by the template.
This is should not be instantiated because it cannot in itself perform the necessary functions.
Instead, most of the specified functionality must be implemented in the more specific classes.
This is also why there is no direct constructor for this class. You can use the static
"FromFile" or "FromFeatureLayer" to create FeatureLayers from a file.
This is should not be instantiated because it cannot in itself perform the necessary functions.
Instead, most of the specified functionality must be implemented in the more specific classes.
This is also why there is no direct constructor for this class. You can use the static
"FromFile" or "FromFeatureLayer" to create FeatureLayers from a file.
Applies the specified scheme to this layer, applying the filter constraints in the scheme.
It is at this time when features are grouped as a one-time operation into their symbol
categories, so that this doesn't have to happen independently each drawing cycle.
The scheme to be applied to this layer.
Assigns the fast drawn states based on the latest feature setup.
This method actually draws the image to the snapshot using the graphics object. This should be
overridden in sub-classes because the drawing methods are very different.
A graphics object to draw to
A projection handling interface designed to translate geographic coordinates to screen
coordinates
Saves a featureset with only the selected features to the specified fileName.
The string fileName to export features to.
Gets the visible characteristic for an individual feature, regardless of whether
this layer is in edit mode.
Gets the visible characteristic for a given feature, rather than using the index,
regardless of whether this layer is in edit mode.
Gets the visible characteristic for an individual feature
The get visible.
Gets the visible characteristic for a given feature, rather than using the index.
The get visible.
This method will remove the in ram features from the underlying dataset.
This will not affect the data source. Beware! Removing features
without populating the DataTable first will almost assuredly mean
indexing failures if you choose to load it later.
The list or array of integer index values.
This forces the removal of all the selected features.
Selects the specified list of features. If the specified feature is already selected,
this method will not alter it.
A List of integers representing the zero-based feature index values
Selects a single feature specified by the integer index in the Features list.
The zero-based integer index of the feature.
Selects the specified feature.
The feature.
Cycles through all the features and selects them
Selects all the features in this layer that are associated
with the specified attribute, clearing the selection first.
The string expression to
identify based on attributes the features to select.
Modifies the features with a new selection based on the modifyMode.
The string filter expression to use
Determines how the newly chosen features should interact with the existing
selection
Sets the category for the specified shape index regardless of whether this layer is in edit mode.
The 0 based integer shape index
The category for this feature. The exact kind of category depends on the
feature type.
Sets the visible characteristic for a given feature, rather than using the index
regardless of whether this layer is in edit mode.
The actual reference to the feature object to update
The new category to use for the specified feature
This forces the creation of a category for the specified symbolizer, if it doesn't exist.
This will add the specified feature to the category. Be sure that the symbolizer type
matches the feature type.
The integer index of the shape to control.
The symbolizer to assign.
Sets the visible characteristic for an individual feature
Sets the visible characteristic for a given feature, rather than using the index.
Displays a form with the attributes for this shapefile.
Creates a bitmap of the requested size that covers the specified geographic extent using
the current symbolizer for this layer. This does not have any drawing optimizations,
or techniques to speed up performance and should only be used in special cases like
draping of vector content onto a texture. It also doesn't worry about selections.
The extent to use when computing the snapshot.
The integer height of the bitmap
A Bitmap object
Unselects the specified features. If any features already unselected, they are ignored.
Unselects the specified feature.
The integer representing the feature to unselect.
Removes the specified feature from the selection
The feature to remove
Unselects all the features that are currently selected
Zooms to the envelope of the selected features.
Occurs before the attribute Table is displayed, also allowing this event to be handled.
Occurs after a snapshot is taken, and contains an event argument with the bitmap
to be displayed.
Occurs after a new symbolic scheme has been applied to the layer.
Gets or sets the base FeatureSet
Controls the drawn states according to a feature index. This is used if the EditMode is
false. When EditMode is true, then drawn states are tied to the features instead.
Gets or sets the Boolean flag that controls whether the DrawnStates are needed. If nothing is selected,
and there is only one category, and there is no filter expression on that category, then this should be false.
Gets or sets a Boolean. If edit mode is true, feature index is ignored, and features
are assumed to be entirely loaded into ram. If edit mode is false, then index
is used instead and features are not assumed to be loaded into ram.
Gets or sets the label layer
Gets a Selection class that is allows the user to cycle through all the unselected features with
a for each method, even if the features are in many categories.
Gets or sets the shared characteristics to use with the selected features.
Gets or sets whether labels should be drawn.
Gets or sets and interface for the shared symbol characteristics between point, line and polygon features
Gets the current feature scheme, but to change it ApplyScheme should be called, so that
feature categories are updated as well.
The _category extents.
The _drawing filter.
The _drawn states.
The _drawn states needed.
The _edit mode.
The _feature symbolizer.
The _label layer.
The _scheme.
The _selection.
The _selection feature symbolizer.
The _show labels.
Initializes a new instance of the class.
Constructor
The data bearing layer to apply new drawing characteristics to
Initializes a new instance of the class.
Constructor
The data bearing layer to apply new drawing characteristics to
The container this layer should be added to
Initializes a new instance of the class.
Constructor
The data bearing layer to apply new drawing characteristics to
The container this layer should be added to
A progress handler for receiving status messages
Zooms to the envelope of the selected features.
Zooms to the envelope of the selected features, adding a border of the size specified.
The configure.
The feature set.
Applies the specified scheme to this layer, applying the filter constraints in the scheme.
It is at this time when features are grouped as a one-time operation into their symbol
categories, so that this doesn't have to happen independently each drawing cycle.
The scheme to be applied to this layer.
Clears the current selection, reverting the geometries back to their
normal colors.
An out value that represents the envelope that was modified by the clear selection instruction
The clear selection.
This method actually draws the image to the snapshot using the graphics object. This should be
overridden in sub-classes because the drawing methods are very different.
A graphics object to draw to
A projection handling interface designed to translate
geographic coordinates to screen coordinates
Saves a featureset with only the selected features to the specified fileName.
The string fileName to export features to.
Gets the visible characteristic for an individual feature, regardless of whether
this layer is in edit mode.
Gets the visible characteristic for a given feature, rather than using the index,
regardless of whether this layer is in edit mode.
Gets the visible characteristic for an individual feature
The get visible.
Gets the visible characteristic for a given feature, rather than using the index.
The get visible.
This method inverts the selection for the specified region. Members already a part of the selection
will be removed from the selection, while members that are not a part of the selection will be added
to the selection.
The region specifying where features should be added or removed from the
selection.
With polygon selection it is better not to allow any tolerance since the
polygons already contain it.
The SelectionModes enumeration that clarifies how the features should
interact with the region.
The geographic region that will be impacted by the changes.
The invert selection.
Highlights the values in the specified region, and returns the affected area from the selection,
which should allow for slightly faster drawing in cases where only a small area is changed.
This will also specify the method by which members should be selected.
The envelope to change.
The envelope to use in cases like polygons where the geometry has no tolerance.
The selection mode that clarifies the rules to use for selection.
The geographic envelope of the region impacted by the selection.
Boolean, true if items were selected.
Selects the specified list of features. If the specified feature is already selected,
this method will not alter it. This will only fire a single SelectionExtended event,
rather than firing it for each member selected.
A List of integers representing the zero-based feature index values
Selects a single feature specified by the integer index in the Features list.
The zero-based integer index of the feature.
Selects the specified feature
The feature to select
Cycles through all the features and selects them
Selects all the features in this layer that are associated
with the specified attribute. This automatically replaces the existing selection.
The string expression to
identify based on attributes the features to select.
Unselects the features by attribute.
The filter expression.
Modifies the features with a new selection based on the modifyMode.
The string filter expression to use
Determines how the newly chosen features should interact with the existing
selection
This forces the creation of a category for the specified symbolizer, if it doesn't exist.
This will add the specified feature to the category. Be sure that the symbolizer type
matches the feature type.
The integer index of the shape to control.
The symbolizer to assign.
Sets the visible characteristic for an individual feature regardless of
whether this layer is in edit mode.
Sets the visible characteristic for a given feature, rather than using the index
regardless of whether this layer is in edit mode.
Displays a form with the attributes for this shapefile.
Creates a bitmap of the requested size that covers the specified geographic extent using
the current symbolizer for this layer. This does not have any drawing optimizations,
or techniques to speed up performance and should only be used in special cases like
draping of vector content onto a texture. It also doesn't worry about selections.
The extent to use when computing the snapshot.
The integer height of the bitmap. The height is calculated based on
the aspect ratio of the specified geographic extent.
A Bitmap object
Unselects the specified features. If any features already unselected, they are ignored.
This will only fire a single Selection
Unselects the specified feature.
The integer representing the feature to unselect.
Removes the specified feature from the selection.
The feature to unselect.
Un-highlights or returns the features from the specified region. The specified selectionMode
will be used to determine how to choose features.
The geographic envelope in cases like clicking near points where tolerance
is allowed.
The geographic region when working with absolutes, without a tolerance.
The selection mode that controls how to choose members relative to the
region.
The geographic envelope that will be visibly impacted by the change.
Boolean, true if members were removed from the selection.
Unselects all the features that are currently selected
This is testing the idea of using an input parameter type that is marked as out
instead of a return type.
The result of the creation
Boolean, true if a layer can be created
Occurs when the properties should be shown, and launches a layer dialog.
Occurs when setting the symbology to a new scheme and allows removing event handlers
Occurs as a new featureset is being assigned to this layer
The feature Set.
Unwires event handlers for the specified featureset.
Occurs when setting symbology to a new scheme and allows adding event handlers
Occurs when selecting features and fires the SelectByAttribute event with
the expression used as the filter expression
Occurs when selecting features and fires the SelectByAttribute event with
the expression used as the filter expression
Assigns the fast drawn states
This method will remove the in ram features from the underlying dataset.
This will not affect the data source.
The list or array of integer index values.
This forces the removal of all the selected features.
This does more than remove an index key. This also shifts down the category
and selection state for every drawn state with a higher index than the
given index value. Call this only in index mode, and only if the shape
is being removed from the FeatureSet. in practice, this should really
only be called internally, but is here just in case.
The list or array of index values to remove.
This calculates the extent for the category and caches it in the extents collection
This method cycles through all the Categories in the scheme and creates a new
category.
The scheme to apply
Occurs during a copy operation and handles removing surplus event handlers
A default method to generate a label layer.
Handles the situation for exporting the layer as a new source.
Occurs before the label setup dialog is shown. If handled is set to true,
then the dialog will not be shown.
A HandledEventArgs parameter
This fires the scheme applied event after the scheme has been altered
Fires the SnapShotTaken event. This can be overridden in order to modify the bitmap returned etc.
Occurs before attributes are about to be viewed. Overriding this
allows that to be handled, and if e.Handled is true, this class
won't show the attributes.
A HandledEventArgs
The distinct fields in expression.
The expression.
Occurs after a new symbolic scheme has been applied to the layer.
Occurs after a snapshot is taken, and contains an event argument with the bitmap
to be displayed.
Occurs before the attribute Table is displayed, also allowing this event to be handled.
Occurs before the label setup dialog is displayed, allowing the event to be handled.
Gets or sets the Boolean flag that controls whether the DrawnStates are needed. If nothing is selected,
and there is only one category, and there is no filter expression on that category, then this should be false.
Gets or sets custom actions for FeatureLayer
Gets the dictionary of extents that is calculated from the categories. This is calculated one time,
when the scheme is applied, and then the cached value is used to help drawing symbols that
are modified by the categorical boundaries.
Gets or sets a rectangle that gives the maximal extent for 2D GDI+ drawing in pixels.
Coordinates outside this range will cause overflow exceptions to occur.
Gets or sets the drawing filter that can be used to narrow the list of features and then
cycle through those features. Using a for-each expression on the filter will automatically
apply the constraints specified by the characteristics.
Gets or sets a string name for this layer. This is not necessarily the same as the legend text.
Gets or sets the chunk size on the drawing filter. This should be controlled
by drawing layers.
Gets or sets the underlying dataset for this layer, specifically as an IFeatureSet
Gets underlying dataset for this layer
Controls the drawn states according to a feature index. This is used if the EditMode is
false. When EditMode is true, then drawn states are tied to the features instead.
Gets or sets a boolean. If edit mode is true, feature index is ignored, and features
are assumed to be entirely loaded into ram. If edit mode is false, then index
is used instead and features are not assumed to be loaded into ram.
Gets the envelope of the DataSet supporting this FeatureLayer
Gets or sets the label layer
Restructures the LegendItems based on whether or not the symbology makes use
of schemes.
Gets a Selection class that is allows the user to cycle through all the selected features with
a foreach method. This can be null.
Gets or sets the shared characteristics to use with the selected features.
Gets or sets whether labels should be drawn.
Gets or sets and interface for the shared symbol characteristics between point, line and polygon features
Gets the current feature scheme, but to change it ApplyScheme should be called, so that
feature categories are updated as well.
Inverts the selection
Creates a new instance of FeatureLayerEventArgs
Gets or sets the feature layer for this event
Creates a new instance of FeatureLayerSelectionEventArgs
Gets the list of changed features
FeatureScheme
IFeatureScheme
Creates a list of all 'unique value' categories. This will use the "VectorEditorSettings"
to determine how to create the values, so ensure that you update that property first.
The attribute source that can provide the attribute information.
The progress handler for showing progress on what is likely a slow process
Creates the categories using the specified data table
Uses the settings on this scheme to create a random category.
A new IFeatureCategory
The filter expression to use
This keeps the existing categories, but uses the current scheme settings to apply
a new color to each of the symbols.
When using this scheme to define the symbology, these individual categories will be referenced in order to
create genuine categories (that will be cached).
Queries this layer and the entire parental tree up to the map frame to determine if
this layer is within the selected layers.
Occurs when a category indicates that its filter expression should be used
to select its members.
Occurs when the deselect features context menu is clicked.
Gets or sets the dialog settings
Gets or sets a boolean that indicates whether or not the legend should draw this item as a categorical
tier in the legend. If so, it will allow the LegendText to be visible as a kind of group for the
categories. If not, the categories will appear directly below the layer.C:\dev\Mapwindow6Dev\DotSpatial\DotSpatial\Drawing\Vectors\Points\PointCategoryCollection.cs
Gets the number of categories of this scheme.
Gets or sets the UITypeEditor to use for editing this FeatureScheme
Creates a new instance of FeatureScheme
When using this scheme to define the symbology, these individual categories will be referenced in order to
create genuine categories (that will be cached).
Queries this layer and the entire parental tree up to the map frame to determine if
this layer is within the selected layers.
Special handling of not copying the parent during a copy operation
Handles the special case of not copying the parent during an on copy properties operation
Ensures that the parentage gets set properly in the event that
this scheme is not appearing in the legend.
This keeps the existing categories, but uses the current scheme settings to apply
a new color to each of the symbols.
Creates categories either based on unique values, or classification method.
If the method is
The System.DataTable to that has the data values to use
Uses the settings on this scheme to create a random category.
A new IFeatureCategory
The filter expression to use
This simply ensures that we are creating the appropriate empty filter expression version
of create random category.
Gets the values from a file based data source rather than an in memory object.
Before attempting to create categories using a color ramp, this must be calculated
to updated the cache of values that govern statistics and break placement.
The data Table to use.
Returns
Gets a list of all unique values of the attribute field.
Gets a list of all unique values of the attribute field.
This checks the type of the specified field whether it's a string field
This checks the type of the specified field whether it's a string field
Instructs the parent layer to select features matching the specified expression.
The object sender.
The event args.
Instructs the parent layer to select features matching the specified expression.
The object sender.
The event args.
Uses the current settings to generate a random color between the start and end color.
A Randomly created color that is within the bounds of this scheme.
This replaces the constant size calculation with a size
calculation that is appropriate for features.
The integer count of the number of sizes to create.
A list of double valued sizes.
Calculates the unique colors as a scheme
The featureset with the data Table definition
The unique field
Func for creating category
Occurs when a category indicates that its filter expression should be used
to select its members.
Occurs when the deselect features context menu is clicked.
Occurs when there are more than 1000 unique categories. If the "Cancel"
is set to true, then only the first 1000 categories are returned. Otherwise
it may allow the application to lock up, but will return all of them.
If this event is not handled, cancle is assumed to be true.
Occurs
Gets or sets a boolean that indicates whether or not the legend should draw this item as a categorical
tier in the legend. If so, it will allow the LegendText to be visible as a kind of group for the
categories. If not, the categories will appear directly below the layer.
Gets or sets the dialog settings
Gets or sets the UITypeEditor to use for editing this FeatureScheme
Gets the number of categories in this scheme
An enumerable of LegendItems allowing the true members to be cycled through.
IFilterCollection
ISelection
Clears the selection
Add REgion
Returns a new featureset based on the features in this collection
Generates a list of the features that match this collection
Gets the integer count of the members in the collection
Calculates the envelope of this collection
Gets or sets the handler to use for progress messages during selection.
Selection Mode controls how envelopes are treated when working with geometries.
Gets or sets whether this should work as "Selected" indices (true) or
"UnSelected" indices (false).
Setting this to a specific category will only allow selection by
region to affect the features that are within the specified category.
Clears the selection
Gets the integer count of the members in the collection
Gets the drawing filter used by this collection.
Creates a new instance of FilterCollection, where the current state of the filter is
recorded as the kind of "collection" that this item belongs to. The filter can be
altered later, and this will retain the original state.
Adding a feature state sets the drawing state of the item to be
The item to add to this category
Occurs if this list is set to read-only in the constructor
This uses extent checking (rather than full polygon intersection checking). It will add
any members that are either contained by or intersect with the specified region
depending on the SelectionMode property. The order of operation is the region
acting on the feature, so Contains, for instance, would work with points.
The affected area of this addition
True if any item was actually added to the collection
Inverts the selection based on the current SelectionMode
The geographic region to reverse the selected state
The affected area to invert
This cycles through all the members in the current grouping and re-sets the current category
back to the default setting. In other words, if the active type is selection, then this
will unselect all the features, but won't adjust any of the other categories.
Occurs if this list is set to read-only in the constructor
Tests to see if the item is contained in this collection.
Copies each of the members of this group to the specified array
Gets the enumerator for this collection.
Removes the specified item from the subset of this classification if that category is used.
Selected -> !Selected
Category[>0] -> Category[0]
Category[0] -> Null
Visible -> !Visible
Chunk -> -1 or basically a chunk index that is never drawn.
The item to change the drawing state of
Boolean, false if the item does not match the current grouping
Occurs if this list is set to read-only in the constructor
Tests each member currently in the selected features based on
the SelectionMode. If it passes, it will remove the feature from
the selection.
The geographic region to remove
A geographic area that was affected by this change.
Boolean, true if the collection was changed
As an example, choosing myFeatureLayer.SelectedFeatures.ToFeatureSet creates a new set.
An in memory featureset that has not yet been saved to a file in any way.
Exports the members of this collection as a list of IFeature.
A List of IFeature
The new row will be added to the underlying featureset, and this selection will not be updated
in any way, as that row is not associated with a featureset here.
The new row will be added to the underlying featureset, and this selection will not be updated
in any way, as that row is not associated with a featureset here.
Collections can be nested, but for instance if you have gone into category[2].SelectedFeatures and want to
remove an item, then we would expect it to show up in Category[2].UnSelectedFeatures, not in
Category[0].UnselectedFeatures. So while add necessarilly acts on every filter constraint, remove or clear only
operates on the most intimate. The ActiveType records which criteria that is.
Gets the feature list of underlying features that the filter is using
This cycles through the entire enumeration, so don't access this in every loop.
Gets the envelope that represents the features in this collection.
If the collection changes, this will be invalidated automatically,
and the next envelope request will re-calcualte the envelope.
Gets the drawing filter used by this collection.
Gets whether or not this collection can be edited with add, remove, or clear.
Gets or sets the handler to use for progress messages during selection.
Setting this to a specific category will only allow selection by
region to affect the features that are within the specified category.
Gets or sets the scheme category to use
Gets the integer chunk that the filter should use
If UseSelection is true, this will get or set the boolean selection state
that will be used to select values.
Gets or sets a boolean that indicates whether the filter should subdivide based on category.
Gets or sets a boolean that indicates whether we should use the chunk
Gets or sets a boolean that indicates whether this filter should use the Selected
Gets or sets the boolean indicating whether or not this feature should be drawn.
Gets or sets a boolean that specifies whether to return visible, or hidden features if UseVisibility is true.
True if members of this collection are considered selected, false otherwise.
Gets or sets the selection mode to use when Adding or Removing features
from a specified envelope region.
FeatureSymbolizer
IFeatureSymbolizer
Draws a simple rectangle in the specified location.
Sets the outline, assuming that the symbolizer either supports outlines, or
else by using a second symbol layer.
The color of the outline
The width of the outline in pixels
Gets or sets a boolean indicating whether or not this specific feature should be drawn.
Gets or Sets a ScaleModes enumeration that determines whether non-coordinate drawing
properties like width or size use pixels or world coordinates. If pixels are
specified, a back transform is used to approximate pixel sizes.
Gets or sets the smoothing mode to use that controls advanced features like
anti-aliasing. By default this is set to antialias.
Gets or sets the graphics unit to work with.
Creates a new instance of FeatureSymbolizer
Sets the outline, assuming that the symbolizer either supports outlines, or
else by using a second symbol layer.
The color of the outline
The width of the outline in pixels
Draws a simple rectangle in the specified location.
Occurs during the copy properties method, when copying properties from the source symbolizer
to this symbolizer.
The source symbolizer to copy properties from.
Gets or sets a boolean indicating whether or not this specific feature should be drawn.
Gets or Sets a ScaleModes enumeration that determines whether non-coordinate drawing
properties like width or size use pixels or world coordinates. If pixels are
specified, a back transform is used to approximate pixel sizes.
Gets or sets the smoothing mode to use that controls advanced features like
anti-aliasing. By default this is set to antialias.
Gets or sets the graphics unit to work with.
Creates a new instance of FeatureSymbolizerEventArgs
Gets or sets the feature symbolizer for this event
This contains the shared symbolizer properties between Points, Lines and Polygons.
This contains the set of symbology members that are shared
between points, lines and polygons.
Gets or sets the color of the brush used to fill the shape.
Setting this will change the brush to a new SolidBrush.
Gets or sets the brush used to fill the shape.
Gets or sets whether or not to use a texture when drawing these lines. By default, this either
checks the DefaultLineProvider or else it is false.
Gets or sets a string name to help identify this Symbolizer
Gets or sets a float value from 0 to 1 where 0 is completely transparent
and 1 is completely solid. Setting an alpha of a specific feature, like
FillColor, to something less than 255 will control that feature's transparency
without affecting the others. The final transparency of the feature will
be that alpha multiplied by this value and rounded to the nearest byte.
Gets or sets the string TextureFile to define the fill texture
Gets or sets the actual bitmap to use for the texture.
Gets or Sets a ScaleModes enumeration that determines whether non-coordinate drawing
properties like width or size use pixels or world coordinates. If pixels are
specified, a back transform is used to approximate pixel sizes.
Gets or sets the smoothing mode to use that controls advanced features like
anti-aliasing. By default this is set to antialias.
This constructor takes on some default values, and assumes that it
has no other underlying symblizer to reference.
Draws a basic symbol to the specified rectangle
The graphics surface to draw on
The target to draw the symbol to
Occurs in response to the legend symbol being painted
The Graphics surface to draw on
The box to draw to
Gets or sets a boolean indicating whether or not this specific feature should be drawn.
Gets or sets the solid color to be used for filling the symbol.
This will also change the FillBrush to a solid brush of the specified color.
Gets or sets the Brush to be used when filling this point.
Setting this value will also change the FillColor property, but only if
the brush is a SolidBrush.
Gets or sets whether to use the specified TextureImage during drawing
Gets or sets a string name to help identify this Symbolizer
Gets or sets a float value from 0 to 1 where 0 is completely transparent
and 1 is completely solid. Setting an alpha of a specific feature, like
FillColor, to something less than 255 will control that feature's transparency
without affecting the others. The final transparency of the feature will
be that alpha multiplied by this value and rounded to the nearest byte.
Gets or Sets a ScaleModes enumeration that determines whether non-coordinate drawing
properties like width or size use pixels or world coordinates. If pixels are
specified, a back transform is used to approximate pixel sizes.
Gets or sets the smoothing mode to use that controls advanced features like
anti-aliasing. By default this is set to antialias.
Gets or sets the string TextureFile to define the fill texture
Gets or sets the actual bitmap to use for the texture.
Add, remove and clear methods don't work on all the categorical sub-filters, but rather only on the
most immediate.
Categories
Chunks
Selected or unselected
Visible or not
IIndexSelection
Clears the selection
Adds a range of indices all at once.
The indices to add
Removes a set of indices all at once
Gets the integer count of the members in the collection
IndexSelection
Adds all of the specified index values to the selection
The indices to add
Add REgion
Attempts to remove all the members from the collection. If
one of the specified indices is outside the range of possible
values, this returns false, even if others were successfully removed.
This will also return false if none of the states were changed.
The indices to remove
Returns a new featureset based on the features in this collection
Creates a new instance of IndexSelection
Calculates the envelope of this collection
Selection Mode controls how envelopes are treated when working with geometries.
Gets or sets whether this should work as "Selected" indices (true) or
"UnSelected" indices (false).
Gets or sets the handler to use for progress messages during selection.
Setting this to a specific category will only allow selection by
region to affect the features that are within the specified category.
This class cycles through the members
Creates a new instance of IndexSelectionEnumerator
IntervalMethods
A numeric value fixes a constant separation between breaks.
The breaks are set to being evenly spaced.
Breaks are calculated according to the following restrictions:
1) break sizes follow a geometric progression
2) the number of breaks is specified
3) the sum of squares of the counts per bin is minimized
Breaks start equally placed, but can be positioned manually instead.
Jenks natural breaks looks for "clumping" in the data and
attempts to group according to the clumps.
The breaks are positioned to ensure close to equal quantities
in each break.
Not sure how this works yet. Something to do with standard deviations.
IntervalSnapMethods
Snap the chosen values to the nearest data value.
No snapping at all is used
Snaps to the nearest integer value.
Disregards scale, and preserves a fixed number of figures.
IPointSchemeCategory
Gets or sets the symbolizer for this category
Gets or sets the symbolizer to use to draw selected features from this category.
A layer with drawing characteristics for LineStrings
Gets or sets the drawing characteristics to use for this layer.
Unable to assign a non-point symbolizer to a PointLayer
Gets or sets the LineSymbolizer to use for selected properties.
Gets or sets the categorical scheme for categorical drawing.
IPointScheme
Gets the list of scheme categories belonging to this scheme.
ILineSymbolizer
Draws the line that is needed to show this lines legend symbol.
The graphics device to draw to.
The rectangle that is used to calculate the lines position and size.
Sequentially draws all of the strokes using the specified graphics path.
The graphics device to draw to
The graphics path that describes the pathway to draw
The double scale width that when multiplied by the width gives a measure in pixels
Gets the color of the top-most stroke.
Sets the fill color fo the top-most stroke, and forces the top-most stroke
to be a type of stroke that can accept a fill color if necessary.
This gets the largest width of all the strokes.
Setting this will change the width of all the strokes to the specified width, and is not recommended
if you are using thin lines drawn over thicker lines.
This forces the width to exist across all the strokes in this symbolizer.
Gets or sets the list of strokes that will be combined to make up a single drawing pass for this line.
PointSchemeCategory
Creates a new instance of PointSchemeCategory
Creates a new set of cartographic lines that together form a line with a border. Since a compound
pen is used, it is possible to use this to create a transparent line with just two border parts.
The selection symbolizer will be dark cyan bordering light cyan, but use the same dash and cap
patterns.
The fill color for the line
The border color of the line
The width of the entire line
The dash pattern to use
The style of the start and end caps
Creates a new line category with the specified color and width
The color of the unselected line
The width of both the selected and unselected lines.
Creates a new instanec of a default point scheme category where the geographic symbol size has been
scaled to the specified extent.
The geographic extent that is 100 times wider than the geographic size of the points.
Creates a new category based on a symbolizer, and uses the same symbolizer, but with a fill and border color of light cyan
for the selection symbolizer
The symbolizer to use in order to create a category
This gets a single color that attempts to represent the specified
category. For polygons, for example, this is the fill color (or central fill color)
of the top pattern. If an image is being used, the color will be gray.
The System.Color that can be used as an approximation to represent this category.
Gets the legend symbol size of the symbolizer for this category.
Controls what happens in the legend when this item is instructed to draw a symbol.
Sets the specified color as the color for the top most stroke.
The color to apply
Gets or sets the symbolizer for this category
Gets or sets the symbolizer to use to draw selected features from this category.
This is simply an alias to make things a tad (though not much) more understandable
Instructs the parent layer to select features matching the specified expression.
The object sender.
The event args.
Instructs the parent layer to select features matching the specified expression.
The object sender where features were selected.
The event args describing which expression was used.
Ensures that newly added categories can navigate to higher legend items.
The newly added legend item.
Overrides the default OnCopy behavior to remove the duplicte SelectFeatures event handler
Cycles through all the categories and resets the parent item.
Gets or sets the parent line scheme
Occurs when a category indicates that its filter expression should be used
to select its members.
Occurs when the deselect features context menu is clicked.
LineFeatureTypeException
Creates a new instance of LineFeatureTypeException
Creates a new instance of LineFeatureTypeException
The custom error message for this exception
A layer with drawing characteristics for LineStrings
Constructor
Thrown if a non-line featureSet is supplied
Constructor that also shows progress
A featureset that contains lines
An IProgressHandler for receiving status messages
Thrown if a non-line featureSet is supplied
Constructor that also shows progress.
A featureset that contains lines.
An IContainer that the line layer should be created in.
An IProgressHandler for receiving status messages.
Thrown if a non-line featureSet is supplied.
Draws some section of the extent to the specified graphics object.
The graphics object to draw to.
The projection interface that specifies how to transform geographic coordinates to an image.
Gets or sets the line symbolizer to use for the selection
[TypeConverter(typeof(GeneralTypeConverter))]
[Editor(typeof(LineSymbolizerEditor), typeof(UITypeEditor))]
Gets or sets the FeatureSymbolizerOld determining the shared properties. This is actually still the PointSymbolizerOld
and should not be used directly on Polygons or Lines.
[TypeConverter(typeof(GeneralTypeConverter))]
[Editor(typeof(LineSymbolizerEditor), typeof(UITypeEditor))]
Unable to assign a non-point symbolizer to a PointLayer
Gets or sets the line scheme subdividing the layer into categories.
[TypeConverter(typeof(GeneralTypeConverter))]
[Editor(typeof(LineSchemePropertyGridEditor), typeof(UITypeEditor))]
PointScheme
Creates a new instance of PointScheme with no categories added to the list yet.
Draws the regular symbolizer for the specified cateogry to the specified graphics
surface in the specified bounding rectangle.
The integer index of the feature to draw.
The Graphics object to draw to
The rectangular bounds to draw in
Reduces the index value of the specified category by 1 by
exchaning it with the category before it. If there is no
category before it, then this does nothing.
The category to decrease the index of
Re-orders the specified member by attempting to exchange it with the next higher
index category. If there is no higher index, this does nothing.
The category to increase the index of
Adds a new scheme, assuming that the new scheme is the correct type.
The category to add
Removes the specified category
The category to insert
Inserts the category at the specified index
The integer index where the category should be inserted
The category to insert
Suspends the category events
Resumes the category events
Clears the categories
Uses the settings on this scheme to create a random category.
A new IFeatureCategory
If possible, use the template to control the colors. Otherwise, just use the default
settings for creating "unbounded" colors.
The integer count.
The List of colors
Calculates the unique colors as a scheme
The featureset with the data Table definition
The unique field
Returns the line scheme as a feature categories collection
Creates the category using a random fill color
The base color to use for creating the category
Creates the size
A new polygon category
Handle the event un-wiring and scheme update for the old categories
The category collection to update.
Handle the event wiring and scheme update for the new categories.
The category collection to update
Gets or sets the symbolic categories as a valid IPointSchemeCategoryCollection.
[TypeConverter(typeof(CategoryCollectionConverter))]
Gets the number of categories in this scheme
LineSymbolizer
Creates a new instance of LineSymbolizer
Creates a new set of cartographic lines that together form a line with a border. Since a compound
pen is used, it is possible to use this to create a transparent line with just two border parts.
The fill color for the line
The border color of the line
The width of the entire line
The dash pattern to use
The style of the start and end caps
Creates a new set of cartographic lines that together form a line with a border. Since a compound
pen is used, it is possible to use this to create a transparent line with just two border parts.
The fill color for the line
The border color of the line
The width of the entire line
The dash pattern to use
The style of the start cap
The style of the end cap
Creates a new instance of a LineSymbolizer using the various strokes to form a
composit symbol.
Creates a new instance of LineSymbolizer for handling selections.
Boolean, true if this should be symbolized like a selected line.
Creates a new LineSymbolizer with a single layer with the specified color and width.
The color
The line width
Creates a line symbolizer that has a width that is scaled in proportion to the specified envelope as 1/100th of the
width of the envelope.
Draws a line instead of a rectangle.
The graphics device to draw to.
The rectangle that is used to calculate the lines position and size.
Draws the line that is needed to show this lines legend symbol.
The graphics device to draw to.
The rectangle that is used to calculate the lines position and size.
Sequentially draws all of the strokes using the specified graphics path.
The graphics device to draw to.
The graphics path that describes the pathway to draw
The double scale width that when multiplied by the width gives a measure in pixels
Gets the color of the top-most stroke.
Sets the fill color fo the top-most stroke, and forces the top-most stroke
to be a type of stroke that can accept a fill color if necessary.
Gets the Size that is needed to show this line in legend with max. 2 decorations.
This gets the largest width of all the strokes.
Setting this will change the width of all the strokes to the specified width, and is not recommended
if you are using thin lines drawn over thicker lines.
This keeps the ratio of the widths the same, but scales the width up for
all the strokes.
Sets the outline, assuming that the symbolizer either supports outlines, or
else by using a second symbol layer.
The color of the outline
The width of the outline in pixels
Gets or sets the list of strokes, which define how the drawing pen should behave.
[Editor(typeof(StrokesEditor), typeof(UITypeEditor))]
[TypeConverter(typeof(GeneralTypeConverter))]
LineSymbolizerEventArgs
Creates a new instance of LineSymbolizerEventArgs
Gets or sets the Symbolizer
SimpleStroke
Because we plan on making these XML serializable, the stroke allows us to open from
a serialized situation without having to know in advance what kind of stroke we
actually have. The main idea is to allow something like:
Stroke myStroke = new Stroke();
myStroke.FromXml(myStream);
Pen p = myStroke.ToPen();
This allows loading, saving and creating pens from the sub-types without ever
knowing exactly what they are. All the basic subtypes can be obtained simply
by casting this stroke into the appropriate interface.
IStroke
This is an optional expression that allows drawing to the specified GraphicsPath.
Overriding this allows for unconventional behavior to be included, such as
specifying marker decorations, rather than simply returning a pen. A pen
is also returned publicly for convenience.
The Graphics device to draw to
the GraphicsPath to draw
This is 1 for symbolic drawing, but could be
any number for geographic drawing.
Casts this stroke to the appropriate pen
Gets a color to represent this line. If the stroke doesn't work as a color,
then this color will be gray.
Sets the color of this stroke to the specified color if possible.
The color to assign to this color.
Gets the stroke style for this stroke
Gets a color to represent this line. If the stroke doesn't work as a color,
then this color will be gray.
Sets the color of this stroke to the specified color if possible.
The color to assign to this color.
This is an optional expression that allows drawing to the specified GraphicsPath.
Overriding this allows for unconventional behavior to be included, such as
specifying marker decorations, rather than simply returning a pen. A pen
is also returned publicly for convenience.
The Graphics device to draw to
the GraphicsPath to draw
This is 1 for symbolic drawing, but could be
any number for geographic drawing.
Uses the properties specified in this class to generate a pen.
Defines this stroke as a new kind of stroke.
Gets the stroke style of the inner stroke
ISimpleStroke
Gets or sets the color for this drawing layer
Gets or sets the DashStyle for this stroke. (Custom is just solid for simple strokes)
gets or sets the opacity of the color. 1 is fully opaque while 0 is fully transparent.
Gets or sets the width of this line. In geographic ScaleMode,
this width is the actual geographic width of the line. In Symbolic scale mode
this is the width of the line in pixels.
Creates a new instance of SimpleStroke
Sets the width of the line as part of the constructor
The double width of the line to set
Creates a new simple stroke with the specified color
The color to use for the stroke
Creates a new simple stroke with the specified width and color
Gets a color to represent this line. If the stroke doesn't work as a color,
then this color will be gray.
Sets the color of this stroke to the specified color if possible.
The color to assign to this color.
Creates a system drawing pen that has all of the symbolic information
necessary for this stroke.
The base width. In symbolic drawing this is 1, but in
geographic drawing, this will be a number representing the result of a
transform from projToPixel width.
Handles randomization of simple stroke content
The random generator to use for randomizing characteristics.
Gets or sets the color for this drawing layer
Gets or sets the dash style
gets or sets the opacity of the color. 1 is fully opaque while 0 is fully transparent.
Gets or sets the width of this line relative to the
width passed in.
ICartographicStroke
Draws the line with max. 2 decorations. Otherwise the legend line might show only decorations.
Gets the width and height that is needed to draw this stroke with max. 2 decorations.
Gets or sets the OGC line characteristic that controls how connected segments
are drawn where they come together.
Gets or sets an array of floating point values ranging from 0 to 1 that
indicate the start and end point for where the line should draw.
gets or sets the DashCap for both the start and end caps of the dashes
Gets or sets the DashPattern as an array of floating point values from 0 to 1
Gets or sets the line decoration that describes symbols that should
be drawn along the line as decoration.
Gets or sets the line cap for both the start and end of the line
Gets or sets the line cap for both the start and end of the line
This is a cached version of the horizontal pattern that should appear in the custom dash control.
This is only used if DashStyle is set to custom, and only controls the pattern control,
and does not directly affect the drawing pen.
This is a cached version of the vertical pattern that should appear in the custom dash control.
This is only used if DashStyle is set to custom, and only controls the pattern control,
and does not directly affect the drawing pen.
Gets or sets the floating poing offset (in pixels) for the line to be drawn to the left of
the original line. (Internally, this will modify the width and compound array for the
actual pen being used, as Pens do not support an offset property).
Creates a new instance of CartographicStroke
Getnerates a cartographic stroke of the specified color
Creates a pen for drawing the non-decorative portion of the line.
The base width in pixels that is equivalent to a width of 1
A new Pen
Draws the line with max. 2 decorations. Otherwise the legend line might show only decorations.
Draws the actual path, overriding the base behavior to include markers.
Gets the width and height that is needed to draw this stroke with max. 2 decorations.
Handles the randomization of the cartographic properties of this stroke.
The random class that generates the random numbers
Gets or sets an array of floating point values ranging from 0 to 1 that
indicate the start and end point for where the line should draw.
gets or sets the DashCap for both the start and end caps of the dashes
Gets or sets the DashPattern as an array of floating point values from 0 to 1
Gets or sets the line decoration that describes symbols that should
be drawn along the line as decoration.
Gets or sets the line cap for both the start and end of the line
Gets or sets the OGC line characteristic that controls how connected segments
are drawn where they come together.
Gets or sets the line cap for both the start and end of the line
This is a cached version of the horizontal pattern that should appear in the custom dash control.
This is only used if DashStyle is set to custom, and only controls the pattern control,
and does not directly affect the drawing pen.
This is a cached version of the vertical pattern that should appear in the custom dash control.
This is only used if DashStyle is set to custom, and only controls the pattern control,
and does not directly affect the drawing pen.
Gets or sets the floating poing offset (in pixels) for the line to be drawn to the left of
the original line. (Internally, this will modify the width and compound array for the
actual pen being used, as Pens do not support an offset property).
LineDecoration
Given the points on this line decoration, this will cycle through and handle
the drawing as dictated by this decoration.
The double scale width for controling markers
Gets the size that is needed to draw this decoration with max. 2 symbols.
Gets or sets the decorative symbol
Gets or sets a boolean that, if true, flips the first symbol in relation
to the direction of the line.
Gets or sets a boolean that, if true, reverses all of the symbols
Gets or sets a boolean that, if true, will cause the symbol to
be rotated according to the direction of the line. Arrows
at the ends, for instance, will point along the direction of
the line, regardless of the direction of the line.
Gets or sets the number of symbols that should be drawn on each
line. (not each segment).
Gets or sets the percentual position between line start and end at which the single decoration gets drawn.
Gets or sets the offset distance measured to the left of the line in pixels.
LineDecoration
Creates a new instance of LineDecoration
Given the points on this line decoration, this will cycle through and handle
the drawing as dictated by this decoration.
The double scale width for controling markers
Draws the given symbol at the position calculated from locationPoint and _offset.
Graphics-object needed for drawing.
StartPoint of the line locationPoint belongs to. Needed for caluclating the angle and the offset of the symbol.
StopPoint of the line locationPoint belongs to. Needed for caluclating the angle and the offset of the symbol.
Position where the center of the image should be drawn.
Indicates whether the symbol should be flipped.
Image that gets drawn.
Matrix used for rotation.
Flips the given angle by 180 degree.
Angle, that should be flipped.
Gets the angle of the line between StartPoint and EndPoint taking into account the direction of the line.
StartPoint of the line.
EndPoint of the line.
Angle of the given line.
Gets the size that is needed to draw this decoration with max. 2 symbols.
Gets the length of the line between startpoint and endpoint.
Startpoint of the line.
Endpoint of the line.
Length of the line.
Gets the length of all the lines between startpoint and endpoint.
Points of the lines we want to measure.
Startpoint of measuring.
Endpoint of measuring.
Combined length of all lines between startpoint and endpoint.
Calculates the offset needed to show the decoration spot of each line at the same position as it is shown for the horizontal line in the linesymbol editor window.
Startpoint of the line the decoration spot belongs to.
Endpoint of the line the decoration spot belongs to.
Offset that must be added to the decoration spots locationPoint for it to be drawn with the given _offset.
Get the decoration spots that result from the given line and segLength. The decoration spot needed for the endpoint is not included.
Point-Array that contains the points of the line.
Distance between two decoration spots.
Index of the first point that belongs to the line.
Index of the last point that belongs to the line.
List of decoration spots that result from the given points and segLength.
Handles the creation of random content for the LineDecoration.
The Random class that generates random numbers
Gets or sets the decorative symbol.
Gets or sets a boolean that, if true, flips the first symbol in relation
to the direction of the line.
Gets or sets a boolean that, if true, reverses all of the symbols.
Gets or sets a boolean that, if true, will cause the symbol to
be rotated according to the direction of the line. Arrows
at the ends, for instance, will point along the direction of
the line, regardless of the direction of the line.
Gets or sets the number of symbols that should be drawn on each
line. (not each segment).
Gets or sets the percentual position between line start and end at which the single decoration gets drawn.
Gets or sets the offset distance measured to the left of the line in pixels.
StrokeTypes
The most complex form, containing a linear pattern that can have a hash as well as decorations
This is not directly supported by DotSpatial, but is in fact, some new type that
will have to be returned.
Draws only the marker symbols where the line occurs, and uses the dash pattern to control placement.
The simplest line, offering the easiest interface to use
A hash line
Uses a picture to generate a texture
ModifySelectionModes
Appends the newly selected features to the existing selection
Subtracts the newly selected features from the existing features.
Clears the current selection and selects the new features
Selects the new features only from the existing selection
IPointSchemeCategory
Gets or sets the symbolizer for this category
Gets or sets the symbolizer to use to draw selected features from this category.
This is a specialized FeatureLayer that specifically handles point drawing
Gets or sets the FeatureSymbolizerOld determining the shared properties. This is actually still the PointSymbolizerOld
and should not be used directly on Polygons or Lines.
Unable to assign a non-point symbolizer to a PointLayer
Gets or sets the pointSymbolizer characteristics to use for the selected features.
Gets the currently applied scheme. Because setting the scheme requires a processor intensive
method, we use the ApplyScheme method for assigning a new scheme. This allows access
to editing the members of an existing scheme directly, however.
IPointScheme
Gets the list of scheme categories belonging to this scheme.
IPointSymbolizer
Draws the symbol to the specified graphics object.
Multiplies all the linear measurements, like width, height, and offset values by the specified value.
The double precision value to multiply all of the values against.
Gets the maximum size for all of the layers, modified by the offsets. This, in essence, represents the bounds
for the entire symbol.
This assumes that you wish to simply scale the various sizes.
It will adjust all of the sizes so that the maximum size is
the same as the specified size.
The Size2D of the new maximum size
Gets the color of the top-most symbol
The color of the top-most symbol
Sets the color of the top-most layer symbol
The color to assign to the top-most layer.
Gets or sets the list of symbols.
PointSchemeCategory
Creates a new instance of PointSchemeCategory
Creates a new instanec of a default point scheme category where the geographic symbol size has been
scaled to the specified extent.
The geographic extent that is 100 times wider than the geographic size of the points.
Creates a new category based on a symbolizer, and uses the same symbolizer, but with a fill and border color of light cyan
for the selection symbolizer
The symbolizer to use in order to create a category
Creates a simple point category where the symbolizer is based on the simple characteristics.
The selection symbolizer has the same shape and size, but will be colored cyan.
The color of the regular symbolizer
The shape of the regular symbolizer
the size of the regular symbolizer
Creates a new Point Category based on the specified character
The character to use for the symbol
The font family name to use as the font
The color of the character
The size of the symbol
Creates a category where the picture is used for the symbol, and a selected
symbol is created as the same symbol but with a cyan border.
The image to use
The size of the symbol
Creates a category from the single symbol specified. If the symbol is colorable,
the color of the selection symbol will be duplicated, but set to cyan.
Creates a new Point Category from the list of symbols
This gets a single color that attempts to represent the specified
category. For polygons, for example, this is the fill color (or central fill color)
of the top pattern. If an image is being used, the color will be gray.
The System.Color that can be used as an approximation to represent this category.
Sets the Color of the top symbol in the symbols.
The color to set the point.
Gets the legend symbol size of the symbolizer for this category
Gets or sets the symbolizer for this category
Gets or sets the symbolizer to use to draw selected features from this category.
This is simply an alias to make things a tad (though not much) more understandable
Instructs the parent layer to select features matching the specified expression.
The object sender where features were selected.
The event args describing which expression was used.
Instructs the parent layer to select features matching the specified expression.
The object sender where features were selected.
The event args describing which expression was used.
Ensures that newly added categories can navigate to higher legend items.
The newly added legend item.
Ensures that items are disconnected from parent items when removed from the collection.
Overrides the OnCopy method to remove the SelectFeatures handler on the copy
Cycles through all the categories and resets the parent item.
Gets or sets the parent scheme.
Occurs when a category indicates that its filter expression should be used
to select its members.
Occurs when the deselect features context menu is clicked.
PointFeatureException
Creates a new instance of PointFeatureTypeException
Creates a new instance of PointFeatureTypeException, but with a custom error message
The string error message to include in the exception
This is a specialized FeatureLayer that specifically handles point drawing
This creates a new layer with an empty dataset configured to the point feature type.
Creates a new instance of a PointLayer without sending any status messages
The IFeatureLayer of data values to turn into a graphical PointLayer
Thrown if the featureSet FeatureType is not point or multi-point
Creates a new instance of a PointLayer for storing and drawing points
Any implentation of an IFeatureLayer
A valid implementation of the IProgressHandler interface.
Thrown if the featureSet FeatureType is not point or multi-point
Creates a new instance of a PointLayer for storing and drawing points.
Any implementation of an IFeatureLayer.
An IContainer to contain this layer.
A valid implementation of the IProgressHandler interface.
Thrown if the featureSet FeatureType is
not point or multi-point.
Attempts to create a new PointLayer using the specified file. If the filetype is not
does not generate a point layer, an exception will be thrown.
A string fileName to create a point layer for.
Any valid implementation of IProgressHandler for receiving progress messages
A PointLayer created from the specified fileName.
Attempts to create a new PointLayer using the specified file. If the filetype is not
does not generate a point layer, an exception will be thrown.
A string fileName to create a point layer for.
A PointLayer created from the specified fileName.
Gets or sets the pointSymbolizer characteristics to use for the selected features.
Gets or sets the symbolic characteristics for this layer.
Gets the currently applied scheme. Because setting the scheme requires a processor intensive
method, we use the ApplyScheme method for assigning a new scheme. This allows access
to editing the members of an existing scheme directly, however.
PointScheme
Creates a new instance of PointScheme with no categories added to the list yet.
creates a new instance of the PointScheme, but assigns the specified symbolizer
as the symbolizer to use on a single default category.
The geographic point size for the default will be 1/100th the specified extent
Draws the regular symbolizer for the specified cateogry to the specified graphics
surface in the specified bounding rectangle.
The integer index of the feature to draw.
The Graphics object to draw to
The rectangular bounds to draw in
Adds a new scheme, assuming that the new scheme is the correct type.
The category to add
Reduces the index value of the specified category by 1 by
exchaning it with the category before it. If there is no
category before it, then this does nothing.
The category to decrease the index of
Re-orders the specified member by attempting to exchange it with the next higher
index category. If there is no higher index, this does nothing.
The category to increase the index of
Removes the specified category
The category to insert
Inserts the category at the specified index
The integer index where the category should be inserted
The category to insert
Suspends the category events
Resumes the category events
Clears the categories
Uses the settings on this scheme to create a random category.
A new IFeatureCategory
If possible, use the template to control the colors. Otherwise, just use the default
settings for creating "unbounded" colors.
The integer count.
The List of colors
Calculates the unique colors as a scheme
The featureset with the data Table definition
The unique field
Gets the point categories cast as FeatureCategories. This is enumerable,
but should be thought of as a copy of the original, not the original itself.
Creates the category using a random fill color
The base color to use for creating the category
The double size of the larger dimension of the point.
A new polygon category
Handle the event un-wiring and scheme update for the old categories
The category collection to update.
Handle the event wiring and scheme update for the new categories.
The category collection to update
Gets or sets the symbolic categories as a valid IPointSchemeCategoryCollection.
[TypeConverter(typeof(CategoryCollectionConverter))]
[Editor(typeof(PointCategoryCollectionEditor), typeof(UITypeEditor))]
Gets the number of categories in this scheme
PointSchemeFactory
Creates a new instance of PointSchemeFactory where the data Table is specified.
This causes the creation of a PointScheme
Gets or sets the template symbol to use. If using a color gradient, the shape and size will remain the same.
If using a size gradient, the color and shape will remain the same.
Gets or sets the data Table that provides necessary information about the attributes for unique values to
be calculated
Gets or sets the string classification field to use
Gets or sets the string field to use for normalization.
Gets or sets the number of categories that will be used for classification schemes that don't
come pre-configured with a given number of categories.
PointSymbolizer
Creates a new instance of PointSymbolizer
Generates a new symbolizer with only one symbol.
The symbol to use for creating this symbolizer
Builds the new list of symbols from the symbols in the preset list or array of symbols.
Creates a point symbolizer with one member, and that member is constructed
based on the values specified.
Creates a point symbolizer with one memberw, and that member is constructed
from the specified image.
The image to use as a point symbol
The desired output size of the larger dimension of the image.
Creates a new point symbolizer that has a character symbol based on the specified characteristics.
The character to draw
The font family to use for rendering the font
The font color
The size of the symbol
Creates a new PointSymbolizer
Sets the symbol type to geographic and generates a size that is 1/100 the width of the specified extents.
Sets the outline, assuming that the symbolizer either supports outlines, or
else by using a second symbol layer.
The color of the outline
The width of the outline in pixels
Returns the encapsulating size when considering all of the symbol layers that make up this symbolizer.
A Size2D
This assumes that you wish to simply scale the various sizes.
It will adjust all of the sizes so that the maximum size is
the same as the specified size.
The Size2D of the new maximum size
Returns the color of the top-most layer symbol
Sets the color of the top-most layer symbol
The color to assign to the top-most layer.
Draws the specified value
The Graphics object to draw to
The Rectangle defining the bounds to draw in
Draws the point symbol to the specified graphics object by cycling through each of the layers and
drawing the content. This assumes that the graphics object has been translated to the specified point.
Graphics object that is used for drawing.
Scale size represents the constant to multiply to the geographic measures in order to turn them into pixel coordinates
Multiplies all the linear measurements, like width, height, and offset values by the specified value.
The double precision value to multiply all of the values against.
This controls randomly creating a single random symbol from the symbol types, and randomizing it.
Gets or sets the set of layered symbols. The symbol with the highest index is drawn on top.
PointSymbolizerEventArgs
Creates a new instance of PointSymbolizerEventArgs
Gets the symbolizer cast as an IPointSymbolizer
CharacterSubsets
Basic Latin
Latin-1 Supplement
Latin Extended-A
Latin Extended-B
IPA Extensions
Spacing Modifier Letters
Combining Diacritical Marks
Greek and Coptic
Cyrillic
Armenian
Hebrew
Arabic
Devanagari
Bengali
Gumukhi
Gujarati
Oriya
Tamil
Teluga
Kanada
Malayalam
Thai
Lao
Tibetan
Georgian
Hangul Jamo 4352
Latin Extended Additional
Greek Extended
General Punctuation
Superscripts and Subscripts
Currency Symbols
Combining Diacritical Marks for Symbols
Letterlike Symbols
Number Forms
Arrows
Mathematical Operators
Miscellaneous Technical
Control Pictures
Optical Character Recognition
Enclosed Alphanumerics
Box Drawing
Block Elements
Geometric Shapes
Miscellaneous Symbols
Dingbats
CJK Symbols and Punctuation
Hiragana
Katakana
Bopomofo
Hangul Compatibility
Kanbun
Enclosed CJK Letters and Months
CJK Compatibility
CJK Unified Ideographs
Hangul Syllables
Private Use Area
CJK Compatibility Ideographs
Alphabetic Presentation Forms
Arabic Presentation Forms
Combining Half Marks
CJK Compatibility Forms
Small Form Variants
Arabic Presentation Forms-B
Halfwidth and fullwidth Forms
Specials
CharacterSymbol
A point symbolizer, is comprized of a set of symbols drawn one on top of the other. This represents the base class
for one of those symbols. The specialized type, like CharacterSymbol, SimpleSymbol, and PictureSymbol.
ISymbol
Only copies the shared placement aspects (Size, Offset, Angle) from the specified symbol.
The symbol to copy values from.
Takes into account the size, angle, and offset to calculate a rectangular bounding size that completely
contains the current symbol.
A SizeD representing a size that contains the offset, rotated symbol.
Draws this symbol to the graphics object given the symbolizer that specifies content
across the entire set of scales.
The graphics object should be adjusted so that (0, 0) is the center of the symbol.
If this should draw in pixels, this should be 1. Otherwise, this should be
the constant that you multiply against so that drawing using geographic units will draw in pixel units.
Multiplies all of the linear measurements found in this Symbol by the specified value.
This is especially useful for changing units.
The double precision floating point value to scale by.
Modifies this symbol in a way that is appropriate for indicating a selected symbol.
This could mean drawing a cyan outline, or changing the color to cyan.
Gets a color to represent this point. If the point is using an image,
then this color will be gray.
Sets the primary color of this symbol to the specified color if possible
The Color to assign
Gets or sets the double precision floating point that controls the angle in degrees counter clockwise.
Gets or sets the 2D offset for this particular symbol
Gets or sets the size
Gets the symbol type for this symbol.
Creates a new instance of Symbol
This creates a wrapper class encapsulates one of the available subclasses for
symbol, enumerating the different options.
The type to use for this symbol.
Gets a color to represent this point. If the point is using an image,
then this color will be gray.
Sets the primary color of this symbol to the specified color if possible
The Color to assign
Only copies the shared placement aspects (Size, Offset, Angle) from the specified symbol.
The symbol to copy values from.
Draws this symbol to the graphics object given the symbolizer that specifies content
across the entire set of scales.
The graphics object should be adjusted so that (0, 0) is the center of the symbol.
If this should draw in pixels, this should be 1. Otherwise, this should be
the constant that you multiply against so that drawing using geographic units will draw in pixel units.
Calculates a size that would be necessary to contain the entire symbol, taking rotation and
offset into account.
Multiplies all of the linear measurements found in this Symbol by the specified value.
This is especially useful for changing units.
The double precision floating point value to scale by.
Modifies this symbol in a way that is appropriate for indicating a selected symbol.
This could mean drawing a cyan outline, or changing the color to cyan.
Occurs during drawing. The graphics object will already be rotated by the specified angle and
adjusted according to the specified offset. The mask will also be drawn before the point.
An overrideable implementation of randomizing the values for this class.
This can be useful for generating random symbols or else for unit testing.
The random number generator to use.
This occurs when the symbol is being instructed to scale. The linear measurements are all
multiplied by the specified value. This allows for additional behavior to be programmed,
or the original behavior to be overridden or replaced.
The double precision value to scale by.
Gets or sets the double precision floating point that controls the angle in degrees counter clockwise.
Gets or sets the 2D offset for this particular symbol
Gets or sets the size
Gets the symbol type for this symbol.
ICharacterSymbol
Gets or sets the Color
Gets or sets the opacity
Gets the string equivalent of the specified character code.
A string version of the character
Gets the unicode category for this character.
Gets or sets the character that this represents.
Unicode characters consist of 2 bytes. This represents the first byte,
which can be thought of as specifying a typeset.
Gets or sets the byte code for the lower 256 values. This represents the
specific character in a given "typeset" range.
[Editor(typeof(CharacterCodeEditor), typeof(UITypeEditor))]
Gets or sets the string font family name to use for this character set.
[Editor(typeof(FontFamilyNameEditor), typeof(UITypeEditor))]
Gets or sets the font style to use for this character layer.
Creates a new instance of CharacterSymbol
Creates a new instance of CharacterSymbol
The character to use for the symbol
Creates a new instance of CharacterSymbol
The character to use for the symbol
The font family for the character
Creates a new instance of CharacterSymbol
The character to use for the symbol
The font family for the character
The color for the character
Creates a new instance of CharacterSymbol
The character to use for the symbol
The font family for the character
The color for the character
The size for the symbol
Gets the font color of this symbol to represent the color of this symbol
The color of this symbol as a font
Sets the fill color of this symbol to the specified color
The Color
Modifies this symbol in a way that is appropriate for indicating a selected symbol.
This could mean drawing a cyan outline, or changing the color to cyan.
Gets the string equivalent of the specified character code.
A string version of the character
Because there is no easy range calculation supported in dot net
(as compared to GDI32) that I can find, I assume that the
unsupported values will come back as an open box, or at least
identical in glyph form to a known unsupported like Arial 1024.
(Not to be confused with Arial Unicode MS, which has basically
everything.
Overrides the default behavior and attempts to draw the specified symbol
Extends the randomize code to include the character aspects, creating a random character.
However, since most fonts don't support full unicode values, a character from 0 to 255 is
chosen.
The random class generator
Supports serialization even though Colors can't be serialized
Gets the unicode category for this character.
Gets or sets the character that this represents.
Unicode characters consist of 2 bytes. This represents the first byte,
which can be thought of as specifying a typeset.
Gets or sets the byte code for the lower 256 values. This represents the
specific character in a given "typeset" range.
//Editor(typeof(CharacterCodeEditor), typeof(UITypeEditor))
Gets or sets the color
Gets or sets the string font family name to use for this character set.
//Editor(typeof(FontFamilyNameEditor), typeof(UITypeEditor)),
Gets or sets the opacity as a floating point value ranging from 0 to 1, where
0 is fully transparent and 1 is fully opaque. This actually adjusts the alpha of the color value.
Gets or sets the font style to use for this character layer.
IOutlined
Gets or sets the outline color that surrounds this specific symbol.
(this will have the same shape as the symbol, but be larger.
This redefines the Alpha channel of the color to a floating point opacity
that ranges from 0 to 1.
Gets or sets the size of the outline beyond the size of this symbol.
Gets or sets the boolean outline
IOutlinedSymbol
Copies only the use outline, outline width and outline color properties from the specified symbol.
The symbol to copy from.
IPictureSymbol
Gets or sets the image to use when the PictureMode is set to Image
Gets or sets the string fileName, if any, associated with the image file.
Setting this will automatically also load the Image.
Gets or sets the opacity for this image. Setting this will automatically change the image in memory.
ISimpleSymbol
Gets or sets the PointTypes enumeration that describes how to draw the simple symbol.
OutlinedSymbol
Creates a new instance of OutlinedSymbol
Copies only the use outline, outline width and outline color properties from the specified symbol.
The symbol to copy from.
Handles the drawing code, extending it to include some outline content.
Actually handles the rendering of the outline itself.
Occurs during the randomize process and allows future overriding of the process for sub-classes
Provided for XML serialization
Gets or sets the outline color that surrounds this specific symbol.
(this will have the same shape as the symbol, but be larger.
This redefines the Alpha channel of the color to a floating point opacity
that ranges from 0 to 1.
Gets or sets the size of the outline beyond the size of this symbol.
Gets or sets the boolean outline
ImageModes
The icon property should be used for storing image data
The image property should be used for storing image data
PictureSymbol
Creates a new instance of PictureSymbol
Creates a new instance of a PictureSymbol from the specified image
The image to use when creating the symbol
Creates a new instance of a PictureSymbol from the specified image.
The larger dimension from the image will be adjusted to fit the size,
while the smaller dimension will be kept proportional.
The image to use for this symbol
The double size to use for the larger of the two dimensions of the image.
Creates a new instance of a PictureSymbol from the specified icon
The icon to use when creating this symbol
Creates a new PictureSymbol given an existing imageData object.
The imageData object to use.
Disposes the current images
This helps the copy process by preparing the internal variables AFTER memberwiseclone has created this
OnDraw
Graphics object
The double scale Size
We can randomize the opacity
Overrideable functions for handling the basic disposal of image classes in this object.
This is set to true when the dispose method is called.
This will be set to false again if the image is set after that.
Gets or sets the image in 'base64' string format.
This can be used if the image file name is not set.
Gets or sets the image to use when the PictureMode is set to Image
Gets or sets the string image fileName to use
Gets or sets the opacity for this image. Setting this will automatically change the image in memory.
Allows the selection of several pre-defined shapes that have built
in drawing code.
Like a rectangle, but oriented with the points vertically
An rounded elipse. The Size parameter determines the size of the ellipse before rotation.
A hexagon drawn to fit the size specified. Only the smaller dimension is used.
A rectangle fit to the Size before any rotation occurs.
A pentagon drawn to fit the size specified. Only the smaller dimension is used.
A star drawn to fit the size. Only the smaller size dimension is used.
Triangle with the point facing upwards initially.
The default value.
SimpleSymbol
Creates a new instance of SimpleSymbol
Creates a point symbol with the specified color.
The color of the symbol.
Creates a point symbol with the specified color and shape.
The color of the symbol.
The shape of the symbol.
Creates a SimpleSymbol with the specified color, shape and size. The size is used for
both the horizontal and vertical directions.
The color of the symbol.
The shape of the symbol.
The size of the symbol.
Gets the font color of this symbol to represent the color of this symbol
The color of this symbol as a font
Sets the fill color of this symbol to the specified color.
The Color.
Handles the specific drawing for this symbol.
The System.Drawing.Graphics surface to draw with.
A double controling the scaling of the symbol.
Occurs during the randomizing process
Draws a 5 pointed star with the points having twice the radius as the bends.
The GraphicsPath to add the start to
The SizeF size to fit the Start to
Draws a 5 pointed star with the points having twice the radius as the bends.
The Graphics surface to draw on
The Pen to draw the border with
The Brush to use to fill the Star
The SizeF size to fit the Start to
Draws an ellipse on the specified graphics surface.
The GraphicsPath to add this shape to
The size to fit the ellipse into (the ellipse will be centered at 0, 0)
Draws an ellipse on the specified graphics surface.
The graphics surface to draw on
The Pen to use for the border, or null if no border should be drawn
The Brush to use for the fill, or null if no fill should be drawn
The size to fit the ellipse into (the ellipse will be centered at 0, 0)
Draws a regular polygon with equal sides. The first point will be located all the way to the right on the X axis.
Specifies the GraphicsPath surface to draw on
Specifies the SizeF to fit the polygon into
Specifies the integer number of sides that the polygon should have
Draws a regular polygon with equal sides. The first point will be located all the way to the right on the X axis.
Specifies the Graphics surface to draw on
Specifies the Pen to use for the border
Specifies the Brush to use for to fill the shape
Specifies the SizeF to fit the polygon into
Specifies the integer number of sides that the polygon should have
Only provided because XML Serialization doesn't work for colors
Gets or sets the Color
Gets or sets the opacity as a floating point value ranging from 0 to 1, where
0 is fully transparent and 1 is fully opaque. This actually adjusts the alpha of the color value.
Gets or sets the PointTypes enumeration that describes how to draw the simple symbol.
SymbolListEM
Calculates the bounding size for this entire symbol.
SymbolTypes
A symbol based on a character, including special purpose symbolic character sets.
An extended, custom symbol that is not part of the current design.
A symbol based on an image or icon.
A symbol described by a simple geometry, outline and color.
IPointSchemeCategory
Gets or sets the symbolizer for this category
Gets or sets the symbolizer to use to draw selected features from this category.
A layer with drawing characteristics for LineStrings
Gets or sets the symbolizer describing the selection on the default category.
Gets or sets the symbolizer describing the symbolizer on the default category.
Gets or sets the polygon scheme that symbolically breaks down the drawing into symbol categories.
IPointScheme
Gets the list of scheme categories belonging to this scheme.
IPolygonSymbolizer
Gets the color of the top-most pattern, if it is a simple pattern,
or return Color.Empty otherwise
Sets the color, forcing a simple pattern if necessary
Gets the color of the top-most pattern
This gets the largest width of all the strokes of the outlines of all the patterns. Setting this will
forceably adjust the width of all the strokes of the outlines of all the patterns.
Forces the specified width to be the width of every stroke outlining every pattern.
The width to force as the outline width
Gets or sets the method for drawing the lines that make up the borders of this polygon
gets or sets the list of patterns to use for filling polygons.
An interface for a symbolizer specific to polygons.
Gets or sets the border symbolizer
Gets or sets a boolean that determines whether or not the polygon border should be drawn.
GradientPattern
The pattern can act as both the base class for specific types of pattern as well as a wrapper class that allows
for an enumerated constructor that makes it easier to figure out what kinds of patterns can be created.
IPattern
Copies the properties defining the outline from the specified source onto this pattern.
The source pattern to copy outline properties from.
Fills the specified graphics path with the pattern specified by this object
The Graphics device to draw to
The GraphicsPath that describes the closed shape to fill
Draws the borders for this graphics path by sequentially drawing all
the strokes in the border symbolizer
The Graphics device to draw to
The GraphicsPath that describes the outline to draw
The scaleWidth to use for scaling the line width
Gets a color that can be used to represent this pattern. In some cases, a color is not
possible, in which case, this returns Gray.
A single System.Color that can be used to represent this pattern.
Sets the color that will attempt to be applied to the top pattern. If the pattern is
not colorable, this does nothing.
Gets or sets the rectangular bounds. This controls how the gradient is drawn, and
should be set to the envelope of the entire layer being drawn
Gets or sets the line symbolizer that is the outline for this pattern.
Gets the pattern type of this pattern.
Gets or sets a boolean indicating whether or not the pattern should use the outline symbolizer.
Creates a new instance of Pattern
Creates a new pattern with the specified type
The subclass of pattern to use as the internal pattern
Gets a color that can be used to represent this pattern. In some cases, a color is not
possible, in which case, this returns Gray.
A single System.Color that can be used to represent this pattern.
Sets the color that will attempt to be applied to the top pattern. If the pattern is
not colorable, this does nothing.
Copies the properties defining the outline from the specified source onto this pattern.
The source pattern to copy outline properties from.
Fills the specified graphics path with the pattern specified by this object
The Graphics device to draw to
The GraphicsPath that describes the closed shape to fill
Draws the borders for this graphics path by sequentially drawing all
the strokes in the border symbolizer
The Graphics device to draw to
The GraphicsPath that describes the outline to draw
The scaleWidth to use for scaling the line width
Occurs when the item is changed
This is not currently used, but technically should cause the list of patterns to remove this pattern.
Fires the item changed event
Not Used
Gets or sets the rectangular bounds. This controls how the gradient is drawn, and
should be set to the envelope of the entire layer being drawn
Gets or sets the ILineSymbolizer that describes the outline symbology for this pattern.
[TypeConverter(typeof(GeneralTypeConverter))]
[Editor(typeof(LineSymbolizerEditor), typeof(UITypeEditor))]
Gets or sets the pattern type. Setting this
Gets or sets a boolean indicating whether or not the pattern should use the outline symbolizer.
IGradientPath
Gets or sets the angle for the gradient pattern.
Gets or sets an array of colors that match the corresponding positions. The length of
colors and positions should be the same length.
The positions as floating point values from 0 to 1 that represent the corresponding location
in the gradient brush pattern.
Gets or sets the gradient type
Creates a new instance of GradientPattern
Creates a new instance of a Gradient Pattern using the specified colors
Creates a new instance of a Gradient Pattern using the specified colors and angle
The start color
The end color
The direction of the gradient, measured in degrees clockwise from the x-axis
Creates a new instance of a Gradient Pattern using the specified colors and angle
The start color
The end color
The direction of the gradient, measured in degrees clockwise from the x-axis
Controls how the gradient is drawn
Gets a color that can be used to represent this pattern. In some cases, a color is not
possible, in which case, this returns Gray.
A single System.Color that can be used to represent this pattern.
Sets the fill color, keeping the approximate gradiant RGB changes the same, but adjusting
the mean color to the specifeid color.
The mean color to apply.
Handles the drawing code for linear gradient paths.
Gets or sets the angle for the gradient pattern.
Gets or sets the end color
Gets or sets the start color
Gets or sets the gradient type
GradientTypes
Draws the gradient with the start color for the center of the circle
and the end color for the surround color
Draws the gradient with the start color for the center of the circle
and the end color for the color at the contour.
Draws the gradient in a line with a specified direction
Draws the gradient in a rectangular path with the start color
at the center and the end color for the surround color
HatchPattern
IHatchPattern
Gets or sets the hatch style
Gets or sets the fore color of the hatch pattern
Sets the opacity of this simple pattern by modifying the alpha channel of the fill color.
Gets or sets the background color of the hatch pattern
Sets the opacity of this simple pattern by modifying the alpha channel of the fill color.
Creates a new instance of HatchPattern
Creates a new HatchPattern with the specified image
The hatch style to use
the forecolor to use
the background color to use
Instructs the drawing code to fill the specified path with the specified pattern
The Graphics device to draw to
The GraphicsPath to fill
Gets the forecolor
Sets the foreColor to the specified color
Gets or sets the hatch style
Gets or sets the fore color of the hatch pattern
Sets the opacity of this simple pattern by modifying the alpha channel of the fill color.
Gets or sets the background color of the hatch pattern
Sets the opacity of this simple pattern by modifying the alpha channel of the fill color.
IPicturePattern
Opens the specified image or icon file to a local copy. Icons are converted into bitmaps.
The string fileName to open.
Gets or sets the angle for the texture in degrees.
Gets the string dialog filter that represents the supported picture file formats.
Gets or sets the image to use as a repeating texture
Gets or sets the picture fileName. Setting this will load the picture.
Gets or sets a multiplier that should be multiplied against the width and height of the
picture before it is used as a texture in pixel coordinates.
Gets or sets the wrap mode.
ISimplePattern
Gets or sets solid Color used for filling this pattern.
Sets the opacity of this simple pattern by modifying the alpha channel of the fill color.
PatternTypes
A pattern that gradually changes from one color to another
A pattern comprised of evenly spaced lines
A pattern comprised of point symbolizers
A pattern comprised of a tiled texture
A pattern comprised strictly of a fill color.
PicturePattern
Creates a new instance of PicturePattern
Creates a new PicturePattern with the specified image
The picture to draw
The way to wrap the picture
The angle to rotate the image
Opens the specified image or icon file to a local copy. Icons are converted into bitmaps.
The string fileName to open.
Disposes the image picture for this PicturePattern.
Instructs the drawing code to fill the specified path with the specified image.
The Graphics device to draw to
The GraphicsPath to fill
Gets or sets the angle for the texture in degrees.
Gets the string dialog filter that represents the supported picture file formats.
Gets or sets the image to use as a repeating texture
Gets or sets the picture fileName. Setting this will load the picture.
Gets or sets a multiplier that should be multiplied against the width and height of the
picture before it is used as a texture in pixel coordinates.
Gets or sets the wrap mode.
SimplePattern
Creates a new instance of SimplePattern
Creates a new SimplePattern with the specified fill color
The fill color to use for this simple pattern
Gets the fill color
Sets the fill color
Fills the path
The Graphics device to draw to
The GraphicsPath to fill using this pattern
Gets or sets solid Color used for filling this pattern.
Sets the opacity of this simple pattern by modifying the alpha channel of the fill color.
PointSchemeCategory
Creates a new instance of PointSchemeCategory
Specifies a category that is made up from a simple color.
The color to fill the polygons with
The border color for the polygons
The width of the line drawn on the border
Creates a new PolygonCategory with the specified image being tiled within the category.
The s
The picture to draw
The way to wrap the picture
The angle to rotate the image
Creates a new PolygonCategory with the specified image being tiled within the category.
The simple outline characteristics are also defined.
The picture to draw
The way to wrap the picture
The angle to rotate the image
The color to use
The outline width
Creates a new instance of a Gradient Pattern using the specified colors and angle
The start color
The end color
The direction of the gradient
The type of gradient to use
The color to use for the border symbolizer
The width of the line to use for the border symbolizer
Creates a new category based on a symbolizer, and uses the same symbolizer, but with a fill and border color of light cyan
for the selection symbolizer
The symbolizer to use in order to create a category
This gets a single color that attempts to represent the specified
category. For polygons, for example, this is the fill color (or central fill color)
of the top pattern. If an image is being used, the color will be gray.
The System.Color that can be used as an approximation to represent this category.
Sets the fill color of the top-most pattern to the specified color, if the pattern can specify a color.
Sets the color of the top most pattern for the principal symbolizer.
A string representation of this category.
String
Gets or sets the symbolizer for this category
Gets or sets the symbolizer to use to draw selected features from this category.
This is simply an alias to make things a tad (though not much) more understandable
Initializes a new PolygonCategoryCollection instance with the supplied scheme.
Initializes a new PolygonCategoryCollection instance with the supplied scheme.
The scheme to use ofr this collection.
Instructs the parent layer to select features matching the specified expression.
The object sender where features were selected.
The event args describing the expression used for selection.
Instructs the parent layer to select features matching the specified expression.
The object sender where features were selected.
The event args describing which expression was used.
Ensures that newly added categories can navigate to higher legend items.
The newly added legend item.
Overrides the copy behavior to remove the now unnecessary SelecTFeatures event handler.
Changes the parent item of the specified category
Gets or sets the parent scheme for this collection
Occurs when a category indicates that its filter expression should be used
to select its members.
Occurs when the deselect features context menu is clicked.
PolygonFeatureTypeException
Creates a new instance of PolygonFeatureTypeException
Creates a new instance of PolygonFeatureTypeException
The custom error message to use for this exception
A layer with drawing characteristics for LineStrings
Constructor
A featureset that contains polygons
Thrown if a non-polygon featureset is supplied.
Constructor that also shows progress
A featureset that contains polygons
An IProgressHandler to receive progress messages
Thrown if a non-polygon featureset is supplied.
Initializes a new instance of the PolygonLayer class.
A featureset that contains polygons.
A Container to store the newly created layer in.
An IProgressHandler to receive progress messages.
Thrown if a non-polygon featureset is supplied.
Draws some section of the extent to the specified graphics object.
The graphics object to draw to.
The projection interface that specifies how to transform geographic coordinates to an image.
Gets or sets the symbolic characteristics for the members of this symbol class that have been selected.
[TypeConverter(typeof(GeneralTypeConverter))]
[Editor(typeof(PolygonSymbolizerEditor), typeof(UITypeEditor))]
Gets or sets the default Polygon Symbolizer to use with all the lines on this layer.
Setting this will not clear the existing individually specified Symbolizers,
only the default symbolizer.
[TypeConverter(typeof(GeneralTypeConverter))]
[Editor(typeof(PolygonSymbolizerEditor), typeof(UITypeEditor))]
Gets or sets the polygon scheme that symbolically breaks down the drawing into symbol categories.
[TypeConverter(typeof(GeneralTypeConverter))]
[Editor(typeof(PolygonSchemePropertyGridEditor), typeof(UITypeEditor))]
PointScheme
Creates a new instance of PointScheme with no categories added to the list yet.
Initializes a new instance of the PolygonScheme class.
THe featureset with the data Table definition to use for symbolizing.
The string name of the field to use
when calculating separate color codes. Unique entries will be
assigned a random color.
Calculates the unique colors as a scheme.
The featureset with the data Table definition.
The unique field.
Draws the regular symbolizer for the specified cateogry to the specified graphics
surface in the specified bounding rectangle.
The integer index of the feature to draw.
The Graphics object to draw to
The rectangular bounds to draw in
Adds a new scheme, assuming that the new scheme is the correct type.
The category to add
Reduces the index value of the specified category by 1 by
exchaning it with the category before it. If there is no
category before it, then this does nothing.
The category to decrease the index of
Re-orders the specified member by attempting to exchange it with the next higher
index category. If there is no higher index, this does nothing.
The category to increase the index of
Inserts the category at the specified index
The integer index where the category should be inserted
The category to insert
Removes the specified category
The category to remove
Suspends the category events
Resumes the category events
Clears the categories
If possible, use the template to control the colors. Otherwise, just use the default
settings for creating "unbounded" colors.
The integer count.
The List of colors
Gets teh categories as an IEnumerable of type IFeatureCategory
Creates the category using a random fill color
The base color to use for creating the category
This is ignored for polygons
A new polygon category
Uses the settings on this scheme to create a random category.
A new IFeatureCategory
Handle the event un-wiring and scheme update for the old categories
The category collection to update.
Handle the event wiring and scheme update for the new categories.
The category collection to update
Gets or sets the symbolic categories as a valid IPointSchemeCategoryCollection.
Gets the number of categories in this scheme
PolygonSymbolizer
Creates a new instance of PolygonSymbolizer
Creates a new instance of a polygon symbolizer
The fill color to use for the polygons
The border color to use for the polygons
Creates a new instance of a solid colored polygon symbolizer
The fill color to use for the polygons
The border color to use for the polygons
The width of the outline to use fo
Creates a new instance of a Gradient Pattern using the specified colors and angle
The start color
The end color
The direction of the gradient, measured in degrees clockwise from the x-axis
Controls how the gradient is drawn
Creates a new instance of a Gradient Pattern using the specified colors and angle
The start color
The end color
The direction of the gradient, measured in degrees clockwise from the x-axis
The type of gradient to use
The color to use for the border symbolizer
The width of the line to use for the border symbolizer
Creates a new PicturePattern with the specified image
The picture to draw
The way to wrap the picture
The angle to rotate the image
Creates a new PicturePattern with the specified image
The picture to draw
The way to wrap the picture
The angle to rotate the image
The color to use for the border symbolizer
The width of the line to use for the border symbolizer
Creates a new symbolizer, using the patterns specified by the list or array of patterns.
The patterns to add to this symbolizer.
Specifies a polygon symbolizer with a specific fill color.
The color to use as a fill color.
Creates a new instance of PolygonSymbolizer
Boolean, true if this should use selection symbology
Sets the outline, assuming that the symbolizer either supports outlines, or
else by using a second symbol layer.
The color of the outline
The width of the outline in pixels
This gets the largest width of all the strokes of the outlines of all the patterns. Setting this will
forceably adjust the width of all the strokes of the outlines of all the patterns.
Forces the specified width to be the width of every stroke outlining every pattern.
The width to force as the outline width
Gets the fill color of the top-most pattern.
Sets the fill color of the top-most pattern.
If the pattern is not a simple pattern, a simple pattern will be forced.
The Color structure
Draws the polygon symbology
The graphics device to draw to
The target rectangle to draw symbology content to
Occurs after the pattern list is set so that we can listen for when
the outline symbolizer gets updated.
Occurs before the pattern list is set so that we can stop listening
for messages from the old outline.
Gets or sets the Symbolizer for the borders of this polygon as they appear on the top-most pattern.
gets or sets the list of patterns to use for filling polygons.
PolygonSymbolizerEventArgs
Creates a new instance of PolygonSymbolizerEventArgs
Gets or sets the Symbolizer, casting it to an IPolygonSymbolizer
A class that specifically controls the drawing for Polygons
Constructor
Gets or sets the polygon symbolizer
Boolean, true if this should use a standard selection symbology of light cyan coloring
Creates a new polygon symbolizer based on the specified parameters.
The IEnvelope representing the base geometric size of the layer. This helps to estimate a useful geographic line width
Boolean, true if this should use a standard selection symbology of light cyan coloring
Replaces the drawing code so that the polygon characteristics are more evident.
Gets or sets the border symbolizer
Gets or sets a boolean that determines whether or not the polygon border should be drawn.
QuickSchemeTypes
Box-plot: Tukey 1977
Basically it is like subdividing the data into 4 quartiles,
denoted like Q1, Q2, Q3, Q4.
-------
Low Outlier (less than the Quartile - 3/2 Interquartile range)
Q1 (Q1 - 3/2 the Interquartile range to Q1
Q2 (Quartile 1 to Median)
Q3 (Median to Quartile 3)
Q4 (Q3 to Q3 + 3/2 the Interquartile range
High Outlier (Greater than Q3 plus the interquartile range
The interval size is defined, rather than the number of subdivisions
Symbolize so that the total range of values for a specific field are subdivided into
a number of breaks where all the breaks cover the same difference in values.
Intervals are selected so that the number of observations in each successive interval
increases or decreases exponentially
The Jenks natural breaks algorithm strives for variance minimization within
a classification.
Percentile subdivides into the following six categories:
less than 1%,
1% to just less than 10%,
10% to just less than 50%
50% to just less than 90%
90% to just less than 99%
greater than or equal to 99%
The number of members found in each cateogry is the same, but the range might be
widely different for datasets that don't have equally distributed values.
The mean and standard deviation of the attribute values are calculated, and
values are classified according to their deviation from the mean (z-transform)
The transformed values are mapped, usually at intervales of 1.0 or .5 standard
deviations. This often results in no central class.
Symbolize so that each separate entry will have a separate category for that entry.
Creates a new instance of Selection
SelectionEM
Inverts the selection based on the current SelectionMode
The ISelection to invert
The geographic region to reverse the selected state
SelectionModes
The vertices of the feature are all inside (and not touching the boundary of) the region.
Use ContainsExtent for faster selections.
*Faster, the item to be selected must be completely contained by the extent
The entire region is inside the feature and not touching the border.
The feature is completely inside the region, but touching the edges is ok (unlike Contains).
For this to be true the feature must be a point or a curve and must cross
the specified
The interiors and boundaries don't intersect, touch, or overlap, so they are
completely separate.
*Faster, the item will be selected if any part of that item is visible in the extent
The most inclusive possible. If any element is touching or overlapping the region in any
way, then this will be true.
Like intersects, specifically requires that part of the feature is inside
and part of the feature is outside of the region.
The feature has borders or edges in common, but otherwise does not fall inside
the region.
The region is found completely inside the specified region to the extent
that no borders come in contact with the outside edge of the region.
Statistics
resets all statistics to 0.
Calculates the statistics for the specified values
Calculates the statistics for the specified values
Gets the integer count of the values
Gets the highest value
Gets the average value
Gets the middle value, or the average of the two middle values
Gets the minimum value
Gets the standard deviation
Gets the sum of the values.