Class RasterSource
The abstract class from which all raster sources inherit. Raster sources represent raster data that can be integrated into Map Suite.
public abstract class RasterSource
- Inheritance
-
RasterSource
- Derived
- Inherited Members
Remarks
None
Constructors
RasterSource()
This is the default new constructor for the RasterSource.
protected RasterSource()
Remarks
None
Properties
BlueTranslation
This property gets and sets the amount of blue to apply to the image.
public float BlueTranslation { get; set; }
Property Value
- float
This property gets the amount of blue to apply to the image.
Remarks
None
GreenTranslation
This property gets and sets the amount of green to apply to the image.
public float GreenTranslation { get; set; }
Property Value
- float
This property gets the amount of green to apply to the image.
Remarks
None
IsGrayscale
This property gets and sets if the image should be converted to grayscale.
public bool IsGrayscale { get; set; }
Property Value
- bool
This property gets and sets if the image should be converted to grayscale.
Remarks
None
IsNegative
This property gets and sets whether the image should be converted to negative (inverse colors).
public bool IsNegative { get; set; }
Property Value
- bool
This property gets and sets whether the image should be converted to negative (inverse colors).
Remarks
None
IsOpen
This property returns true if the RasterSource is open and false if it is not.
public bool IsOpen { get; protected set; }
Property Value
Remarks
Various methods on the RasterSource require that it be in an open state. If one of those methods is called when the state is not open, the method will throw an exception. To enter the open state, you must call the RasterSource's Open method. The method will raise an exception if the current RasterSource is already open.
Projection
public Projection Projection { get; protected set; }
Property Value
ProjectionConverter
public ProjectionConverter ProjectionConverter { get; set; }
Property Value
RedTranslation
This property gets and sets the amount of red to apply to the image.
public float RedTranslation { get; set; }
Property Value
- float
This property gets the amount of red to apply to the image.
Remarks
None
ScaleFactor
The scale factor when drawing the primitive image. For example I am looking for an image with 100100px, If the ScaleFactor is set to 2, it means the component will get the image with 200200px. We want to keep it as 1 (by default) for most cases.
public double ScaleFactor { get; set; }
Property Value
Transparency
This property gets and sets the amount of transparency to apply to the image.
public float Transparency { get; set; }
Property Value
- float
This property gets the amount of transparency to apply to the image.
Remarks
None
Methods
CloneDeep()
Create a copy of RasterSource using the deep clone process.
public RasterSource CloneDeep()
Returns
- RasterSource
A cloned RasterSource.
Remarks
The difference between deep clone and shallow clone is: when shallow cloned, only the object is copied, but the contained objects are not; while in deep clone it does copy the cloned object as well as all the objects within.
CloneDeepCore()
Create a copy of RasterSource using the deep clone process. The default implementation uses serialization.
protected virtual RasterSource CloneDeepCore()
Returns
- RasterSource
A cloned RasterSource.
Remarks
The difference between deep clone and shallow clone is: when shallow cloned, only the object is copied, but the contained objects are not; while in deep clone it does copy the cloned object as well as all the objects within.
Close()
This method closes the RasterSource and releases any resources it was using.
public void Close()
Remarks
This method is the concrete wrapper for the abstract method CloseCore. The Close
method plays an important role in the life cycle of the RasterSource. It may be called
after drawing to release any memory and other resources that were allocated since the
Open method was called.
If you override the Core version of this method, it is recommended that you take
the following things into account: This method may be called multiple times, so we
suggest you write the method so that that a call to a closed RasterSource is ignored and does
not generate an error. We also suggest that in the Close you free all resources that
have been opened. Remember that the object will not be destroyed, but will be re-opened
possibly in the near future.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
CloseCore()
This method opens the RasterSource so that it is initialized and ready to use.
protected virtual void CloseCore()
Remarks
This protected virtual method is called from the concrete public method Close.
The Close method plays an important role in the life cycle of the RasterSource. It may
be called after drawing to release any memory and other resources that were allocated
since the Open method was called.
If you override this method, it is recommended that you take the following things
into account: This method may be called multiple times, so we suggest you write the method so
that that a call to a closed RasterSource is ignored and does not generate an error.
We also suggest that in the Close you free all resources that have been opened.
Remember that the object will not be destroyed, but will be re-opened possibly in the
near future.
GenerateWorldFileText(RectangleShape, int, int)
This method returns a string that represents the image's world file based on the parameters passed in.
public static string GenerateWorldFileText(RectangleShape worldExtent, int imageWidth, int imageHeight)
Parameters
worldExtent
RectangleShapeThis parameter represents the worldExtent of the image in world coordinates.
imageWidth
intThis parameter is the width of the image in screen coordinates.
imageHeight
intThis parameter is the height of the image in screen coordinates.
Returns
- string
This method returns a string that represents the image's world file based on the parameters passed in.
Remarks
This method returns a string that represents the image's world file. The world file is a file type that can accompany image files. It contains information about the image's position, resolution and other spatial-related items. It is common to have this kind of file associated with generic image types such as JPG, BMP, and normal TIFF because they do not have a mechanism to store this data internally. Modern GIS image types such as JPEG2000, ECW, and MrSid typically have this information stored internally. We provide this method in the event that you want to create your own world file from any image that either already has one or has its data stored internally.
Exceptions
- ArgumentNullException
If you pass in a worldExtent that is Null, we will throw an ArgumentNullException.
- ArgumentException
If you pass in a worldExtent that is invalid, we will throw an ArgumentException.
- ArgumentOutOfRangeException
If you pass in a image width that is smaller than or equal to 0, we will throw an ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a image height that is smaller than or equal to 0, we will throw an ArgumentOutOfRangeException.
GetBoundingBox()
This method returns the bounding box of the RasterSource.
public RectangleShape GetBoundingBox()
Returns
- RectangleShape
This method returns the bounding box of the RasterSource.
Remarks
This method returns the bounding box of the RasterSource.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetBoundingBoxCore()
This method returns the bounding box of the RasterSource.
protected abstract RectangleShape GetBoundingBoxCore()
Returns
- RectangleShape
This method returns the bounding box of the RasterSource.
Remarks
This method returns the bounding box of the RasterSource.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetHorizontalResolution()
This method returns the horizontal resolution of the image.
public float GetHorizontalResolution()
Returns
- float
This method returns the horizontal resolution of the image.
Remarks
This method returns the horizontal resolution of the image.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetImage(RectangleShape, int, int)
This method returns an image based on the worldExtent and image width and height.
public GeoImage GetImage(RectangleShape worldExtent, int canvasWidth, int canvasHeight)
Parameters
worldExtent
RectangleShapeThis parameter represents the worldExtent you want to draw.
canvasWidth
intThis parameter represents the width of the image you want to draw.
canvasHeight
intThis parameter represents the height of the image you want to draw.
Returns
- GeoImage
This method returns an image based on the worldExtent and image width and height.
Remarks
This method is responsible for returning the image based on the parameters passed
in. As the core version of this method is abstract, you will need to override it when
creating your own RasterSource.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- ArgumentNullException
If you pass in a worldExtent that is invalid, we will throw an ArgumentNullException.
- ArgumentException
If you pass in a worldExtent that is invalid, we will throw an ArgumentException.
- ArgumentOutOfRangeException
If you pass in a image width that is smaller than or equal to 0, we will throw an ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a image height that is smaller than or equal to 0, we will throw an ArgumentOutOfRangeException.
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetImageCore(RectangleShape, int, int)
This method returns an image based on the worldExtent and image width and height.
protected abstract GeoImage GetImageCore(RectangleShape worldExtent, int canvasWidth, int canvasHeight)
Parameters
worldExtent
RectangleShapeThis parameter represents the worldExtent you want to draw.
canvasWidth
intThis parameter represents the width of the image you want to draw.
canvasHeight
intThis parameter represents the height of the image you want to draw.
Returns
- GeoImage
This method returns an image based on the worldExtent and image width and height.
Remarks
This method is responsible for returning the image based on the parameters passed in. As the core version of this method is abstract, you will need to override it when creating our own RasterSource.
Exceptions
- ArgumentNullException
If you pass in a worldExtent that is invalid, we will throw an ArgumentNullException.
- ArgumentException
If you pass in a worldExtent that is invalid, we will throw an ArgumentException.
- ArgumentOutOfRangeException
If you pass in a image width that is smaller than or equal to 0, we will throw an ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a image height that is smaller than or equal to 0, we will throw an ArgumentOutOfRangeException.
- InvalidOperationException
In the event you attempt to call this method on a image source that has not been opened, it will throw an InvalidOperationException.
GetImageHeight()
This method returns the height of the image in screen coordinates.
public int GetImageHeight()
Returns
- int
This method returns the height of the image in screen coordinates.
Remarks
This method returns the height of the image in screen coordinates.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetImageHeightCore()
This method returns the height of the image in screen coordinates.
protected abstract int GetImageHeightCore()
Returns
- int
This method returns the height of the image in screen coordinates.
Remarks
This abstract method is called from the concrete method GetImageHeight. You need to override it if you inherit from the RasterSource to return the height of your image. It returns the height of the image in screen coordinates.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetImageWidth()
This method returns the width of the image in screen coordinates.
public int GetImageWidth()
Returns
- int
This method returns the width of the image in screen coordinates.
Remarks
This method returns the width of the image in screen coordinates.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetImageWidthCore()
This method returns the width of the image in screen coordinates.
protected abstract int GetImageWidthCore()
Returns
- int
This method returns the width of the image in screen coordinates.
Remarks
This abstract method is called from the concrete method GetImageWidth. You need to override it if you inherit from the RasterSource to return the width of your image. It returns the width of the image in screen coordinates.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetVerticalResolution()
This method returns the vertical resolution of the image.
public float GetVerticalResolution()
Returns
- float
This method returns the vertical resolution of the image.
Remarks
This method returns the vertical resolution of the image.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
GetWorldFileText()
This method returns a string that represents the image's world file.
public string GetWorldFileText()
Returns
- string
This method returns a string that represents the image's world file.
Remarks
This method wraps the Core version of this method and returns a string that
represents the image's world file. The world file is a file type that can accompany
image files. It contains information about the image's position, resolution and other
spatial-related items. It is common to have this kind of file associated with generic
image types such as JPG, BMP, and normal TIFF because they do not have a mechanism to
store this data internally. Modern GIS image types such as JPEG2000, ECW, and MrSid
typically have this information stored internally. We provide this method in the event
that you want to create your own world file from any image that either already has one
or has its data stored internally.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has not been opened, it will throw an InvalidOperationException.
OnClosedRasterSource(ClosedRasterSourceEventArgs)
This method allows you to raise the ClosedRasterSource event from a derived class.
protected virtual void OnClosedRasterSource(ClosedRasterSourceEventArgs e)
Parameters
e
ClosedRasterSourceEventArgsThis parameter is the event arguments that define the parameters passed to the recipient of the event.
Remarks
You can call this method from a derived class to enable it to raise the
ClosedRasterSource event. This may be useful if you plan to extend the RasterSource and
you need access to the event.
Details on the event:
This event is called after the closing of the RasterSource. Technically, this event is
called after the calling of the Close method on the RasterSource and after the protected
CloseCore method.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.
OnClosingRasterSource(ClosingRasterSourceEventArgs)
This method allows you to raise the ClosingRasterSource event from a derived class.
protected virtual void OnClosingRasterSource(ClosingRasterSourceEventArgs e)
Parameters
e
ClosingRasterSourceEventArgsThis parameter is the event arguments that define the parameters passed to the recipient of the event.
Remarks
You can call this method from a derived class to enable it to raise the
ClosingRasterSource event. This may be useful if you plan to extend the RasterSource and
you need access to the event.
Details on the event:
This event is called before the closing of the RasterSource. Technically, this event is
called after the calling of the Close method on the RasterSource, but before the
protected CloseCore method.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.
OnOpenedRasterSource(OpenedRasterSourceEventArgs)
This method allows you to raise the OpenedRasterSource event from a derived class.
protected virtual void OnOpenedRasterSource(OpenedRasterSourceEventArgs e)
Parameters
e
OpenedRasterSourceEventArgsThis parameter is the event arguments that define the parameters passed to the recipient of the event.
Remarks
You can call this method from a derived class to enable it to raise the
OpenedRasterSource event. This may be useful if you plan to extend the RasterSource and
you need access to the event.
Details on the event:
This event is called after the opening of the RasterSource. Technically, this event is
called after the calling of the Open method on the RasterSource and after the protected
OpenCore method is called.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.
OnOpeningRasterSource(OpeningRasterSourceEventArgs)
This method allows you to raise the OpeningRasterSource event from a derived class.
protected virtual void OnOpeningRasterSource(OpeningRasterSourceEventArgs e)
Parameters
e
OpeningRasterSourceEventArgsThis parameter is the event arguments that define the parameters passed to the recipient of the event.
Remarks
You can call this method from a derived class to enable it to raise the
OpeningRasterSource event. This may be useful if you plan to extend the RasterSource and
you need access to the event.
Details on the event:
This event is called before the opening of the RasterSource. Technically, this event is
called after the calling of the Open method on the RasterSource, but before the protected
OpenCore method.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.
Open()
This method opens the RasterSource so that it is initialized and ready to use.
public void Open()
Remarks
This method is the concrete wrapper for the abstract method OpenCore. The
Open method plays an important role, as it is responsible for initializing the
RasterSource. Most methods on the RasterSource will throw an exception if the state
of the RasterSource is not opened. When the map draws each layer, it will open the
RasterSource as one of its first steps; then, after it is finished drawing with that
layer, it will close it. In this way, we are sure to release all resources used by
the RasterSource.
When implementing the abstract method, consider opening files for file-based sources,
connecting to databases in the database-based sources and so on. You will get a chance
to close these in the Close method of the RasterSource.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
OpenCore()
This method opens the RasterSource so that it is initialized and ready to use.
protected abstract void OpenCore()
Remarks
This protected virtual method is called from the concrete public method Open.
The Open method plays an important role, as it is responsible for initializing the
RasterSource. Most methods on the RasterSource will throw an exception if the state of
the RasterSource is not opened. When the map draws each layer, it will open the
RasterSource as one of its first steps; then, after it is finished drawing with that
layer, it will close it. In this way, we are sure to release all resources used by the
RasterSource.
When implementing this abstract method, consider opening files for file-based sources,
connecting to databases in the database-based sources and so on. You will get a chance
to close these in the Close method of the RasterSource.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image source which has already been opened, it will throw an InvalidOperationException.
Events
ClosedRasterSource
This event is called after the closing of the RasterSource.
public event EventHandler<ClosedRasterSourceEventArgs> ClosedRasterSource
Event Type
Remarks
This event is called after the closing of the RasterSource. Technically, this event
is called after the calling of the Close method on the RasterSource and after the
protected CloseCore method.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.
ClosingRasterSource
This event is called before the closing of the RasterSource.
public event EventHandler<ClosingRasterSourceEventArgs> ClosingRasterSource
Event Type
Remarks
This event is called before the closing of the RasterSource. Technically, this
event is called after the calling of the Close method on the RasterSource, but before the
protected CloseCore method.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.
OpenedRasterSource
This event is called after the opening of the RasterSource.
public event EventHandler<OpenedRasterSourceEventArgs> OpenedRasterSource
Event Type
Remarks
This event is called after the opening of the RasterSource. Technically, this event
is called after the calling of the Open method on the RasterSource and after the
protected OpenCore method is called.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.
OpeningRasterSource
This event is called before the opening of the RasterSource.
public event EventHandler<OpeningRasterSourceEventArgs> OpeningRasterSource
Event Type
Remarks
This event is called before the opening of the RasterSource. Technically, this
event is called after the calling of the Open method on the RasterSource, but before the
protected OpenCore method.
It is typical that the RasterSource may be opened and closed may times during the life
cycle of your application. The type of control the MapEngine is embedded in will dictate
how often this happens. For example, in the case of the Web Edition, each time
a RasterSource is in the Ajax or Post Back part of the page cycle, it will close the
RasterSource before returning back to the client. This is to conserve resources, as
the web is a connection-less environment. In the case of the Desktop Edition, we can
keep the RasterSource open, knowing that we can maintain a persistent connection.