Class RasterLayer
This abstract class is the basis for all image-based layers in the system.
public abstract class RasterLayer : Layer
- Inheritance
-
RasterLayer
- Derived
- Inherited Members
Remarks
This abstract class is the basis for all image-based layers in the system. Its
methods and properties deal with image manipulation. Currently, some classes that
inherit from this are EcwRasterLayer, MrSidRasterLayer, GridRasterLayer and so on.
When creating your own RasterLayer, you need only to set a RasterSource and create a
useful constructor; the class will take care of the rest. There are no required
abstract members. It may be helpful for you to add additional properties specific to
your Image.
Constructors
RasterLayer()
This is a constructor for the class. If you use this constructor, you should set the properties you need manually.
protected RasterLayer()
Remarks
If you use this constructor, you should set the properties you need manually.
Properties
ImageSource
This property gets and sets the Image used by the RasterLayer.
public RasterSource ImageSource { get; protected set; }
Property Value
- RasterSource
This property gets the Image used by the RasterLayer.
Remarks
The set for this property is protected and only intended to be used by developers who are creating their own ImageSources. This is the main property to set for developers who are creating their own RasterLayer derivatives.
IsOpenCore
This property returns true if the RasterLayer is open and false if it is not.
protected override bool IsOpenCore { get; }
Property Value
- bool
This property returns true if the RasterLayer is open and false if it is not.
Remarks
Various methods on the RasterLayer require that it be in an open state. If one of those methods is called when the state is not open, then the method will throw an exception. To enter the open state, you must call the RasterLayer's Open method. The method will raise an exception if the current RasterLayer is already open.
LowerThreshold
This property gets and sets the lower threshold in the scale at which to display the image.
public double LowerThreshold { get; set; }
Property Value
- double
This property gets the lower threshold in the scale at which to display the image.
Remarks
Below the lower threshold in scale, the image will not be displayed. This, in conjunction with the UpperThreshold property, allows you to create a band in which it is suitable to display the image source. By default, the upper threshold is double.max and lower threshold is double.min. This means the image should always display.
Projection
Gets the projection of the layer.
public override Projection Projection { get; }
Property Value
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
UpperThreshold
This property gets and sets the upper threshold in the scale at which to display the image.
public double UpperThreshold { get; set; }
Property Value
- double
This property gets the upper threshold in the scale at which to display the image.
Remarks
Above the upper threshold in scale, the image will not be displayed. This, in conjunction with the LowerThreshold property, allows you to create a band in which it is suitable to display the image source. By default, the upper threshold is double.max and lower threshold is double.min. This means the image should always display.
Methods
CloseCore()
This method opens the RasterLayer so that it is initialized and ready to use.
protected override void CloseCore()
Remarks
The close method plays an important role in the life cycle of the RasterLayer. 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 RasterLayer 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.
DrawCore(GeoCanvas, Collection<SimpleCandidate>)
This method will draw the image from the NativeImage source based on the parameters provided.
protected override void DrawCore(GeoCanvas canvas, Collection<SimpleCandidate> labelsInAllLayers)
Parameters
canvas
GeoCanvasThis parameter is the GeoCanvas used to Draw the RasterLayer.
labelsInAllLayers
Collection<SimpleCandidate>This parameter is not used for ImageLayers.
Remarks
The DrawCore method will be called when the layer is being drawn. It will determine if the image is within the extent and the threshold defined. If these parameters are met, it will query the RasterSource for an image and then apply the other various properties (such as transparency, etc.) on the image. Lastly, it will draw the image on the NativeImage or native image passed into the method.
GetBoundingBoxCore()
This method returns the bounding box of the RasterLayer.
protected override RectangleShape GetBoundingBoxCore()
Returns
- RectangleShape
This method returns the bounding box of the RasterLayer.
Remarks
This method returns the bounding box of the RasterLayer.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image layer 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.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image layer 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.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a image layer which has not been opened, it will throw an InvalidOperationException.
IsDrawingNeededCore(double)
protected override bool IsDrawingNeededCore(double currentScale)
Parameters
currentScale
double
Returns
OpenCore()
This method opens the RasterLayer so that it is initialized and ready to use.
protected override void OpenCore()
Remarks
The open method plays an important rol,e as it is responsible for initializing the RasterLayer. Most methods on the RasterLayer will throw an exception if the state of the RasterLayer is not opened. When the map draws each layer, it will open the RasterLayer 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 RasterLayer.
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.