DotSpatial.Data
Tiny structure for storing A,R,G,B components of Color
Returns an integer that ranges from 0 to 255. If value is larger than 255, the value will be equal to 255.
If the value is smaller than 255, it will be equal to 255.
A Double value to convert.
An integer ranging from 0 to 255
Writes the specified type.
The writer.
The value.
Reads the specified type.
The reader.
A registry used to map CLR cultures and encodings to
dBase language driver id (LDID) encoding specifiers.
Lookup values are taken from Esri's
ArcPad Reference Guide
Gets the associated with the
given dBase LDID.
The language driver id (LDID) to get a CultureInfo for.
A which uses the encoding represented by
by default.
Gets the which matches the
given dBase LDID.
The language driver id (LDID) to get the for.
An which corresponds to the the
code established by Esri.
Gets a language driver id (LDID) for the given encoding.
The Encoding used to lookup the LDID.
A language driver code used to specify the encoding used to write text in the dBase file.
0x57 (Windows ANSI) is returned as a default if there is no associated LDID for the given encoding.
Specifies which code page to use in a
instance.
Represents a culture and encoding pair.
This base class tries to correctly implement disposable, and should help make the behaviors
more consistent across classes that inherit from this class.
Unlike forms that have a disposable life cycle with a clear chain of ownership, or purely managed
libraries that have in a built in reference counting system, disposable members in DotSpatial
require the ability to behave in some cases like a layer that should be removed from memory
as soon as it is removed from the map, and other times like a persistent object. The DisposeLock
concept works like an industrial lock-out system. Each additional lock increases the lock count.
When all users have released the lock, the IsDisposedLocked property will be false, and the next
action like a removal from the parent layers will properly dispose the item. Users may feel free
to add the lock in order to handle disposal on the layers themselves. These methods will not
actually prevent Dispose from functioning, but understand that calling dispose when there is an
IsDisposeLocked is true means that there will likely be a problem.
Locks dispose. This typically adds one instance of an internal reference counter.
Unlocks dispose. This typically removes one instance of an internal reference counter.
Gets a value indicating whether an existing reference is requesting that the object is not disposed of.
Disposes
Adds one request or "reference count" for this item not to be disposed. When an owner is finished,
if this is 0, then dispose should be called. For now this does not prevent Dispose from being
called, it is simply for tracking purposes.
Removes one reference or request to prevent an object from being automatically disposed.
Finalizes an instance of the class.
This is where the meat of the dispose work is done. Subclasses should call dispose on any disposable
members or internal members (presuming they are not dispose locked).
True if the "Dispose" method was called instead of the destructor.
Gets a value indicating whether this instance has already had the Dispose method called on it.
Gets a value indicating whether there are outstanding references that may be using the item
that would prefer it if you did not dispose of the item while they are still using it.
An EventArgs class for passing around an extent.
Initializes a new instance of the ExtentArgs class.
The value for this event.
Gets or sets the Extents for this event.
The ExtentsM class extends the regular X and Y extent to the X, Y and M case.
Extent works like an envelope but is faster acting, has a minimum memory profile,
only works in 2D and has no events.
A very simple, 2D extent specification.
Minimum in the X dimension, usually left or minimum longitude.
Maximum in the x dimension, usually right or maximum longitude.
Minimum in the y dimension, usually bottom or minimum latitude.
Maximum in the y dimension, usually the top or maximum latitude.
Gets a Boolean that is true if the Min and Max M range should be used.
Gets a Boolean indicating whether the Z value should be used.
Creates a new instance of Extent. This introduces no error checking and assumes
that the user knows what they are doing when working with this.
Creates a new extent from the specified ordinates
Given a long array of doubles, this builds an extent from a small part of that
xmin, ymin, xmax, ymax
XMin, YMin, XMax, YMax order
Creates a new extent from the specified envelope
Produces a clone, rather than using this same object.
Equality test
Inequality test
Tests if this envelope is contained by the specified envelope
Tests if this envelope is contained by the specified envelope
The coordinate to test.
Boolean
Tests if this envelope is contained by the specified envelope
Copies the MinX, MaxX, MinY, MaxY values from extent.
Any IExtent implementation.
Allows equality testing for extents that is derived on the extent itself.
Expand will adjust both the minimum and maximum by the specified sizeX and sizeY
The amount to expand left and right.
The amount to expand up and down.
This expand the extent by the specified padding on all bounds. So the width will
change by twice the padding for instance. To Expand only x and y, use
the overload with those values explicitly specified.
The double padding to expand the extent.
Expands this extent to include the domain of the specified extent
The extent to expand to include
Expands this extent to include the domain of the specified point
Spreads the values for the basic X, Y extents across the whole range of int.
Repetition will occur, but it should be rare.
Integer
Calculates the intersection of this extent and the other extent. A result
with a min greater than the max in either direction is considered invalid
and represents no intersection.
The other extent to intersect with.
Returns true if the coordinate exists anywhere within this envelope
Tests for intersection with the specified coordinate
The double ordinate to test intersection with in the X direction
The double ordinate to test intersection with in the Y direction
True if a point with the specified x and y coordinates is within or on the border
of this extent object. NAN values will always return false.
Tests to see if the point is inside or on the boundary of this extent.
Tests for an intersection with the specified extent
The other extent
Boolean, true if they overlap anywhere, or even touch
Tests with the specified envelope for a collision
If this is undefined, it will have a min that is larger than the max, or else
any value is NaN. This only applies to the X and Z terms. Check HasM or HasZ higher dimensions.
Boolean, true if the envelope has not had values set for it yet.
This allows parsing the X and Y values from a string version of the extent as:
'X[-180|180], Y[-90|90]' Where minimum always precedes maximum. The correct
M or MZ version of extent will be returned if the string has those values.
The string text to parse.
This reads the string and attempts to derive values from the text.
This centers the X and Y aspect of the extent on the specified center location.
This centers the X and Y aspect of the extent on the specified center location.
The center coordinate to to set.
This centers the extent on the specified coordinate, keeping the width and height the same.
Sets the values for xMin, xMax, yMin and yMax.
The double Minimum in the X direction.
The double Minimum in the Y direction.
The double Maximum in the X direction.
The double Maximum in the Y direction.
Creates a geometric envelope interface from this
Creates a string that shows the extent.
The string form of the extent.
Tests if this envelope is contained by the specified envelope
Tests if this envelope is contained by the specified envelope
Attempts to extract the min and max from one element of text. The element should be
formatted like X[1.5, 2.7] using an invariant culture.
The name of the dimension, like X.
The minimum that gets assigned
The maximum that gets assigned
Boolean, true if the parse was successful.
This method converts the X and Y text into two doubles.
Gets the Center of this extent.
Gets or sets whether the M values are used. M values are considered optional,
and not mandatory. Unused could mean either bound is NaN for some reason, or
else that the bounds are invalid by the Min being less than the Max.
Gets or sets whether the M values are used. M values are considered optional,
and not mandatory. Unused could mean either bound is NaN for some reason, or
else that the bounds are invalid by the Min being less than the Max.
Max X
Max Y
Min X
Min Y
Gets MaxY - MinY. Setting this will update MinY, keeping MaxY the same. (Pinned at top left corner).
Gets MaxX - MinX. Setting this will update MaxX, keeping MinX the same. (Pinned at top left corner).
Gets MinX. Setting this will shift both MinX and MaxX, keeping the width the same.
Gets MaxY. Setting this will shift both MinY and MaxY, keeping the height the same.
Supports bounding in the M Dimension
Gets or sets the minimum M value
Gets or sets the maximum M value
Initializes a new instance of the ExtentM class.
Initializes a new instance of the ExtentM class.
The double Minimum in the X direction.
The double Minimum in the Y direction.
The double Minimum in the Measure category.
The double Maximum in the X direction.
The double Maximum in the Y direction.
The double Maximum in the Measure category.
Initializes a new instance of the ExtentM class that is specially designed to work
with shapefile formats that have a Measure value. Obviously other formats can use
this as well.
An extent that contains only the x and y boundaries.
The minimum M.
The maximum M.
Initializes a new instance of the ExtentM class. This overload works from an envelope.
The envelope with extent values to read.
Produces a clone, rather than using this same object.
Returns a copy of this object.
Tests if this envelope is contained by the specified envelope
The coordinate to test.
Boolean.
Tests if this envelope is contained by the specified envelope
Tests if this envelope is contained by the specified envelope. If either element
does not support M values, then only the default X and Y contains test is used.
The envelope to test.
Boolean.
Copies from the implementation of IExtent. This checks to see if IExtentM is implemented
and if not, this only sets the X and Y bounds.
This expand the extent by the specified padding on all bounds. So the width will
change by twice the padding for instance. To Expand only x and y, use
the overload with those values explicitly specified.
The double padding to expand the extent.
Expands this extent to include the domain of the specified extent. If the specified case
doesn't support IExtentM or HasM is false for that extent, then this test will default
to the XY case.
The extent to expand to include.
Expands this extent to include the domain of the specified point
The x ordinate to expand to.
The y ordinate to expand to.
The m ordinate to expand to.
Calculates the intersection of this extent and the other extent. A result
with a min greater than the max in either direction is considered invalid
and represents no intersection.
The other extent to intersect with.
Returns true if the coordinate exists anywhere within this envelope. If this
envelope represents a valid M extent by having a max greater than min and
neither value being NaN, then this will also test the coordinate for the
M range.
The Coordinate to test.
Boolean
Tests for intersection with the specified coordinate. If the m is double.NaN
then it degenerates to only testing X and Y, even if this envelope has an M range.
The double ordinate to test intersection with in the X direction
The double ordinate to test intersection with in the Y direction
The optional double measure parameter to test.
Boolean
Tests for an intersection with the specified extent. Both this extent and the
other must implement IExtentM and HasM must be true for both, or else just
the X and Y are compared.
The other extent. If the extent doesn't implement IExtentM, then
this comparison simply defaults to the X Y intersect case.
Boolean, true if they overlap anywhere, or even touch.
Tests with the specified envelope for a collision. If any part of the M bounds
are invalid, this will default to the XY Intersect comparison.
The envelope to test.
Boolean.
Since M values are optional, they can be set to an invalid state, which will behave the
same as if the M bounds did not exist.
Sets the values for xMin, xMax, yMin and yMax.
The double Minimum in the X direction.
The double Minimum in the Y direction.
The double Minimum in the Measure category.
The double Maximum in the X direction.
The double Maximum in the Y direction.
The double Maximum in the Measure category.
Tests if this envelope is contained by the specified envelope. If either party doesn't have
M constraints, they will not be used for this test.
implementation of IExtent to compare to.
Tests if this envelope is contained by the specified envelope. If either envelope doesn't
support M then only the X and Y case will be tested.
The envelope to compare.
Boolean.
Allows equality testing for extents that is derived on the extent itself.
Creates a string that shows the extent.
The string form of the extent.
Spreads the values for the basic X, Y extents across the whole range of int.
Repetition will occur, but it should be rare.
Integer
Gets or sets whether the M values are used. M values are considered optional,
and not mandatory. Unused could mean either bound is NaN for some reason, or
else that the bounds are invalid by the Min being less than the Max.
For shapefiles, the extents may or may not have M and Z values depending on the file type.
These are valid IExtent implementations, but add both the M and Z extent options.
For the file format, the Z values are mandatory, and so whatever the values are will be
stored. This may cause issues when viewing in ArcGIS if you have entered some bad Z
envelope extents.
The Extent interface for Z dimension extent bounds.
The minimum in the Z dimension (usually the bottom)
The maximum in the Z dimension (usually the top)
Initializes a new instance of the ExtentMZ class.
Initializes a new instance of the ExtentMZ class.
The double Minimum in the X direction.
The double Minimum in the Y direction.
The double Minimum in the Measure category.
The double Minimum in the Z direction.
The double Maximum in the X direction.
The double Maximum in the Y direction.
The double Maximum in the Measure category.
The double Maximum in the Z direction.
Initialize a new instance of the ExtentMZ class.
The Envelope to read the minimum and maximum values from.
Since M values are optional, they can be set to an invalid state, which will behave the
same as if the M bounds did not exist.
Copies from the implementation of IExtent. This checks to see if IExtentM is implemented
and if not, this only sets the X and Y bounds.
Sets the values for xZin, xMax, yMin and yMax.
The double Minimum in the X direction.
The double Minimum in the Y direction.
The double Minimum in the Measure category.
The double Minimum in the Z direction.
The double Maximum in the X direction.
The double Maximum in the Y direction.
The double Maximum in the Measure category.
The double Maximum in the Z direction.
Tests if this envelope is contained by the specified envelope
The coordinate to test.
Boolean.
Returns true if the coordinate exists anywhere within this envelope. If this
envelope represents a valid Z extent by having a max greater than min and
neither value being NaN, then this will also test the coordinate for the
Z range.
The Coordinate to test.
Boolean
Tests for intersection with the specified coordinate. If the m is double.NaN
then it degenerates to only testing M, X and Y, even if this envelope has an M range.
The double ordinate to test intersection with in the X direction.
The double ordinate to test intersection with in the Y direction.
The optional double measure parameter to test.
The double ordinate to test intersection with in the Z direction.
Boolean
Tests for an intersection with the specified extent. Both this extent and the
other must implement IExtentM and HasM must be true for both, or else just
the X and Y are compared.
The other extent. If the extent doesn't implement IExtentM, then
this comparison simply defaults to the M, X and Y intersect case.
Boolean, true if they overlap anywhere, or even touch.
Tests with the specified envelope for a collision. If any part of the Z bounds
are invalid, this will default to the M, X and Y Intersect comparison.
The envelope to test.
Boolean.
Calculates the intersection of this extent and the other extent. A result
with a min greater than the max in either direction is considered invalid
and represents no intersection.
The other extent to intersect with.
Expands this extent to include the domain of the specified extent. If the specified case
doesn't support IExtentM or HasM is false for that extent, then this test will default
to the M, X and Y case.
The extent to expand to include
This expand the extent by the specified padding on all bounds. So the width will
change by twice the padding for instance. To Expand only x and y, use
the overload with those values explicitly specified.
The double padding to expand the extent.
Expands this extent to include the domain of the specified point
The x ordinate to expand to.
The y ordinate to expand to.
The m ordinate to expand to.
The z ordinate to expand to.
Tests if this envelope is contained by the specified envelope. If either party doesn't have
M constraints, they will not be used for this test.
implementation of IExtent to compare to.
Boolean.
Tests if this envelope is contained by the specified envelope
The extent to test.
Boolean.
Tests if this envelope is contained by the specified envelope. If either envelope doesn't
support M then only the XY case will be tested.
The envelope to compare.
Boolean.
Tests if this envelope is contained by the specified envelope. If either element
does not support M values, then only the default XY contains test is used.
The envelope to test.
Boolean.
Creates a string that shows the extent.
The string form of the extent.
Produces a clone, rather than using this same object.
Returns a copy of this object.
Allows equality testing for extents that is derived on the extent itself.
Spreads the values for the basic X, Y extents across the whole range of int.
Repetition will occur for extents that are close, but should be rare.
Integer
Gets or sets whether the M values are used. M values are considered optional,
and not mandatory. Unused could mean either bound is NaN for some reason, or
else that the bounds are invalid by the Min being less than the Max.
The string template that should be used. M and Z are optional. Do use a comma to
delimit terms, but the space doesn't matter. Do use square brackets to enclose
numbers, and do use the | separator to separate min from max. Do place min
before max in each term. The order of the terms doesn't matter. Use periods
for decimals and an invariant culture.
Initializes a new instance of the ExtentParseException
The string message to parse.
Initializes a new instance of the ExtentParseException
The string message to parse.
The inner exception that caused this exception.
Initializes a new instance of the ExtentParseException
The Serialization info class that holds the serialized object about which
the exception is being thrown.
The streaming context that contains contextual information about the
source or destination.
Gets the string expression that provoked the exception.
Represents strongly named DataRow class.
This interface allows access to geometries and attributes in a more cohesive package.
Stores the shape to the GEOMETRY WKB.
Stores the geometry to the geometry wkb.
This is a cached extent. This will not reflect changes in Geometry or Shape unless
they have been stored, but will reflect the most recently stored or retrieved
extent from accessing either the shape or geometry. In cases where reading from
WKB, this will be lazily created, but it will be cached when reading from
shapefiles.
A Geometry created lazily from a WKB byte structure in the GEOMETRY field preferentially
or if the field is DBNull and the shape is not null, then from the Shape object.
A Shape that is either created lazily from the WKB Geometry or directly from a shapefile.
The rest of the attributes are stored by an indexed property.
Boolean, true if the geometry has already been created, false otherwise.
Boolean, true if the shape has already been created, false otherwise.
Boolean, true if the extent has been created, false otherwise.
Creates a new instance of the FeatureRow class.
Stores the shape into the WKB for storage in a database, overwriting any existing value.
Stores the goemetry as WKB, overwriting any existing value.
Sets the geometry field to DBNull.
Gets whether the geometry is null.
Boolean, true if the column is null.
A long integer representing the FID.
The Byte form of the Geometry
From shapefiles, this should be cached. Any other source must likely
create the extent from a geometry, and possibly all the way from WKB.
A lazily created and cached geometry.
Boolean, true if the extent has been created, false otherwise.
Boolean, true if the geometry has already been created, false otherwise.
Boolean, true if the shape has already been created, false otherwise.
When reading from WKB, the Shape is lazily created. When reading from sources like
a shapefile, the Shape is actually pre-fetched because the value exists as a shape
rather than a geometry.
Row event argument class
A new event argument for events in a FeatureTable.
The FeatureRow of the event.
The action occuring for this event.
The FeatureRow for this event.
The action for this event.
An EventArgs specifically tailored to FeatureSet.
Initializes a new instance of the FeatureSetEventArgs class.
The IFeatureSet that is involved in this event.
Gets the Raster associated with this event.
Callback specified when calling IFeatureSource.SearchAndModifyAttributes
FeatureSourceRowEditEvent arguments
RowEditEvent arguments
Shape geometry associated with the row
Construct FeatureSourceRowEditEventArgs
Represents the strongly named DataTable class.
Initializes a new instance of a FeatureTable class.
Initializes a new instance of a FeatureTable class.
Adds the specified FeatureRow to this FeatureTable.
the row to add.
Generates a new feature row using only the goemetry.
The byte form of the well known text to use in creating a new, otherwise empty row.
The newly created FeatureRow with the specified well known text.
Retrieves a newly generated row from this table cast as a FeatureRow.
The FeatureRow class.
Finds a FeatureRow by the FID field.
The long fid to find
A FeatureRow
Removes the specified row from the table.
The FeatureRow to remove.
Generates a new feature row using only the goemetry.
The byte form of the well known text to use in creating a new, otherwise empty row.
The newly created FeatureRow with the specified well known text.
This may or may not be required for proper functioning, but is not part of the public API.
A DataTable
This may not work since I stripped off the xml related auto text that seems to rely on an existing dataset
Occurs while the row is changing
Occurs after the row has been changed.
Occurs while the row is being deleted.
Occurs after the row has been deleted.
The integer number of rows in this table.
The Column containing the FID value.
The Column containing the Geometry column.
Optionally gets or sets a geometry factory to use when instantiating geometries
from WKB for the rows of this table.
Accesses the FeatureRow of this table based on the specified index.
The integer index of the feature row to access.
This FeatureRow
Manage the Fields associated with a dbase
Construct Fields and update the individual field data addresses
Add a field
Update the DataAddress of each field
Retrieve field by ordinal
Retrieve field by name
Get number of fields
An interface for specifying something has a Bounds property on it that is a raster bounds.
Gets or sets the image bounds being used to define the georeferencing of the image
Returns the bitmap
Attempts to create a bitmap for the entire image. This may cause memory exceptions.
A Bitmap of the image.
The geographic envelope gives the region that the image should be created for.
The window gives the corresponding pixel dimensions for the image, so that
images matching the resolution of the screen can be used.
The geographic extents to retrieve data for
The rectangle that defines the size of the drawing area in pixels
A bitmap captured from the main image
The geographic envelope gives the region that the image should be created for.
The window gives the corresponding pixel dimensions for the image, so that
images matching the resolution of the screen can be used.
The geographic extents to retrieve data for
The rectangle that defines the size of the drawing area in pixels
A bitmap captured from the main image
An EventArgs specifically tailored to ImageData.
Initializes a new instance of the ImageDataEventArgs class.
The IImageData that is involved in this event.
Gets the ImageData associated with this event.
An enumeration for specifying the endian byte order to use.
Specifies big endian like mainframe or unix system.
Specifies little endian like most pc systems.
A new interface for accessing database or file features to large for memory. This allows editing only for attribute content,
but allows Add, Remove, AddRange, and Query functionality that covers both vector and raster content.
Updates the file with an additional feature.
Removes the feature with the specified index
Removes the feature from the specified index location
The default implementation calls the add method repeatedly.
The set of features to add
Select function passed with a filter expression.
The string filter expression based on attributes
The envelope for vector filtering.
The integer start index where values should be checked. This will be updated to the
last index that was checked before the return, so that paging the query can begin with that index in the next cycle.
Be sure to add one before the next call.
The integer maximum number of IFeature values that should be returned.
A dictionary with FID keys and IFeature values.
Conditionally modify attributes as searched in a single pass via client supplied callback.
The envelope for vector filtering.
Number of shapes to request from the ShapeSource in each chunk
Callback on each feature
Edits the values of the specified row in the attribute table. Since not all data formats
can handle the dynamic change of attributes, updating vectors can be done with Remove and Add.
The feature offest
The row of new attribute values.
Edits the values of the specified rows in the attribute table.
Adding and removing shapes may make the bounds for the entire shapefile invalid.
This triggers a check that ensures that the collective extents contain all the shapes.
The geographic extent of the feature source
Get the attribute table associated with the feature source
An enumeration listing the types of image band interpretations supported.
Alpha, Red, Green, Blue 4 bytes per pixel, 4 bands
Red, Green, Blue 3 bytes per pixel, 3 bands
Gray as one byte per pixel, 1 band
Colors encoded 1 byte per pixel, 1 band
Sets the InRamImage for this class. This is just a georeferenced .Net bitmap that also implements
IGetBitmap for cross purpose use with IImageData implementations.
Initializes a new instance of an InRamImage class. This class supports a basic .Net Image
plus a geographic extent as a RasterBounds. This class does not feature any byte level
data access or built in file access. The expectation is that this will only be used in memory.
THe Bitmap image to use to create this image.
Returns the internal bitmap in this case. In other cases, this may have to be constructed
from the unmanaged memory content.
A Bitmap that represents the entire image.
The geographic envelope gives the region that the image should be created for.
The window gives the corresponding pixel dimensions for the image, so that
images matching the resolution of the screen can be used.
The geographic extents to retrieve data for
The rectangle that defines the size of the drawing area in pixels
A bitmap captured from the main image
The geographic envelope gives the region that the image should be created for.
The window gives the corresponding pixel dimensions for the image, so that
images matching the resolution of the screen can be used.
The geographic extents to retrieve data for
The rectangle that defines the size of the drawing area in pixels
A bitmap captured from the main image
Sets the bitmap for this InRamImage to use.
the value to set.
If byte access is required, a new class can be created that is a copy of this class for
modifying values byte by byte.
Gets or sets the raster bounds
The Projection interface that acts as a useful tool for calculating pixel coordinates
to geographic coordinates and vise-versa.
The Rectangle representation of the geographic extents in image coordinates
The geographic extents used for projection.
This interface specifically insists on an IRasterBounds as the Bounds property.
A very generic interface that is implemented by any dataset, regardless of what kinds of data that it has.
This interface supports the basic Reprojection content. CanReproject tests to see if the
DotSpatial.Projections library exists and will return false if it does not exist. In
such a case the
Reprojects all of the in-ram vertices of vectors, or else this
simply updates the "Bounds" of image and raster objects
This will also update the projection to be the specified projection.
The projection information to reproject the coordinates to.
Gets a value indicating whether the DotSpatial.Projections assembly is loaded. If
not, this returns false, and neither ProjectionInfo nor the Reproject() method should
be used.
Boolean, true if the value can reproject.
Gets or sets the projection information for this dataset
Gets or sets the proj4 string for this dataset. This exists in
case the Projections library is not loaded. If the projection
library is loaded, this also updates the Projection property.
Setting this behaves like defining the projection and will not
reproject the values.
This closes the data set. Many times this will simply do nothing, but
in some cases this may close an open connection to a data source.
Gets or sets the extent for the dataset. Usages to Envelope were replaced
as they required an explicit using to DotSpatial.Topology which is not
as intuitive. Extent.ToEnvelope() and new Extent(myEnvelope) convert them.
True if the dispose method has been called on this dataset.
Gets or sets a string name identifying this dataset
Gets or sets the progress handler to use for internal actions taken by this dataset.
Gets or sets the space time support for this dataset.
Gets or sets a string that describes as clearly as possible what type of
elements are contained in this dataset.
Rendering is considered a different pathway from editing. For rendering, we can distance
ourselves from the attributes all together in order to speedily grab just the indices
that are within the view extent.
Returns a dictionary with the FID and Shape, but only returns shapes within the envelope.
The integer offset of the first shape to test. When this returns, the offset is set to the integer index of the last shape tested, regardless of whether or not it was returned.
The integer count of the maximum number of shapes to return here.
The geographic extents that can be used to limit the shapes. If this is null, then no envelope is used.
The Dictionary with FID indices and Shape values
Returns array of shapes at the specified indices
Gets the integer count of the total number of shapes in the set. This may run a query,
so it is better to cache the result than call this repeatedly.
The integer number of shapes in the entire source.
Should be called when done making repeated calls to GetShapes to free internal resources.
This is most likely set once per source.
LineShape
Calculates the intersection of a polygon shape without relying on the NTS geometry
Tests to see if any vertices from the other shape are coincident with a segment from this line shape.
Returns true if any segment from a line or polygon shape interesect any segments from the line or polygon shape.
A Line or Polygon shape
Another line or polygon shape
Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon
This class is strictly the vector access code. This does not handle
the attributes, which must be handled independantly.
Provides common functionality for all ShapefileFeatureSource classes (Point, Line, Polygon)
Sets the fileName and creates a new ShapefileFeatureSource for the specified file.
The fileName to work with.
Sets the fileName and creates a new PolygonshapefileFeatureSource for the specified file (and builds spatial index if requested)
This deletes the files with any extension and the same base fileName.
Spatial index for faster searches
Create a ShapefileFeatureSource of the appropriate type
Create a ShapefileFeatureSource of the appropriate type spatial indexing
Update the header to include the feature extent
Update the header to include the feature extent
Update header extents from the geometries in a IShapeSource
Select the features in an IShapeSource
Conditionally modify attributes as searched in a single pass via client supplied callback.
ShapeSource for this feature source
The envelope for vector filtering.
Number of shapes to request from the ShapeSource in each chunk
Callback on each feature
Append the geometry to the shapefile
Create an appropriate ShapeSource for this FeatureSource
Gets or sets the Filename of this polygon shapefile.
The integer maximum number of records to return in a single page of results.
Gets the spatial index if any
Get the feature type supported by this feature source
Get the shape type (without M or Z) supported by this feature source
Get the shape type (with M, and no Z) supported by this feature source
Get the shape type (with M and Z) supported by this feature source
Gets the AttributeTable for this feature source including DeletedRows
Sets the fileName and creates a new LineShapefileFeatureSource for the specified file.
The fileName to work with.
Sets the fileName and creates a new LineShapefileFeatureSource for the specified file (and builds spatial index if requested)
Retrieves specific shapes.
Common functionality for retrieving specific shapes.
Cached contents of shape index file
Creates a new instance of the ShapefileShapeSource with the specified
shapefile as the source.
Creates a new instance of the ShapefileShapeSource with the specified
shapefile as the source and supplied spatial and shape indices.
Cache Index File in memory so we don't have to read it in every call to GetShapes
Get the shape at the specified index. Must be implemented by all shape sources derived from ShapefileShapeSource
Get the shape type (without M or Z) supported by this shape source
Get the shape type (with M, and no Z) supported by this shape source
Get the shape type (with M and Z) supported by this shape source
Creates a new instance of the LineShapefileShapeSource with the specified line
shapefile as the source.
The string fileName
Creates a new instance of the LineShapefileShapeSource with the specified polygon shapefile as the source and provided indices
General purpose Expression utilities
Create a function delegate representing a unary operation
The parameter type
The return type
Body factory
Compiled function delegate
Create a function delegate representing a binary operation
The first parameter type
The second parameter type
The return type
Body factory
Compiled function delegate
Create a function delegate representing a binary operation
The first parameter type
The second parameter type
The return type
Body factory
If no matching operation is possible, attempt to convert
TArg1 and TArg2 to TResult for a match? For example, there is no
"decimal operator /(decimal, int)", but by converting TArg2 (int) to
TResult (decimal) a match is found.
Compiled function delegate
The Operator class provides easy access to the standard operators
(addition, etc) for generic types, using type inference to simplify
usage.
Indicates if the supplied value is non-null,
for reference-types or Nullable<T>
True for non-null values, else false
Increments the accumulator only
if the value is non-null. If the accumulator
is null, then the accumulator is given the new
value; otherwise the accumulator and value
are added.
The current total to be incremented (can be null)
The value to be tested and added to the accumulator
True if the value is non-null, else false - i.e.
"has the accumulator been updated?"
Evaluates unary negation (-) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates bitwise not (~) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates bitwise or (|) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates bitwise and (&) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates bitwise xor (^) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Performs a conversion between the given types; this will throw
an InvalidOperationException if the type T does not provide a suitable cast, or for
Nullable<TInner> if TInner does not provide this cast.
Evaluates binary addition (+) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary addition (+) for the given type(s); this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary subtraction (-) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary subtraction(-) for the given type(s); this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary multiplication (*) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary multiplication (*) for the given type(s); this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary division (/) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary division (/) for the given type(s); this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary equality (==) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary inequality (!=) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary greater-than (>) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary less-than (<) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary greater-than-on-eqauls (>=) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates binary less-than-or-equal (<=) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Evaluates integer division (/) for the given type; this will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
This operation is particularly useful for computing averages and
similar aggregates.
Provides standard operators (such as addition) that operate over operands of
different types. For operators, the return type is assumed to match the first
operand.
Returns a delegate to convert a value between two types; this delegate will throw
an InvalidOperationException if the type T does not provide a suitable cast, or for
Nullable<TInner> if TInner does not provide this cast.
Returns a delegate to evaluate binary addition (+) for the given types; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary subtraction (-) for the given types; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary multiplication (*) for the given types; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary division (/) for the given types; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Provides standard operators (such as addition) over a single type
Returns the zero value for value-types (even full Nullable<TInner>) - or null for reference types
Returns a delegate to evaluate unary negation (-) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate bitwise not (~) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate bitwise or (|) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate bitwise and (&) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate bitwise xor (^) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary addition (+) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary subtraction (-) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary multiplication (*) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary division (/) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary equality (==) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary inequality (!=) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary greater-then (>) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary less-than (<) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary greater-than-or-equal (>=) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
Returns a delegate to evaluate binary less-than-or-equal (<=) for the given type; this delegate will throw
an InvalidOperationException if the type T does not provide this operator, or for
Nullable<TInner> if TInner does not provide this operator.
PointShape
Calculates the intersection of a polygon shape without relying on the NTS geometry
Returns true if any vertices overlap
Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon
This class is strictly the vector access code. This does not handle
the attributes, which must be handled independantly.
Sets the fileName and creates a new PointShapefileFeatureSource for the specified file.
The fileName to work with.
Sets the fileName and creates a new PointshapefileFeatureSource for the specified file (and builds spatial index if requested)
Retrieves specific shapes.
Creates a new instance of the PointShapefileShapeSource with the specified point
shapefile as the source.
The string fileName
Creates a new instance of the PointShapefileShapeSource with the specified polygon shapefile as the source and provided indices
Polygon contains algorithms for the case where the current feature type is a polygon. The shape may be single or multi-part.
Calculates the intersection of a polygon shape without relying on the NTS geometry
This cycles through all the vertices, which are stored as {X1, Y1, X2, Y2...Xn, Yn} and tests
if any of those vertices falls within the polygon shape.
For each coordinate in the other part, if it falls in the extent of this polygon, a
ray crossing test is used for point in polygon testing. If it is not in the extent,
it is skipped.
The part of the polygon to analyze polygon
The other part
Boolean, true if any coordinate falls inside the polygon
Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon
DataFormats
Lines, Points and Polygons make up standard static vector formats.
These are drawn dynamically based on the symbolizer.
Rasters are grids of integers, doubles, floats, or other numeric value types.
These can be symbolized and represented as images, but not drawn directly.
Images specifically have pixels coordinates that store a color.
These are drawn directly.
This represents an extended format that does not have a formal definition in DotSpatial.
This can be used as a component to work as a DataManager. This also provides the
very important DefaultDataManager property, which is where the developer controls
what DataManager should be used for their project.
IDataManager
This can help determine what kind of file format a file is, without actually opening the file.
The string fileName to test
A DataFormats enum
Instead of opening the specified file, this simply determines the correct
provider, and requests that the provider check the feature type for vector
formats.
The string fileName to test
A FeatureTypes enum
Checks a dialog filter and returns a list of just the extensions.
The Dialog Filter to read extensions from
A list of extensions
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.
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.
Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager.
Opens the file as an Image and returns an IImageData object for interacting with the file.
The string fileName
An IImageData object
Opens the file as an Image and returns an IImageData object
The string fileName to open
The progressHandler to receive progress updates
An IImageData
Opens the specified fileName, returning an IRaster. This will return null if a manager
either returns the wrong data format.
The string fileName to open
An IRaster loaded from the specified file.
Opens the specified fileName, returning an IRaster. This will return null if a manager
either returns the wrong data format.
The string fileName to open
boolean, true if this should be loaded into ram
a progress interface
An IRaster loaded from the specified file
Opens a specified file as an IFeatureSet
The string fileName to open
boolean, true if this should be loaded into ram
a progress interface
An IFeatureSet loaded from the specified file
Creates a new image using an appropriate data provider
The string fileName to open an image for
The integer number of rows
The integer number of columns
The color band type.
An IImageData interface allowing access to image data
Creates a new image using an appropriate data provider
The string fileName to open an image for
The integer number of rows
The integer number of columns
Boolean, true if the entire file should be created in memory
The color band type.
An IImageData interface allowing access to image data
Creates a new image using an appropriate data provider
The string fileName to open an image for
The integer number of rows
The integer number of columns
Boolean, true if the entire file should be created in memory
A Progress handler
The color band type.
An IImageData interface allowing access to image data
Creates a new class of vector that matches the given fileName.
The string fileName from which to create a vector.
Specifies the type of feature for this vector file
An IFeatureSet that allows working with the dataset.
Creates a new class of vector that matches the given fileName.
The string fileName from which to create a vector.
Specifies the type of feature for this vector file
Overrides the default progress handler with the specified progress handler
An IFeatureSet that allows working with the dataset.
Creates a new raster using the specified raster provider and the Data Manager's Progress Handler,
as well as its LoadInRam property.
The fileName of the new file to create.
The string code identifying the driver to use to create the raster
The number of columns in the raster
The number of rows in the raster
The number of bands in the raster
The data type for the raster
Any additional, driver specific options for creation
An IRaster representing the created raster.
Gets or sets the list of IDataProviders that should be used in the project.
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 the dialog read filter to use for opening image files.
Gets or sets the dialog write filter to use for saving image 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.
Occurs after the directory providers have been loaded into the project.
Creates a new instance of the DataManager class. A data manager is more or less
just a list of data providers to use. The very important
DataManager.DefaultDataManager property controls which DataManager will be used
to load data. By default, each DataManager sets itself as the default in its
constructor.
Creates a new class of vector that matches the given fileName.
The string fileName from which to create a vector.
Specifies the type of feature for this vector file
An IFeatureSet that allows working with the dataset.
Creates a new class of vector that matches the given fileName.
The string fileName from which to create a vector.
Specifies the type of feature for this vector file
Overrides the default progress handler with the specified progress handler
An IFeatureSet that allows working with the dataset.
Raised when fileName is null.
Raised when suitable DataProvider not found.
Checks a dialog filter and returns a list of just the extensions.
The Dialog Filter to read extensions from
A list of extensions
This can help determine what kind of file format a file is, without actually opening the file.
Instead of opening the specified file, this simply determines the correct
provider, and requests that the provider check the feature type for vector
formats.
Opens the specified fileName, returning an IRaster. This will return null if a manager
either returns the wrong data format.
The string fileName to open
An IRaster loaded from the specified file.
Opens the specified fileName, returning an IRaster. This will return null if a manager
either returns the wrong data format.
The string fileName to open
boolean, true if this should be loaded into ram
a progress interface
An IRaster loaded from the specified file
Opens a specified file as an IFeatureSet
The string fileName to open
boolean, true if this should be loaded into ram
a progress interface
An IFeatureSet loaded from the specified file
Opens the file as an Image and returns an IImageData object for interacting with the file.
The string fileName
An IImageData object
Opens the file as an Image and returns an IImageData object
The string fileName to open
The progressHandler to receive progress updates
An IImageData
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.
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.
Specifies the progressHandler to receive progress messages. This value overrides the property on this DataManager.
Creates a new image using an appropriate data provider
The string fileName to open an image for
The integer width in pixels
The integer height in pixels
The band color type
An IImageData interface allowing access to image data
Creates a new image using an appropriate data provider
The string fileName to open an image for
The integer width in pixels
The integer height in pixels
Boolean, true if the entire file should be created in memory
The band color type
An IImageData interface allowing access to image data
Creates a new image using an appropriate data provider
The string fileName to open an image for
The integer width in pixels
The integer height in pixels
Boolean, true if the entire file should be created in memory
A Progress handler
The band color type
An IImageData interface allowing access to image data
Creates a new raster using the specified raster provider and the Data Manager's Progress Handler,
as well as its LoadInRam property.
The fileName of the new file to create.
The string code identifying the driver to use to create the raster. If no code is specified
the manager will attempt to match the extension with a code specified in the Dialog write filter.
The number of columns in the raster
The number of rows in the raster
The number of bands in the raster
The data type for the raster
Any additional, driver specific options for creation
An IRaster representing the created raster.
Opens the file making sure it can be returned as an IRaster.
Name of the file.
if set to true [in ram].
The progress handler.
Triggers the DirectoryProvidersLoaded event
Gets or sets the implementation of IDataManager for the project to use when
accessing data. This is THE place where the DataManager can be replaced
by a different data manager. If you add this data manager to your
project, this will automatically set itself as the DefaultDataManager.
However, since each DM will do this, you may have to control this manually
if you add more than one DataManager to the project in order to set the
one that will be chosen.
Gets or sets the list of IDataProviders that should be used in the project.
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.
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 IDataProviders 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 Data Providers in directories.
Gets or sets a progress handler for any open operations that are intiated by this
DataManager 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.
Clarifies how the file should be used
Read will attempt to read the file if it exists and throw an exception if the file is not found
Write will create a new file, overwriting it if it previously exists.
This class is strictly the vector access code. This does not handle
the attributes, which must be handled independantly.
Sets the fileName and creates a new PolygonshapefileFeatureSource for the specified file.
The fileName to work with.
Sets the fileName and creates a new PolygonshapefileFeatureSource for the specified file (and builds spatial index if requested)
Retrieves specific shapes.
Creates a new instance of the PolygonShapefileShapeSource with the specified polygon
shapefile as the source.
The string fileName
Creates a new instance of the PolygonShapefileShapeSource with the specified polygon shapefile as the source and provided indices
This handles the methodology of progress messaging in one place to make it easier to update.
Initializes a new progress meter, but doesn't support the IProgressHandler unless one is specified.
A progress meter can't actually do anything without a progressHandler, which actually displays the status.
An IProgressHandler that will actually handle the status messages sent by this meter.
A progress meter that simply keeps track of progress and is capable of sending progress messages.
This assumes a MaxValue of 100 unless it is changed later.
Any valid IProgressHandler that will display progress messages
A base message to use as the basic status for this progress handler.
A progress meter that simply keeps track of progress and is capable of sending progress messages.
Any valid implementation if IProgressHandler that will handle the progress function
The message without any progress information.
Percent should show a range between the MinValue and MaxValue. MinValue is assumed to be 0.
Resets the progress meter to the 0 value. This sets the status message to "Ready.".
This always increments the CurrentValue by one.
Sends a progress message to the IProgressHandler interface with the current message and progress
Gets or sets the string message (without the progress element).
Gets or sets the string that does not include any mention of progress percentage, but specifies what is occurring.
Gets or sets the current integer progress level from 0 to 100. If a new update is less than or equal to the previous
value, then no progress will be displayed by the ProgressMeter. Values less than 0 are set to 0. Values greater than
100 are set to 100.
Gets or sets the current value relative to the specified MaxValue in order to update the progress.
Setting this will also update OldProgress if there is an integer change in the percentage, and send
a progress message to the IProgressHandler interface.
The value that defines when the meter should show as 100% complete.
EndValue can be less than StartValue, but values closer to EndValue
will show as being closer to 100%.
Gets or sets whether the progress meter should send messages to the IProgressHandler.
By default Silent is false, but setting this to true will disable the messaging portion.
The minimum value defines when the meter should show as 0% complete.
An integer value that is 1 by default. Ordinarily this will send a progress message only when the integer progress
has changed by 1 percentage point. For example, if StepPercent were set to 5, then a progress update would only
be sent out at 5%, 10% and so on. This helps reduce overhead in cases where showing status messages is actually
the majority of the processing time for the function.
Gets or sets the previous integer progress level from 0 to 100. If a new update is less than or equal to the previous
value, then no progress will be displayed by the ProgressMeter. Values less than 0 are set to 0. Values greater than
100 are set to 100.
Gets or sets the progress handler for this meter
Extension methods for the IProj interface
Converts a single point location into an equivalent geographic coordinate
This IProj
The client coordinate relative to the map control
The geographic ICoordinate interface
Converts a rectangle in pixel coordinates relative to the map control into
a geographic envelope.
This IProj
The rectangle to convert
An IEnvelope interface
Projects all of the rectangles int the specified list of rectangles into geographic regions.
This IProj
The clip rectangles
A List of IEnvelope geographic bounds that correspond to the specified clip rectangles.
Converts a single geographic location into the equivalent point on the
screen relative to the top left corner of the map.
This IProj
The geographic position to transform
A Point with the new location.
Converts a single geographic envelope into an equivalent Rectangle
as it would be drawn on the screen.
This IProj
The geographic IEnvelope
A Rectangle
Translates all of the geographic regions, forming an equivalent list of rectangles.
This IProj
The list of geographic regions to project
A list of pixel rectangles that describe the specified region
Calculates an integer length distance in pixels that corresponds to the double
length specified in the image.
The IProj that this describes
The double distance to obtain in pixels
The integer distance in pixels
This is an abstract base class that represents a datasets that has a RasterBounds on it, and reprojects
by using the RasterBounds. This works for Image and Raster implementations.
DataSet
Gets whether or not projection is based on having the libraries available.
Creates a new instance of DataSet
This can be overridden in specific classes if necessary
Reprojects all of the in-ram vertices of featuresets, or else this
simply updates the "Bounds" of the image object.
This will also update the projection to be the specified projection.
The projection information to reproject the coordinates to.
Allows overriding the dispose behavior to handle any resources in addition to what are handled in the
image data class.
A Boolean value that indicates whether the overriding method
should dispose managed resources, or just the unmanaged ones.
Gets or sets the cached extent variable. The public Extent is the virtual accessor,
and should not be used from a constructor. MyExtent is protected, not virtual,
and is only visible to inheriting classes, and can be safely set in the constructor.
This is an internal place holder to make it easier to pass around a single progress meter
between methods. This will use lazy instantiation if it is requested before one has
been created.
Gets or sets the raw projection string for this dataset. This handles both the
case where projection is unavailable but a projection string needs to
be passed around, and the case when a string is not recognized by the
DotSpatial.Projections library. This is not format restricted, but should match
the original data source as closely as possible. Setting this will also set
the Projection if the Projection library is available and the format successfully
defines a transform by either treating it as an Esri string or a proj4 string.
Gets a value indicating whether the DotSpatial.Projections assembly is loaded
Boolean, true if the value can reproject.
Gets or sets the string name
Gets or sets the extent for the dataset. Usages to Envelope were replaced
as they required an explicit using to DotSpatial.Topology which is not
as intuitive. Extent.ToEnvelope() and new Extent(myEnvelope) convert them.
This is designed to be a virtual member to be overridden by subclasses,
and should not be called directly by the constructor of inheriting classes.
Gets or set the projection string
Gets an enumeration specifying if this data supports time, space, both or neither.
Gets or sets the string type name that identifies this dataset
Gets or sets the progress handler to use for internal actions taken by this dataset.
Creates a new instance of the RasterBoundData object, setting up a default RasterBounds.
Occurs when the raster bounds of this data class have changed.
RasterBounds datasets offer a limited sort of reproject on the fly.
This tries to update the bounds by reprojecting the top left and bottom
left and top right coordinates and updating the "affine" transform.
This should not be used if CanReproject is false.
Greater accuracy can be accomplished using the Projective transform,
which is planned to be implemented as a toolbox function.
The projectionInfo to project to.
Disposes the managed memory objects in the ImageData class, and then forwards
the Dispose operation to the internal dataset in the base class, if any.
Boolean, true if both managed and unmanaged resources should be finalized.
Gets or sets the image bounds being used to define the georeferencing of the image
Gets or sets the Bounds.Envelope through an Extents property.
An EventArgs specifically tailored to Raster.
Initializes a new instance of the RasterEventArgs class.
The IRaster that is involved in this event.
Gets the Raster associated with this event.
Callback specified to AttributeTable.Edit() overload
RowEditEvent arguments
Column information
Actual byte content read from dbase
One of the SetColumn methods or SetAllColumns has been called
The row being edited
Constructor
Get the entire buffer as a character array
Convert the byte data for a column into the appropriate data value
Column information for data value being parsed
Convert the all byte data into an array of data values
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert value to bytes and place in ByteContent at correct location
Column information for the conversion
Convert array of values to bytes and fill ByteContent
ShapeFactory
for singleton pattern.
Creates a new multi-part polygon shape. Winding order should control holes.
The list of all the lists of coordinates.
A new Multi-Polygon Shape.
Gets the shared instance of the shape factory;
Spatial index customized for ShapefileFeatureSources.
Insert the row
Remove the row
When a row is deleted, all other row numbers must be adjusted to compensate for the fact that the shx file gets compressed.
Deprecated. Use Remove(IEnvelope, int item) instead.
Deprecated. Use Insert(IEnvelope, int item) instead.
Index file class for the .shx file
Opens the index file of the specified fileName. If the fileName is not the .shx extension,
then the fileName will be changed too that extension first.
Saves the file back to the original file, or the currently specified "Filename" property.
Saves the file to the specified fileName. If the extension is not a correct shx extension,
it will be changed to that extensions.
Reads the entire index file in order to get a breakdown of how shapes are broken up.
A string fileName of the .shx file to read.
A List of ShapeHeaders that give offsets and lengths so that reading can be optimized
Writes the current content to the specified file.
The header to write
Basically the same code can be used for the shp and shx files
The integer number of shapes to write to the file
Gets or sets the header
Gets or sets the fileName
Gets or sets the list of shape headers
This combines the attribute table with a shape source in order to allow easy creation of
FeatureTable and FeatureRow constructs.
Creates a new ShapefileReader tailored to read a particular file.
Resets the count, so that reading may continue.
Ensures that the files can be opened for reading.
Gets or sets the name of the shapefile.
Gets or sets the array of string field names to access. If this is null or empty, then all the fields are returned.
Fields listed here that do not occur in the shapefile will be ignored.
Gets or sets the string filter expression. This is only the "Where" criteria, and doesn't include any other advanced SQL implmenetation.
Gets or sets a string fieldname to support sorting.
Gets the integer number of the maximum number of results to generate from a shapefile.
Gets the count of members returned so far.
Gets the long row offset where reading should begin. This will advance
Shapefiles don't support nested tables.
Read only reader has no affect on records here.
A class for cycling pages of shapes from a large dataset
Creates a new reader class for paging through a shape source.
The IShapeSource to cycle through.
Gets or sets the integer count of shapes that should be allowed to appear on a single page of results.
This is the maximum, and the actual number of shapes may be considerably smaller than this.
Gets or sets the envelope. If this is null, then no envelope is used.
Gets the feature type of the feature source.
Creates an enumerator for pages of shapes returned as dictionaries.
Creates ShapePageSet.Enumerator which can be used to cycle very large datasets.
Controls whether only intersecting shapes should be used or whether all shapes should be used.
All shapes will be used
Only intersecting shapes will be used
CulturePreferences
This culture information is useful for things like Number Formatting.
This defaults to CurrentCulture, but can be specified through preferences or
whatever.
The buffered binary reader was originally designed by Ted Dunsford to make shapefile reading more
efficient, but ostensibly could be used for other binary reading exercises. To use this class,
simply specify the BufferSize in bytes that you would like to use and begin reading values.
Creates a new instance of BufferedBinaryReader.
The string path of a file to open using this BufferedBinaryReader.
Creates a new instance of BufferedBinaryReader, and specifies where to send progress messages.
The string path of a file to open using this BufferedBinaryReader.
Any implementation of IProgressHandler for receiving progress messages.
Closes the internal binary reader and underlying file, but does not free
the buffer that is in memory. For that, call the dispose method.
This will not close the file, so be sure to close before calling Dispose.
This will dispose the file stream and set the buffer to null.
Instructs the reader to fill its buffer with data. This only does something
if the buffer is not loaded yet. This method is optional since the first
effort at reading the file will automatically load the buffer.
This method will both assign a new maximum buffer size to the reader and
force the reader to load the values into memory. This is unnecessary
unless you plan on closing the file before reading values from this class.
Even if values are loaded, this will assign the MaxBufferSize property
so that future buffers have the specified size.
An integer buffer size to assign to the maximum buffer size before reading values.
Uses the seek method to quickly reach a desired location to begin reading.
This will not buffer or read values. If the new position is beyond the end
of the current buffer, the next read will load a new buffer.
A 64 bit integer specifying where to skip to in the file.
A System.IO.SeekOrigin enumeration specifying how to estimate the location.
Reads a boolean form the buffer, automatcially loading the next buffer if necessary.
A boolean value converted from bytes in the file.
Reads a character from two bytes in the buffer, automatically loading the next buffer if necessary.
Reads an array of character from two bytes in the buffer, automatically loading
Reads a double-precision floating point from 8 bytes in the buffer, automatically loading the next buffer if necessary.
Boolean, true if the value should be returned with little endian byte ordering.
A double value converted from bytes in the file.
Reads double precision X and Y values that are interwoven
Reads the specified number of doubles into an array
This uses Buffer.CopyBlock, and seems to work ok
for little-endian in windows.
The count of doubles
An array of doubles
Reads the specified number of integers into an array
The integer count of integers to read
An array of the specified integers and length equal to count
By default, this will use little Endian ordering.
An Int32 converted from the file.
Reads an integer from the file, using the isLittleEndian argument
to decide whether to flip the bits or not.
Boolean, true if the value should be returned with little endian byte ordering.
an Int32 value converted from bytes in the file.
Reads a short, sixteen bit integer as bytes in little-endian order
A short value
Reads a single-precision floading point from 4 bytes in the buffer, automatically loading the next buffer if necessary.
This assumes the value should be little endian.
A single-precision floating point converted from four bytes
Reads a single-precision floading point from 4 bytes in the buffer, automatically loading the next buffer if necessary.
Boolean, true if the value should be returned with little endian byte ordering.
A single-precision floating point converted from four bytes
Reads the specified number of bytes. This will throw an exception
if a number of bytes is specified that exeeds the file length.
The integer count of the bytes.
An array of bytes
copies count bytes from the internal buffer to the specified buffer index as the starting point in the specified buffer.
A previously dimensioned array of byte values to fill with data
The index in the argument array to start pasting values to
The number of values to copy into the parameter buffer
Fires the FinishedReading event.
Fires the FinishedBuffering event.
Gets the progress meter.
Gets a long integer specifying the starting position of the currently loaded buffer
relative to the start of the file. A value of -1 indicates that no buffer is
currently loaded.
Gets an integer value specifying the size of the buffer currently loaded into memory.
This will either be the MaxBufferSize, or a smaller buffer representing a smaller
remainder existing in the file.
Gets a boolean indicating whether there is currently any information loaded into the buffer.
Gets a boolean value once the offset has reached the end of the file,
and every byte value has been read from the file.
Gets a boolean value once the entire file has been loaded into memory.
This usually will occur before any reading even takes place.
Gets the length in bytes of the file being read.
Gets the current read position in the file in bytes.
Gets a long value specifying how many bytes have not yet been read in the file.
Gets or sets the buffer size to read in chunks. This does not
describe the size of the actual
Gets or sets the progress message that has no percentage as part of it.
This acts like a placeholder on the buffer and indicates where reading will begin (relative to the start of the buffer)
Occurs when this reader has read every byte from the file.
Occurs when the end of the last portion of the file has been
loaded into the file and the file has been closed.
The buffered binary reader was originally designed by Ted Dunsford to make shapefile reading more
efficient, but ostensibly could be used for other binary reading exercises. To use this class,
simply specify the BufferSize in bytes that you would like to use and begin reading values.
Creates a new instance of BufferedBinaryReader.
The string path of a file to open using this BufferedBinaryReader.
Creates a new instance of BufferedBinaryWriter, and specifies where to send progress messages.
The string path of a file to open using this BufferedBinaryReader.
Any implementation of IProgressHandler for receiving progress messages.
A long specifying the number of bytes that will be written for the purposes of tracking progress
Finishes writing whatever is in memory to the file, closes the
internal binary writer, the underlying file, clears the memory
and disposes the filestream.
Forces the buffer to paste all its existing values into the file, but does not
advance the buffer, or in fact do anything to the buffer. It does advance
the position of the file index.
This seeks both in the file AND in the buffer. This is used to write only
desired portions of a buffer that is in memory to a file.
A 64 bit integer specifying where to skip to in the file.
A System.IO.SeekOrigin enumeration specifying how to estimate the location.
Reads a boolean form the buffer, automatcially loading the next buffer if necessary.
Reads a character from two bytes in the buffer, automatically loading the next buffer if necessary.
A character to write to the buffer, and eventually the file
Reads an array of character from two bytes in the buffer, automatically loading
Reads a double from the buffer, automatically loading the next buffer if necessary.
Writes a double-precision floating point to 8 bytes in the buffer, automatically loading the next buffer if necessary.
A double-precision floating point decimal value to write as 8 bytes.
Boolean, true if the value should be returned with little endian byte ordering.
Writes the specified array of doubles to the file.
The values to write.
Writes the specified array of integers to the file.
The values to write.
By default, this will use little Endian ordering.
Reads an integer from the file, using the isLittleEndian argument
to decide whether to flip the bits or not.
A 32-bit integer to write as 4 bytes in the buffer.
Boolean, true if the value should be returned with little endian byte ordering.
Writes an Int16 to the buffer.
An Int16 to convert into 2 bytes to write to the buffer.
Writes a single-precision floading point to 4 bytes in the buffer, automatically loading the next buffer if necessary.
This assumes the value should be little endian.
A Single to convert to 4 bytes to write to the buffer.
Reads a single-precision floading point from 4 bytes in the buffer, automatically loading the next buffer if necessary.
A single-precision floating point converted from four bytes
Boolean, true if the value should be returned with little endian byte ordering.
Writes the specified bytes to the buffer, advancing the buffer automatically if necessary.
An array of byte values to write to the buffer.
Gets or sets the actual array of bytes currently in the buffer
Gets a long integer specifying the starting position of the currently loaded buffer
relative to the start of the file. A value of -1 indicates that no buffer is
currently loaded.
Gets an integer value specifying the size of the buffer currently loaded into memory.
This will either be the MaxBufferSize, or a smaller buffer representing a smaller
remainder existing in the file.
Gets a boolean indicating whether there is currently any information loaded into the buffer.
Gets the current read position in the file in bytes.
Gets or sets the buffer size to read in chunks. This does not
describe the size of the actual
Gets or sets the progress meter that is directly linked to the progress handler.
Gets or sets the progress handler for this binary writer
This acts like a placeholder on the buffer and indicates where reading will begin (relative to the start of the buffer)
LogException
Actually logs the exception. This happens after the message has been set in the constructors of the classes of this exception.
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.
Looks up a localized string similar to The argument %S cannot be null..
Looks up a localized string similar to The argument %S cannot be negative..
Looks up a localized string similar to The argument %S was null. Try testing for the null case before calling this method..
Looks up a localized string similar to The argument %S1 was incorrect for %S2..
Looks up a localized string similar to Calculating Statistics.
Looks up a localized string similar to The fileName %S cannot be copied to itself..
Looks up a localized string similar to Copying Values.
Looks up a localized string similar to The current element was not defined. Before attempting to read the element, first assign the value of the current XML Element to read..
Looks up a localized string similar to Cannot read past the end of the file..
Looks up a localized string similar to The FeatureType of the feature you are trying to add does not match the feature type of this featureset..
Looks up a localized string similar to The FeatureType was not specified. Please specify a featuretype before attempting to call this method..
Looks up a localized string similar to The fileName %S already exists. Do you wish to overwrite it?.
Looks up a localized string similar to The fileName %S was not found..
Looks up a localized string similar to The fileName %S contains a feature type other than lines..
Looks up a localized string similar to The fileName %S contains a feature type other than polygons..
Looks up a localized string similar to The specified file type is not supported..
Looks up a localized string similar to Attepted to set the enumeration field to the value '%s', which is not known..
Looks up a localized string similar to The specified charcter '%S' was not a known field type: 124cCesStlLfdmMbox".
Looks up a localized string similar to The number of rows and number of columns must both be greater than 0, but the header for this item returned %S1 rows and %S2 columns..
Looks up a localized string similar to You must first compress the data before accessing this value..
Looks up a localized string similar to Insertion via SetInstValue() is not yet supported for pointers..
Looks up a localized string similar to There was an error while attempting to index %S.
Looks up a localized string similar to The file %S could not be found..
Looks up a localized string similar to This has not yet been implemented..
Looks up a localized string similar to The value %S was too large to encode with 18 ASCII characters..
Looks up a localized string similar to The value %S was too small to be encoded with 18 ASCII characters..
Looks up a localized string similar to The value you entered could not be parsed into a %S. Make sure the value is in the valid range..
Looks up a localized string similar to The desired length of %S1 was too long. The total length was %S2 and the offset was %S3..
Looks up a localized string similar to The beginning eight bytes of the specified file did not match the png signature..
Looks up a localized string similar to The number of bytes should be 4 * rows * cols since only ARGB format is supported..
Looks up a localized string similar to The header has not been defined for the image scale you are attempting to access..
Looks up a localized string similar to The rows or columns would extend beyond the specified number of columns or rows for the specified scale..
Looks up a localized string similar to To work with anything other than an in-memory raster window, you must first cast this raster to the correct data format..
Looks up a localized string similar to The rasters must have equally sized cells to use this method..
Looks up a localized string similar to The specified raster would be too large to store in memory..
Looks up a localized string similar to Reading values from %S.
Looks up a localized string similar to Writing values to %S.
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 median between the median and the highest value.
This separates the third and fourth quartiles.
The highest value that is not considered an outlier.
If the values are not numeric, this will be the Maximum.
The median between the lowest value and the median value.
This separates the first quartile from the second.
The lowest value that is not considered to be an outlier.
If the values are not numeric, this will be the minimum.
The Median value (the value of the middle member)
CoordinateTypes
X and Y coordinates only
M values are available
Z values are available
DataTableStatisticsEM
Inspects the members of the data Table, focusing on the named field. It calculates
the median of the values in the named field.
Used by Segment.ClosestPointTo() to detail how the input point interacts with the line segment
The vertex found is on the line segment and between P1 and P2
The vertex found is beyond the end of P1
The vertex found is beyond the end of P2
P1 equals P2 so the segment cannot be extended into an infinite line the closest vertex is P1/P2
Clarifies whether a value is cached in a local variable or updated dynamically
The value is cached locally, rather than calculated on the fly
The value is calculated each type, rather than using a local cache
Byte order
Big Endian
Little Endian
Filetypes
An unrecognized file format
The Esri Shapefile format (*.shp)
Comma separated values (*.csv)
Google Markup Language (a variant of the Keyhole Markup Language) (*.gml)
MapInfo format (*.tab)
CAD format (Design) (*.dgn)
S-57 published by International Hydrographic Organization (IHO). (*.000)
Spatial Data Transfer Standard (*.sdts)
?
Topologically Integrated Geographic Encoding and Referencing (*.tig)
?
MS Excel ODBC Query File? (*.DQY)
maybe ODBC Data Source file? (*.DSN)
?
ArcInfo Vector Coverage
Geospatial Data Abstraction Library (GDAL) File (*.VRT)
Record file? (*.REC)
This represents the column information for one column of a shapefile.
This specifies precision as well as the typical column information.
Represents the number of decimals to preserve after a 0.
The length of a field in bytes
Creates a new default field empty field - needed for datatable copy and clone methods.
Creates a new default field given the specified DataColumn. Numeric types
default to a size of 255, but will be shortened during the save opperation.
The default decimal count for double and long is 0, for Currency is 2, for float is
3, and for double is 8. These can be changed by changing the DecimalCount property.
A System.Data.DataColumn to create a Field from
Creates a new instance of a field given only a column name
The string Column Name for the new field
Creates a new Field with a specific name for a specified data type
The string name of the column
The System.Type describing the datatype of the field
Creates a new field with a specific name and using a simplified enumeration of possible types.
the string column name.
The type enumeration that clarifies which basic data type to use.
This creates a new instance. Since the data type is
Internal method that decides an appropriate decimal count, given a data column
This is the single character dBase code. Only some of these are supported with Esri.
C - Character (Chars, Strings, objects - as ToString(), and structs - as )
D - Date (DateTime)
T - Time (DateTime)
N - Number (Short, Integer, Long, Float, Double, byte)
L - Logic (True-False, Yes-No)
F - Float
B - Double
Gets or sets the number of places to keep after the 0 in number formats.
As far as dbf fields are concerned, all numeric datatypes use the same
database number format.
The character length of the field
The offset of the field on a row in the file
Number Converter associated with this field.
FieldDataTypes stores some very simplistic data types to help novices get started more easily.
32 Bit integer data type
Double precision floating point data type
String data type
This is not a data class exactly, but instead is for making it easier to modify byte values of a 32 bit ARGB
bitmap, but doesn't require a file.
Creates a new instance of MemoryBitmapGrid
Creates a blank image grid.
Creates a clone of this memory bitmap grid by basically cloning the bitmap itself
and then building a new BitmapGrid around the clone.
Gets an enumerator for cycling through the color values.
Creates a disconnected duplicate of this BitmapGrid
Clears the byte values in the grid, replacing them with 0.
Disposes the unmanaged aspect of the bmp
Erases over any current content in the values, and copies the
byte values of the specified color in its place.
The color to fill the image with
Tests the specified bitmap to verify that it is both a Bitmap and in ARGB pixel format.
If it is anything different, then this returns a newly created bitmap with a copy drawn
onto it.
This will calculate the difference. The width and height of the new grid will be the larger
of the rows and columns between the compare grid and this grid. Values outside the range
of one of the grids will simply be filled in as the value stored in the other grid. Because
byte values can't be negative, the difference will be the absolute value.
A BitmapGrid with byte values calculated by taking the difference between the two grids.
By default, all the bands have a difference comparison done. This may not have the desired effect
because the alpha channel for most colors is actually just 255. The mathematical difference would
be zero, resulting in an output image that, while being the actual difference, is essentially
entirely invisibile (except where the images don't overlap.)
Gets a color structure for the specified row and column.
The zero based integer row index to get the color from
The zero based integer column index to get the color from
A System.Color structure created from the byte values in the values array
Compares the bytes of this grid to the bytes of another grid. If the measurements
of the other grid don't match this, then this returns false.
The other BitmapGrid to test against
Boolean, true if the bytes are the same in each case.
Replaces all the byte values of this grid with randomly generated values.
Sets the color structure by copying the byte ARGB values into the values array.
The integer row index to copy values to
The integer column index to copy values to
The color structure to turn into bytes
Setting this will automatically replace the byte array. Getting this will
automatically convert the bytes back into bitmap form.
Gets the integer height of the bitmap in this grid in pixels.
gets the integer stride, or number of actual bytes in a single row. This is not always the
same as the number of columns.
Gets or sets the array of bytes directly. Setting this can be
dangerous and is not recommended. Setting individual values in the
array is perfectly acceptable, since it won't interfere with
the stride or number of bytes expected.
Gets the current width (number of columns) of the bitmap in pixels.
Cycles through the values of a BitmapGrid starting at the top left corner and moving in row major
fashion, (raster-scan fashion, moving across end then down.)
Creates a new instance of a BitmapGridEnumerator based on the specified parentGrid. This
automatically ignores any bytes in the range past the "width".
The parent grid to cycle through the values of
This does nothing
Advances the color to the next position
Boolean, false if there were no more cells in the image
Resets the enumeration to the top left corner of the image.
Gets the current color value from this grid
DotNetImageProvider uses the standard image object to support basic image types through standard in-ram treatments.
Images are not responsible for producing grid values that can be represented symbolically.
IImageProvider
IDataProvider is what you implement to expand the data handling methods of DotSpatial
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 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, delimited
by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceded 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, preceded by the name provided on this object.
In addition, the same extension mapping will be used in order to pair a string driver code to the
extension.
Gets a preferably short name that identifies this data provider. Example might be GDAL.
This will be prepended to each of the DialogReadFilter members from this plugin.
Gets or sets the progress handler to use.
This provides a basic description of what your provider does.
Creates a new instance of an Image.
The string fileName to use
The integer width in pixels
The integer height in pixels
Boolean, true if the entire contents should be stored in memory
A Progress handler to use
The ImageBandType clarifying how to organize the raster bands.
A New IImageData object allowing access to the content of the image
Opens a new Image with the specified fileName
The string file to open
An IImageData object
Creates a new instance of an Image.
The string fileName to use
The integer width in pixels
The integer height in pixels
Boolean, true if the entire contents should be stored in memory
A Progress handler to use
.Net type ignores this for now.
A New IImageData object allowing access to the content of the image
Opens a new Image with the specified fileName
The string file to open
An IImageData object
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.
Gets or sets the progress handler
An Image Coverage just consists of several images that can be thought of as a single image region.
Queries for pixel values for a region will simply return the first value in the set that is not
completely transparent.
IImageSet is simple interface that gives some basic information that is common between tiled images and
the more general image coverages
Uses the geographic envelope and the specified pixelSize in order to calculate an
appropriate bitmap for display based on the various images in this set.
The geographic bounds to display
The pixelSize of the bitmap to display
A Bitmap showing the appropriate size and dimensions of the image
This is very generic, but allows the user to cycle through the images currently in the image set,
regardless of whether they are in a list or an array or other data structure.
Gets the count of the images in the image set
Gets or sets the list of tiles.
IImageData
Forces the image to read values from the graphic image format to the byte array format
Copies the values from the specified source image.
The source image to copy values from.
Forces the image to copy values from the byte array format to the image format.
Creates a color structure from the byte values in the values array that correspond to the
specified position.
The integer row index for the pixel.
The integer column index for the pixel.
A Color.
Opens the file, assuming that the fileName has already been specified
Saves the image and associated world file to the current fileName.
Saves the image to a new fileName.
The string fileName to save the image to.
Sets the bitmap being used for this dataset
This is only used in the palette indexed band type.
This should update the palette cached and in the file.
Sets the color value into the byte array based on the row and column position of the pixel.
The integer row index of the pixel to set the color of.
The integer column index of the pixel to set the color of
The color to copy values from
Gets a block of data directly, converted into a bitmap.
The zero based integer column offset from the left
The zero based integer row offset from the top
The integer number of pixel columns in the block.
The integer number of pixel rows in the block.
A Bitmap that is xSize, ySize.
Saves a bitmap of data as a continuous block into the specified location.
The bitmap value to save.
The zero based integer column offset from the left
The zero based integer row offset from the top
Finalizes the blocks. In the case of a pyramid image, this forces recalculation of the
various overlays. For GDAL images, this may do nothing, since the overlay recalculation
may be on the fly. For InRam images this does nothing.
Gets or sets an integer indicating how many bytes exist for each pixel.
Eg. 32 ARGB = 4, 24 RGB = 3, 16 bit GrayScale = 2
Gets or sets the fileName.
Gets the image height in pixels
Gets or sets the number of bands that are in the image.
One band is a gray valued image, 3 bands for color RGB and 4 bands
for ARGB.
Gets or sets the stride in bytes.
Gets a one dimensional array of byte values
Gets the image width in pixels
Gets or sets the world file that stores the georeferencing information for this image.
Gets or sets the interpretation for the image bands. This currently is only for GDAL images.
IImageSource
Returns the data from the file in the form of ARGB bytes.
The zero based integer index of the first row (Y)
The zero based integer index of the first column (X)
The number of rows to read
The number of columns to read
The integer overview. 0 for the original image. Each successive index divides the length and height in half.
A Byte of values in ARGB order and in row-major raster-scan sequence
This returns the window of data as a bitmap.
The zero based integer index of the first row (Y)
The zero based integer index of the first column (X)
The number of rows to read
The number of columns to read
The integer overview. 0 for the original image. Each successive index divides the length and height in half.
Gets or sets the bounds
Gets the number of rows
Gets the total number of columns
Gets the number of overviews, not counting the original image
TiledImage is a class for actually controlling the data in several tiles. This does not supply
direct accessors for
modifying the bytes directly, and instead expects the user to edit the image on a tile-by-tile basis. However,
the GetBitmap method will produce a representation of the envelope scaled to the specified window.
Creates a new instance of TiledImage
Gets the bitmap for the specified geographic envelope scaled to fit on a bitmap of the specified size in pixels.
Cycles through each of the images and calls the open method on each one.
Cycles through each of the images and calls the save method on each one
Gets or sets the Filename
ImageData (not named Image because of conflicting with the Dot Net Image object)
Creates a new instance of ImageData
Copies the values from the specified source image.
The source image to copy values from.
Attempts to create a bitmap for the entire image. This may cause memory exceptions.
A Bitmap of the image.
Sets the bitmap being used for this dataset
The geographic envelope gives the region that the image should be created for.
The window gives the corresponding pixel dimensions for the image, so that
images matching the resolution of the screen can be used.
The geographic extents to retrieve data for
The rectangle that defines the size of the drawing area in pixels
A bitmap captured from the main image
The geographic envelope gives the region that the image should be created for.
The window gives the corresponding pixel dimensions for the image, so that
images matching the resolution of the screen can be used.
The geographic extents to retrieve data for
The rectangle that defines the size of the drawing area in pixels
A bitmap captured from the main image
Opens the file, assuming that the fileName has already been specified
Forces the image to read values from the graphic image format to the byte array format
Saves the image and associated world file to the current fileName.
Saves the image to a new fileName.
The string fileName to save the image to.
Forces the image to copy values from the byte array format to the image format.
Creates a new image and world file, placing the default bounds at the origin, with one pixel per unit.
The string fileName
The integer width
The integer height
The color band type
Opens the file with the specified fileName
The string fileName to open
Creates a color structure from the byte values in the values array that correspond to the
specified position.
The integer row index for the pixel.
The integer column index for the pixel.
A Color.
Sets the color value into the byte array based on the row and column position of the pixel.
The integer row index of the pixel to set the color of.
The integer column index of the pixel to set the color of
The color to copy values from
Gets a block of data directly, converted into a bitmap.
The zero based integer column offset from the left
The zero based integer row offset from the top
The integer number of pixel columns in the block.
The integer number of pixel rows in the block.
A Bitmap that is xSize, ySize.
Saves a bitmap of data as a continuous block into the specified location.
Be sure to call UpdateOverviews after writing all blocks in pyramid images.
The bitmap value to save.
The zero based integer column offset from the left
The zero based integer row offset from the top
Finalizes the blocks. In the case of a pyramid image, this forces recalculation of the
various overlays. For GDAL images, this may do nothing, since the overlay recalculation
may be on the fly. For InRam images this does nothing.
This is only used in the palette indexed band type.
This should update the palette cached and in the file.
Occurs when the bounds have been set.
The new bounds.
Disposes the managed memory objects in the ImageData class, and then forwards
the Dispose operation to the internal dataset in the base class, if any.
Boolean, true if both managed and unmanaged resources should be finalized.
Gets or sets the color palette
Gets or sets an integer indicating how many bytes exist for each pixel.
Eg. 32 ARGB = 4, 24 RGB = 3, 16 bit GrayScale = 2
Gets or sets the fileName.
Gets the image height in pixels
Gets or sets the number of bands that are in the image. One band is a gray valued image, 3 bands for color RGB and 4 bands
for ARGB.
Gets or sets the stride in bytes.
Gets a one dimensional array of byte values
Gets the image width in pixels
Gets or sets the world file that stores the georeferencing information for this image.
Gets or sets the interpretation for the image bands. This currently is only for GDAL images.
ITiledImage
Gets or sets the bounds for this image
Gets or sets the fileName for this tiled image.
Gets or sets the integer height in pixels for the combined image at its maximum resolution
Gets the stride, or total width in pixels of the byte data, which might not match exactly with the visible width.
Gets the tile width
Gets the tile height
Gets or sets the integer pixel width for the combined image at its maximum resolution.
Gets or sets the WorldFile for this set of tiles.
MWImageData
The _my image.
Initializes a new instance of the class.
Creates an empty ImageData to be created or loaded
Initializes a new instance of the class.
Creates a new MWImageData class from the specified fileName.
The string filename.
Initializes a new instance of the class.
Creates the bitmap from the raw image specified. The bounds should be set on this later.
The raw image.
Initializes a new instance of the class.
Uses a bitmap and a geographic envelope in order to define a new imageData object.
The raw image.
The envelope bounds.
Initializes a new instance of the class.
Constructs a new ImageData of the specified width and height.
The integer width in pixels.
The integer height in pixels.
Closes the image content.
Forces the image to read values from the graphic image format to the byte array format
Copies the values from the specified source image.
The source image to copy values from.
Forces the image to copy values from the byte array format to the image format.
Creates a new image and world file, placing the default bounds at the origin, with one pixel per unit.
The string fileName
The integer width
The integer height
The ImageBandType that clarifies how the separate bands are layered in the image.
Returns the internal bitmap in this case. In other cases, this may have to be constructed
from the unmanaged memory content.
A Bitmap that represents the entire image.
The geographic envelope gives the region that the image should be created for.
The window gives the corresponding pixel dimensions for the image, so that
images matching the resolution of the screen can be used.
The geographic extents to retrieve data for
The rectangle that defines the size of the drawing area in pixels
A bitmap captured from the main image
Opens the file, assuming that the fileName has already been specified using a Dot Net Image object
Saves the current image and world file.
Saves the image to the specified fileName
The string fileName to save this as
Sets the bitmap
Release any unmanaged memory objects
The dispose Managed Resources.
The memory setup.
Gets a block of data directly, converted into a bitmap.
The zero based integer column offset from the left
The zero based integer row offset from the top
The integer number of pixel columns in the block.
The integer number of pixel rows in the block.
A Bitmap that is xSize, ySize.
Extends the normal bounds changing behavior to also update the world file.
Updates the world file.
Saves a bitmap of data as a continuous block into the specified location.
The bitmap value to save.
The zero based integer column offset from the left
The zero based integer row offset from the top
BitDepth
One bit per band pixel
Two bits per band pixel
Four bits per band pixel
Eight bits per band pixel (normal)
Sixteen bits per band pixel
ColorType
Each pixel is a greyscale sample
Each pixel is an RGB triple
Each pixel is a palette index
Each pixel is a greyscale sample followed by an alpha sample
EAch pixel is an RGB triple followed by an alhpa sample
CRC32
A table of values
Calculates the CRC-32-IEEE 802.3 Checkzum for png according to:
x^32 + x^26 + x^23 + x^22 + x^16 + + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1
Computes the Checksum
Computes the checksum bytes
Creates a table of checksum values
Calculates the CRC-32-IEEE 802.3 Checkzum for png according to:
x^32 + x^26 + x^23 + x^22 + x^16 + + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1
A UInt32 value stored in a long because UINT32 is not CLS compliant
Updates the running CRC
Creates the table according to the png specification
Deflated data content is widely understood by gzip utilities, but this system is specifically designed to work
with png data format, and so will only work with code 8 compression strategy.
Compress
Decompress
InterlaceMethods
No interlacing
Adam7 interlacing
mw.png provides read-write support for a png format that also can provide overviews etc.
This cannot work with any possible png file, but rather provides at least one common
format that can be used natively for large files that is better at compression than
just storing the values directly.
http://www.w3.org/TR/2003/REC-PNG-20031110/#11PLTE
For testing, see if we can write a png ourself that can be opened by .Net png.
The image to write to png format
The string fileName
Reads a fileName into the specified bitmap.
If the file signature doesn't match the png file signature
Writes an in Big-endian Uint format.
Many rows may be evaluated by this process, but the first value in the array should
be aligned with the left side of the image.
The original bytes to apply the PaethPredictor to.
The integer offset in the array where the filter should begin application. If this is 0, then
it assumes that there is no previous scan-line to work with.
The number of bytes to filter, starting at the specified offset. This should be evenly divisible by the width.
The integer width of a scan-line for grabbing the c and b bytes
The entire length of bytes starting with the specified offset
Unfilters the data in order to reconstruct the original values.
The filtered but decompressed bytes
the integer offset where reconstruction should begin
The integer length of bytes to deconstruct
The integer width of a scan-line in bytes (not counting any filter type bytes.
B C - For the current pixel X, use the best fit from B, C or A to predict X.
A X
PngHeader
At this time, the only compression method recognized is 0 - deflate/inflate with a
sliding window of at most 32768 bytes
At this time, only filter method 0 is outlined in the international standards.
(adaptive filtering with 5 basic filter types)
Creates a new instance of PngHeader
Writes the byte-format of this png image header chunk to
Returns the image header in bytes.
Writes an integer in Big-endian Uint format.
Writes an integer in Big-endian Uint format.
Reads the important content from the stream of bytes
Gets or sets the bit depth. Depending on the Color Type, not all are allowed:
Greyscale - 1, 2, 4, 8, 16
Truecolor - 8, 16
Indexed - 1, 2, 4, 8
Greyscale/alpha - 8, 16
TrueColor/alpha - 8, 16
Gets or sets the color type.
Gets or sets the width
Gets or sets the height
Gets or sets the interlacing method used for this image.
PngInsuficientLengthException
Creates a new instance of PngInsuficientLengthException
PngInvalidSignatureException
Creates a new instance of PngInvalidSignatureException
PyramidByteMismatch
PyramidException
Creates a new instance of PyramidException
Creates a new instance of PyramidByteMismatch
PyramidHeader
Calculates the header size for this
Gets or sets the array that encompasses all of the basic header content
necessary for working with this image.
The Pyramid Image is designed with the expectation that the image will be too big to access all at once.
It is stored with multiple resolutions in a "mwi or DotSpatial Image" format. It is raw bytes in argb order.
The header content is stored in xml format.
Creates a new instance of PyramidImage
Creates a new PyramidImage by reading in the header content for the specified fileName.
Creates a new Pyramid image, and uses the raster bounds to specify the number or rows and columns.
No data is written at this time.
For big images this won't work, but this gets the 0 scale original image as a bitmap.
For big images the scale that is just one step larger than the specified window will be used.
Creates the headers using the existing RasterBounds for this image
This takes an original image and calculates the header content for all the lower resolution tiles.
This does not actually write the bytes for those images.
The raster bounds for the original image.
This takes an original image and calculates the header content for all the lower resolution tiles.
This does not actually write the bytes for those images.
The number of rows in the original image
The number of columns in the original image
the array of doubles in ABCDEF order
X' = A + Bx + Cy
Y' = D + Ex + Fy
This assumes that the base image has been written to the file. This will now attempt to calculate
the down-sampled images.
This assumes that the base image has been written to the file. This will now attempt to calculate
the down-sampled images.
downsamples this row by selecting every other byte
This is normally weighted for calculations for the middle row. If the top or bottom row
is null, it will use mirror symetry by grabbing values from the other row instead.
This writes a window of byte values (ARGB order) to the file. This assumes that the headers already exist.
If the headers have not been created or the bounds extend beyond the header numRows and numColumns for the
specified scale, this will throw an exception.
The integer start row
The integer start column
The integer number of rows in the window
The integer number of columns in the window
The integer scale. 0 is the original image.
The bytes created by this process
Occurs when attempting to write data before the headers are defined
Occurs if the range specified is outside the bounds for the specified image scale
This writes a window of byte values (ARGB order) to the file. This assumes that the headers already exist.
If the headers have not been created or the bounds extend beyond the header numRows and numColumns for the
specified scale, this will throw an exception.
The byte array
The integer start row
The integer start column
The integer number of rows in the window
The integer number of columns in the window
The integer scale. 0 is the original image.
Occurs when attempting to write data before the headers are defined
Occurs if the range specified is outside the bounds for the specified image scale
This writes a window of byte values (ARGB order) to the file. This assumes that the headers already exist.
If the headers have not been created or the bounds extend beyond the header numRows and numColumns for the
specified scale, this will throw an exception.
The byte array
The integer start row
The integer start column
The integer number of rows in the window
The integer number of columns in the window
The integer scale. 0 is the original image.
The progress meter to advance by row. Calls Next() for each row.
Occurs when attempting to write data before the headers are defined
Occurs if the range specified is outside the bounds for the specified image scale
Reads the header only from the specified mwi file. The header is in xml format.
This is a test. We may have to jurry rig the thing to ensure it ignores the actual
image content.
Whether this is the mwi or mwh file, this reads the mwh file for the fileName.
Writes the header to the specified fileName.
The string fileName to write the header to.
Gets a block of data directly, converted into a bitmap. This is a general
implementation, so assumes you are reading and writing to the 0 scale.
This is always in ARGB format.
The zero based integer column offset from the left
The zero based integer row offset from the top
The integer number of pixel columns in the block.
The integer number of pixel rows in the block.
A Bitmap that is xSize, ySize.
Saves a bitmap of data as a continuous block into the specified location. This
is a general implementation, so assumes you are reading and writing to the 0 scale.
This should be in ARGB pixel format or it will fail.
The bitmap value to save.
The zero based integer column offset from the left
The zero based integer row offset from the top
Updates overviews. In the case of a Pyramid image, this recalculates the values.
Gets or sets the pyramid image header
PyramidImageHeader
Scale is an integer value that starts at 0 for the original image and represents the number of
times the number of columns and number of rows are divided by 2.
The affine array of the original, unmodified image
The integer scale starting at 0 for the original image, and increasing by one for each down-sampling
Sets the number of rows based on the integer scale
integer starts at 0 for the original image
Sets the number of columns based on the integer scale
integer starts at 0 for the original image
Offsets
Integer number of rows
Integer number of columns
Gets or sets the affine coefficients for this image in ABCDEF order
X' = A + BX + CY
Y' = D + EX + FY
PyramidOutOfBoundsException
Creates a new instance of PyramidOutOfBoundsException
PyramidUndefinedHeader
Creates a new instance of PyramidUndefinedHeader
TileCollection
Creates a new instance of TileCollection
Calls a method that calculates the propper image bounds for each of the extents of the tiles,
given the affine coefficients for the whole image.
x' = A + Bx + Cy; y' = D + Ex + Fy
Gets the width of the tile
Gets the height of the tile
Gets the number of tiles in the X direction
Gets the integer number of tiles in the Y direction
Gets or sets the integer height in pixels for the combined image at its maximum resolution
Gets or sets the integer pixel width for the combined image at its maximum resolution.
Gets or sets the 2D array of tiles
The width of the standard sized tile (not counting the remainder)
The height of the standard sized tile, not counting the remainder.
The total number of tiles
Enumerates the collection of tiles
Creates a new instance of hte TileCollectionEnumerator
The parent tileCollection
TiledImage is a special kind of image coverage where the images specifically form tiles that
are adjacent and perfectly aligned to represent a larger image.
Creates a new instance of the TiledImage where the fileName is specified.
This doesn't actually open the file until the Open method is called.
Creates a new instance of TiledImage
This should be overridden with custom file handling
Even if this TiledImage has already been constructed, we can initialize the tile collection later.
Calls a method that calculates the proper image bounds for each of the extents of the tiles,
given the affine coefficients for the whole image.
x' = A + Bx + Cy; y' = D + Ex + Fy
Not Implemented
Not Implemented.
Not Implemented
Not implemented
Not Implemented
Not implemented
Gets or sets the array of tiles used for this
Gets or sets the number of bands
Not Implemented
Gets or sets the WorldFile for this set of tiles.
WorldFiles complement images, giving georeference information for those images. The basic idea is to calculate
everything based on the top left corner of the image.
Creates a new instance of WorldFile
Automatically creates a new worldfile based on the specified image fileName.
Attempts to open the fileName for the world file for the image if it exists.
Returns the string extensions that accompanies one of the dot net image formats.
The Imaging.ImageFormat for the image itself
The string extension
Given the fileName of an image, this creates a new fileName with the appropriate extension.
This will also set the fileName of this world file to that extension.
The fileName of the image
the fileName of the world file
Opens the worldfile specified by the Filename property and loads the values
Opens an existing worldfile based on the specified fileName
Saves the current affine coordinates to the current fileName
Saves the current coordinates to a file
Gets or sets the fileName to use for an image
Creates a Matrix that is in float coordinates that represents this world file
A Matrix that transforms an image to the geographic coordinates
gets the coordinates in the Affine order:
X' = [0] + [1] X + [2] Y
Y' = [3] + [4] X + [5] Y
Gets or sets the fileName to use for this world file.
Gets or sets the cellHeight
Gets or sets the cellWidth
Gets or sets longitude or X position corresponding to the center of the cell in the top left corner of the image
Gets or sets the latitude or Y position corresponding to the center of the cell in the top left corner of the image
Gets or sets how much the longitude or X position of a cell in the image depends on the row position of the cell.
Gets or sets how much the latitude or Y position of a cell in the image depends on the column position of the cell.
Gets a string list of file extensions that might apply to world files.
Coordinate
Coordinate x-value
coordinate y-value
Datum
Creates a new instance of Datum
Gets or sets the name of the datum
Gets or sets the datum type
Gets or sets the parameters for the Parametric datum type
Gets or sets the string name of the grid file
HfaDatumType
The datum info is 7 doubles
The datum info is a name
No Datum info
ERDAS Projection Codes
EPT ERDAS DATA TYPES
Unsigned 1 bit
Unsigned 2 bit
Unsigned 4 bit
Unsigned 8 bit
Signed 8 bit
Unsigned 16 bit
Signed 16 bit
Unsigned 32 bit
Signed 32 bit
Single precisions 32 bit floating point
Double precision 64 bit floating point
64 bit character?
128 bit character?
Extension Methods useful for the DotSpatial.Data.Img content
A common task seems to be parsing the text up to a certain delimiter
starting from a certain index, and then advancing the string pointer.
This advances the index, extracting the string up to the point of the
specified delimeter, or the end of the string, and advancing the string
past the delimeter itself. If the index is equal to the length,
then you are at the end of the string.
Given a string, this reads digits into a numeric value.
The string to read the integer from
An integer read from the string
This variant of the ExtractTo algorithm effectively splits the string into teh content
before the delimeter and after the delimeter, not counting the delimeter.
The string input
The string delimeter
the string remainder
This method returns a substring based on the next occurance of the
specified delimeter.
The string input
The delimeter
Hfa
Gets the bitcount of a single member of the specified data type.
The data type to get the byte count of
An integer that represents the bit count of the specified type
Reverses the byte order on Big-Endian systems like Unix to conform with the
HFA standard of little endian.
Return ReadType
Given the byte array, this reads four bytes and converts this to a 32 bit integer.
This always uses little endian byte order.
Given the byte array, this reads four bytes and converts this to a 16 bit unsigned short integer.
This always uses little endian byte order.
Given the byte array, this reads four bytes and converts this to a 32 bit integer.
This always uses little endian byte order.
Given the byte array, this reads four bytes and converts this to a 32 bit floating point value
This always uses little endian byte order.
Given the byte array, this reads four bytes and converts this to a 64 bit floating point value
This always uses little endian byte order.
Given the byte array, this reads four bytes and converts this to a 32 bit unsigned integer.
This always uses little endian byte order.
A UInt32 value stored in a long because UInt32 is not CLS Compliant
Obtains the 4 byte equivalent for 32 bit Unsigned Integer values
The unsigned integer value to convert into bytes
The bytes in LittleEndian standard, regardless of the system architecture
Obtains the 4 byte equivalent for 32 bit Integer values
The unsigned integer value to convert into bytes
The bytes in LittleEndian standard, regardless of the system architecture
Obtains the 4 byte equivalent for 32bit floating point values
The unsigned integer value to convert into bytes
The bytes in LittleEndian standard, regardless of the system architecture
Obtains the 8 byte equivalent for 64 bit floating point values
The unsigned integer value to convert into bytes
The bytes in LittleEndian standard, regardless of the system architecture
Gets the 2 byte equivalent of an unsigned short in little endian format
Gets the 2 byte equivalent of a short in little endian format
HfaAccess
Read Only with no update access
Read/Write access
HfaCompress - Development on hold, commented out to reduce warnings
HfaDictionary
Creates a new instance of HfaDictionary
Adds the type using the TypeName as the key
The type to add
Writes all the elements from this dictionary to the specified stream.
Given a character type, this calculates a size. This was originally
on the Dictionary, but I moved this to the HfaInfo instead.
HfaEntry
Creates a new instance of HfaEntry from the file
Create a new instance of the entry with the intention that it would
be written to disk later
Creates a new instance of HfaEntry
Loads the data bytes for this element from the file
Parses a name which may have an unwanted : or multiple sub-tree
names separated with periods.
If this is null, then there is no further subtree
This parses a complete "path" separated by periods in order
to search for a specific child node.
Gets or sets the HfaEntry that is the child
Gets or sets a boolean indicating if this is changed
Gets or sets the long integer file position
Gets or sets the HFA Info
Gets or sets the hfa parent
Gets or sets the previous entry
Gets or sets the long integer position of the next entry in the file
Gets or sets the HfaEntry that is the next entry
Gets or sets the long position of the child
Gets or sets the 64 character name of the entry
gets or sets the 32 character typestring
Gets or sets the type for this entry
The GUInt32 Data Position of this entry
The GUInt32 Data Size of this entry
Gets the data for this entry
Gets or sets the collection of all the children.
Gets or sets the first child belonging to this entry.
HfaEnumerationNotFoundException
Creates a new instance of HfaEnumerationNotFoundException
HfaField
This writes formatted content for this field to the specified IO stream.
The stream to write to.
SetInstValue
Attempting to insert a pointer is not supported.
Occurs if the specified value is not a valid member of the enumeration for this field.
Scans through the array and estimates the byte size of the field in this case.
Gets the count for a particular instance of a field. This will normally be
the built in value, but for variable fields, this is extracted from the
data itself.
This is used in the case of 'object' pointers where the indexed object is further in the data block.
Occurs if the count is less than zero for the header of a block of base data
Parses the input string into a valid HfaField, or returns null
if one could not be created.
Gets or sets the short integer number of bytes
Gets or sets the short integer item count
Gets or sets '\0', '*' or 'p'
Gets or sets 1|2|4|e|...
If ItemType == 'o'
Gets or sets the item object type
Normally null unless this is an enum
Gets or sets the field name
HfaInfo
Creates a new instance of HfaInfo
Gets or sets the access type
Gets or sets a dictionary for looking up types based on string type names.
The directory path
The string fileName sans path
sans path
End of file
Root position
The entry header length
The integer version
Boolean, true if the tree has changed
The file stream
HfaInvalidCountException
Creates a new instance of HfaInvalidCountException
HfaNotCompressedException
Creates a new instance of HfaNotCompressedException
HfaPointerInsertNotSupportedException
Creates a new instance of HfaPointerInsertNotSupportedException
HfaType
Completes the defenition of this type based on the existing dictionary
This function writes content to the file for this entire type by writing
the type name and number of bytes, followed by cycling through and writing each
of the fields.
Triggers a dump on all the fields of this type.
Extracts the value form the byte array
Gets the number of bytes for this type by adding up the byte contribution from each of its fields.
The array of bytes to scan.
The integer index in the array where scanning should begin.
The integer count.
Attempts to find the specified field in the field path and extracts the size of the specified field in bytes
Originally Initialize
The input string that contains content for this type
The remaining string content, unless this fails in which case this may return null
The short integer number of bytes
The short integer number of fields
The type name
Gets or sets the list of fields
HfaTypeException
Creates a new instance of HfaTypeException
MapInfo
Gets or sets the map coordinats of the center of the lower right pixel
Gets or sets the size of a single pixel in map units
Gets or sets the string Projection Name
Gets or sets the map units
Gets or sets the map coordinates of center of upper left pixel
NAD
Use the North American Datum 1927
Use the North American Datum 1983
Use the North America Datum High Accuracy Reference Network
ProParameters
Creates a new instance of the ProParameters class
Gets or sets the string exectable name for external projectiosn
Gets or sets the string projection name
Gets or sets the projection number for internal projections
Projection parameters array in the GCTP form
Gets or sets the projection type
Gets or sets the projection zone (UTM, SP only)
The projection spheroid
ProType
Indicates that hte projection is built into the eprj package as function calls
Indicates that hte projection is accessible as an exteranl executable
Size
pixelsize height
pixelsize width
Spheroid
Gets or sets the semi-major axis of the ellipsoid
Gets or sets the semi-minor axis of the ellipsoid
Gets or sets the eccentricity squared
Gets or sets the radius of the sphere
Gets or sets the string name o the ellipsoid
IDataLayer
This should finalize the transaction, saving changes to the database or disk
Creates a feature
Creates a feature from a shape and some data row values.
Creates a new field for this data layer in the data source
Deletes the feature at the specified index location
The fid
Disposes any unmanaged memory objects
Gets the feature at the specified index
Gets the shape
Gets the features
Gets the name of the feature ID column
Gets the string name of the geometry column
Returns the field definitions as an array of fields.
An array of field objects that encompass the schema
Rolls back the transactions
Gets the projection information associated with this projection
sets the specified feature
Sets the shape
Sets the spatial filter by using the specified rectangular extents instead of a geometry.
The minimum value in the X direction.
The minimum value in the Y direction.
The maximum value in the X direction.
The maximum value in the Y direction.
Boolean, true if hte spatial filter rectangle is set.
Starts the transaction
Syncrhonize to disk
Test Capability
Gets the extent of the data layer
Gets the name of this layer
Gets or sets the spatial filter so that only members that intersect with the specified
geometry will be returned.
PluginInfo
Creates a new instance of PluginInfo
Creates a new instance of a PluginInfo class with the specified parameters
Settings
Key
AffineTransform
Creates a new instance of AffineTransform
Given any input row or column, this returns the appropriate geographic location for the
position of the center of the cell.
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the center of the specified cell
Given the row and column, this returns the geographic position of the top left corner of the cell
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the top left corner of the specified cell
Given the row and column, this returns the geographic position of the top right corner of the cell
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the top right corner of the specified cell
Given the row and column, this returns the geographic position of the bottom left corner of the cell
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the bottom left corner of the specified cell
Given the row and column, this returns the geographic position of the bottom right corner of the cell
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the bottom right corner of the specified cell
Given the row and column, this returns new affine coefficients transformed to that cell
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
Transoformed affine coefficients
Returns the row and column index.
Gets or sets the ICoordinate
An RcIndex that shows the best row or column index for the specified coordinate.
Gets or sets the array of coefficients for this transform
BinaryDataProvider
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.
An IRaster
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.
An IDataSet to be added to the Map. These can also be groups of datasets.
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.
An IDataSet to be added to the Map. These can also be groups of datasets.
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
A Non-File based open. If no DialogReadFilter is provided, DotSpatial will call
this method when this plugin is selected from the Add Other Data option in the
file menu.
Reads a binary header to determine the appropriate data type
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.
Gets or sets the control or method that should report on progress
RasterBoundsEM
Calculates the area of this envelope. Because the word Area,
like Volume, is dimension specific, this method only looks
at the X and Y ordinates, and requires at least 2 ordinates.
The IEnvelope to use with this method
The 2D area as a double value.
Gets the minY, which is Y - Height.
The IRasterBounds that this calculation is for.
Uses the specified distance to expand the envelope by that amount in all dimensions.
The IRasterBounds that this calculation is for.
The double distance to expand in all directions.
Gets the left value for this rectangle. This should be the
X coordinate, but is added for clarity.
The IRasterBounds that this calculation is for.
Gets the right value, which is X + Width.
The IRasterBounds that this calculation is for.
Gets the maxY value, which should be Y.
The IRasterBounds that this calculation is for.
The double value representing the Max Y value of this rectangle
Use the Open method instead of this extension. This only provides
a default behavior that can optionally be used by implementers
of the IRasterBounds interface.
The bounds to open
The *.wld or *.**w world file to open
Use the Save method instead of this extension. This only provides
a default behavior that can optionally be used by implementers
of the IRasterBounds interface.
Generates a new version of the affine transform that will
cover the same region, but using the specified number of
rows and columns instead.
The raster bounds to resample
The new number of rows
The new number of columns
X = [0] + [1] * Column + [2] * Row
Y = [3] + [4] * Column + [5] * Row
Attempts to save the affine coefficients to the specified worldfile file name
The bounds to save
The fileName to save this bounds to
Converts creates a float precisions drawing matrix from the double precision affine
coordinates. The Matrix can be manipulated and then set back. Some precision will
be lost, however, as only floats are supported.
Re-defines the double precision affine transform values based on the specified
system.Drawing.Matrix.
The bounds to adjust based on the matrix
The matrix to use as a guide for adjustments.
Images can be skewed, so this gets the point that actually defines the bottom left
corner of the data in geographic coordinates
Images can be skewed, so this gets the point that actually defines the bottom right
corner of the data in geographic coordinates
Images can be skewed, so this gets the point that actually defines the top left
corner of the data in geographic coordinates
The IRasterBounds to obtain the top left of
Images can be skewed, so this gets the point that actually defines the top right
corner of the data in geographic coordinates
Given any input row or column, this returns the appropriate geographic location for the
position of the center of the cell.
The raster bounds to perform the calculation on
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the center of the specified cell
Given the row and column, this returns the geographic position of the top left corner of the cell
The raster bounds to perform the calculation on
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the top left corner of the specified cell
Given the row and column, this returns the geographic position of the top right corner of the cell
The raster bounds to perform the calculation on
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the top right corner of the specified cell
Given the row and column, this returns the geographic position of the bottom left corner of the cell
The raster bounds to perform the calculation on
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the bottom left corner of the specified cell
Given the row and column, this returns the geographic position of the bottom right corner of the cell
The raster bounds to perform the calculation on
The integer row index from 0 to numRows - 1
The integer column index from 0 to numColumns - 1
The geographic position of the bottom right corner of the specified cell
Returns the row col index
The raster bounds to perform the calculation on
Gets or sets the ICoordinate
An RcIndex that shows the best row or column index for the specified coordinate.
The affine transform can make figuring out what rows and columns are needed from the original image
in order to correctly fill a geographic extent challenging. This attempts to handle that back projection
problem. It returns a System.Drawing.Rectangle in pixel (cell) coordinates that is completely contains
the geographic extents, but is not larger than the bounds of the underlying image.
If geographic extent fully contains extent of IRasterBounds, than returns rectangle which contains full raster image.
If geographic extent partially contains extent of IRasterBounds, than returns rectangle which contains needed edges of full raster image.
It back projects all four corners of the extent and returns the bounding rectangle clipped by the image rectangle.
Instance of
Extent to test.
Rectangle in pixel (cell) coordinates.
A new model, now that we support 3.5 framework and extension methods that are essentially
derived characteristics away from the IRaster interface, essentially reducing it
to the simplest interface possible for future implementers, while extending the most
easy-to-find functionality to the users.
determine if the shape is partially inside grid extents
false, if the shape is completely outside grid extents
true, if it's at least partially inside
Gets a boolean that is true if the Window extents contain are all the information for the raster.
In otherwords, StartRow = StartColumn = 0, EndRow = NumRowsInFile - 1, and EndColumn = NumColumnsInFile - 1
This doesn't change the data, but instead performs a translation where the upper left coordinate
is specified in world coordinates.
Moves this raster so that the upper left coordinate will match the specified position. The skew and cellsize will remain unaltered
The location to move the upper left corner of the raster to in world coordinates.
Rotates the geospatial reference points for this image by rotating the affine coordinates.
The center for this rotation will be the center of the image.
The raster to rotate
The angle in degrees to rotate the image counter clockwise.
Rotates the geospatial reference points for this image by rotating the affine coordinates.
The center for this rotation will be the center of the image.
The raster to rotate about the specified coordinate
The angle in degrees to rotate the image counterclockwise.
The point that marks the center of the desired rotation in geographic coordiantes.
This method uses a matrix transform to adjust the scale. The precision of using
a Drawing2D transform is float precision, so some accuracy may be lost.
The raster to apply the scale transform to
The multiplier to adjust the geographic extents of the raster in the X direction
The multiplier to adjust the geographic extents of the raster in the Y direction
This method uses a matrix transform to adjust the shear. The precision of using
a Drawing2D transform is float precision, so some accuracy may be lost.
The raster to apply the transform to
The floating point horizontal shear factor
The floating ponit vertical shear factor
Applies a translation transform to the georeferenced coordinates on this raster.
The raster to apply the translation to
An ICoordinate with shear values
Retrieves the data from the cell that is closest to the specified coordinates. This will
return a No-Data value if the specified coordintes are outside of the grid.
The raster to get the value from
A valid implementation of Icoordinate specifying the geographic location.
The value of type T of the cell that has a center closest to the specified coordinates
Retrieves the data from the cell that is closest to the specified coordinates. This will
return a No-Data value if the specified coordintes are outside of the grid.
The raster to get the value from
The longitude or horizontal coordinate
The latitude or vertical coordinate
The double value of the cell that has a center closest to the specified coordinates
Retrieves the location from the cell that is closest to the specified coordinates. This will
do nothing if the specified coordinates are outside of the raster.
The IRaster to set the value for
The longitude or horizontal coordinate
The latitude or vertical coordinate
The value to assign to the nearest cell to the specified location
Retrieves the location from the cell that is closest to the specified coordinates. This will
do nothing if the specified coordinates are outside of the raster.
The IRaster to set the value for
An Icoordinate specifying the location
The value to assign to the nearest cell to the specified location
Extends the IRaster interface to return the coordinate of the center of a row column position.
The raster interface to extend
The zero based integer index of the row and column of the cell to locate
The geographic location of the center of the specified cell
Extends the IRaster interface to return the coordinate of the center of a row column position.
The raster interface to extend
The zero based integer index of the row of the cell to locate
The zero based integer index of the column of the cell to locate
The geographic location of the center of the specified cell
Extends the IRaster interface to return the zero based integer row and column indices
The raster interface to extend
The geographic coordinate describing the latitude and longitude
The RcIndex that describes the zero based integer row and column indices
Extends the IRaster interface to return the zero based integer row and column indices
The raster interface to extend
A double precision floating point describing the longitude
A double precision floating point describing the latitude
The RcIndex that describes the zero based integer row and column indices
BgdRaster
Raster
Handles the native file functions for float grids, without relying on GDAL.
A general
This only works for in-ram rasters. This basically makes a new raster that has all the same
in memory values
An IRaster that is a duplicate of this class
Creates a duplicate version of this file. If copyValues is set to false, then a raster of NoData values is created
that has the same georeferencing information as the source file of this Raster, even if this raster is just a window.
The string fileName specifying where to create the new file.
If this is false, the same size and georeferencing values are used, but they are all set to NoData.
Even if this is a window, this will cause this raster to show statistics calculated from the entire file.
Most raster methods are optimized for reading in lines or blocks at a time. This one is designed
to be used for scattered points.
The zero based integer index that is Row * NumColumnsInFile + Column
The list of double values
Returns a subset from the file that includes only the specified offsets. The result is a raster,
and the extents are calculated, but the row and column values are in terms of the window,
not the original raster. The band can be controlled by setting the "Current Band" first.
X axis or horizontal offset (0 based from left)
Y axis or vertical offset (0 based from top)
Number of columns
Number of rows
An IRaster created from the appropriate type;.
This writes the values to the file, even if the IRaster has more values than the xSize or ySize
stipulate, and even if the source raster has values of a different type.
The IRaster that contains data values to write to the file
The 0 based integer horizontal offset from the left
The 0 based integer vertical offset from the top
The integer number of columns to write
The integer number of rows to write
Saves changes from any values that are in memory to the file. This will preserve the existing
structure and attempt to only write values to the parts of the file that match the loaded window.
This will save whatever is specified in the startRow, endRow, startColumn, endColumn bounds
to a new file with the specified fileName.
The string fileName to save the current raster to.
This code is required to allow a new format to save data from an old format quickly.
It essentially quickly transfers the underlying data values to the new raster.
Gets this raster (or its Internal Raster) as the appropriately typed raster
so that strong typed access methods are available, instead of just the
regular methods, or null if the type is incorrect. (Check datatype property).
The type (int, short, float, etc.)
The Raster<T> where T are value types like int, short and float. Returns null if the type is wrong.
Instructs the raster to write only the header content. This is especially useful if you just want to update
the extents or the projection of the raster, without changing the data values.
A raster can contain predefined names for its categories
null if raster has no category names
A raster can contain predefined colors for its categories, for example NLCD GeoTIFF has a palette
null if raster has no category colors
Gets the integer size of each data member of the raster in bytes.
Gets or sets the list of bands, which are in turn rasters. The rasters
contain only one band each, instead of the list of all the bands like the
parent raster.
The geographic height of a cell the projected units. Setting this will
automatically adjust the affine coefficient to a negative value.
The geographic width of a cell in the projected units
This provides a zero-based integer band index that specifies which of the internal bands
is currently being used for requests for data.
This does nothing unless the FileType property is set to custom.
In such a case, this string allows new file types to be managed.
This reveals the underlying data type
Gets or sets a short string to identify which driver to use. This is primarilly used by GDAL rasters.
The integer column index for the right column of this raster. Most of the time this will
be NumColumns - 1. However, if this raster is a window taken from a larger raster, then
it will be the index of the endColumn from the window.
The integer row index for the end row of this raster. Most of the time this will
be numRows - 1. However, if this raster is a window taken from a larger raster, then
it will be the index of the endRow from the window.
Gets the complete path and fileName of the current file
Gets the file type of this grid.
Gets a boolean that is true if the data for this raster is in memory.
Gets the maximum data value, not counting no-data values in the grid.
Gets the mean of the non-NoData values in this grid. If the data is not InRam, then
the GetStatistics method must be called before these values will be correct.
Gets the minimum data value that is not classified as a no data value in this raster.
A float showing the no-data values
For binary rasters this will get cut to only 256 characters.
Gets the number of bands. In most traditional grid formats, this is 1. For RGB images,
this would be 3. Some formats may have many bands.
Gets the horizontal count of the cells in the raster.
Gets the integer count of columns in the file, as opposed to the
number represented by this raster, which might just represent a window.
Gets the vertical count of the cells in the raster.
Gets the number of rows in the source file, as opposed to the number
represented by this raster, which might just represent part of a file.
Gets the count of the cells that are not no-data. If the data is not InRam, then
you will have to first call the GetStatistics() method to gain meaningul values.
Gets or sets the string array of options to use when saving this raster.
Gets a list of the rows in this raster that can be accessed independantly.
The integer column index for the left column of this raster. Most of the time this will
be 0. However, if this raster is a window taken from a file, then
it will be the row index in the file for the top row of this raster.
The integer row index for the top row of this raster. Most of the time this will
be 0. However, if this raster is a window taken from a file, then
it will be the row index in the file for the left row of this raster.
Gets the standard deviation of all the Non-nodata cells. If the data is not InRam,
then you will have to first call the GetStatistics() method to get meaningful values.
This is provided for future developers to link this raster to other entities.
It has no function internally, so it can be manipulated safely.
Gets or sets the value on the CurrentBand given a row and column undex
The horizontal or longitude coordinate for the lower left cell in the grid
The vertical or latitude coordinate for the lower left cell in the grid
This doesn't perform calculations, but is simply a place holder where sample
values can be stored and retrieved as a cache.
Occurs when attempting to copy or save to a fileName that already exists. A developer can tap into this event
in order to display an appropriate message. A cancel property allows the developer (and ultimately the user)
decide if the specified event should ultimately be cancelled.
Set up the default values
Creates a memberwise clone of this object. Reference types will be copied, but
they will still point to the same original object. So a clone of this raster
is pointing to the same underlying array of values etc.
A Raster clone of this raster.
Creates a new IRaster that has the identical characteristics and in-ram data to the original.
A Copy of the original raster.
Creates a duplicate version of this file. If copyValues is set to false, then a raster of NoData values is created
that has the same georeferencing information as the source file of this Raster, even if this raster is just a window.
The string fileName specifying where to create the new file.
If this is false, the same size and georeferencing values are used, but they are all set to NoData.
Even if this is a window, this will cause this raster to show statistics calculated from the entire file.
Saves the values to a the same file that was created or loaded.
Saves the curretn raster to the specified file. The current driver code and options are used.
The string fileName to save the raster to.
This code is empty, but can be overridden in subtypes
Instructs the file to write header changes only. This is espcially useful for changing the
extents without altering the actual raster values themselves.
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.
Gets the no data cell count. Calls GetStatistics() internally.
The number of cells which are equal to NoDataValue.
Opens the specified fileName. The DefaultDataManager will determine the best type of raster to handle the specified
file based on the fileName or characteristics of the file.
The string fileName of the raster to open.
Opens the specified fileName. The DefaultDataManager will determine the best type of raster to handle the specified
file based on the fileName or characteristics of the file.
Saves the current raster to the specified file, using the specified driver, but with the
options currently specified in the Options property.
The string fileName to save this raster as
The string driver code.
Saves the current raster to the specified file.
The string fileName to save the current raster to.
The driver code to use.
the string array of options that depend on the format.
By default, Raster does not have any CategoryNames, but this can be overridden
By default, Raster does not have any CategoryColors, but this can be overridden
Gets this raster (or its Internal Raster) as the appropriately typed raster
so that strong typed access methods are available, instead of just the
regular methods.
The type (int, short, float, etc.)
The Raster<T> where T are value types like int, short, float"/>
Overrides dispose to correctly handle disposing the objects at the raster level.
Fires the FileExists method. If this returns true, then the action should be cancelled.
The fileName to write to
Boolean, true if the user doesn't want to overwrite
Gets this raster (or its Internal Raster) as the appropriately typed raster
so that strong typed access methods are available, instead of just the
regular methods.
A Raster<short>
Gets this raster (or its Internal Raster) as the appropriately typed raster
so that strong typed access methods are available, instead of just the
regular methods.
A Raster<short>
Gets this raster (or its Internal Raster) as the appropriately typed raster
so that strong typed access methods are available, instead of just the
regular methods.
A Raster<short>
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
For DotSpatial style binary grids, this returns the filetype
The fileName with extension to test
A GridFileTypes enumeration listing which file type this is
This is significantly m
The string full path for the fileName to open
A Raster object which is actually one of the type specific rasters, like FloatRaster.
Returns a native raster of the appropriate file type and data type by parsing the fileName.
The string fileName to attempt to open with a native format
The boolean value.
An IRaster which has been opened to the specified file.
Returns a native raster of the appropriate file type and data type by parsing the fileName.
The string fileName to attempt to open with a native format
The boolean value.
An overriding progress manager for this process
An IRaster which has been opened to the specified file.
Occurs when attempting to copy or save to a fileName that already exists. A developer can tap into this event
in order to display an appropriate message. A cancel property allows the developer (and ultimately the user)
decide if the specified event should ultimately be cancelled.
Gets or sets a statistical sampling. This is designed to cache a small,
representative sample of no more than about 10,000 values. This property
does not automatically produce the sample, and so this can be null.
A parameter for accessing some GDAL data. This frequently does nothing and is usually 0.
A parameter for accessing GDAL. This frequently does nothing and is usually 0.
Gets the size of each raster element in bytes.
Gets or sets the list of bands, which are in turn rasters. The rasters
contain only one band each, instead of the list of all the bands like the
parent raster.
The geographic height of a cell the projected units. Setting this will
automatically adjust the affine coefficient to a negative value.
The geographic width of a cell in the projected units
This provides a zero-based integer band index that specifies which of the internal bands
is currently being used for requests for data.
This does nothing unless the FileType property is set to custom.
In such a case, this string allows new file types to be managed.
This returns the RasterDataTypes enumeration clarifying the underlying data type for this raster.
Gets or sets the driver code for this raster.
The integer column index for the right column of this raster. Most of the time this will
be NumColumns - 1. However, if this raster is a window taken from a larger raster, then
it will be the index of the endColumn from the window.
The integer row index for the end row of this raster. Most of the time this will
be numRows - 1. However, if this raster is a window taken from a larger raster, then
it will be the index of the endRow from the window.
Gets or Sets the complete path and fileName of the current file
Returns the grid file type. Only Binary or ASCII are supported natively, without GDAL.
Gets or sets a boolean that is true if the data for this raster is in memory.
Gets the maximum data value, not counting no-data values in the grid.
Gets the mean of the non-NoData values in this grid. If the data is not InRam, then
the GetStatistics method must be called before these values will be correct.
Gets the minimum data value that is not classified as a no data value in this raster.
A double showing the no-data value for this raster.
For binary rasters this will get cut to only 256 characters.
Gets the number of bands. In most traditional grid formats, this is 1. For RGB images,
this would be 3. Some formats may have many bands.
Gets the horizontal count of the cells in the raster.
Gets the integer count of the number of columns in the source or file that this
raster is a window from. (Usually this will be the same as NumColumns)
Gets the vertical count of the cells in the raster.
Gets the integer count of the number of rows in the source or file that this
raster is a window from. (Usually this will be the same as NumColumns.)
Gets the count of the cells that are not no-data. If the data is not InRam, then
you will have to first call the GetStatistics() method to gain meaningul values.
An extra string array of options that exist for support of some types of GDAL supported raster drivers
Gets a list of the rows in this raster that can be accessed independantly.
The integer column index for the left column of this raster. Most of the time this will
be 0. However, if this raster is a window taken from a file, then
it will be the row index in the file for the top row of this raster.
The integer row index for the top row of this raster. Most of the time this will
be 0. However, if this raster is a window taken from a file, then
it will be the row index in the file for the left row of this raster.
Gets the standard deviation of all the Non-nodata cells. If the data is not InRam,
then you will have to first call the GetStatistics() method to get meaningful values.
This is provided for future developers to link this raster to other entities.
It has no function internally, so it can be manipulated safely.
Gets or sets the value on the CurrentBand given a row and column undex
Gets or sets the X position of the lower left data cell.
Setting this will adjust only the _affine[0] coefficient to ensure that the
lower left corner ends up in the specified location, while keeping all the
other affine coefficients the same. This is like a horizontal Translate
that locks into place the center of the lower left corner of the image.
Gets or sets the Y position of the lower left data cell.
Setting this will adjust only the _affine[0] coefficient to ensure that the
lower left corner ends up in the specified location, while keeping all the
other affine coefficients the same. This is like a horizontal Translate
that locks into place the center of the lower left corner of the image.
The actual data values, stored as a jagged array of values of type T
Creates a new instance of Raster
Creates an raster of data type T
The number of rows in the raster
The number of columns in the raster
The default ValueGrid only supports standard numeric types, but if a different kind of value grid is needed, this allows it.
Creates a raster of data type T.
The number of rows in the raster
The number of columns in the raster
Used especially by the "save as" situation, this simply creates a new reference pointer for the actual data values.
Calls the basic setup for the raster
Creates a deep copy of this raster object so that the data values can be manipulated without
interfering with the original raster.
This creates a completely new raster from the windowed domain on the original raster. This new raster
will not have a source file, and values like NumRowsInFile will correspond to the in memory version.
All the values will be copied to the new source file. InRam must be true at this level.
The 0 based integer index of the top row to copy from this raster. If this raster is itself a window, 0 represents the startRow from the file.
The integer index of the bottom row to copy from this raster. The largest allowed value is NumRows - 1.
The 0 based integer index of the leftmost column to copy from this raster. If this raster is a window, 0 represents the startColumn from the file.
The 0 based integer index of the rightmost column to copy from this raster. The largest allowed value is NumColumns - 1
If this is true, the values are saved to the file. If this is false and the data can be loaded into Ram, no file handling is done. Otherwise, a file of NoData values is created.
Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory.
An implementation of IRaster
Gets the statistics all the values. If the entire content is not currently in-ram,
ReadRow will be used to read individual lines and performing the calculations.
This creates an IN MEMORY ONLY window from the in-memory window of this raster. If, however, the requested range
is outside of what is contained in the in-memory portions of this raster, an appropriate cast
is required to ensure that you have the correct File handling, like a BinaryRaster etc.
The 0 based integer index of the top row to get from this raster. If this raster is itself a window, 0 represents the startRow from the file.
The integer index of the bottom row to get from this raster. The largest allowed value is NumRows - 1.
The 0 based integer index of the leftmost column to get from this raster. If this raster is a window, 0 represents the startColumn from the file.
The 0 based integer index of the rightmost column to get from this raster. The largest allowed value is NumColumns - 1
Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory.
An implementation of IRaster
Obtains only the statistics for the small window specified by startRow, endRow etc.
this only works if the window is also InRam.
Prevent the base raster "factory" style open function from working in subclasses.
This saves content from memory stored in the Data field to the file using whatever
file format the file already exists as.
Reads a specific
This method reads the values from the entire band into an array and returns the array as a single array.
This assumes 0 offsets, the size of the entire image, and 0 for the pixel or line space.
An array of values of type T, in row major order
Most reading is optimized to read in a block at a time and process it. This method is designed
for seeking through the file. It should work faster than the buffered methods in cases where
an unusually arranged collection of values are required. Sorting the list before calling
this should significantly improve performance.
A list or array of long values that are (Row * NumRowsInFile + Column)
This Method should be overrridden by classes, and provides the primary ability.
The horizontal offset of the area to read values from.
The vertical offset of the window to read values from.
The number of values to read into the buffer.
The vertical size of the window to read into the buffer.
The jagged array of raster values of type T.
Reads a specific
The one dimensional array of values containing all the data for this particular content.
The integer row to write to the raster
This method reads the values from the entire band into an array and returns the array as a single array.
This assumes 0 offsets, the size of the entire image, and 0 for the pixel or line space.
The one dimensional array of values containing all the data for this particular content.
This method reads the values from the entire band into an array and returns the array as a single array.
This specifies a window where the xSize and ySize specified and 0 is used for the pixel and line space.
The one dimensional array of values containing all the data for this particular content.
The horizontal offset of the area to read values from.
The vertical offset of the window to read values from.
The number of values to read into the buffer.
The vertical size of the window to read into the buffer.
During a save opperation, this instructs the program to perform any writing that is not handled by
the write raster content.
This is the same as the "Value" member except that it is type specific.
This also supports the "ToDouble" method.
Gets the size of each raster element in bytes.
This only works for a few numeric types, and will return 0 if it is not identifiable as one
of these basic types: byte, short, int, long, float, double, decimal, sbyte, ushort, uint, ulong, bool.
A BgdRaster in created this way probably expects to open a file using the "Open" method,
which allows for progress handlers or other things to be set before what might be a
time consuming read-value process.
Creates a new instance of a BGD raster, attempting to store the entire structure in memory if possible.
This creates a new BGD raster.
This Method should be overrridden by classes, and provides the primary ability.
The horizontal offset of the area to read values from.
The vertical offset of the window to read values from.
The number of values to read into the buffer.
The vertical size of the window to read into the buffer.
A jagged array of type T.
Most reading is optimized to read in a block at a time and process it. This method is designed
for seeking through the file. It should work faster than the buffered methods in cases where
an unusually arranged collection of values are required. Sorting the list before calling
this should significantly improve performance.
A list or array of long values that are (Row * NumRowsInFile + Column)
Writes the bgd content from the specified jagged array of values to the file.
The data
The horizontal offset
The vertical offset
The number of values to write horizontally
The number of values to write vertically
Copies the raster header, and if copyValues is true, the values to the specified file
The full path of the file to copy content to to
Boolean, true if this should copy values as well as just header information
Opens the specified file
Saves the content from this file using the current fileName and header information
If no file exists, this writes the header and no-data values. If a file exists, it will assume
that data already has been filled in the file and will attempt to insert the data values
as a window into the file. If you want to create a copy of the file and values, just use
System.IO.File.Copy, it almost certainly would be much more optimized.
Writes the header to the fileName
The string fileName where this will begin to write data by clearing the existing file
Writes the header, regardless of which subtype of binary raster this is written for
The string fileName specifying what file to load
Gets the size of the header. There is one no-data value in the header.
An inteface specification for any of the multiple types of IDataBlock.
Gets or sets a value at the 0 row, 0 column index.
The 0 based vertical row index from the top
The 0 based horizontal column index from the left
An object reference to the actual value in the data member.
Boolean, gets or sets the flag indicating if the values have been changed
since the last time this flag was set to false.
Constructing an ObjectGrid this way assumes the values are not in ram and will
simply buffer 3 rows.
This involves boxing and unboxing as well as a convert to double, but IConvertible was
not CLS Compliant, so we were always getting warnings about it. I am trying to make
all the code CLS Compliant to remove warnings.
Gets or sets a value at the 0 row, 0 column index.
The 0 based vertical row index from the top
The 0 based horizontal column index from the left
An object reference to the actual value in the data member.
This is just a boolean flag that is set to true when the values
are updated. It is the responsibility of the user to set this
value to false again when the situation warents it.
This basically demonstrates how you would combine a type with a calculator in order to
construct a Binary Raster for the Integer type. It is effectively the same as
constructing a new BinaryRaster and specifying the parameter types int and IntCalculator.
Creates a completely empty raster that can be custom configured
Creates a new BinaryRaster with the specified rows and columns.
If if the raster is less than 64 Million cells, it will be created only in memory,
and a Save method should be called when ready to save it to a file. Otherwise, it creates a blank file with
NoData values...which start out as 0.
The fileName to write to
Integer number of rows
Integer number of columns
Creates a new BinaryRaster with the specified rows and columns.
If inRam is true and the raster is less than 64 Million cells, it will be created only in memory,
and a Save method should be called when ready to save it to a file. Otherwise, it creates a blank file with
NoData values.
The fileName to write to
Integer number of rows
Integer number of columns
If this is true and the raster is small enough, it will load this into memory and not save anything to the file.
Creates a duplicate version of this file. If copyValues is set to false, then a raster of NoData values is created
that has the same georeferencing information as the source file of this Raster, even if this raster is just a window.
If the specified fileName exists, rather than throwing an exception or taking an "overwrite" parameter, this
will throw the FileExists event, and cancel the copy if the cancel argument is set to true.
The string fileName specifying where to create the new file.
If this is false, the same size and georeferencing values are used, but they are all set to NoData.
This creates a completely new raster from the windowed domain on the original raster. This new raster
will have a separate source file, and values like NumRowsInFile will correspond to the newly created file.
All the values will be copied to the new source file. If inRam = true and the new raster is small enough,
the raster values will be loaded into memory.
The 0 based integer index of the top row to copy from this raster. If this raster is itself a window, 0 represents the startRow from the file.
The integer index of the bottom row to copy from this raster. The largest allowed value is NumRows - 1.
The 0 based integer index of the leftmost column to copy from this raster. If this raster is a window, 0 represents the startColumn from the file.
The 0 based integer index of the rightmost column to copy from this raster. The largest allowed value is NumColumns - 1
If this is true, the values are saved to the file. If this is false and the data can be loaded into Ram, no file handling is done. Otherwise, a file of NoData values is created.
Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory.
An implementation of IRaster
Gets the statistics for the entire file, not just the window portion specified for this raster.
This creates a window from this raster. The window will still save to the same
source file, but only has access to a small window of data, so it can be loaded like a buffer.
The georeferenced extents will be for the new window, not the original raster. startRow and endRow
will exist in the new raster, however, so that it knows how to copy values back to the original raster.
The 0 based integer index of the top row to get from this raster. If this raster is itself a window, 0 represents the startRow from the file.
The integer index of the bottom row to get from this raster. The largest allowed value is NumRows - 1.
The 0 based integer index of the leftmost column to get from this raster. If this raster is a window, 0 represents the startColumn from the file.
The 0 based integer index of the rightmost column to get from this raster. The largest allowed value is NumColumns - 1
Boolean. If this is true and the window is small enough, a copy of the values will be loaded into memory.
An implementation of IRaster
Obtains only the statistics for the small window specified by startRow, endRow etc.
Opens the specified file into this raster.
Opens a new instance of the BinaryRaster
The string fileName of the raster file to open
Boolean, indicates whether or not the values for the raster should be loaded into memory
This converts this object into a raster defined by the specified window dimensions.
The string fileName to open
The integer row index to become the first row to load into this raster.
The 0 based integer row index to become the last row included in this raster.
The 0 based integer column index for the first column of the raster.
The 0 based integer column index for the last column to include in this raster.
Boolean. If this is true and the window is small enough, this will load the window into ram.
Copies the contents from the specified sourceRaster into this sourceRaster. If both rasters are InRam, this does not affect the files.
The raster of values to paste into this raster. If the CellWidth and CellHeight values do not match between the files,
an exception will be thrown. If the sourceRaster overlaps with the edge of this raster, only the intersecting region will be
pasted.
Specifies the row in this raster where the top row of the sourceRaster will be pasted
Specifies the column in this raster where the left column of the sourceRaster will be pasted.
Reads the the contents for the "window" specified by the start and end values
for the rows and columns.
Writes the header, regardless of which subtype of binary raster this is written for
The string fileName specifying what file to load
The string fileName where this will begin to write data by clearing the existing file
a fileName to write data to
This would be a horrible choice for any kind of serious process, but is provided as
a way to write values directly to the file.
The 0 based integer row index for the file to write to.
The 0 based column index for the file to write to.
The actual value to write.
Saves the values in memory to the disk.
If no file exists, this writes the header and no-data values. If a file exists, it will assume
that data already has been filled in the file and will attempt to insert the data values
as a window into the file. If you want to create a copy of the file and values, just use
System.IO.File.Copy, it almost certainly would be much more optimized.
The string fileName to write values to.
Returns the size of T in bytes. This should be overridden, but
exists as a "just-in-case" implementation that works for structs,
but definitely won't work correctly for objects.
All the binary rasters use the Binary file type
This is always 1 band
Gets the size of the header. There is one no-data value in the header.
RasterEnumerator
Creates a new instance of RasterEnumerator
The list to build an enumarator for
Disposes any unmanaged memory objects
Advances the enumerator to the next member.
A boolean which is false if there are no more members in the list.
Resets the enumerator to the position before the start of the list.
Retrieves the current IntRaster from this calculator.
IRasterBounds
Returns a deep copy of this raster bounds object.
An IRasterBounds interface.
This is the overridable open method that should be used.
The OpenWorldFile method is called by our RasterBounds class,
but this allows custom files to be loaded and saved.
This is the overridable save method that should be used.
The OpenWorldFile method is called by our RasterBounds class,
but this allows custom files to be loaded and saved.
Gets or sets the double affine coefficients that control the world-file
positioning of this image. X' and Y' are real world coords.
X' = [0] + [1] * Column + [2] * Row
Y' = [3] + [4] * Column + [5] * Row
Gets or sets the desired width per cell. This will keep the skew the same, but
will adjust both the column based and row based width coefficients in order
to match the specified cell width. This can be thought of as the width
of a bounding box that contains an entire grid cell, no matter if it is skewed.
Gets or sets the desired height per cell. This will keep the skew the same, but
will adjust both the column based and row based height coefficients in order
to match the specified cell height. This can be thought of as the height
of a bounding box that contains an entire grid cell, no matter if it is skewed.
Gets or sets the rectangular confines for this envelope. The skew will remain
the same when setting this, but the image will be translated and stretched
to fit in the specified envelope.
Gets the number of rows in the raster.
Gets the number of columns in the raster.
Gets or sets the world file name. This won't do anything until the "Load" or "Save" methods are called.
A public interface definition for a single row of values that should be supported
by any of the generic data row types.
Gets or sets the value in the position of column.
The 0 based integer column index to access on this row.
An object reference to the actual data value, which can be many types.
RasterBounds
Creates a new RasterBounds
Attempts to read the very simple 6 number world file associated with an image
The number of rows in this raster
The number of columns in this raster
A world file to attempt to read
Creates a new instance of the RasterBounds class
The number of rows for this raster
The number of columns for this raster
The affine coefficients describing the location of this raster.
Creates a new raster bounds that is georeferenced to the specified envelope.
The number of rows
The number of columns
The bounding envelope
Attempts to load the data from the file listed in WorldFile
Attempts to save the data to the file listed in WorldFile
Returns a duplicate of this object as an object.
A duplicate of this object as an object.
Creates a duplicate of this RasterBounds class.
A RasterBounds that has the same properties but does not point to the same internal array.
Gets or sets the double affine coefficients that control the world-file
positioning of this image. X' and Y' are real world coords.
X' = [0] + [1] * Column + [2] * Row
Y' = [3] + [4] * Column + [5] * Row
Gets or sets the desired width per cell. This will keep the skew the same, but
will adjust both the column based and row based width coefficients in order
to match the specified cell width. This can be thought of as the width
of a bounding box that contains an entire grid cell, no matter if it is skewed.
Gets or sets the desired height per cell. This will keep the skew the same, but
will adjust both the column based and row based height coefficients in order
to match the specified cell height. This can be thought of as the height
of a bounding box that contains an entire grid cell, no matter if it is skewed.
Gets or sets the rectangular bounding box for this raster.
Gets or sets the height of the entire bounds. This is derived by considering both the
column and row based contributions to the overall height. Changing this will keep
the skew ratio the same, but adjust both portions so that the overall height
will match the specified height.
Gets the number of rows in the raster.
Gets the number of columns in the raster.
Gets or sets the geographic width of this raster. This will include the skew term
in the width estimate, so it will adjust both the width and the skew coefficient,
but preserve the ratio of skew to cell width.
Gets or sets the fileName of the wordfile that describes the geographic coordinates of this raster.
Gets or sets the horizontal placement of the upper left corner of this bounds. Because
of the skew, this upper left position may not actually be the same as the upper left
corner of the image itself (_affine[0]). Instead, this is the top left corner of
the rectangular extent for this raster.
Gets or sets the vertical placement of the upper left corner of this bounds, which is the
same as the top. The top left corner of the actual image may not be in this position
because of skew, but this represents the maximum Y value of the rectangular extents
that contains the image.
Data types specific to grids
An invalid data type
Short 16 Bit integers
32 Bit Integers (old style long)
Float or Single
Double
Unknown
Byte
Specified as the CustomType string
Signed 64 Bit Integers
Unsigned short 16 Bit Integers
Unsigned 32 Bit Integers
Unsigned 64 Bit Integers
Signed 8-bit Integers: -128 to 127
Booleans: True(1) or False(0).
RasterFileTypes
Ascii
Binary interlaced Layers
BGD (Original DotSpatial format)
DTED
Wavelet format
ArcGIS format
FLT
GeoTiff
SID
AUX
PCIDsk
SDTS
Custom - specified as string
A Row, Column indexer for some return types.
The zero based integer column index
The zero based integer row index
Creates a new RcIndex structure with the specified coordinates
The integer row index
The integer column index
Gets a boolean that is true if either row or column index has no value
Boolean, true if either row or column has no value
Implements the operator ==.
A.
The b.
The result of the operator.
Implements the operator !=.
A.
The b.
The result of the operator.
Returns a new RcIndex that is defined as empty when both indices are int.
Creates a new instance of Smoother
Creates a new instance of Smoother with IntPtr for input array
Calculates the smoothing by cycling through the values
ScaleBarInfo
Gets or sets the backcolor
Gets or sets the forecolor
Gets or sets what position that the scalebar should load in
Gets or sets the unit for the scalebar.
Gets or sets whether to show the scale bar.
ScaleBarPositions
The scalebar should appear in the lower left corner
The scalebar should appear in the lower right corner
The scalebar should appear in the upper left corner
The scalebar should apepar int eh upper right corner
SpaceTimeSupport
Spatial (X, Y, Z or M information only)
Temporal (time information only)
SpatioTemporal (time and space information)
Other (no temporal or spatial information)
StatusBarInfo
Gets or sets the alternate string to show in the event that GetFromProjection is false.
Gets or sets a boolean indicating whether or not status bar coordinates should display the unites derived from the projection string.
Stream extensions
Attempts to read count of bytes from stream.
Input stream.
Count of bytes.
Bytes array.
Attempts to read the specified T. If this system is
doesn't match the specified endian, then this will reverse the array of bytes,
so that it corresponds with the big-endian format.
The stream to read the value from
Specifies what endian property should be used.
The integer value
Reads the specified number of integers. If a value other than the
systems endian format is specified the values will be reversed.
The stream to read from
The integer count of integers to read
The endian order of the bytes.
The array of integers that will have count integers.
Reads a double precision value from the stream. If this system
is not little endian, it will reverse the individual memebrs.
The stream to read the values from.
A double precision value
Reads the specified number of double precision values. If this system
does not match the specified endian, the bytes will be reversed.
The stream to read the values from.
The integer count of doubles to read.
The endian to use.
Writes the integer as big endian
The IO stream
Writes the endian as little endian
Checks that the endian order is ok for integers and then writes
the entire array to the stream.
Writes the specified double value to the stream as little endian
Checks that the endian order is ok for doubles and then writes
the entire array to the stream.
The stream to write to
The double values to write in little endian form
The integer start index in the double array to begin writing
The integer count of doubles to write.
ByteBlock
The block size of the arrays
All the blocks
The current block index
The offset
Creates a new instance of ByteBlock
Reads the number of bytes using the specified reader.
This handles copying across blocks if necessary.
The integer number of bytes to read
The file or data stream to read from.
Reads the number of bytes using the specified reader.
This handles copying across blocks if necessary.
If the bytes were converted to a single, contiguous integer array, this returns
the current offset in that array.
If the bytes were converted to a single contiguous double array, this returns
the offset in that array.
Resets the indices
Combines all the blocks into a single array of the specified datatype
Combines all the blocks into a single array of the specified datatype
A generic vector feature that has the geometry and data components but no drawing information
A feature doesn't need to be abstract because the geometry is generic and the other
properties are all the same. It supports IRenderable so that even if you don't
know what type of feature this is, you can still tell it to draw itself. You won't
be able to specify any drawing characteristics from this object however.
Creates a deep copy of this feature. the new datarow created will not be connected
to a data Table, so it should be added to one.
Returns a deep copy of this feature as an IFeature
Creates a new shape based on this feature by itself.
A Shape object
This uses the field names to copy attribute values from the source to this feature.
Even if columns are missing or if there are extra columns, this method should work.
The IFeature source to copy attributes from.
Gets the datarow containing all the attributes related to this geometry
Gets or sets a valid IBasicGeometry associated with the data elements of this feature.
This will be enough geometry information to cast into a full fledged geometry
that can be used in coordination with DotSpatial.Analysis
Gets or sets the content length. If the geometry for this shape was loaded from a file, this contains the size
of this shape in 16-bit words as per the Esri Shapefile specification.
Gets or sets a DotSpatial.Data.CacheTypes enumeration specifying whether the Envelope property
returns a cached value in this object or is retrieved directly from the geometry. The
initial case for Shapefiles is to use a cache. Setting the envelope assumes that you
are going to use a cached value and will set this to Cached. Setting this to Dynamic
will cause the Envelope property to reference the geometry.
Gets the key that is associated with this feature. This returns -1 if
this feature is not a member of a feature layer.
Gets a reference to the IFeatureLayer that contains this item.
An index value that is saved in some file formats.
When a shape is loaded from a Shapefile, this will identify whether M or Z values are used
and whether or not the shape is null.
This is simply a quick access to the Vertices list for this specific
feature. If the Vertices have not yet been defined, this will be null.
Gets or sets the column to use when sorting lists of features.
If this is set to a column not in the field, the FID is used instead.
This should be assigned before attempting to sort features. Because
this is static, it only has to be set once, and will affect
all the individual comparisions until it is set differently.
Creates a feature from the specified shape. This will not handle the attribute content,
which should be handles separately, with full knowledge of the desired schema.
The shape to read the vertices from in order to build a proper geometry.
Creates a complete geometric feature based on a single point. The attribute datarow is null.
The vertex
Creates a single point feature from a new point.
Creates a feature from a geometry
The geometry to turn into a feature
This constructor allows the creation of a feature but will automatically
add the feature to the parent featureset.
The IBasicGeometry to use for this feature
The IFeatureSet to add this feature to.
Constructs a new Feature
Creates a new instance of a feature, by specifying the feature type enumeration and a
set of coordinates that can be either a list or an array as long as it is enumerable.
The feature type
The coordinates to pass
The FID comparison will be very slow, so this should only be used
if the ComparisonField property is set. This will allow sorting
features based on their data-row attributes. The data rows
do not have to be identical, as long as both contain a column
with the comparison field.
The other IFeature to compare to.
An integer that controls the sorting based on the values for the specified field name.
This returns itself as the first geometry
An IBasicGeometry interface
Index cannot be less than 0 or greater than 1
Test if a point is in a list of coordinates.
TestPoint the point to test for.
PointList the list of points to look through.
true if testPoint is a point in the pointList list.
Creates a deep copy of this feature.
Returns a deep copy of this feature as an IFeature
This uses the field names to copy attribute values from the source to this feature.
Even if columns are missing or if there are extra columns, this method should work.
The IFeature source to copy attributes from.
Creates a deep copy of this feature.
Returns a deep copy of this feature as an object
Forces the geometry to update its envelope, and then updates the cached envelope of the feature.
Creates a new GML string describing the location of this point
A String representing the Geographic Markup Language version of this point
Returns the Well-known Binary representation of this Geometry.
For a definition of the Well-known Binary format, see the OpenGIS Simple
Features Specification.
The Well-known Binary representation of this Geometry.
Creates a new shape based on this feature by itself.
A Shape object
Copies this feature, creating an independant, but identical feature.
Occurs during the cloning process and this method also duplicates the envelope and basic geometry.
The feature being copied
Gets or sets the integer number of parts associated with this feature.
Setting this will set a cached value on the feature that is separate
from the geometry and set the NumParts to Cached.
Gets or sets a DotSpatial.Data.CacheTypes enumeration. If the value
is dynamic, then NumParts will be read from the geometry on this feature.
If it is cached, then the value is separate from the geometry.
This specifies the offset, if any in the data file
Gets or sets a valid IBasicGeometry associated with the data elements of this feature.
This will be enough geometry information to cast into a full fledged geometry
that can be used in coordination with DotSpatial.Analysis
If the geometry for this shape was loaded from a file, this contains the size
of this shape in 16-bit words as per the Esri Shapefile specification.
Returns an array of coordinates corresponding to the basic feature.
Gets the datarow containing all the attributes related to this geometry.
This will query the parent feature layer's data Table by FID and then
cache the value locally. If no parent feature layer exists, then
this is meaningless. You should create a new Feature by doing
FeatureLayer.Features.Add(), which will return a new Feature.
This is an envelope, but specified by the file, not by calculating from the geometry.
To obtain a calculated envelope, calling the DynamicEnvelope()
Gets or sets a DotSpatial.Data.CacheTypes enumeration specifying whether the Envelope property
returns a cached value in this object or is retrieved directly from the geometry. The
initial case for Shapefiles is to use a cache. Setting the envelope assumes that you
are going to use a cached value and will set this to Cached. Setting this to Dynamic
will cause the Envelope property to reference the geometry.
Returns either Point, Polygon or Line
Gets the key that is associated with this feature. This returns -1 if
this feature is not a member of a feature layer.
Shows the type of geometry for this feature
Returns the NumGeometries in the BasicGeometry of this feature
Gets the integer number of points associated with features.
An index value that is saved in some file formats.
Gets a reference to the IFeatureLayer that contains this item.
When a shape is loaded from a Shapefile, this will identify whether M or Z values are used
and whether or not the shape is null.
This is simply a quick access to the Vertices list for this specific
feature. If the Vertices have not yet been defined, this will be null.
Extension Methods for the Features
Calculates the area of the geometric portion of this feature. This is 0 unless the feature
is a polygon, or multi-polygon.
The feature to test
The double valued area
Generates a new feature from the buffer of this feature. The DataRow of
the new feature will be null.
This feature
The double distance
An IFeature representing the output from the buffer operation
Generates a new feature from the buffer of this feature. The DataRow of
the new feature will be null.
This feature
The double distance
The end cap style to use
An IFeature representing the output from the buffer operation
Generates a new feature from the buffer of this feature. The DataRow of
the new feature will be null.
This feature
The double distance
The number of segments to use to approximate a quadrant of a circle
An IFeature representing the output from the buffer operation
Generates a new feature from the buffer of this feature. The DataRow of
the new feature will be null.
This feature
The double distance
The number of segments to use to approximate a quadrant of a circle
The end cap style to use
An IFeature representing the output from the buffer operation
Generates a buffer, but also adds the newly created feature to the specified output featureset.
This will also compare the field names of the input featureset with the destination featureset.
If a column name exists in both places, it will copy those values to the destination featureset.
The feature to calcualate the buffer for.
The double distance to use for calculating the buffer
The output featureset to add this feature to and use
as a reference for determining which data columns to copy.
The IFeature that represents the buffer feature.
Generates a buffer, but also adds the newly created feature to the specified output featureset.
This will also compare the field names of the input featureset with the destination featureset.
If a column name exists in both places, it will copy those values to the destination featureset.
The feature to calcualate the buffer for.
The double distance to use for calculating the buffer
The end cap style to use
The output featureset to add this feature to and use
as a reference for determining which data columns to copy.
The IFeature that represents the buffer feature.
Generates a buffer, but also adds the newly created feature to the specified output featureset.
This will also compare the field names of the input featureset with the destination featureset.
If a column name exists in both places, it will copy those values to the destination featureset.
The feature to calcualate the buffer for.
The double distance to use for calculating the buffer
The number of segments to use to approximate a quadrant of a circle
The output featureset to add this feature to and use
as a reference for determining which data columns to copy.
The IFeature that represents the buffer feature.
Generates a buffer, but also adds the newly created feature to the specified output featureset.
This will also compare the field names of the input featureset with the destination featureset.
If a column name exists in both places, it will copy those values to the destination featureset.
The feature to calcualate the buffer for.
The double distance to use for calculating the buffer
The number of segments to use to approximate a quadrant of a circle
The end cap style to use
The output featureset to add this feature to and use
as a reference for determining which data columns to copy.
The IFeature that represents the buffer feature.
Returns a feature constructed from the centroid of this feature
This feature
An IFeature that is also a point geometry
Gets a boolean that is true if this feature contains the specified feature
This feature
The other feature to test
Boolean, true if this feature contains the other feature
Gets a boolean that is true if this feature contains the specified feature
This feature
The other feature to test
Boolean, true if this feature contains the other feature
Calculates a new feature that has a geometry that is the convex hull of this feature.
This feature
A new feature that is the convex hull of this feature.
Calculates a new feature that has a geometry that is the convex hull of this feature.
This also copies the attributes that are shared between this featureset and the
specified destination featureset, and adds this feature to the destination featureset.
This feature
The destination featureset to add this feature to
The newly created IFeature
Gets a boolean that is true if the geometry of this feature is covered by the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature is covered by the specified feature
Gets a boolean that is true if the geometry of this feature is covered by the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature is covered by the specified feature
Gets a boolean that is true if the geometry of this feature covers the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature covers the specified feature
Gets a boolean that is true if the geometry of this feature covers the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature covers the specified feature
Gets a boolean that is true if the geometry of this feature crosses the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature crosses the specified feature
Gets a boolean that is true if the geometry of this feature crosses the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature crosses the specified feature
Creates a new Feature that has a geometry that is the difference between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric difference between this feature and the specified feature.
Creates a new Feature that has a geometry that is the difference between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric difference between this feature and the specified feature.
Creates a new Feature that has a geometry that is the difference between this feature and the specified feature.
This also copies the attributes that are shared between this featureset and the
specified destination featureset, and adds this feature to the destination featureset.
This feature
The other feature to compare to.
The featureset to add the new feature to.
This clarifies the overall join strategy being used with regards to attribute fields.
A new feature that is the geometric difference between this feature and the specified feature.
Gets a boolean that is true if the geometry of this feature is disjoint with the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature is disjoint with the specified feature
Gets a boolean that is true if the geometry of this feature is disjoint with the geometry
of the specified feature.
This feature
The feature to compare this feature to
Boolean, true if this feature is disjoint with the specified feature
Distance between features.
This feature
The feature to compare this feature to
Gets a boolean that is true if the geometry of this feature is disjoint with the geometry
of the specified feature
This feature
The feature to compare this feature to
Boolean, true if this feature is disjoint with the specified feature
Creates a new Feature that has a geometry that is the intersection between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric intersection between this feature and the specified feature.
Creates a new Feature that has a geometry that is the intersection between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric intersection between this feature and the specified feature.
Creates a new Feature that has a geometry that is the intersection between this feature and the specified feature.
This also copies the attributes that are shared between this featureset and the
specified destination featureset, and adds this feature to the destination featureset.
This feature
The other feature to compare to.
The featureset to add the new feature to.
This clarifies the overall join strategy being used with regards to attribute fields.
A new feature that is the geometric intersection between this feature and the specified feature.
Gets a boolean that is true if this feature intersects the other feature.
This feature
The other feature to test
Boolean, true if the two IFeatures intersect
Gets a boolean that is true if this feature intersects the other feature.
This feature
The other feature to test
Boolean, true if the two IFeatures intersect
This tests the current feature to see if the geometry intersects with the specified
coordinate.
This feature
The coordinate
Boolean if the coordinate intersects with this feature
Gets a boolean that is true if this feature is within the specified distance of the other feature.
This feature
The other feature to test
The double distance criteria
Boolean, true if the other feature is within the specified distance of this feature
Gets a boolean that is true if this feature is within the specified distance of the other feature.
This feature
The other feature to test
The double distance criteria
Boolean, true if the other feature is within the specified distance of this feature
Gets a boolean that is true if this feature overlaps the specified feature
This feature
The other feature to test
Boolean, true if the two IFeatures overlap
Gets a boolean that is true if this feature overlaps the specified feature
This feature
The other feature to test
Boolean, true if the two IFeatures overlap
Gets a boolean that is true if the relationship between this feature and the other feature
matches the relationship matrix specified by other
This feature
The other feature to test
The string relationship pattern to test
Boolean, true if the other feature's relationship to this feature matches the relate expression.
Gets a boolean that is true if the relationship between this feature and the other feature
matches the relationship matrix specified by other
This feature
The other feature to test
The string relationship pattern to test
Boolean, true if the other feature's relationship to this feature matches the relate expression.
Rotates the BasicGeometry of the feature by the given radian angle around the given Origin.
This feature.
The coordinate the feature gets rotated around.
The rotation angle in radian.
Creates a new Feature that has a geometry that is the symmetric difference between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric symmetric difference between this feature and the specified feature.
Creates a new Feature that has a geometry that is the symmetric difference between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric symmetric difference between this feature and the specified feature.
Creates a new Feature that has a geometry that is the symmetric difference between this feature and the specified feature.
This also copies the attributes that are shared between this featureset and the
specified destination featureset, and adds this feature to the destination featureset.
This feature
The other feature to compare to.
The featureset to add the new feature to.
This clarifies the overall join strategy being used with regards to attribute fields.
A new feature that is the geometric symmetric difference between this feature and the specified feature.
Gets a boolean that is true if this feature touches the specified feature
This feature
The other feature to test
Boolean, true if the two IFeatures touch
Gets a boolean that is true if this feature touches the specified feature
This feature
The other feature to test
Boolean, true if the two IFeatures touch
Creates a new Feature that has a geometry that is the union between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric union between this feature and the specified feature.
Creates a new Feature that has a geometry that is the union between this feature and the specified feature.
This feature
The other feature to compare to.
A new feature that is the geometric union between this feature and the specified feature.
Creates a new Feature that has a geometry that is the union between this feature and the specified feature.
This also copies the attributes that are shared between this featureset and the
specified destination featureset, and adds this feature to the destination featureset.
This feature
The other feature to compare to.
The featureset to add the new feature to.
Clarifies how the attributes should be handled during the union
A new feature that is the geometric symmetric difference between this feature and the specified feature.
Gets a boolean that is true if this feature is within the specified feature
This feature
The other feature to test
Boolean, true if this feature is within the specified feature
Gets a boolean that is true if this feature is within the specified feature
This feature
The other feature to test
Boolean, true if this feature is within the specified feature
FeatureEvent
Creates a new instance of FeatureEvent
Gets the feature being referenced by this event.
A list that keeps track of a "parent" body that is also of type IFeature.
Whenever a member is added to the list, it sets the parent property.
IFeatureList
Resumes events
Temporarilly disables events
This is a re-expression of the features using a strong typed
list. This may be the inner list or a copy depending on
implementation.
The features as a List of IFeature.
Occurs when a new feature is added to the list
Occurs when a feature is removed from the list.
Gets or sets whether or not the events have been suspended
If this is false, then features will be added to the list without copying over attribute Table information.
This will allow the attributes to be loaded in a more on-demand later.
Gets the parent featureset for this list.
Instantiates a new instance of a FeatureList where no parent is specified.
This will basically simply act as a list and will not allow the features
to be aware of the parent featureset.
Instantiates a new instance of a FeatureList where the ParentFeatureSet
is specified so that each feature will be aware of its parent.
The ParentFeatureSet of the specified item
Removes all elements from the EventList<IFeature>.
Unable to clear while the ReadOnly property is set to true.
Determines whether an element is in the System.Collections.Generic.List<IFeature>.
The object to locate in the System.Collections.Generic.List<IFeature>. The value can be null for reference types.
true if item is found in the System.Collections.Generic.List<IFeature> otherwise, false.
Returns an enumerator that iterates through this list
Resumes events
Temporarilly disables events
Gets the internal list of features. This is quite fast in this case because
the actual internal data store is a list. This does not create a new collection.
The internal list.
Reverses the order of the elements in the specified range.
The zero-based starting index of the range to reverse.
The number of elements in the range to reverse.
index and count do not denote a valid range of elements in the EventList<IFeature>.
index is less than 0.-or-count is less than 0.
Unable to reverse while the ReadOnly property is set to true.
Reverses the order of the elements in the entire EventList<IFeature>.
Unable to reverse while the ReadOnly property is set to true.
Sorts the elements in the entire EventList<IFeature> using the specified System.Comparison<IFeature>.
The System.Comparison<IFeature> to use when comparing elements.
The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself.
comparison is null.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in a range of elements in EventList<IFeature> using the specified comparer.
The zero-based starting index of the range to sort.
The length of the range to sort.
The System.Collections.Generic.IComparer<IFeature> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<IFeature>.Default.
index and count do not specify a valid range in the EventList<IFeature>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
index is less than 0.-or-count is less than 0.
comparer is null, and the default comparer
System.Collections.Generic.Comparer<IFeature>.Default cannot find implementation of the System.IComparable<IFeature>
generic interface or the System.IComparable interface for type IFeature.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<IFeature> using the specified comparer.
The System.Collections.Generic.IComparer<IFeature> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<IFeature>.Default.
The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
comparer is null, and the default comparer System.Collections.Generic.Comparer<IFeature>.Default cannot find implementation of the System.IComparable<IFeature> generic interface or the System.IComparable interface for type IFeature.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<IFeature> using the default comparer.
The default comparer System.Collections.Generic.Comparer<IFeature>.Default cannot find an implementation of the System.IComparable<IFeature> generic interface or the System.IComparable interface for type IFeature.
Unable to sort while the ReadOnly property is set to true.
Copies the entire System.Collections.Generic.List<IFeature> to a compatible one-dimensional array, starting at the specified index of the target array.
The one-dimensional System.Array that is the destination of the elements copied from System.Collections.Generic.List<IFeature>. The System.Array must have zero-based indexing.
The zero-based index in array at which copying begins.
System.ArgumentException: arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source System.Collections.Generic.List<T> is greater than the available space from arrayIndex to the end of the destination array.
arrayIndex is less than 0
array is null
Copies a range of elements from the EventList<IFeature> to a compatible one-dimensional array, starting at the specified index of the target array.
The zero-based index in the source EventList<T> at which copying begins
The one-dimensional System.Array that is the destination of the elements copied from EventList<IFeature>. The System.Array must have zero-based indexing.
The zero-based index in array at which copying begins.
The number of elements to copy.
array is null.
index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0.
index is equal to or greater than the EventList<IFeature>.Count of the source EventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source EventList<IFeature> is greater than the available space from arrayIndex to the end of the destination array.
Copies the entire EventList<IFeature> to a compatible one-dimensional array, starting at the beginning of the target array.
The one-dimensional System.Array that is the destination of the elements copied from EventList<IFeature>. The System.Array must have zero-based indexing.
The number of elements in the source EventList<IFeature> is greater than the number of elements that the destination array can contain.
array is null.
Includes the Feature in the parents DataTable at the given index and raises the FeatureAdded event.
Feature that gets included.
Index, where the feature gets included. (-1 = add at the end)
Removes the given Feature from the parents DataTable and raises the FeatureRemoved event.
Feature that gets excluded.
Converts the elements in the current EventList<IFeature> to another type, and returns a list containing the converted elements.
The output type to convert to
A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type.
A List<T> of the target type containing the converted elements from the current EventList<T>.
converter is null.
Determines whether the EventList<IFeature> contains elements that match the conditions defined by the specified predicate.
The System.Predicate<IFeature> delegate that defines the conditions of the elements to search for.
true if the EventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false.
match is null.
Creates a shallow copy of a range of elements in the source EventList<IFeature>.
The zero-based EventList<IFeature> index at which the range starts.
The number of elements in the range.
A shallow copy of a range of elements in the source EventList<IFeature>.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the EventList<IFeature>.
Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<IFeature> to a new array.
An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<IFeature>.
Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<IFeature>, if that number is less than a threshold value.
Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<IFeature> matches the conditions defined by the specified predicate.
The System.Predicate<IFeature> delegate that defines the conditions to check against the elements.
true if every element in the DotSpatial.Interfaces.Framework.IEventList<IFeature> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true.
match is null.
Searches for the specified object and returns the zero-based index of the first occurrence within the entire System.Collections.Generic.List<IFeature>.
The object to locate in the System.Collections.Generic.List<IFeature>. The value can be null for reference types.
The zero-based index of the first occurrence of item within the entire System.Collections.Generic.List<IFeature>, if found; otherwise, –1.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<IFeature> that starts at the specified index and contains the specified number of elements.
The object to locate in the EventList<IFeature>. The value can be null for reference types.
The zero-based starting index of the search.
The number of elements in the section to search.
The zero-based index of the first occurrence of item within the range of elements in the EventList<IFeature> that starts at index and contains count number of elements, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<IFeature>.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<IFeature> that extends from the specified index to the last element.
The object to locate in the EventList<IFeature>. The value can be null for reference types.
The zero-based starting index of the search.
The zero-based index of the first occurrence of item within the range of elements in the EventList<IFeature> that extends from index to the last element, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<IFeature>.
Inserts an element into the System.Collections.Generic.List<IFeature> at the specified index.
The zero-based index at which item should be inserted.
The object to insert. The value can be null for reference types.
index is less than 0.-or-index is greater than System.Collections.Generic.List<IFeature>.Count.
Unable to insert while the ReadOnly property is set to true.
Inserts the elements of a collection into the EventList<IFeature> at the specified index.
The zero-based index at which the new elements should be inserted.
The collection whose elements should be inserted into the EventList<IFeature>. The collection itself cannot be null, but it can contain elements that are null, if type IFeature is a reference type.
index is less than 0.-or-index is greater than EventList<IFeature>.Count.
collection is null.
Unable to insert while the ReadOnly property is set to true.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<IFeature> that contains the specified number of elements and ends at the specified index.
The object to locate in the EventList<IFeature>. The value can be null for reference types.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The zero-based index of the last occurrence of item within the range of elements in the EventList<IFeature> that contains count number of elements and ends at index, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<IFeature>.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<IFeature> that extends from the first element to the specified index.
The object to locate in the EventList<IFeature>. The value can be null for reference types.
The zero-based starting index of the backward search.
The zero-based index of the last occurrence of item within the range of elements in the EventList<IFeature> that extends from the first element to index, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<IFeature>.
Searches for the specified object and returns the zero-based index of the last occurrence within the entire EventList<IFeature>.
The object to locate in the EventList<IFeature>. The value can be null for reference types.
The zero-based index of the last occurrence of item within the entire the EventList<IFeature>, if found; otherwise, –1.
Removes the first occurrence of a specific object from the System.Collections.Generic.List<IFeature>.
The object to remove from the System.Collections.Generic.List<IFeature>. The value can be null for reference types.
true if item is successfully removed; otherwise, false. This method also returns false if item was not
found in the System.Collections.Generic.List<IFeature>.
Unable to remove while the ReadOnly property is set to true.
Removes the element at the specified index of the System.Collections.Generic.List<IFeature>.
The zero-based index of the element to remove.
Unable to remove while the ReadOnly property is set to true.
Removes the all the elements that match the conditions defined by the specified predicate.
The System.Predicate<IFeature> delegate that defines the conditions of the elements to remove.
The number of elements removed from the EventList<IFeature>
match is null.
Unable to remove while the ReadOnly property is set to true.
Removes a range of elements from the EventList<IFeature>.
The zero-based starting index of the range of elements to remove.
The number of elements to remove.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the EventList<IFeature>.
Unable to remove while the ReadOnly property is set to true.
Retrieves all the elements that match the conditions described by the specified predicate
The System.Predicate that defines the conditions to search for
A List of matches
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the EventList<IFeature> that starts at the specified index and contains the specified number of elements.
The zero-based starting index of the search.
The number of elements in the section to search.
The System.Predicate<IFeature> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1
startIndex is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<IFeature>.
match is null
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the EventList<IFeature> that extends from the specified index to the last element.
The zero-based starting index of the search.
The System.Predicate<IFeature> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
startIndex is outside the range of valid indexes for the EventList<IFeature>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire EventList<IFeature>.
The System.Predicate<IFeature> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire EventList<IFeature>.
The System.Predicate<IFeature> delegate that defines the conditions of the element to search for.
The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type IFeature.
match is null."
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the EventList<IFeature> that contains the specified number of elements and ends at the specified index.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The System.Predicate<IFeature> delegate that defines the conditions of the element to search for.
startIndex is outside the range of valid indexes for the EventList<IFeature>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<IFeature>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the EventList<IFeature> that extends from the first element to the specified index.
The zero-based starting index of the backward search.
The System.Predicate<IFeature> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
: startIndex is outside the range of valid indexes for the EventList<IFeature>.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire EventList<IFeature>.
The System.Predicate<IFeature> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
Adds the item to the list, setting the parent to be the list's parent
Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T>
collection: The collection whose elements should be added to the end of the
System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null,
if type T is a reference type.
Unable to add while the ReadOnly property is set to true.
Searches the entire sorted System.Collections.Generic.List<IFeature> for an element using the default comparer and returns the zero-based index of the element.
The object to locate. The value can be null for reference types.
The zero-based index of item in the sorted System.Collections.Generic.List<IFeature>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<IFeature>.Count.
The default comparer System.Collections.Generic.Comparer<IFeature>.Default cannot find an implementation of the System.IComparable<IFeature> generic interface or the System.IComparable interface for type IFeature.
Occurs each time a feature is added to the list. This should only be called
if suspend events is false.
The feature that was added.
Occurs each time a feature is removed from the list. This should only be
called if suspend events is false.
he feature that was removed
Occurs when a new feature is added to the list
Occurs when a feature is removed from the list.
Gets or sets whether or not the events have been suspended
Gets or sets the total number of elements the internal data structure can hold without resizing.
The number of elements that the DotSpatial.Interfaces.Framework.IEventList<IFeature> can contain before resizing is required.
DotSpatial.Interfaces.Framework.IEventList<IFeature>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<IFeature>.Count.
Gets the count of the members in the list
The default, indexed value of type IFeature
The numeric index
An object of type IFeature corresponding to the index value specified
Gets a boolean property indicating whether this list can be written to.
If this is false, then features will be added to the list without copying over attribute Table information.
This will allow the attributes to be loaded in a more on-demand later.
Gets the parent featureset for this list of features.
FeatureListEm
adding a single coordinate will assume that the feature type should be point for this featureset, even
if it has not already been specified.
This IFeatureList
The point to add to the featureset
Thrown when the feature type already exists, there are already features in the featureset and the featuretype is not equal to point.
This adds the coordinates and specifies what sort of feature type should be added.
This IFeatureList
The list or array of coordinates to be added after it is built into the appropriate feature.
The feature type.
If the feature type is specified, then this will automatically generate a new feature from the specified coordinates.
This will not work unless the featuretype is specified.
This IFeatureList
The list or array of coordinates to build into a new feature.
If the feature type is point, then this will create separate features for each coordinate.
For polygons, all the points will be assumed to be in the shell.
Thrown if the current FeatureType for the shapefile is unspecified.
This method will attempt to add the specified geometry to the list.
If the feature type is currently unspecified, this will specify the feature type.
This feature list
The geometry to create a new feature from.
Thrown if the new geometry does not match the currently specified feature type.
Rather than being an abstract base class, this is a "router" class that will
make decisions based on the file extension or whatever being used and decide the best
IFeatureSet that matches the specifications.
A layer contains a list of features of a specific type that matches the geometry type.
While this supports IRenderable, this merely forwards the drawing instructions to
each of its members, but does not allow the control of any default layer properties here.
Calling FeatureDataSource.Open will create a number of layers of the appropriate
specific type and also create a specific layer type that is derived from this class
that does expose default "layer" properties, as well as the symbology elements.
IDataPageRetriever
Supplies a page of content in the form of a data Table.
The integer lower page boundary
The integer number of rows to return for the page
A DataTable made up with the virtual row content.
Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView
The integer lower page boundary
The integer number of attribute values to return for the page
The list or array of fieldnames to return.
A DataTable populated with data rows with only the specified values.
Converts a page of content from a DataTable format, saving it back to the source.
The 0 based integer index representing the first row in the file (corresponding to the 0 row of the data table)
The DataTable representing the rows to set. If the row count is larger than the dataset, this will add the rows instead.
The number of rows
Gets the column with the specified name
the name to search
the Field matching the specified name
Gets a copy of the fields used to build the data structure. This is useful for learning
about the existing fields, but doesn't allow direct changes to the underlying data structure.
Saves the new row to the data source and updates the file with new content.
The values organized against the dictionary of field names.
saves a single row to the data source.
the integer row (or FID) index
The dictionary of object values by string field name holding the new values to store.
Saves the new row to the data source and updates the file with new content.
The values organized against the dictionary of field names.
saves a single row to the data source.
the integer row (or FID) index
The dictionary of object values by string field name holding the new values to store.
Given a string expression, this returns the count of the members that satisfy that expression.
The array of string expressions to test
The progress handler that might also instruct this step to be canceled.
The integer maximum sample size from which to draw counts. If this is negative, it will not be used.
An array of integer counts of the members that match the expression
Gets the list of string names available as columns from the specified excel file.
For attributes that are small enough to be loaded into a data table, this
will join attributes from a foreign table (from an excel file). This method
won't create new rows in this table, so only matching members are brought in,
but no rows are removed either, so not all rows will receive data.
The complete path of the file to join
The field name to join on in this table
The field in the foreign table.
If this featureset is in index mode, this will append the vertices and shapeindex of the shape.
Otherwise, this will add a new feature based on this shape. If the attributes of the shape are not null,
this will attempt to append a new datarow It is up to the developer
to ensure that the object array of attributes matches the this featureset. If the Attributes of this feature are loaded,
this will add the attributes in ram only. Otherwise, this will attempt to insert the attributes as a
new record using the "AddRow" method. The schema of the object array should match this featureset's column schema.
The shape to add to this featureset.
Adds any type of list or array of shapes. If this featureset is not in index moded,
it will add the features to the featurelist and suspend events for faster copying.
An enumerable collection of shapes.
Gets the specified feature by constructing it from the vertices, rather
than requiring that all the features be created. (which takes up a lot of memory).
The integer index
Gets a shape at the specified shape index. If the featureset is in
indexmode, this returns a copy of the shape. If not, it will create
a new shape based on the specified feature.
The zero based integer index of the shape.
If getAttributes is true, then this also try to get attributes for that shape.
If attributes are loaded, then it will use the existing datarow. Otherwise, it will read the attributes
from the file. (This second option is not recommended for large repeats. In such a case, the attributes
can be set manually from a larger bulk query of the data source.)
The Shape object
Given a datarow, this will return the associated feature. This FeatureSet
uses an internal dictionary, so that even if the items are re-ordered
or have new members inserted, this lookup will still work.
The DataRow for which to obtaind the feature
The feature to obtain that is associated with the specified data row.
Generates a new feature, adds it to the features and returns the value.
The feature that was added to this featureset
Adds the FID values as a field called FID, but only if the FID field
does not already exist
Copies all the features from the specified featureset.
The source IFeatureSet to copy features from.
Boolean, true if the attributes should be copied as well. If this is true,
and the attributes are not loaded, a FillAttributes call will be made.
Retrieves a subset using exclusively the features matching the specified values.
An integer list of indices to copy into the new FeatureSet
A FeatureSet with the new items.
Copies the subset of specified features to create a new featureset that is restricted to
just the members specified.
The string expression to test.
A FeatureSet that has members that only match the specified members.
Copies only the names and types of the attribute fields, without copying any of the attributes or features.
The source featureSet to obtain the schema from.
Copies the Table schema (column names/data types)
from a DatatTable, but doesn't copy any values.
The Table to obtain schema from.
Instructs the shapefile to read all the attributes from the file.
This may also be a cue to read values from a database.
Instructs the shapefile to read all the attributes from the file.
This may also be a cue to read values from a database.
Obtains the list of feature indices that match the specified filter expression.
The filter expression to find features for.
The list of integers that are the FIDs of the specified values.
This forces the vertex initialization so that Vertices, ShapeIndices, and the
ShapeIndex property on each feature will no longer be null.
Switches a boolean so that the next time that the vertices are requested,
they must be re-calculated from the feature coordinates.
This only affects reading values from the Vertices cache
Attempts to remove the specified shape.
The integer index of the shape to remove.
Boolean, true if the remove was successful.
Attempts to remove a range of shapes by index. This is optimized to
work better for large numbers. For one or two, using RemoveShapeAt might
be faster.
The enumerable set of indices to remove.
Skips the features themselves and uses the shapeindicies instead.
The region to select members from
A list of integer valued shape indices that are selected.
Saves the information in the Layers provided by this datasource onto its existing file location
Saves a datasource to the file.
The string fileName location to save to
Boolean, if this is true then it will overwrite a file of the existing name.
returns only the features that have envelopes that
intersect with the specified envelope.
The specified region to test for intersect with
A List of the IFeature elements that are contained in this region
returns only the features that have envelopes that
intersect with the specified envelope.
The specified region to test for intersect with
This returns the geographic extents for the entire selected area.
A List of the IFeature elements that are contained in this region
The string filter expression to use in order to return the desired features.
The features to return.
The list of desired features.
This version is more tightly integrated to the DataTable and returns the row indices, rather
than attempting to link the results to features themselves, which may not even exist.
The filter expression
The list of indices
After changing coordinates, this will force the re-calculation of envelopes on a feature
level as well as on the featureset level.
Occurs when the vertices are invalidated, encouraging a re-draw
Occurs when a new feature is added to the list
Occurs when a feature is removed from the list.
Gets whether or not the attributes have all been loaded into the data table.
Gets or sets the coordinate type across the entire featureset.
Gets the DataTable associated with this specific feature.
Gets the list of all the features that are included in this layer.
This is an optional GeometryFactory that can be set to control how the geometries on features are
created. if this is not specified, the default from DotSptaial.Topology is used.
Gets the feature lookup Table itself.
Gets an enumeration indicating the type of feature represented in this dataset, if any.
Gets the string fileName for this feature layer, if any
These specifically allow the user to make sense of the Vertices array. These are
fast acting sealed classes and are not meant to be overridden or support clever
new implementations.
If this is true, then the ShapeIndices and Vertex values are used,
and features are created on demand. Otherwise the list of Features
is used directly.
Gets an array of Vertex structures with X and Y coordinates
Z coordinates
M coordinates
Gets a boolean that indicates whether or not the InvalidateVertices has been called
more recently than the cached vertex array has been built.
The _data table.
The _feature lookup.
The _features.
The _m.
The _shape indices.
The _vertices.
The _vertices are valid.
The _z.
Initializes a new instance of the class.
This doesn't do anything exactly because there is no file-specific information yet
Initializes a new instance of the class.
Creates a new FeatureSet
The Feature type like point, line or polygon
Initializes a new instance of the class.
This creates a new featureset by checking each row of the table. If the WKB feature
type matches the specified featureTypes, then it will copy that.
Initializes a new instance of the class.
Creates a new FeatureSet using a given list of IFeatures.
This will copy the existing features, rather than removing
them from their parent feature set.
The list of IFeatures
Generates a new feature, adds it to the features and returns the value.
The geometry.
The feature that was added to this featureset
The data table row deleted.
The sender.
The e.
The features feature added.
The sender.
The e.
The features feature removed.
The object sender.
The FeatureEventArgs.
Adds the FID values as a field called FID, but only if the FID field
does not already exist.
The copy subset.
The indices.
The copy subset.
The filter expression.
Gets the list of string names available as columns from the specified excel file.
Warning. This method should be moved outside of FeatureSet.
For attributes that are small enough to be loaded into a data table, this
will join attributes from a foreign table (from an excel file). This method
won't create new rows in this table, so only matching members are brought in,
but no rows are removed either, so not all rows will receive data.
The complete path of the file to join
The field name to join on in this table
The field in the foreign table.
A modified featureset with the changes.
Selects using a string filter expression to obtain the desired features.
Field names should be in square brackets. Alternately, if the field name of [FID]
is used, then it will use the row index instead if no FID field is found.
The features to return.
The list of desired features.
This version is more tightly integrated to the DataTable and returns the row indices, rather
than attempting to link the results to features themselves, which may not even exist.
The filter expression
The list of indices
Retrieves a subset using exclusively the features matching the specified values.
An integer list of indices to copy into the new FeatureSet.
A FeatureSet with the new items.
This attempts to open the specified file as a valid IFeatureSet. This will require that
the default data manager can work with the file format at runtime.
The string fileName for this featureset.
This will return the correct feature type by reading the fileName.
A string specifying the file with the extension .shp to open.
A correct featureSet which is exclusively for reading the .shp data
Generates a new FeatureSet, if possible, from the specified fileName.
The string fileName to attempt to load into a new FeatureSet.
An IProgressHandler for progress messages
Gets the line for the specified index
Returns a single multipoint feature for the shape at the specified index
Gets the point for the shape at the specified index
If the FeatureType is polygon, this is the code for converting the vertex array
into a feature.
handles the attributes while adding a shape
A data row, but only if attributes are populated
Copies the subset of specified features to create a new featureset that is restricted to
just the members specified.
The string expression to test.
A FeatureSet that has members that only match the specified members.
Test if a point is in a list of coordinates.
TestPoint the point to test for.
PointList the list of points to look through.
true if testPoint is a point in the pointList list.
Attempts to remove the specified shape. If in memory, this will also remove the
corresponding database row. This has no affect on the underlying datasets.
To impact those, use the
The integer index o the shape to remove.
Boolean, true if the remove was successful.
Attempts to remove a range of shapes by index. This is optimized to
work better for large numbers. For one or two, using RemoveShapeAt might
be faster.
The enumerable set of indices to remove.
Reprojects all of the in-ram vertices of this featureset.
This will also update the projection to be the specified projection.
The projection information to reproject the coordinates to.
After changing coordinates, this will force the re-calculation of envelopes on a feature
level or test the shapes in index mode to rebuild an Extent.
Creates a relative path from one file
or folder to another.
Contains the path that defines the
endpoint of the relative path.
The relative path from the start
directory to the end path.
Occurs when the toPath is NULL
Creates a relative path from one file or folder to another.
Contains the directory that defines the start of the relative path.
Contains the path that defines the endpoint of the relative path.
The relative path from the start directory to the end path.
Calculates the features from the shape indices and vertex array.
Allows the un-wiring of event handlers related to the data Table.
Allows the wiring of event handlers related to the data Table.
Occurs when removing the feature list, allowing events to be disconnected
Occurs when setting the feature list, allowing events to be connected
Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView
The integer lower page boundary.
The integer number of attribute rows to return for the page.
The list or array of fieldnames to return.
A DataTable populated with data rows with only the specified values.
Occurs when the vertices are being re-calculated.
Fires the VerticesInvalidated event
This forces the cached vertices array to be copied back to the individual X and Y values
of the coordinates themselves.
Disposes the unmanaged memory objects.
If this is true, managed resources are set to null.
Occurs when a new feature is added to the list
Occurs when a feature is removed from the list.
Occurs when the vertices are invalidated, encouraging a re-draw
Gets or sets the current file path. This is the relative path relative to
the current project folder. For feature sets coming from a database
or a web service, the FilePath property is NULL.
The relative file path.
This property is used when saving source file information to a DSPX project.
Gets whether or not the attributes have all been loaded into the data table.
Gets or sets the coordinate type across the entire featureset.
DataTable is the System.Data.DataTable for all the attributes of this FeatureSet.
This will call FillAttributes if it is accessed and that has not yet been called.
This is the envelope in Extent form. This may be cached.
This is an optional GeometryFactory that can be set to control how the geometries on features are
created. The "Feature" prefix allows us to access the static Default instance on GeometryFactory.
Gets the feature lookup Table itself.
Gets or sets an enumeration specifying whether this
featureset contains Lines, Points, Polygons or an
unspecified type.
A list of the features in this layer
Gets or sets the file name of a file based feature set. The file name should be the
absolute path including the file extension. For feature sets coming from a database
or a web service, the Filename property is NULL.
If this is true, then the ShapeIndices and Vertex values are used,
and features are created on demand. Otherwise the list of Features
is used directly.
These specifically allow the user to make sense of the Vertices array. These are
fast acting sealed classes and are not meant to be overridden or support clever
new implementations.
Gets a Boolean that indicates whether or not the InvalidateVertices has been called
more recently than the cached vertex array has been built.
FeatureSetEM contains extension methods that should work for any IFeatureSet
Creates a new polygon featureset that is created by buffering each of the individual shapes.
The IFeatureSet to buffer
The double distance to buffer
Boolean, if this is true, then the new featureset will have
the same attributes as the original.
The newly created IFeatureSet
Generates an empty featureset that has the combined fields from this featureset
and the specified featureset.
This featureset
The other featureset to combine fields with.
Calculates a union of any features that have a common value in the specified field.
The output will only contain the specified field. Example: Disolving a county
shapefile based on state name to produce a single polygon shaped like the state.
The original featureSet to disolve the features of
The string field name to use for the disolve operation
A featureset where the geometries of features with the same attribute in the specified field have been combined.
Tests to see if this feature intersects with the specified envelope
This feature
The envelope to test
Boolean, true if the intersection occurs
This method will create a new IFeatureSet with the the shapes that intersect merged into single shapes,
or else it will return a new featureset where EVERY shape is unioned into a single, multi-part shape.
The source of features to union
This controls whether intersecting or all features are unioned
An IFeatureSet with the unioned shapes.
This tests each feature of the input
This featureSet
The featureSet to perform intersection with
The attribute join type
A progress handler for status messages
An IFeatureSet with the intersecting features, broken down based on the join Type
FeatureTypeMismatchException
Creates a new instance of FeatureTypeMismatchException
FieldJoinType
Output datasets have all fields from both input and output sets. Fields with duplicate field names will be appended with a number.
Features from this dataset may appear more than once if more than one valid intersection occurs with the features from the
other featureset.
The fields will be created from the fields in the other featureset.
All the fields from this FeatureSet are used, and all of the features from the other featureset are considered
to be a single geometry so that features from this set will appear no more than once in the output set.
No fields will be copied, but features from this featureset will be considered independantly and added as separate
features to the output featureset.
The row being edited
The pages currently stored in the cache
Constructs a new Cache object that can create data tables by using a DataPageRetriever
Any structure that implements IDataPageRetriever
The rows per page
Saves the changes in the edit row to the tabular cache as well as the underlying database
Obtains the element at the specified index
Obtains the element at the specified index
The integer index of the row being edited
The number of rows in the data supply
Enumerates the dictionaries that represent row content stored by field name.
Creates a new AttributeCacheEnumerator
Represents one page of data.
The data Table
A Data page representing one page of data-row values
The DataTable that controls the content
The integer row index
Tests to see if the specified index is in this page.
Given an arbitrary row index, this calculates what the lower boundary would be for the page containing the index
Given an arbitrary row index, this calculates the upper boundary for the page containing the index
The integer lowest index of the page
The integer highest index of the page
AttributePager
Creates a new instance of AttributePager
Does nothing
Advances to the next attribute
reset the attribute pager
The integer number of pages
the number of pages
Gets the number of rows on the specified page.
The page index
The number of rows that should be on that page.
Loads the appropriate page if it isn't loaded already and returns the DataRow that
matches the specified index
The integer row index
The DataRow
Returns the page that the specified row is on
The integer row index
The page of the row in question
Gets the current table
Gets the starting row index of the current page.
Gets the pages size as a count of the number of rows each data table page should hold
This returns the data table for the corresponding page index, but also sets the
Pager so that it is sitting on the specified page index.
A class for controlling the attribute Table related information for a shapefile.
Indicates that the Fill methode is called from inside itself.
Creates a new instance of an attribute Table with no file reference
Creates a new AttributeTable with the specified fileName, or opens
an existing file with that name.
Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView
Reads just the content requested.
starting row
number of rows to return
field for which data is to be returned
Reads just the contents requested. Faster than returning the entire record if you have lots of attributes but only want a few.
starting row
number of rows to return
fields for which data is to be returned
Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView
The 0 based integer index of the start row
The DataTable with the 0 row corresponding to the start row. If this exceeds the size of the data table, it will add rows.
Get a DataTable containing the specified rows
Accounts for deleted rows and returns the index as it appears in the file
Accounts for deleted rows and adjusts a file index to a row index
Saves the new row to the data source and updates the file with new content.
The values organized against the dictionary of field names.
Removes the row at the specified row index from both the table in memory
and by marking it as deleted in the file. This should work even in cases
where the file is very large and working as an AttributeSource.
Saves the new row to the data source and updates the file with new content.
The values organized against the dictionary of field names.
saves a single row to the data source.
the integer row (or FID) index
The object array holding the new values to store.
saves a single row to the data source.
the integer row (or FID) index
The object array holding the new values to store.
saves a collection of rows to the data source
Edit the specified rows via a client supplied callback
rows to edit
client supplied callback
Setup before calls to OverwriteDataRow
Cleanup after finished calling OverwriteDataRow
Common code for editing an existing row in the data source
Read a single dbase record
Returns an IFeature with information appropriate for the current row in the Table
Reads all the information from the file, including the vector shapes and the database component.
Reads the header and if deletedRows is null, searches file for deletedRows if file size indicates possibility of deleted rows.
This populates the Table with data from the file.
In the event that the dbf file is not found, this indicates how many blank rows should exist in the attribute Table.
Attempts to save the file to the path specified by the Filename property.
This should be the .shp extension.
Saves this Table to the specified fileName
The string fileName to save to
A boolean indicating whether or not to write over the file if it exists.
Tests to see if the list of columns contains the specified name or not.
Name of the column we're looking for.
True, if the column exists.
This appends the content of one datarow to a dBase file.
The columnValues parameter was null
Header records need to be written first.
Table property of columnValues parameter cannot be null.
Writes a number of spaces equal to numspaces
The integer number of spaces to write
Writes an integer so that it is formatted for dbf. This is still buggy since it is possible to lose info here.
The long value
The length of the field.
The number of digits after the decimal
Write the header data to the DBF file.
Read a single dbase record
Returns an IFeature with information appropriate for the current row in the Table
Parse the character data for one column into an object ready for insertion into a data row
Read the header data from the DBF file.
BinaryReader containing the header.
This systematically copies all the existing values to a new data column with the same properties,
but with a new data type. Values that cannot convert will be set to null.
The old data column to update
The new data type that the column should become
The row up to which values should be changed for
The column index of the field being changed
The Table to apply this strategy to.
An integer list showing the index values of the rows where the conversion failed.
Fires the AttributesFilled event
Occurs after content has been loaded into the attribute data.
gets or sets whether the Attributes have been populated. If data was "opened" from a file,
and a query is made to the DataTable while _attributesPopulated is false, then
a Fill method will be called automatically
The byte length of the header
The columns
The file type
The fileName of the dbf file
Number of records
Gets or sets the progress handler for this Attribute Table.
Gets or sets the progress meter that is directly tied to the progress handler
The byte length of each record
Gets the language driver ID (LDID) for this file
Gets the encoding used for text-based data and column names (based on LDID)
DataSet
Last date written to
Gets the list of raw row numbers that have been marked for deletion
A shapefile class that handles the special case where the vectors are lines
This is a generic shapefile that is inherited by other specific shapefile types.
When creating a new shapefile, this simply prevents the basic values from being null.
Creates a new shapefile that has a specific feature type
Creates a new instance of a shapefile based on a fileName
Gets the count of members that match the expression
The string expression to test
THe progress handler that can also cancel the counting
The integer maximum sample size from which to draw counts. If this is negative, it will not be used.
The integer count of the members that match the expression.
This makes the assumption that the organization of the feature list has not
changed since loading the attribute content.
This will return the correct shapefile type by reading the fileName.
A string specifying the file with the extension .shp to open.
A correct shapefile object which is exclusively for reading the .shp data
This will return the correct shapefile type by reading the fileName.
A string specifying the file with the extension .shp to open.
receives progress messages and overrides the ProgressHandler on the DataManager.DefaultDataManager
A correct shapefile object which is exclusively for reading the .shp data
saves a single row to the data source.
the integer row (or FID) index
The object array holding the new values to store.
saves a single row to the data source.
the integer row (or FID) index
The object array holding the new values to store.
Saves the new row to the data source and updates the file with new content.
The values organized against the dictionary of field names.
Saves the new row to the data source and updates the file with new content.
The values organized against the dictionary of field names.
Converts a page of content from a DataTable format, saving it back to the source.
The 0 based integer index representing the first row in the file (corresponding to the 0 row of the data table)
The DataTable representing the rows to set. If the row count is larger than the dataset, this will add the rows instead.
Reads the attributes from the specified attribute Table.
Sets up the feature lookup, if it has not been already.
This doesn't rewrite the entire header or erase the existing content. This simply replaces the file length
in the file with the new file length. This is generally because we want to write the header first,
but don't know the total length of a new file until cycling through the entire file. It is easier, therefore
to update the length after editing.
A string fileName
The integer length of the file in 16-bit words
Reads 4 bytes from the specified byte array starting with offset.
If IsBigEndian = true, then this flips the order of the byte values.
An array of bytes that is at least 4 bytes in length from the startIndex
A 0 based integer index where the double value begins
If this is true, then the order of the bytes is reversed before being converted to a double
A double created from reading the byte array
Reads 8 bytes from the specified byte array starting with offset.
If IsBigEndian = true, then this flips the order of the byte values.
An array of bytes that is at least 8 bytes in length from the startIndex
A 0 based integer index where the double value begins
If this is true, then the order of the bytes is reversed before being converted to a double
A double created from reading the byte array
Converts the double value into bytes and inserts them starting at startIndex into the destArray
A byte array where the values should be written
The starting index where the values should be inserted
The double value to convert
Specifies whether the value should be written as big or little endian
Converts the double value into bytes and inserts them starting at startIndex into the destArray.
This will correct this system's natural byte order to reflect what is required to match the
shapefiles specification.
A byte array where the values should be written
The starting index where the values should be inserted
The integer value to convert
Specifies whether the value should be written as big or little endian
Reads the entire index file in order to get a breakdown of how shapes are broken up.
A string fileName of the .shx file to read.
A List of ShapeHeaders that give offsets and lengths so that reading can be optimized
Ensures that the attribute Table will have information that matches the current Table of attribute information
This uses the fileName of this shapefile to read the prj file of the same name
and stores the result in the Projection class.
Automatically uses the fileName of this shapefile to save the projection
Reads just the content requested in order to satisfy the paging ability of VirtualMode for the DataGridView
The integer lower page boundary
The integer number of attribute rows to return for the page
The list or array of fieldnames to return.
A DataTable populated with data rows with only the specified values.
The number of rows
This gets a copy of the actual internal list of columns.
This should never be used to make changes to the column collection.
Checks that shape file can be saved to given fileName.
File name to save.
Overwrite file or not.
Saves header
File to save.
The buffer size is an integer value in bytes specifying how large a piece of memory can be used at any one time.
Reading and writing from the disk is faster when done all at once. The larger this number the more effective
the disk management, but the more ram will be required (and the more likely to trip an out of memory error).
Gets whether or not the attributes have all been loaded into the data table.
This re-directs the DataTable to work with the attribute Table instead.
A general header structure that stores some basic information about the shapefile.
Gets or sets the attribute Table used by this shapefile.
Creates a new instance of a LineShapefile for in-ram handling only.
Creates a new instance of a LineShapefile that is loaded from the supplied fileName.
The string fileName of the polygon shapefile to load
Opens a shapefile
The string fileName of the line shapefile to load
Any valid implementation of the DotSpatial.Data.IProgressHandler
Gets the specified feature by constructing it from the vertices, rather
than requiring that all the features be created. (which takes up a lot of memory).
The integer index
Saves the file to a new location
The fileName to save
Boolean that specifies whether or not to overwrite the existing file
A shapefile class that handles the special case where each features has multiple points
Creates a new instance of a MultiPointShapefile for in-ram handling only.
Creates a new instance of a MultiPointShapefile that is loaded from the supplied fileName.
The string fileName of the polygon shapefile to load
Gets the feature at the specified index offset
the integer index
An IFeature created from the shape at the specified offset
Opens a shapefile
The string fileName of the point shapefile to load
Any valid implementation of the DotSpatial.Data.IProgressHandler
Saves the file to a new location
The fileName to save
Boolean that specifies whether or not to overwrite the existing file
Numbers are based on the old school dbf definitions of data formats, and so can only store
a very limited range of values.
Numbers can contain ASCII text up till 18 characters long, but no longer
Format provider to use to convert DBF numbers to strings and characters
Creates a new instance of NumberConverter where the length and decimal count are known.
Cycles through the numeric values in the specified column and determines a selection of
length and decimal count can accurately store the data.
Creates a new, random double that is constrained by the specified length and decimal count.
Creates a new, random float that is constrained by the specified length and decimal count.
A new float. Floats can only store about 8 digits of precision, so specifying a high
Creates a new, random decimal that is constrained by the specified length and decimal count.
Creates a new random array of characters that represents a number and is constrained by the specified length and decimal count
The integer number of significant (non-zero) digits that should be created as part of the number.
A character array of that matches the length and decimal count specified by this properties on this number converter
Converts from a string, or 0 if the parse failed
The string value to parse
Converts the specified double value to a string that can be used for the number field
The double precision floating point value to convert to a string
A string version of the specified number
Converts the specified decimal value to a string that can be used for the number field
The decimal value to convert to a string
A string version of the specified number
Converts the specified float value to a string that can be used for the number field
The floating point value to convert to a string
A string version of the specified number
Converts the specified decimal value to a string that can be used for the number field
The decimal value to convert to a string
A string version of the specified number
Converts the specified decimal value to a string that can be used for the number field
The decimal value to convert to a string
A string version of the specified number
Converts the specified decimal value to a string that can be used for the number field
The decimal value to convert to a string
A string version of the specified number
Compute and update the DecimalFormatString from the precision specifier
Gets or set the length
Gets or sets the decimal count to use for this number converter
Gets or sets the format string used to convert doubles, floats, and decimals to strings
NumberException
An exception that is specifically fo the NumberConverter class
The message for the exception
A shapefile class that handles the special case where the data type is point
Creates a new instance of a PointShapefile for in-ram handling only.
Creates a new instance of a PointShapefile that is loaded from the supplied fileName.
The string fileName of the polygon shapefile to load
Opens a shapefile
The string fileName of the point shapefile to load
Any valid implementation of the DotSpatial.Data.IProgressHandler
Obtains a typed list of ShapefilePoint structures with double values associated with the various coordinates.
A string fileName
Progress handler
Saves the shapefile to a different fileName, but still as a shapefile. This method does not support saving to
any other file format.
The string fileName to save as
A boolean that is true if the file should be overwritten
A shapefile class that handles the special case where the data is made up of polygons
Creates a new instance of a PolygonShapefile for in-ram handling only.
Creates a new instance of a PolygonShapefile that is loaded from the supplied fileName.
The string fileName of the polygon shapefile to load
Opens a shapefile
The string fileName of the polygon shapefile to load
Any valid implementation of the DotSpatial.Data.IProgressHandler
Gets the specified feature by constructing it from the vertices, rather
than requiring that all the features be created. (which takes up a lot of memory).
The integer index
Saves the file to a new location
The fileName to save
Boolean that specifies whether or not to overwrite the existing file
The header for the .shp file and the .shx file that support shapefiles
Creates a new, blank ShapeHeader
Opens the specified fileName directly
The string fileName to open as a header.
Resets all the extent values to 0
Parses the first 100 bytes of a shapefile into the important values
The fileName to read
Saves changes to the .shp file will also automatically update the .shx file.
Saves changes to the .shp file and will also automatically create the header for the .shx file.
This will no longer automatically delete an existing shapefile.
The string fileName to create.
Writes the current content to the specified file.
The string fileName to write to
The only difference between the shp header and the
shx header is the file length parameter.
Generates a new envelope based on the extents of this shapefile.
An Envelope
Generates a new extent from the shape header. This will infer the whether the ExtentMZ, ExtentM
or Extent class is the best implementation. Casting is required to access the higher
values from the Extent return type.
Extent, which can be Extent, ExtentM, or ExtentMZ
The shape type is assumed to be fixed, and will control how the input extent is treated as far
as M and Z values, rather than updating the shape type based on the extent.
Gets or sets the integer file code that should always be 9994.
Gets or sets the integer file length in bytes
Gets or sets the string fileName to use for this header
Gets or sets the DotSpatial.Data.Shapefiles.ShapeType enumeration specifying
whether the shapes are points, lines, polygons etc.
Changes the extension of the fileName to .shx instead of .shp
Gets or sets the version, which should be 1000
The minimum X coordinate for the values in the shapefile
The maximum X coordinate for the shapes in the shapefile
The minimum Y coordinate for the values in the shapefile
The maximum Y coordinate for the shapes in the shapefile
The minimum Z coordinate for the values in the shapefile
The maximum Z coordinate for the shapes in the shapefile
The minimum M coordinate for the values in the shapefile
The maximum M coordinate for the shapes in the shapefile
Gets or sets the length of the shx file in 16 bit words.
A simple structure that contains the elements of a shapefile that must exist
The content length
The offset in 16-bit words
The offset in bytes
The length in bytes
The FeatureSetPack contains a MultiPoint, Line and Polygon FeatureSet which can
handle the various types of geometries that can arrive from a mixed geometry.
The featureset with all the lines
The featureset with all the points
The featureset with all the polygons
Stores the raw vertices from the different shapes in a list while being created.
That way, the final array can be created one time.
Creates a new instance of the FeatureSetPack
Clears the vertices and sets up new featuresets.
Adds the shape. Assumes that the "part" indices are created with a 0 base, and the number of
vertices is specified. The start range of each part will be updated with the new shape range.
The vertices array itself iwll be updated during hte stop editing step.
Finishes the featuresets by converting the lists
Combines the vertices, finalizing the creation
Enuemratres the FeatureSetPack in Polygon, Line, Point order. If any member
is null, it skips that member.
Creates the FeatureSetPackEnumerator based on the specified FeaturSetPack
The Pack
WKBPointReader
Given the array of bytes, this reverses the bytes based on size. So if size if 4, the
reversal will flip uints of 4 bytes at a time.
The raw byte data.
The raw byte data.
The count of integers, not bytes.
Reads the specified number of doubles
Since WKB can in fact store different kinds of shapes, this will split out
each type of shape into a different featureset. If all the shapes are
the same kind of feature, thre will only be one list of feature types.
Gets a FeatureSetPack from the wkb
Reads only a single geometry into a feature. This may be a multi-part geometry.
Reads only a single geometry into a feature. This may be a multi-part geometry,
but cannot be a mixed part geometry. Anything that registers as "geometryCollection"
will trigger an exception.
Attempts to read in an entry to the specified feature type. If the feature type does not match
the geometry type, this will return null. (A Point geometry will be accepted by MultiPoint
feature type, but not the other way arround. Either way, this will advance the reader
through the shape feature. Using the Unspecified will always return the shape it reads,
or null in the case of mixed feature collections which are not supported.
This assumes that the byte order and shapetype have already been read.
This assumes that the byte order and shapetype have already been read.
Reads one multipoint shape from a data stream.
(this assumes that the two bytes (endian and type) have already been read.
Fix introduced by JamesP@esdm.co.uk. 3/11/2010
Using Array.Reverse does not work because it has the unwanted effect of flipping
the X and Y values.
The double precision XY coordinate array of vertices
The double array in reverse order.
Calculates the area and if the area is negative, this is considered a hole.
Boolean, true if this has a negative area and should be thought of as a hole
Vertices require methods to work quickly with data. These are not designed to be inherited,
overridden or equiped with interfaces and properties.
RangeIndex
Creates an empty vertex range that can have the vertices and number of vertices assigned later
Creates a new instance of RangeIndex
An array of all the vertex locations
Gets an enumerator. This exists to make it easier to cycle values,
but in truth should not be used because it re-adds the property accessor
which slows down the data access, which is the whole point of putting
all the vertices into a jagged array of doubles in the first place.
For parts, controlling the part offset is perhaps more useful that controlling the shape offset.
The StartIndex is the sum of the shape offset and the part offset. Controlling them separately
allows the entire shape offset to be adjusted independantly after the part is created.
The integer index of the first vertex included in this range. This is overridden
in the case of part ranges to also take into account the shape start index.
the integer index of the last vertex included in this range
Gets or sets the number of vertices. This will also set the EndIndex
relative to the start position.
Gets or sets the vertices
The enumerator is here to provide an easy method for cycling vertex values
in each range. This sort of defeats the point because it adds
two method calls for advancing each step (one to MoveNext and one to
access the property. The whole point of loading everything
into a single array of vertices in the first place is to avoid
property accessors slowing down the process. However, it's here
if someone wants it.
Creates a new instance of the VertexRangeEnumerator
The vertices to create
The integer index of the first included vertex
The integer index of the last included vertex
This does nothing
Advances the enumerator to the next position
Resets this enumerator to the beginning of the range of vertices
Gets the current value.
StartRange, count and vertices will be declared later.
Creates a new instance of Part
An array of all the vertex locations
The point index of the shape.
The ponit index of the part.
The type of features.
This returns a shallow copy, and expects any resetting of the vertex arrays to occur at a
higher level.
Calculates the area and if the area is negative, this is considered a hole.
Boolean, true if this has a negative area and should be thought of as a hole
This creates a new extent and cylces through the coordinates to calculate what it is.
Since the vertices may change so easilly, this is not cached.
Gets a segment range enumerator.
Segment
The start point of the segment
the end point of the segment
Creates a segment from double valued ordinates.
Creates a new instance of Segment
Uses the intersection count to detect if there is an intersection
Calculates the shortest distance to this line segment from the specified MapWinGIS.Point
A MapWinGIS.Point specifing the location to find the distance to the line
A double value that is the shortest distance from the given Point to this line segment
Returns a vertex representing the closest point on this line segment from a given vertex
The point we want to be close to
The point on this segment that is closest to the given point
Returns a vertex representing the closest point on this line segment from a given vertex
The point we want to be close to
If true treat the line as infinitly long
Outputs 0 if the vertex is on the line segment, 1 if beyond P0, 2 if beyong P1 and -1 if P1=P2
The point on this segment or infinite line that is closest to the given point
Casts this to a vector
Determines the shortest distance between two segments
Segment, The line segment to test against this segment
Double, the shortest distance between two segments
Returns 0 if no intersections occur, 1 if an intersection point is found,
and 2 if the segments are colinear and overlap.
Tests to see if the specified segment contains the point within Epsilon tollerance.
Gets or sets the precision for calculating equality, but this is just a re-direction to Vertex.Epsilon
SegmentSet
Creates a new instance of SegmentSet
Gets the feature type
Gets the part
Cycles through the points, creating segments. If the feature type is a polygon, then this will
loop around again at the end of the part to create a segment from the first and last vertex.
Creates a new enumerator given the SegmentRange
Does nothing
Advances the enumerator to the next member
True if a member is found, false if there are no more members
Gets the current segment
The shape caries information about the raw vertices as well as a shapeRange.
It is effectively away to move around a single shape.
Creates a new instance of Shape
Creates a new shape type where the shaperange exists and has a type specified
Creates a shape based on the specified feature. This shape will be standing alone,
all by itself. The fieldnames and field types will be null.
Creates a shape based on the specified geometry. This shape will be standing alone,
all by itself. The attributes will be null.
The geometry to create a shape from.
Creates a point shape from a coordinate
Creates a point shape from a vertex
Creates a clockwise polygon shape from an extent
Creates a clockwise polygon shape from an envelope
Converts this shape into a Geometry using the default factory.
The geometry version of this shape.
Converts this shape into a Geometry.
The geometry version of this shape.
Get the point for this shape if this is a point shape.
Creates a new MultiPoint geometry from a MultiPoint shape
The IGeometryFactory to use to create the new shape.
Gets the line for the specified index
A LineString or MultiLineString geometry created from this shape.
Creates a Polygon or MultiPolygon from this Polygon shape.
The IGeometryFactory to use to create the new IGeometry.
The IPolygon or IMultiPolygon created from this shape.
Test if a point is in a list of coordinates.
TestPoint the point to test for.
PointList the list of points to look through.
true if testPoint is a point in the pointList list.
Copies the field names and types from the parent feature set if they are currently null.
Attempts to copy the members of the feature's datarow. This assumes the features have been
loaded into memory and are available on the feature's DataRow property.
An IFeature to copy the attributes from. If the schema is null, this will try to use the parent featureset schema.
Create a ShapeRange from a Geometry to use in constructing a Shape
offset into vertices array where this feature starts
Create a ShapeRange from a Feature to use in constructing a Shape
offset into vertices array where this feature starts
Create a ShapeRange from a Feature to use in constructing a Shape
Without changing the feature type or anything else, simply update the local coordinates
to include the new coordinates. All the new coordinates will be considered one part.
Since point and multi-point shapes don't have parts, they will just be appended to the
original part.
This creates a duplicate shape, also copying the vertex array to
a new array containing just this shape, as well as duplicating the attribute array.
The FieldNames and FieldTypes are a shallow copy since this shouldn't change.
Gets or sets the minimum M
Gets or sets the maximum M
Gets or sets the minimum Z
Gets or sets the maximum Z
Gives a way to cycle through the vertices of this shape.
The double vertices in X1, Y1, X2, Y2, ..., Xn, Yn order.
The Z values if any
The M values if any, organized in order.
Gets or sets the attributes. Since the most likely use is to copy values from one source to
another, this should be an independant array in each shape and be deep-copied.
ShapefileDataProvider
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
An IProgressHandler for status messages.
An IRaster
This tests the specified file in order to determine what type of vector the file contains.
This returns unspecified if the file format is not supported by this provider.
The string fileName to test
A FeatureType clarifying what sort of features are stored on the data type.
This tests the specified file in order to determine what type of vector the file contains.
This returns unspecified if the file format is not supported by this provider.
The string fileName to test
A FeatureType clarifying what sort of features are stored on the data type.
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
An IProgressHandler for status messages.
An IRaster
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 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, preceded 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, preceded by the name provided on this object.
Gets a preferably 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.
Gets or sets the progress handler
Control the epsilon to use for the intersect calculations
Creates a shallow copy of everything except the parts list and extent, which are deep copies.
Considers the ShapeType and upgrades the extent class to accommodate M and Z.
This is automatically called form the setter of ShapeType.
Creates a blank instance of a shaperange where vertices can be assigned later.
the feature type clarifies point, line, or polygon.
The coordinate type clarifies whether M or Z values exist.
Creates a new "point" shape that has only the one point.
Initializes a new instance of the ShapeRange class.
The envelope to turn into a shape range.
This creates a polygon shape from an extent.
The extent to turn into a polygon shape.
Forces each of the parts to adopt an extent equal to a calculated extents.
The extents for the shape will expand to include those.
Gets the first vertex from the first part.
Tests the intersection with an extents
Tests the intersection using an envelope
Tests the intersection with a coordinate
Tests the intersection with a vertex
Tests the intersection with a shape
This calculations processes the intersections
The shape to do intersection calculations with.
This sets the vertex array by cycling through each part index and updates.
The double array of vertices that should be referenced by the parts.
Given a vertex, this will determine the part that the vertex is within.
gets the integer end index as calculated from the number of points and the start index
The feature type
The content length
If this is null, then there is only one part for this ShapeIndex.
The record number (for .shp files usually 1-based)
The starting index for the entire shape range.
Gets or sets the extent of this shape range. Setting this will prevent
the automatic calculations.
The shape type for the header of this shape
The number of points in the entire shape
If this is set, then it will cache an integer count that is independant from Parts.Count.
If this is not set, (or set to a negative value) then getting this will return Parts.Count
An enumeration listing the various valid shape types supported by Esri Shapefile formats
0 - No shape type specified, or the shapetype is invalid
1 - Each shape is a single point
3 - Each shape is a collection of vertices that should be connected to form a striaght line
5 - Each shape is a closed linestring
8 - Each shape consists of severel, unconnected points
11 - Each shape is a point with a Z value
13 - Each shape is a linestring with each vertex having a z value
15 - Each shape is a closed linestring with each vertex having a z value
18 - Each shape has several unconnected points, each of which has a z value
21 - Each shape has several unconnected points, each of which has an m and z value
23 - Each shape is made up of several points connected to form a line, each vertex having an m and z value
25 - Each shape is a closed linestring with each vertex having a z value and m value
28 - Each shape has several unconnected points, each of which has a z value and m value
31 - Not sure what this does
UnspecifiedFeaturetypeException
Creates a new instance of UnspecifiedFeaturetypeException
A vertex is a two dimensional structure with an X and a Y value. This is deliberately kept as small as possibl.e
The tolerance for testing equality
An X coordinate
The Y coordinate
Creates a new instance of Vertex
Casts this vertex to a coordinate
This class handles some extension methods that also require System.Drawing.
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
This allows the creation of the correct kind of Extent class from an Envelope, which can contain
M or Z values.
The Envelope to convert into an Extent.
Contains various extensions for Rectangle
Calculates the intersection by casting the floating point values to integer values.
This rectangle
The floating point rectangle to calculate against
Tests the location of the point. If the point is outside of the current rectangle, then the bounds
of the rectangle are adjusted to include the new point.
Expands the rectangle by the specified integer distance in all directions.
The rectangle to expand
The distance
NullExceptioncs
Creates a new instance of the NullLogException, but does not set the message
or log the exception.
Creates a new instance of NullException
A list that also includes several events during its existing activities.
List is fussy about inheritance, unfortunately, so this wraps a list
and then makes this class much more inheritable
A Copy list is something that is specifically designed to allow internal items
to be cloned.
Returns a duplicate of this entire list, where each item has been cloned
if it implements ICloneable. Otherwise, the values will be a shallow copy.
This copies any individual members of the list. If the item can be
cloned, then it copies the cloned item. Otherwise it copies the
regular item. This method can be overridden to handle special behavior
in sub-classes.
IChangeEventList
IChangeEvent
Resumes event sending and fires a ListChanged event if any changes have taken place.
This will not track all the individual changes that may have fired in the meantime.
Temporarilly suspends notice events, allowing a large number of changes.
Gets whether or not the list is currently suspended
IChangeItem
Occurs when internal properties or characteristics of this member change.
The member should send itself as the sender of the event.
An instruction has been sent to remove the specified item from its container.
Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T>
collection: The collection whose elements should be added to the end of the
System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain
elements that are null,
if type T is a reference type.
Unable to add while the ReadOnly property is set to
true.
Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T>
collection: The collection whose elements should be added to the end of the
System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null,
if type T is a reference type.
Unable to add while the ReadOnly property is set to true.
Resumes event sending and fires a ListChanged event if any changes have taken place.
This will not track all the individual changes that may have fired in the meantime.
Temporarilly suspends notice events, allowing a large number of changes.
An overriding event handler so that we can signfiy the list has changed
when the inner list has been set to a new list.
Overrides the normal clear situation so that we only update after all the members are cleared.
Occurs during the copy process and overrides the base behavior so that events are suspended.
Occurs when ResumeEvents has been called enough times so that events are re-enabled.
Reverses the order of the elements in the specified range.
The zero-based starting index of the range to reverse.
The number of elements in the range to reverse.
index and count do not denote a valid range of elements in the EventList<T>.
index is less than 0.-or-count is less than 0.
Unable to reverse while the ReadOnly property is set to true.
Reverses the order of the elements in the entire EventList<T>.
Unable to reverse while the ReadOnly property is set to true.
Inserts the elements of a collection into the EventList<T> at the specified index.
The zero-based index at which the new elements should be inserted.
The collection whose elements should be inserted into the EventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type.
index is less than 0.-or-index is greater than EventList<T>.Count.
collection is null.
Unable to insert while the ReadOnly property is set to true.
Removes a range of elements from the EventList<T>.
The zero-based starting index of the range of elements to remove.
The number of elements to remove.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the EventList<T>.
Unable to remove while the ReadOnly property is set to true.
Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element.
The object to locate. The value can be null for reference types.
The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count.
The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
This is a notification that characteristics of one of the members of the list may have changed,
requiring a refresh, but may not involve a change to the the list itself
Occurs when the item is changed. If this list is not suspended, it will forward the change event
on. Otherwise, it will ensure that when resume events is called that the on change method
is fired at that time.
Fires the ListChanged Event
This is either a layer collection or a colorbreak collection, and so
this won't be called by us, but someone might want to override this for their own reasons.
Occurs when wiring events on a new item
Occurs when unwiring events on new items
This event is for when it is necessary to do something if any of the internal
members changes. It will also forward the original item calling the message.
Occurs when this list should be removed from its container
Gets whether or not the list is currently suspended
Carries event arguments for the generic IEventList
Creates a new instance of a ListEventArgs class
The IEnumerable<T> specified during the event"/>
Gets the list item being referenced by this event
The same as a ListEventArgs, but provides an option to cancel the event
Creates a new instance of a ListEventArgs class
the IEnumerable<T> responsible for the event
Gets the list item being referenced by this event
Carries event arguments for the generic IEventList
Creates a new instance of a ListEventArgs class
The IEnumerable<T> specified during the event"/>
The integer index associated with this event
Gets the IEnumerable<T> collection of items involved in this event
Gets the index in the list where the event is associated
The same as a ListEventArgs, but provides an option to cancel the event
Creates a new instance of a ListEventArgs class
the IEnumerable<T> responsible for the event
the Integer index associated with this event
Gets the IEnumerable<T> collection involved in this event
Gets the integer index in the IEventList where this event occured
The same as a ListEventArgs, but provides an option to cancel the event
Creates a new instance of a ListEventArgs class.
the IEnumerable<T> responsible for the event.
The System.Collections.Generic.IComparer<T> being used by this action.
the Integer index associated with this event.
Gets the IEnumerable<T> collection involved in this event
Gets the integer index in the IEventList where this event occured
The System.Collections.Generic.IComparer<T> being used by this action
The same as a ListEventArgs, but provides an option to cancel the event
Creates a new instance of a ListEventArgs class.
the IEnumerable<T> responsible for the event.
The System.Collections.Generic.IComparer<T> being used by this action.
the Integer index associated with this event.
Gets the IEnumerable<T> collection involved in this event
Gets the integer index in the IEventList where this event occured
The System.Collections.Generic.IComparer<T> being used by this action
Carries event arguments for the generic IEventList
Creates a new instance of a ListEventArgs class
The System.Collections.Generic.IComparer<T> being used by this action
Gets the System.Collections.Generic.IComparer<T> being referenced by this event
The same as a ListEventArgs, but provides an option to cancel the event
Creates a new instance of a ListEventArgs class
The System.Collections.Generic.IComparer<T> being used by this action
Gets the comparer being used in this action
Carries event arguments for the generic IEventList
Creates a new instance of a ListEventArgs class
The System.Comparison<T> being used by this action
Gets System.Comparison being referenced by this event
The same as a ListEventArgs, but provides an option to cancel the event
The protected System.Collections.Generic.IComparer<T> being used by this action
Creates a new instance of a ListEventArgs class
The System.Collections.Generic.IComparer<T> being used by this action
Gets the comparer being used in this action
A list that also includes several events during its existing activities.
List is fussy about inheritance, unfortunately, so this wraps a list
and then makes this class much more inheritable
This describes a generic tool to help with keeping track of strong typed lists.
The usual list, however, provides no event handling whatsoever.
This list also provides an event for each of the major actions.
The type of the members in the list.
Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T>
collection: The collection whose elements should be added to the end of the System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type.
Searches the entire sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element.
The object to locate. The value can be null for reference types.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements.-or-null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count.
comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T>generic interface or the System.IComparable interface for type T.
Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element.
The object to locate. The value can be null for reference types.
The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count.
The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Searches a range of elements in the sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element.
The zero-based starting index of the range to search.
The length of the range to search.
The object to locate. The value can be null for reference types.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
Converts the elements in the current DotSpatial.Interfaces.Framework.IEventList<T> to another type, and returns a list containing the converted elements.
The output type to convert to
A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type.
A DotSpatial.Interfaces.Framework.IEventList<T> of the target type containing the converted elements from the current DotSpatial.Interfaces.Framework.IEventList<T>.
converter is null.
Determines whether the DotSpatial.Interfaces.Framework.IEventList<T> contains elements that match the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions of the elements to search for.
true if the DotSpatial.Interfaces.Framework.IEventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false.
match is null.
Performs the specified action on each element of the DotSpatial.Interfaces.Framework.IEventList<T>.
The System.Action<T> delegate to perform on each element of the DotSpatial.Interfaces.Framework.IEventList<T>.
action is null.
Creates a shallow copy of a range of elements in the source DotSpatial.Interfaces.Framework.IEventList<T>.
The zero-based DotSpatial.Interfaces.Framework.IEventList<T> index at which the range starts.
The number of elements in the range.
A shallow copy of a range of elements in the source DotSpatial.Interfaces.Framework.IEventList<T>.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the DotSpatial.Interfaces.Framework.IEventList<T>.
Reverses the order of the elements in the specified range.
The zero-based starting index of the range to reverse.
The number of elements in the range to reverse.
index and count do not denote a valid range of elements in the DotSpatial.Interfaces.Framework.IEventList<T>.
index is less than 0.-or-count is less than 0.
Reverses the order of the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T>.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified System.Comparison<T>.
The System.Comparison<T> to use when comparing elements.
The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself.
comparison is null.
Sorts the elements in a range of elements in DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer.
The zero-based starting index of the range to sort.
The length of the range to sort.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
index and count do not specify a valid range in the DotSpatial.Interfaces.Framework.IEventList<T>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
index is less than 0.-or-count is less than 0.
comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the default comparer.
The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<T> to a new array.
An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<T>.
Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<T>, if that number is less than a threshold value.
Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions to check against the elements.
true if every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true.
match is null.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that starts at the specified index and contains the specified number of elements.
The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types.
The zero-based starting index of the search.
The number of elements in the section to search.
The zero-based index of the first occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that starts at index and contains count number of elements, if found; otherwise, –1.
index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the specified index to the last element.
The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types.
The zero-based starting index of the search.
The zero-based index of the first occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from index to the last element, if found; otherwise, –1.
index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.
Inserts the elements of a collection into the DotSpatial.Interfaces.Framework.IEventList<T> at the specified index.
The zero-based index at which the new elements should be inserted.
The collection whose elements should be inserted into the DotSpatial.Interfaces.Framework.IEventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type.
index is less than 0.-or-index is greater than DotSpatial.Interfaces.Framework.IEventList<T>.Count.
collection is null.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that contains the specified number of elements and ends at the specified index.
The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The zero-based index of the last occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that contains count number of elements and ends at index, if found; otherwise, –1.
index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the first element to the specified index.
The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types.
The zero-based starting index of the backward search.
The zero-based index of the last occurrence of item within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the first element to index, if found; otherwise, –1.
index is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.
Searches for the specified object and returns the zero-based index of the last occurrence within the entire DotSpatial.Interfaces.Framework.IEventList<T>.
The object to locate in the DotSpatial.Interfaces.Framework.IEventList<T>. The value can be null for reference types.
The zero-based index of the last occurrence of item within the entire the DotSpatial.Interfaces.Framework.IEventList<T>, if found; otherwise, –1.
Removes the all the elements that match the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions of the elements to remove.
The number of elements removed from the DotSpatial.Interfaces.Framework.IEventList<T>
match is null.
Removes a range of elements from the DotSpatial.Interfaces.Framework.IEventList<T>.
The zero-based starting index of the range of elements to remove.
The number of elements to remove.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the DotSpatial.Interfaces.Framework.IEventList<T>.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that starts at the specified index and contains the specified number of elements.
The zero-based starting index of the search.
The number of elements in the section to search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1
startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>.
match is null
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the specified index to the last element.
The zero-based starting index of the search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire DotSpatial.Interfaces.Framework.IEventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire DotSpatial.Interfaces.Framework.IEventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T.
match is null."
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that contains the specified number of elements and ends at the specified index.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the DotSpatial.Interfaces.Framework.IEventList<T>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the DotSpatial.Interfaces.Framework.IEventList<T> that extends from the first element to the specified index.
The zero-based starting index of the backward search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
: startIndex is outside the range of valid indexes for the DotSpatial.Interfaces.Framework.IEventList<T>.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire DotSpatial.Interfaces.Framework.IEventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
Copies a range of elements from the DotSpatial.Interfaces.Framework.IEventList<T> to a compatible one-dimensional array, starting at the specified index of the target array.
The zero-based index in the source DotSpatial.Interfaces.Framework.IEventList<T> at which copying begins
The one-dimensional System.Array that is the destination of the elements copied from DotSpatial.Interfaces.Framework.IEventList<T>. The System.Array must have zero-based indexing.
The zero-based index in array at which copying begins.
The number of elements to copy.
array is null.
index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0.
index is equal to or greater than the DotSpatial.Interfaces.Framework.IEventList<T>.Count of the source DotSpatial.Interfaces.Framework.IEventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source DotSpatial.Interfaces.Framework.IEventList<T> is greater than the available space from arrayIndex to the end of the destination array.
Copies the entire DotSpatial.Interfaces.Framework.IEventList<T> to a compatible one-dimensional array, starting at the beginning of the target array.
The one-dimensional System.Array that is the destination of the elements copied from DotSpatial.Interfaces.Framework.IEventList<T>. The System.Array must have zero-based indexing.
The number of elements in the source DotSpatial.Interfaces.Framework.IEventList<T> is greater than the number of elements that the destination array can contain.
array is null.
Gets or sets the total number of elements the internal data structure can hold without resizing.
The number of elements that the DotSpatial.Interfaces.Framework.IEventList<T> can contain before resizing is required.
DotSpatial.Interfaces.Framework.IEventList<T>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<T>.Count.
Occurs before an item is added to the List.
There is no index yet specified because it will be added to the
end of the list.
Occurs before a range of items is added to the list.
There is no index yet, but this event can be cancelled.
Occurs after an item has already been added to the list.
The index where the item was added is specified.
Occurs after a range has already been added to the list.
This reveals the index where the beginning of the range
was added, but cannot be canceled.
Occurs before an item is inserted. The index of the requested
insertion as well as the item being inserted and an option to
cancel the event are specified
Occurs before a range is inserted. The index of the requested
insertion location as well as the item being inserted and an option to
cancel the event are provided in the event arguments
Occurs after an item is inserted.
Shows the true index of the item after it was actually added.
Occurs after an item is inserted.
Shows the true index of the item after it was actually added.
Occurs before an item is removed from the List.
Specifies the item, the current index and an option to cancel.
Occurs before a range is removed from the List.
Specifies the range, the current index and an option to cancel.
Occurs after an item is removed from the List.
Gives a handle to the item that was removed, but it no longer
has a meaningful index value or an option to cancel.
Occurs after an item is removed from the List.
Gives a handle to the range that was removed, but it no longer
has a meaningful index value or an option to cancel.
Occurs before all the elements that match a predicate are removed.
Supplies an IEnumerable list in the event args of all the items
that will match the expression. This action can be cancelled.
Occurs after all the elements that matched a predicate were
removed. The values are the items that were successfully removed.
The action has already happened, and so cannot be cancelled here.
Occurs before the list is cleared and can cancel the event.
Occurs after the list is cleared and this cannot be canceled.
Occurs after a method that sorts or reorganizes the list
Occurs before a specific range is reversed
Occurs after a specific range is reversed
Occurs before the entire list is reversed
Occurs after the entire list is reversed
Occurs just after the list or any sub portion
of the list is sorted. This event occurs in
addition to the specific reversal case.
Occurs just before the list or any sub portion
of the list is sorted. This event occurs in
addition to the specific reversal case.
Occurs just before any of the specific sorting methodsin addition
to the event associated with the specific method.
Occurs after any of the specific sorting methods in addition
to the event associated with the specific method.
Occurs just before the entire list is sorted
Occurs after the entire list has been sorted
Occurs just before the Sort method that uses a System.Comparison<T>
This event can cancel the action.
Occurs just after the Sort method that uses a System.Comparison<T>
Occurs just before the Sort method that only sorts a specified range.
This event can cancel the action.
Occurs just after the Sort method that only sorts a specified range.
Decides whether or not this list can be changed. This characteristic
can be set, so that once it becomes readonly, methods that would normally
change the sequence or number of members will be prevented and throw an
Application error.
The internal list of items
Initializes a new instance of the EventList<T> class that is empty and has the default initial capacity.
Initializes a new instance of the EventList<T> class that is empty and has the specified initial capacity.
The number of elements that the new list can initially store.
capacity is less than 0.
Initializes a new instance of the EventList<T> class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied.
The collection whose elements are copied to the new list.
collection is null.
Adds an object to the end of the System.Collections.Generic.List<T>.
The object to be added to the end of the System.Collections.Generic.List<T>.
The value can be null for reference types.
Unable to add while the ReadOnly property is set to true.
Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T>
collection: The collection whose elements should be added to the end of the
System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null,
if type T is a reference type.
Unable to add while the ReadOnly property is set to true.
Searches the entire sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element.
The object to locate. The value can be null for reference types.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements.-or-null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count.
comparer is null, and the default comparer
System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T>generic
interface or the System.IComparable interface for type T.
Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element.
The object to locate. The value can be null for reference types.
The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count.
The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Searches a range of elements in the sorted System.Collections.Generic.List<T> for an element using the specified comparer and returns the zero-based index of the element.
The zero-based starting index of the range to search.
The length of the range to search.
The object to locate. The value can be null for reference types.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
Removes all elements from the EventList<T>.
Unable to clear while the ReadOnly property is set to true.
Determines whether an element is in the System.Collections.Generic.List<T>.
The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types.
true if item is found in the System.Collections.Generic.List<T> otherwise, false.
Determines whether the EventList<T> contains elements that match the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions of the elements to search for.
true if the EventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false.
match is null.
Performs the specified action on each element of the EventList<T>.
The System.Action<T> delegate to perform on each element of the EventList<T>.
action is null.
Returns an enumerator that iterates through this list
Creates a shallow copy of a range of elements in the source EventList<T>.
The zero-based EventList<T> index at which the range starts.
The number of elements in the range.
A shallow copy of a range of elements in the source EventList<T>.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the EventList<T>.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that starts at the specified index and contains the specified number of elements.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the search.
The number of elements in the section to search.
The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that starts at index and contains count number of elements, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that extends from the specified index to the last element.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the search.
The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that extends from index to the last element, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.
Searches for the specified object and returns the zero-based index of the first occurrence within the entire System.Collections.Generic.List<T>.
The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types.
The zero-based index of the first occurrence of item within the entire System.Collections.Generic.List<T>, if found; otherwise, –1.
Inserts the elements of a collection into the EventList<T> at the specified index.
The zero-based index at which the new elements should be inserted.
The collection whose elements should be inserted into the EventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type.
index is less than 0.-or-index is greater than EventList<T>.Count.
collection is null.
Unable to insert while the ReadOnly property is set to true.
Inserts an element into the System.Collections.Generic.List<T> at the specified index.
The zero-based index at which item should be inserted.
The object to insert. The value can be null for reference types.
index is less than 0.-or-index is greater than System.Collections.Generic.List<T>.Count.
Unable to insert while the ReadOnly property is set to true.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that contains the specified number of elements and ends at the specified index.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that contains count number of elements and ends at index, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that extends from the first element to the specified index.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the backward search.
The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that extends from the first element to index, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.
Searches for the specified object and returns the zero-based index of the last occurrence within the entire EventList<T>.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based index of the last occurrence of item within the entire the EventList<T>, if found; otherwise, –1.
Removes the first occurrence of a specific object from the System.Collections.Generic.List<T>.
The object to remove from the System.Collections.Generic.List<T>. The value can be null for reference types.
true if item is successfully removed; otherwise, false. This method also returns false if item was not
found in the System.Collections.Generic.List<T>.
Unable to remove while the ReadOnly property is set to true.
Removes the all the elements that match the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions of the elements to remove.
The number of elements removed from the EventList<T>
match is null.
Unable to remove while the ReadOnly property is set to true.
Removes the element at the specified index of the System.Collections.Generic.List<T>.
The zero-based index of the element to remove.
Unable to remove while the ReadOnly property is set to true.
Removes a range of elements from the EventList<T>.
The zero-based starting index of the range of elements to remove.
The number of elements to remove.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the EventList<T>.
Unable to remove while the ReadOnly property is set to true.
Reverses the order of the elements in the specified range.
The zero-based starting index of the range to reverse.
The number of elements in the range to reverse.
index and count do not denote a valid range of elements in the EventList<T>.
index is less than 0.-or-count is less than 0.
Unable to reverse while the ReadOnly property is set to true.
Reverses the order of the elements in the entire EventList<T>.
Unable to reverse while the ReadOnly property is set to true.
Sorts the elements in the entire EventList<T> using the specified System.Comparison<T>.
The System.Comparison<T> to use when comparing elements.
The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself.
comparison is null.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in a range of elements in EventList<T> using the specified comparer.
The zero-based starting index of the range to sort.
The length of the range to sort.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
index and count do not specify a valid range in the EventList<T>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
index is less than 0.-or-count is less than 0.
comparer is null, and the default comparer
System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T>
generic interface or the System.IComparable interface for type T.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the default comparer.
The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Unable to sort while the ReadOnly property is set to true.
Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<T> to a new array.
An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<T>.
Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<T>, if that number is less than a threshold value.
Unable to trim while the ReadOnly property is set to true.
Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions to check against the elements.
true if every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that starts at the specified index and contains the specified number of elements.
The zero-based starting index of the search.
The number of elements in the section to search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1
startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>.
match is null
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that extends from the specified index to the last element.
The zero-based starting index of the search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
startIndex is outside the range of valid indexes for the EventList<T>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire EventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire EventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T.
match is null."
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that contains the specified number of elements and ends at the specified index.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that extends from the first element to the specified index.
The zero-based starting index of the backward search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
: startIndex is outside the range of valid indexes for the EventList<T>.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire EventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
Copies a range of elements from the EventList<T> to a compatible one-dimensional array, starting at the specified index of the target array.
The zero-based index in the source EventList<T> at which copying begins
The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing.
The zero-based index in array at which copying begins.
The number of elements to copy.
array is null.
index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0.
index is equal to or greater than the EventList<T>.Count of the source EventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source EventList<T> is greater than the available space from arrayIndex to the end of the destination array.
Copies the entire System.Collections.Generic.List<T> to a compatible one-dimensional array, starting at the specified index of the target array.
The one-dimensional System.Array that is the destination of the elements copied from System.Collections.Generic.List<T>. The System.Array must have zero-based indexing.
The zero-based index in array at which copying begins.
System.ArgumentException: arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source System.Collections.Generic.List<T> is greater than the available space from arrayIndex to the end of the destination array.
arrayIndex is less than 0
array is null
Copies the entire EventList<T> to a compatible one-dimensional array, starting at the beginning of the target array.
The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing.
The number of elements in the source EventList<T> is greater than the number of elements that the destination array can contain.
array is null.
Converts the elements in the current EventList<T> to another type, and returns a list containing the converted elements.
The output type to convert to
A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type.
A EventList<T> of the target type containing the converted elements from the current EventList<T>.
converter is null.
Fires the AfterItemAdded Event
Fires the AfterRangeAdded method
Fires the BeforeItemAdded Event
Fires the BeforeRangeAdded Event
Fires the AfterListCleared event
Fires the BeforeListCleared event
Fires the AfterItemInserted event
Fires the AfterRangeInserted event
Fires the BeforeItemInserted event
Fires the BeforeRangeInserted event
Fires the ListChanged Event
fires the AfterReversed event
Fires the BeforeReversed event
Fires the BeforeRangeReversed event
Fires the AfterRangeReversed event
Fires the BeforeLiestReversed event
fires the AfterListReversed Event
Fires the BeforeItemRemoved event
Fires the BeforeRangeRemoved event
Fires the BeforeAllMatchingRemoved event
Fires the AfterAllMatchingRemoved event
Fires the AfterItemRemoved event
Fires the AfterRangeRemoved Event
Fires the BeforeSort event
Fires the AfterSort event
Fires the BeforeListSorted event
Fires the AfterListSorted event
Fires the BeforeSortByComparison
Fires the AfterSortByComparison event
Fires the BeforeRangeSorted event
Fires the AfterRangeSorted event
Converts between one output an another
Gets an Enumerator
Gets or sets the total number of elements the internal data structure can hold without resizing.
The number of elements that the DotSpatial.Interfaces.Framework.IEventList<T> can contain before resizing is required.
DotSpatial.Interfaces.Framework.IEventList<T>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<T>.Count.
The default, indexed value of type T
The numeric index
An object of type T corresponding to the index value specified
Integer, the total number of items currently stored in the list
Gets a boolean property indicating whether this list can be written to.
Occurs after an item has already been added to the list.
The index where the item was added is specified.
Occurs after a range has already been added to the list.
This reveals the index where the beginning of the range
was added, but cannot be canceled.
Occurs before an item is added to the List.
There is no index yet specified because it will be added to the
end of the list.
Occurs before a range of items is added to the list.
There is no index yet, but this event can be cancelled.
Occurs after the the list is cleared.
Occurs before the list is cleared and can cancel the event.
Occurs after an item is inserted.
Shows the true index of the item after it was actually added.
Occurs after an item is inserted.
Shows the true index of the item after it was actually added.
Occurs before an item is inserted. The index of the requested
insertion as well as the item being inserted and an option to
cancel the event are specified
Occurs before a range is inserted. The index of the requested
insertion location as well as the item being inserted and an option to
cancel the event are provided in the event arguments
Occurs after a method that sorts or reorganizes the list
Occurs just after the list or any sub portion
of the list is sorted. This event occurs in
addition to the specific reversal case.
Occurs just before the list or any sub portion
of the list is sorted. This event occurs in
addition to the specific reversal case.
Occurs before a specific range is reversed
Occurs after a specific range is reversed
Occurs before the entire list is reversed
Occurs after the entire list is reversed
Occurs before an item is removed from the List.
Specifies the item, the current index and an option to cancel.
Occurs before a range is removed from the List.
Specifies the range, the current index and an option to cancel.
Occurs before all the elements that match a predicate are removed.
Supplies an IEnumerable list in the event args of all the items
that will match the expression. This action can be cancelled.
Occurs after all the elements that matched a predicate were
removed. The values are the items that were successfully removed.
The action has already happened, and so cannot be cancelled here.
Occurs after an item is removed from the List.
Gives a handle to the item that was removed, but it no longer
has a meaningful index value or an option to cancel.
Occurs after an item is removed from the List.
Gives a handle to the range that was removed, but it no longer
has a meaningful index value or an option to cancel.
Occurs just before any of the specific sorting methodsin addition
to the event associated with the specific method.
Occurs after any of the specific sorting methods in addition
to the event associated with the specific method.
Occurs just before the entire list is sorted
Occurs after the entire list has been sorted
Occurs just before the Sort method that uses a System.Comparison<T>
This event can cancel the action.
Occurs just after the Sort method that uses a System.Comparison<T>
Occurs just before the Sort method that only sorts a specified range.
This event can cancel the action.
Occurs just after the Sort method that only sorts a specified range.
Global has some basic methods that may be useful in lots of places.
TODO: This class needs to be removed and these methods relocated to easier to find places.
Converts a double numeric value into the appropriate T data type using a ChangeType process.
The numeric output type created from the double value.
The double value to retrieve the equivalent numeric value for.
A variable of type T with the value of the value parameter.
This involves boxing and unboxing as well as a convert to double, but IConvertible was
not CLS Compliant, so we were always getting warnings about it. Ted was trying to make
all the code CLS Compliant to remove warnings.
For numeric types, this will return the maximum value.
The type of the numeric range to find the maximum for.
The maximum value for the numeric type specified by T.
For Numeric types, this will return the minimum value.
The type of the numeric range to return the minimum for.
The the minimum value possible for a numeric value of type T.
A Generic Safe Casting method that should simply exist as part of the core framework
The type of the member to attempt to cast to.
The original object to attempt to System.Convert.
An output variable of type T.
Uses the standard enum parsing, but returns it cast as the specified T parameter
The type of the enum to use
The string to parse into a copy of the enumeration
an enumeration of the specified type
This attempts to convert a value into a byte. If it fails, the byte will be 0.
The expression (like a string) to System.Convert.
A byte that is 0 if the test fails.
This attempts to convert a value into a double. If it fails, the double will be double.NaN.
The expression (like a string) to System.Convert.
A double that is double.NAN if the test fails.
This attempts to convert a value into a float. If it fails, the float will be 0.
The expression (like a string) to System.Convert.
A float that is 0 if the test fails.
This attempts to convert a value into an integer. If it fails, it returns 0.
The expression to test
true if the value could be cast as a double, false otherwise
This attempts to convert a value into a short. If it fails, it returns 0.
The expression (like a string) to System.Convert.
A short that is 0 if the test fails.
Gets the string form of the number using culture settings
The expression to obtain the string for
A string
Tests an expression to see if it can be converted into a byte.
The expression to test
true if the value could be cast as a double, false otherwise
Tests an expression to see if it can be converted into a double.
The expression to test
true if the value could be cast as a double, false otherwise
Tests an expression to see if it can be converted into a float.
The expression to test
true if the value could be cast as a double, false otherwise
Tests an expression to see if it can be converted into an integer.
The expression to test
true if the value could be cast as an integer, false otherwise
Tests an expression to see if it can be converted into a short.
The expression to test
true if the value could be cast as a double, false otherwise
a IProgressHandler that carries a boolean property allowing the process using the handler to know if you should cancelled
An interface for sending progress messages. Percent is an integer from 0 to 100.
Progress is the method that should receive a progress message.
The message string without any information about the status of completion.
An integer from 0 to 100 that indicates the condition for a status bar etc.
A string containing both information on what the process is, as well as its completion status.
Returns true if the progress handler has been notified that the running process should be cancelled
Represents a nongeneric collection of key/value pairs.
Determines whether the IEventDictionary<TKey, TValue> contains a specific value.
The value to locate in the IEventDictionary<TKey, TValue>. The value can be null for reference types.
true if the IEventDictionary<TKey, TValue> contains an element with the specified value; otherwise, false.
Two separate forms of count exist and are ambiguous so this provides a single new count
Gets or sets the specific KeyValuePair for the specified index
The integer index representing the order in the list
A KeyValuePair that is currently stored at the specified index
Occurs before an item is added to the List.
There is no index yet specified because it will be added to the
end of the list.
Occurs before a range of items is added to the list.
There is no index yet, but this event can be cancelled.
Occurs after an item has already been added to the list.
The index where the item was added is specified.
Occurs after a range has already been added to the list.
This reveals the index where the beginning of the range
was added, but cannot be canceled.
Occurs before a clear action, allowing the event to be canceled.
Occurs after a clear action, allowing the event to be cancled
Occurs after a method that changes either the order or the members of this EventDictionary
Occurs before an item is inserted. The index of the requested
insertion as well as the item being inserted and an option to
cancel the event are specified
Occurs before a range is inserted. The index of the requested
insertion location as well as the item being inserted and an option to
cancel the event are provided in the event arguments
Occurs after an item is inserted.
Shows the true index of the item after it was actually added.
Occurs after an item is inserted.
Shows the true index of the item after it was actually added.
Occurs before an item is removed from the List.
Specifies the item, the current index and an option to cancel.
Occurs before a range is removed from the List.
Specifies the range, the current index and an option to cancel.
Occurs after an item is removed from the List.
Gives a handle to the item that was removed, but it no longer
has a meaningful index value or an option to cancel.
Occurs after an item is removed from the List.
Gives a handle to the range that was removed, but it no longer
has a meaningful index value or an option to cancel.
Occurs before all the elements that match a predicate are removed.
Supplies an IEnumerable list in the event args of all the items
that will match the expression. This action can be cancelled.
Occurs after all the elements that matched a predicate were
removed. The values are the items that were successfully removed.
The action has already happened, and so cannot be cancelled here.
Occurs before an item is set. This event can cancel the set opperation.
Occurs after an item is successfully set
IListEM
This extension method helps by simply increasing the index value of the specified item
by one.
The generic type of this list
This list
The item to increase the index of
Decreases the index of the specified item by one.
The type of the list
This list
the item of type T to decrease the index of.
INamedList
Re-orders the list so that the index of the specifeid item is lower,
and threfore will be drawn earlier, and therefore should appear
in a lower position on the list.
The name of the item to demote
Gets the item with the specified name as an object.
This enables the INamedList to work with items even
if it doesn't know the strong type.
The string name of the item to retrieve
The actual item cast as an object.
Gets the name of the specified item, even if the strong type of the
item is not known.
The item to get the name of cast as an object
The string name of the specified object.
Gets the list of names for the items currently stored in the list,
in the sequence defined by the list of items.
Re-orders the list so that the index of the specified item is higher,
and therefore will be drawn later, and therefore should appear
in a higher position on the list.
Updates the names to match the current set of actual items.
Removes the item with the specified name from the list.
The string name of the item to remove
Gets or sets the base name to use for naming items
Gets the count of the items in the list.
Carries event arguments for the generic IEventList
Creates a new instance of a ListEventArgs class
an object that is being interacted with in the list
Gets the list item being referenced by this event
The same as a ListEventArgs, but provides an option to cancel the event
The protected object internal to this list event args class
Creates a new instance of a ListEventArgs class
an object that is being interacted with in the list
Gets the list item being referenced by this event
Carries event arguments for the generic IEventList
Creates a new instance of a ListEventArgs class
The key of type <TKey> being referenced
an object of type <TValue> that is being referenced
Gets the key of the item being referenced by this event
Gets the actual item being referenced by this event
Contains properties for both a specified item and an integer index
as well as the option to cancel.
Creates a new instance of a ListEventArgs class
The key that provides direct access to the value member being interacted with
an object that is being interacted with in the list
Gets the key for the member referenced by this event
Gets the specific item being accessed
Carries event arguments for the generic IEventList
The protected object internal to this list event args class
Creates a new instance of a ListEventArgs class
an object that is being interacted with in the list
Creates a new instance of a ListEventArgs class
The list item that the event belongs to
The list index, if any, that is specified.
Gets the list item being referenced by this event
Gets the index for the ListItem
Contains properties for both a specified item and an integer index
as well as the option to cancel.
Creates a new instance of a ListEventArgs class
an object that is being interacted with in the list
Creates a new instance of a ListEventArgs class
The list item that the event belongs to
The list index, if any, that is specified.
Gets the list item being referenced by this event
Gets the index for the ListItem
This has the indexing and ordering capabilities, but without all the events of an EventDictionary
Determines whether the IEventDictionary<TKey, TValue> contains a specific value.
The value to locate in the IEventDictionary<TKey, TValue>. The value can be null for reference types.
true if the IEventDictionary<TKey, TValue> contains an element with the specified value; otherwise, false.
Obtains a value in the dictionary based on a key. This happens without consulting the
index at all.
The Tkey key to search for.
The TValue to obtain a value for.
Sets the value associated with a key that is already in the dictionary.
The key currently found in the index
the value to be changed
Gets a pair based on the index value
Sets a pair based on the index value
Two separate forms of count exist and are ambiguous so this provides a single new count
For ordered dictionaries, the default accessor returns the Key Value Pair associated with the
index.
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
IReadOnlyList
Tests to see if the specified item is contained in the list. This returns true if the item is contained in the list.
The item to test for.
Boolean, true if the item is found in the list
Copies the specified memebers into the array, starting at the specified index.
The array to copy values to.
The array index where the 0 member of this list should be copied to.
Obtains the index of the specified item
The item to find the index of
An integer representing the index of the specified item
Gets the integer count of items in this list.
Return true because this is a read-only list.
Gets the item at the specified index. Ideally, this ReadOnlyList is used with
value types, or else this gives the user considerable power over the core content.
The item to obtain from this list
The item at the specified index.
An all purpose item
A set of PaintEventArgs that can be used before a drawing function in order to cancel an event.
Creates a new instance of the MessageCancel Event Arguments
A string message to convey with this event.
Returns a boolean specifying whether the action that caused this event should be canceled.
The message allowing someone to decide whether or not the process should be cancelled. For instance,
when writing a new file, a message might show "The file C:\bob.txt already exists, overwrite it?"
A named list preserves a 1:1 mapping between names and items. It can be used to
reference information in either direction. It essentially provides a string
handle for working with generic typed ILists. This cannot instantiate new
items. (Creating a default T would not work, for instance, for an interface).
Creates a new instance of NamedList
Creates a new instance of a named list.
The values to use for the content.
Creates a new instance of a named list.
The values to use for the content.
The string that should preceed the numbering to describe the individual items.
Re-orders the list so that the index of the specifeid item is lower,
and threfore will be drawn earlier, and therefore should appear
in a lower position on the list.
Gets the name of the item corresponding
The item cast as an object.
The string name of the specified object, or null if the cast fails.
Gets the item with the specified name as an object.
This enables the INamedList to work with items even
if it doesn't know the strong type.
The string name of the item to retrieve
The actual item cast as an object.
Gets the list of names for the items currently stored in the list,
in the sequence defined by the list of items.
Re-orders the list so that the index of the specified item is higher,
and therefore will be drawn later, and therefore should appear
in a higher position on the list.
Updates the names to match the current set of actual items.
Removes the item with the specified name from the list.
The string name of the item to remove
Re-orders the list so that this item appears closer to the 0 index.
Gets the string name for the specified item
The item of type T to find the name for
The string name corresponding to the specified item.
Re-orders the list so that the index of the specified item is higher,
and therefore will be drawn later, and therefore should appear
in a higher position on the list.
Removes the specified item
The item to remove.
Gets or sets the item corresponding to the specified name. Setting this
will re-use the same name and position in the list, but set a new object.
The string name of the item to obtain
The item of type T corresponding to the specified name
Gets the list of actual items. This is basically a reference copy of
the actual collection of items to be contained in this named list.
Gets or sets the base name to use for naming items
Gets the count of the items in the list.
NonNumericException
Creates a new instance of NonNumericException
The string name of the variable, or value that cannot be parsed as a number.
NumberFormat
Creates a value from an object
A numeric value that is, or can be parsed to a numeric value.
Not Numeric
Creates a number to fit the specified double value.
A double
Creates a number to fit the specified int value
An integer
Creates a number to fit the specified float value
The value to work with
Creates a number from a short
A short
Compares this with the specified value. Returns 1 if the other
item is greater than this value, 0 if they are equal and -1 if
the other value is less than this value.
The value to be tested.
An integer: 1 if the other
item is greater than this value, 0 if they are equal and -1 if
the other value is less than this value.
Compares this with the specified value. Returns 1 if the other
item is greater than this value, 0 if they are equal and -1 if
the other value is less than this value.
The value to be tested.
An integer: 1 if the other
item is greater than this value, 0 if they are equal and -1 if
the other value is less than this value.
Compares this with the specified value. Returns 1 if the other
item is greater than this value, 0 if they are equal and -1 if
the other value is less than this value.
The value to be tested.
An integer: 1 if the other
item is greater than this value, 0 if they are equal and -1 if
the other value is less than this value.
Returns this Number as a string.
The string created using the specified number format and precision.
Returns this Number as a string.
An IFormatProvider that provides culture specific formatting information.
A string with the formatted number.
Returns this Number as a string.
A string that controls how this value should be formatted.
A string with the formatted number.
Returns this Number as a string.
A string that controls how this value should be formatted.
An IFormatProvider that provides culture specific formatting information.
A string with the formatted number.
Gets this number as an int 32
An integer
Gets this number as a short, or a short.MaxValue/short.MinValue
A short
Gets this number as a float
A float
Gets the alphabetical letter code for ToString(-Code-)
A NumberFormats enumeration giving the various formatting options
Tests to see if a value has been assigned to this Number
Gets or sets the number of digits that folow the decimal
when converting this value to string notation.
Gets the precision (determined by the data type) which
effectively describes how many significant figures there are.
Gets this number as a double
a double
NumberFormats
Currency - C
Scientific Notation Exponential - E
Fixed point - F
The number is converted to a string of the form "-ddd.ddd…" where each 'd'
indicates a digit (0-9). The string starts with a minus sign if the number
is negative.
Shortest text - G
Number - N, The number is converted to a string of the form "-d, ddd, ddd.ddd…",
where '-' indicates a negative number symbol if required, 'd' indicates a digit
(0-9), ',' indicates a thousand separator between number groups, and '.' indicates
a decimal point symbol
Percent, value is multiplied by 100 and shown with a % symbol (cultural specific)
No format specified.
In cases where we want to allow some basic cycling or checking of values, but we don't want the user to change
the values directly, we can wrap the values in this read-only list, which restricts what the user can do.
Creates a new instance of ReadOnlyList
Tests to see if the specified item is contained in the list. This returns true if the item is contained in the list.
The item to test for.
Boolean, true if the item is found in the list
Copies the specified memebers into the array, starting at the specified index.
The array to copy values to.
The array index where the 0 member of this list should be copied to.
Obtains an enumerator for cycling through the values in this list.
An enumerator for the items in this list.
Obtains the index of the specified item
The item to find the index of
An integer representing the index of the specified item
Gets the integer count of items in this list.
Return true because this is a read-only list.
Gets the item at the specified index. Ideally, this ReadOnlyList is used with
value types, or else this gives the user considerable power over the core content.
The item to obtain from this list
The item at the specified index.
SubclassList is brilliant if I do say so myself. Let's say you have a list of IPointCategory, which is a subclass of IFeatureCategory.
You can't have a strong typed List that is both without creating a special class that can deal with the specific implementations of
each. So I was writing all of the stupid type specific collection classes, when in reality, I just needed a class like this
that could handle the business logic. Then specific instances can just inherit from this class, but specify the two types.
The base type that is inherited
The sub type that inherits from the base type
Allows adding of the sub type
Adds the entire range of enumerable elements.
The items to add
Tests to see if the list contains the specified item.
The item to check the list for.
Boolean, true if the item is contained in the list.
Copies each of the members to the specified array.
The array to copy items to.
The zero based integer index in the destination array where the first item should be saved.
Gets an enumerator of type TSub for cycling through the list.
Gets the zero based integer index of the specified item of type TSub
The item to obtain the index of
The zero based integer index of the specified item
inserts the specified item into the specified index
The zero based integer index where insertion can take place
The item to insert of type TSub
Removes the specified item from the list.
The item to remove
Boolean, true if the item was found in the list and removed
Gets or sets the specific item in the list
I can't simply return the enumerator of the internal list because it would be the wrong type.
Furthermore, I need to know both types so that I can cast them appropriately.
The base type that is inherited
The sub type that inherits from the base type
Creates a new instance of the enumerator of the sub-type given an enumerator
of the base type.
The internal enumerator.
Disposes any unmanaged memory objects
Advances the enumerator to the next position
Boolean, false at the end of the list.
Resets the enumerator to the beginning of the list
Gets the current member returned as type TSub.
A list that keeps track of a "parent" body that is also of type T.
Whenever a member is added to the list, it sets the parent property.
Initializes a new instance of list with no parent
Instantiates a new instance of a TreeList of type T, where the specified parent
will be used as the parent for each of the items of type T in the list.
The ParentItem of the specified item
Adds the item to the list, setting the parent to be the list's parent
Adds the elements of the specified collection to the end of the System.Collections.Generic.List<T>
collection: The collection whose elements should be added to the end of the
System.Collections.Generic.List<T>. The collection itself cannot be null, but it can contain elements that are null,
if type T is a reference type.
Unable to add while the ReadOnly property is set to true.
Searches the entire sorted System.Collections.Generic.List<T> for an element using the default comparer and returns the zero-based index of the element.
The object to locate. The value can be null for reference types.
The zero-based index of item in the sorted System.Collections.Generic.List<T>, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of System.Collections.Generic.List<T>.Count.
The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Removes all elements from the EventList<T>.
Unable to clear while the ReadOnly property is set to true.
Determines whether an element is in the System.Collections.Generic.List<T>.
The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types.
true if item is found in the System.Collections.Generic.List<T>; otherwise, false.
Returns an enumerator that iterates through this list
Copies the entire System.Collections.Generic.List<T> to a compatible one-dimensional array, starting at the specified index of the target array.
The one-dimensional System.Array that is the destination of the elements copied from System.Collections.Generic.List<T>. The System.Array must have zero-based indexing.
The zero-based index in array at which copying begins.
System.ArgumentException: arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source System.Collections.Generic.List<T> is greater than the available space from arrayIndex to the end of the destination array.
arrayIndex is less than 0
array is null
Copies a range of elements from the EventList<T> to a compatible one-dimensional array, starting at the specified index of the target array.
The zero-based index in the source EventList<T> at which copying begins
The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing.
The zero-based index in array at which copying begins.
The number of elements to copy.
array is null.
index is less than 0.-or-arrayIndex is less than 0.-or-count is less than 0.
index is equal to or greater than the EventList<T>.Count of the source EventList<T>.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements from index to the end of the source EventList<T> is greater than the available space from arrayIndex to the end of the destination array.
Copies the entire EventList<T> to a compatible one-dimensional array, starting at the beginning of the target array.
The one-dimensional System.Array that is the destination of the elements copied from EventList<T>. The System.Array must have zero-based indexing.
The number of elements in the source EventList<T> is greater than the number of elements that the destination array can contain.
array is null.
Converts the elements in the current EventList<T> to another type, and returns a list containing the converted elements.
The output type to convert to
A System.Converter<TInput, TOutput> delegate that converts each element from one type to another type.
A List<T> of the target type containing the converted elements from the current EventList<T>.
converter is null.
Determines whether the EventList<T> contains elements that match the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions of the elements to search for.
true if the EventList<T> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false.
match is null.
Creates a shallow copy of a range of elements in the source EventList<T>.
The zero-based EventList<T> index at which the range starts.
The number of elements in the range.
A shallow copy of a range of elements in the source EventList<T>.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the EventList<T>.
Copies the elements of the DotSpatial.Interfaces.Framework.IEventList<T> to a new array.
An array containing copies of the elements of the DotSpatial.Interfaces.Framework.IEventList<T>.
Sets the capacity to the actual number of elements in the DotSpatial.Interfaces.Framework.IEventList<T>, if that number is less than a threshold value.
Determines whether every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions to check against the elements.
true if every element in the DotSpatial.Interfaces.Framework.IEventList<T> matches the conditions defined by the specified predicate; otherwise, false. If the list has no elements, the return value is true.
match is null.
Searches for the specified object and returns the zero-based index of the first occurrence within the entire System.Collections.Generic.List<T>.
The object to locate in the System.Collections.Generic.List<T>. The value can be null for reference types.
The zero-based index of the first occurrence of item within the entire System.Collections.Generic.List<T>, if found; otherwise, –1.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that starts at the specified index and contains the specified number of elements.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the search.
The number of elements in the section to search.
The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that starts at index and contains count number of elements, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>.
Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that extends from the specified index to the last element.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the search.
The zero-based index of the first occurrence of item within the range of elements in the EventList<T> that extends from index to the last element, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.
Inserts an element into the System.Collections.Generic.List<T> at the specified index.
The zero-based index at which item should be inserted.
The object to insert. The value can be null for reference types.
index is less than 0.-or-index is greater than System.Collections.Generic.List<T>.Count.
Unable to insert while the ReadOnly property is set to true.
Inserts the elements of a collection into the EventList<T> at the specified index.
The zero-based index at which the new elements should be inserted.
The collection whose elements should be inserted into the EventList<T>. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type.
index is less than 0.-or-index is greater than EventList<T>.Count.
collection is null.
Unable to insert while the ReadOnly property is set to true.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that contains the specified number of elements and ends at the specified index.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that contains count number of elements and ends at index, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-index and count do not specify a valid section in the EventList<T>.
Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that extends from the first element to the specified index.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based starting index of the backward search.
The zero-based index of the last occurrence of item within the range of elements in the EventList<T> that extends from the first element to index, if found; otherwise, –1.
index is outside the range of valid indexes for the EventList<T>.
Searches for the specified object and returns the zero-based index of the last occurrence within the entire EventList<T>.
The object to locate in the EventList<T>. The value can be null for reference types.
The zero-based index of the last occurrence of item within the entire the EventList<T>, if found; otherwise, –1.
Removes the first occurrence of a specific object from the System.Collections.Generic.List<T>.
The object to remove from the System.Collections.Generic.List<T>. The value can be null for reference types.
true if item is successfully removed; otherwise, false. This method also returns false if item was not
found in the System.Collections.Generic.List<T>.
Unable to remove while the ReadOnly property is set to true.
Removes the element at the specified index of the System.Collections.Generic.List<T>.
The zero-based index of the element to remove.
Unable to remove while the ReadOnly property is set to true.
Removes the all the elements that match the conditions defined by the specified predicate.
The System.Predicate<T> delegate that defines the conditions of the elements to remove.
The number of elements removed from the EventList<T>
match is null.
Unable to remove while the ReadOnly property is set to true.
Removes a range of elements from the EventList<T>.
The zero-based starting index of the range of elements to remove.
The number of elements to remove.
index is less than 0.-or-count is less than 0.
index and count do not denote a valid range of elements in the EventList<T>.
Unable to remove while the ReadOnly property is set to true.
Reverses the order of the elements in the specified range.
The zero-based starting index of the range to reverse.
The number of elements in the range to reverse.
index and count do not denote a valid range of elements in the EventList<T>.
index is less than 0.-or-count is less than 0.
Unable to reverse while the ReadOnly property is set to true.
Reverses the order of the elements in the entire EventList<T>.
Unable to reverse while the ReadOnly property is set to true.
Sorts the elements in the entire EventList<T> using the specified System.Comparison<T>.
The System.Comparison<T> to use when comparing elements.
The implementation of comparison caused an error during the sort. For example, comparison might not return 0 when comparing an item with itself.
comparison is null.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in a range of elements in EventList<T> using the specified comparer.
The zero-based starting index of the range to sort.
The length of the range to sort.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
index and count do not specify a valid range in the EventList<T>.-or-The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
index is less than 0.-or-count is less than 0.
comparer is null, and the default comparer
System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T>
generic interface or the System.IComparable interface for type T.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the specified comparer.
The System.Collections.Generic.IComparer<T> implementation to use when comparing elements, or null to use the default comparer System.Collections.Generic.Comparer<T>.Default.
The implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
comparer is null, and the default comparer System.Collections.Generic.Comparer<T>.Default cannot find implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Unable to sort while the ReadOnly property is set to true.
Sorts the elements in the entire DotSpatial.Interfaces.Framework.IEventList<T> using the default comparer.
The default comparer System.Collections.Generic.Comparer<T>.Default cannot find an implementation of the System.IComparable<T> generic interface or the System.IComparable interface for type T.
Unable to sort while the ReadOnly property is set to true.
Retrieves all the elements that match the conditions described by the specified predicate
The System.Predicate that defines the conditions to search for
A List of matches
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that starts at the specified index and contains the specified number of elements.
The zero-based starting index of the search.
The number of elements in the section to search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1
startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>.
match is null
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the EventList<T> that extends from the specified index to the last element.
The zero-based starting index of the search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
startIndex is outside the range of valid indexes for the EventList<T>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire EventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire EventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T.
match is null."
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that contains the specified number of elements and ends at the specified index.
The zero-based starting index of the backward search.
The number of elements in the section to search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
startIndex is outside the range of valid indexes for the EventList<T>.-or-count is less than 0.-or-startIndex and count do not specify a valid section in the EventList<T>.
match is null.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the EventList<T> that extends from the first element to the specified index.
The zero-based starting index of the backward search.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
: startIndex is outside the range of valid indexes for the EventList<T>.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire EventList<T>.
The System.Predicate<T> delegate that defines the conditions of the element to search for.
The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.
match is null.
This sets the parent item of the item being added to this treelist.
The item being included
This reverts the parent item of an item when it is removed from this treelist
The item being removed from the list
Gets or sets the total number of elements the internal data structure can hold without resizing.
The number of elements that the DotSpatial.Interfaces.Framework.IEventList<T> can contain before resizing is required.
DotSpatial.Interfaces.Framework.IEventList<T>.Capacity is set to a value that is less than DotSpatial.Interfaces.Framework.IEventList<T>.Count.
Gets the count of the members in the list
The default, indexed value of type T
The numeric index
An object of type T corresponding to the index value specified
Gets a boolean property indicating whether this list can be written to.
ValidationType
No validation will be performed
Any string value, including null will be accepted
Only values that can be parsed to byte values will be accepted
Only values that can be parsed to short values will be accepted
Only values that can be parsed to integer values will be accepted
Only values that can be parsed to float values will be accepted
Only values that can be parsed to double values will be accepted
Only values that can be parsed to positive short values will be accepted
Only values that can be parsed to positive integer values will be accepted
Only values that can be parsed to positive float values will be accepted
Only values that can be parsed to positive double values will be accepted
This class converts an IProgressHandler to an ICancelProgressHandler. It wraps the IProgressHandler so that
it can be used by a class that requires an ICancelProgressHandler. Cancel will always return false.
Initializes a new instance of the class.
The progress handler.
Progress is the method that should receive a progress message.
The message string without any information about the status of completion.
An integer from 0 to 100 that indicates the condition for a status bar etc.
A string containing both information on what the process is, as well as its completion status.
Returns true if the running process should be cancelled