User Tools

Site Tools


thinkgeo.mapsuite.core.rastersource

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
thinkgeo.mapsuite.core.rastersource [2015/09/17 10:38]
admin
thinkgeo.mapsuite.core.rastersource [2017/03/16 21:59] (current)
Line 1: Line 1:
 ====== ThinkGeo.MapSuite.Core.RasterSource ====== ====== ThinkGeo.MapSuite.Core.RasterSource ======
 +
 +{{section>​upgrade_map_suite_to_10.0}}
 +
 The abstract class from which all raster sources inherit. Raster sources represent raster data that can be integrated into Map Suite. The abstract class from which all raster sources inherit. Raster sources represent raster data that can be integrated into Map Suite.
 ===== Inheritance Hierarchy ===== ===== Inheritance Hierarchy =====
Line 15: Line 18:
       *[[ThinkGeo.MapSuite.Core.MrSidRasterSource]]       *[[ThinkGeo.MapSuite.Core.MrSidRasterSource]]
 ===== Members Summary ===== ===== Members Summary =====
-=== Public Constructors === +==== Public Constructors ​==== 
-=== Protected Constructors === +==== Protected Constructors ==== 
-<div class_table>​ +** {{wiki:​ProtectedMethod.gif|}} RasterSource() **
-**{{wiki:​ProtectedMethod.gif|}}[[#RasterSource()|RasterSource]]** +
-  * **Parameters**:​N/​A +
-  * **DeclaringType**:​N/​A +
-  * **Summary**:​This is the default new constructor for the RasterSource. +
-</​div>​+
  
-=== Public Methods ​=== +  * //This is the default new constructor for the RasterSource.//​ 
-<​div ​class_table+== Remarks ​== 
-**{{wiki:​PublicMethod.gif|}}[[#CloneDeep()|CloneDeep]]** +  * //None// 
-  * **Parameters**:​N/​A +== Parameters ​== 
-  * **DeclaringType**:​N/​A +<​div ​newline></​div> 
-  * **Summary**:​Create a copy of RasterSource using the deep clone process. +==== Public Methods ==== 
-</​div>​+** {{wiki:​PublicMethod.gif|}} CloneDeep() **
  
-<div class_table>​ +  ​//Create a copy of RasterSource using the deep clone process./
-**{{wiki:​PublicMethod.gif|}}[[#​Close()|Close]]** +== Remarks == 
-  * **Parameters**:​N/A +  * //The difference between deep clone and shallow clone iswhen 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.//
-  * **DeclaringType**:​N/+
-  * **Summary**:This method closes ​the RasterSource and releases any resources ​it was using. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:PublicMethod.gif|}}[[#​Equals(Object)|Equals]]** +  Type:[[ThinkGeo.MapSuite.Core.RasterSource|RasterSource]] 
-  * **Parameters**:Object +  * Description:A cloned RasterSource.
-  * **DeclaringType**:​Object +
-  * **Summary**:​N/​A +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:​PublicMethod.gif|}}{{wiki:​Static.gif|}}[[#​GenerateWorldFileText(RectangleShape,​Int32,​Int32)|GenerateWorldFileText]]** +<​div ​newline></​div
-  * **Parameters**:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]],​Int32,​Int32 +** {{wiki:​PublicMethod.gif|}} ​GetWorldFileText() **
-  * **DeclaringType**:​N/​A +
-  * **Summary**:​This method returns a string that represents the image'​s world file based on the parameters passed in. +
-</​div>​+
  
-<div class_table>​ +  ​//This method returns a string that represents the image'​s world file.// 
-**{{wiki:​PublicMethod.gif|}}[[#​GetBoundingBox()|GetBoundingBox]]** +== Remarks == 
-  * **Parameters**:​N/+  * //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 internallyAs 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.//
-  * **DeclaringType**:​N/A +
-  * **Summary**:​This method returns the bounding box of the RasterSource. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​PublicMethod.gif|}}[[#​GetHashCode()|GetHashCode]]** +  * Type:String 
-  * **Parameters**:N/A +  * Description:This method returns a string that represents the image'​s world file.
-  * **DeclaringType**:Object +
-  * **Summary**:​N/​A +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:​PublicMethod.gif|}}[[#​GetHorizontalResolution()|GetHorizontalResolution]]** +<​div ​newline></​div
-  * **Parameters**:​N/​A +** {{wiki:​PublicMethod.gif|}} ​GetImageWidth() **
-  * **DeclaringType**:​N/​A +
-  * **Summary**:​This method returns the horizontal resolution of the image. +
-</​div>​+
  
-<div class_table>​ +  ​//This method returns the width of the image in screen coordinates.// 
-**{{wiki:​PublicMethod.gif|}}[[#​GetImage(RectangleShape,​Int32,​Int32)|GetImage]]** +== Remarks == 
-  * **Parameters**:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]],​Int32,​Int32 +  * //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 methodIn 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.//
-  * **DeclaringType**:​N/+
-  * **Summary**:​This method returns ​an image based on the worldExtent ​and image width and height. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​PublicMethod.gif|}}[[#​GetImageHeight()|GetImageHeight]]** +  * Type:Int32 
-  * **Parameters**:N/A +  * Description:This method returns the width of the image in screen coordinates.
-  * **DeclaringType**:​N/​A +
-  * **Summary**:This method returns the height ​of the image in screen coordinates. +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:​PublicMethod.gif|}}[[#​GetImageWidth()|GetImageWidth]]** +<​div ​newline></​div
-  * **Parameters**:​N/​A +** {{wiki:​PublicMethod.gif|}} ​GetImageHeight() **
-  * **DeclaringType**:​N/​A +
-  * **Summary**:​This method returns the width of the image in screen coordinates. +
-</​div>​+
  
-<div class_table>​ +  ​//This method returns the height of the image in screen coordinates.// 
-**{{wiki:​PublicMethod.gif|}}[[#​GetProjectionText()|GetProjectionText]]** +== Remarks == 
-  * **Parameters**:​N/+  * //This method returns the height of the image in screen coordinatesAs 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.//
-  * **DeclaringType**:​N/A +
-  * **Summary**:​This method returns the projection text in proj4 format. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​PublicMethod.gif|}}[[#​GetType()|GetType]]** +  * Type:Int32 
-  * **Parameters**:N/A +  * Description:This method returns the height of the image in screen coordinates.
-  * **DeclaringType**:Object +
-  * **Summary**:​N/​A +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:​PublicMethod.gif|}}[[#​GetVerticalResolution()|GetVerticalResolution]]** +<​div ​newline></​div
-  * **Parameters**:​N/​A +** {{wiki:​PublicMethod.gif|}} ​GetHorizontalResolution() **
-  * **DeclaringType**:​N/​A +
-  * **Summary**:​This method returns the vertical resolution of the image. +
-</​div>​+
  
-<div class_table>​ +  ​//This method returns the horizontal resolution of the image.// 
-**{{wiki:​PublicMethod.gif|}}[[#​GetWorldFileText()|GetWorldFileText]]** +== Remarks == 
-  * **Parameters**:​N/+  * //This method returns ​the horizontal resolution of the image. As this is 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 methodIn 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.//
-  * **DeclaringType**:​N/A +
-  * **Summary**:​This method returns a string ​that represents ​the image'​s world file. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​PublicMethod.gif|}}[[#​Open()|Open]]** +  * Type:Single 
-  * **Parameters**:N/A +  * Description:This method ​returns ​the horizontal resolution of the image.
-  * **DeclaringType**:​N/​A +
-  * **Summary**:This method ​opens the RasterSource so that it is initialized and ready to use. +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:​PublicMethod.gif|}}[[#ToString()|ToString]]** +<​div ​newline></​div
-  * **Parameters**:​N/​A +** {{wiki:​PublicMethod.gif|}} ​GetVerticalResolution() **
-  * **DeclaringType**:​Object +
-  * **Summary**:​N/​A +
-</​div>​+
  
-=== Protected Methods === +  * //This method returns the vertical resolution of the image.// 
-<div class_table>​ +== Remarks ​== 
-**{{wiki:​ProtectedMethod.gif|}}[[#​CloneDeepCore()|CloneDeepCore]]** +  * //This method returns the vertical resolution of the image. As this is 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 methodIn this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needsIf you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.//
-  * **Parameters**:​N/+
-  * **DeclaringType**:​N/+
-  * **Summary**:​Create ​copy of RasterSource using the deep clone processThe default implementation uses serialization. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​ProtectedMethod.gif|}}[[#​CloseCore()|CloseCore]]** +  * Type:Single 
-  * **Parameters**:N/A +  * Description:This method ​returns ​the vertical resolution of the image.
-  * **DeclaringType**:​N/​A +
-  * **Summary**:This method ​opens the RasterSource so that it is initialized and ready to use. +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:ProtectedMethod.gif|}}[[#Finalize()|Finalize]]** +<​div ​newline></​div
-  * **Parameters**:​N/​A +** {{wiki:PublicMethod.gif|}} ​GetBoundingBox() **
-  * **DeclaringType**:​Object +
-  * **Summary**:​N/​A +
-</​div>​+
  
-<div class_table>​ +  ​//This method returns the bounding box of the RasterSource.// 
-**{{wiki:​ProtectedMethod.gif|}}[[#​GetBoundingBoxCore()|GetBoundingBoxCore]]** +== Remarks == 
-  * **Parameters**:​N/+  * //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.//
-  * **DeclaringType**:​N/A +
-  * **Summary**:​This method returns the bounding box of the RasterSource. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​ProtectedMethod.gif|}}[[#​GetImageCore(RectangleShape,​Int32,​Int32)|GetImageCore]]** +  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * **Parameters**:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]],​Int32,​Int32 +  * Description:This method returns the bounding box of the RasterSource.
-  * **DeclaringType**:​N/​A +
-  * **Summary**:This method returns ​an image based on the worldExtent and image width and height. +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:ProtectedMethod.gif|}}[[#​GetImageHeightCore()|GetImageHeightCore]]** +<​div ​newline></​div
-  * **Parameters**:​N/​A +** {{wiki:PublicMethod.gif|}} ​GetProjectionText() **
-  * **DeclaringType**:​N/​A +
-  * **Summary**:​This method returns the height of the image in screen coordinates. +
-</​div>​+
  
-<div class_table>​ +  ​* //This method returns the projection text in proj4 format.// 
-**{{wiki:​ProtectedMethod.gif|}}[[#​GetImageWidthCore()|GetImageWidthCore]]** +== Remarks == 
-  * **Parameters**:​N/+  * //None//
-  * **DeclaringType**:​N/+
-  * **Summary**:​This method returns the width of the image in screen coordinates+
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​ProtectedMethod.gif|}}[[#​GetProjectionTextCore()|GetProjectionTextCore]]** +  * Type:String 
-  * **Parameters**:N/A +  * Description:This method returns the projection text in proj4 format.
-  * **DeclaringType**:​N/​A +
-  * **Summary**:This method returns the projection text in proj4 format. +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:ProtectedMethod.gif|}}[[#​MemberwiseClone()|MemberwiseClone]]** +<​div ​newline></​div
-  * **Parameters**:​N/​A +** {{wiki:PublicMethod.gif|}} ​Open() **
-  * **DeclaringType**:​Object +
-  * **Summary**:​N/​A +
-</​div>​+
  
-<div class_table>​ +  ​//This method opens the RasterSource so that it is initialized and ready to use.// 
-**{{wiki:​ProtectedMethod.gif|}}[[#​OnClosedRasterSource(ClosedRasterSourceEventArgs)|OnClosedRasterSource]]** +== Remarks == 
-  * **Parameters**:​[[ThinkGeo.MapSuite.Core.ClosedRasterSourceEventArgs|ClosedRasterSourceEventArgs]] +  * //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 chance to close these in the Close method of the RasterSourceAs 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.//
-  * **DeclaringType**:​N/+
-  * **Summary**:​This method ​allows you to raise the ClosedRasterSource event from derived class. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​ProtectedMethod.gif|}}[[#​OnClosingRasterSource(ClosingRasterSourceEventArgs)|OnClosingRasterSource]]** +  * Type:Void 
-  * **Parameters**:[[ThinkGeo.MapSuite.Core.ClosingRasterSourceEventArgs|ClosingRasterSourceEventArgs]] +  * Description:None
-  * **DeclaringType**:N/A +
-  * **Summary**:​This method allows you to raise the ClosingRasterSource event from a derived class. +
-</​div>​+
  
-<​div ​class_table+== Parameters == 
-**{{wiki:ProtectedMethod.gif|}}[[#​OnOpenedRasterSource(OpenedRasterSourceEventArgs)|OnOpenedRasterSource]]** +<​div ​newline></​div
-  * **Parameters**:​[[ThinkGeo.MapSuite.Core.OpenedRasterSourceEventArgs|OpenedRasterSourceEventArgs]] +** {{wiki:PublicMethod.gif|}} ​Close() **
-  * **DeclaringType**:​N/​A +
-  * **Summary**:​This method allows you to raise the OpenedRasterSource event from a derived class. +
-</​div>​+
  
-<div class_table>​ +  ​//This method closes the RasterSource and releases any resources it was using.// 
-**{{wiki:​ProtectedMethod.gif|}}[[#​OnOpeningRasterSource(OpeningRasterSourceEventArgs)|OnOpeningRasterSource]]** +== Remarks == 
-  * **Parameters**:​[[ThinkGeo.MapSuite.Core.OpeningRasterSourceEventArgs|OpeningRasterSourceEventArgs]] +  * //This method is the concrete wrapper for the abstract method CloseCoreThe Close method plays an important role in the life cycle of the RasterSourceIt may be called after drawing to release any memory and other resources that were allocated since the Open method was calledIf 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 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 methodIn 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.//
-  * **DeclaringType**:​N/​A +
-  * **Summary**:This method ​allows ​you to raise the OpeningRasterSource event from derived class. +
-</div>+
  
-<div class_table>​ +== Return Value == 
-**{{wiki:​ProtectedMethod.gif|}}[[#​OpenCore()|OpenCore]]** +  * Type:Void 
-  * **Parameters**:N/A +  * Description:None
-  * **DeclaringType**:N/A +
-  * **Summary**:​This method opens the RasterSource so that it is initialized and ready to use. +
-</​div>​+
  
-=== Public Properties === +== Parameters ​== 
-**{{wiki:PublicProperty.gif|}}[[#​BlueTranslation|BlueTranslation]]** +<div newline></​div>​ 
-  * **Return**:​Single +** {{wiki:PublicMethod.gif|}} ​GetImage(RectangleShape,​Int32,​Int32) ​**
-  * **Summary**:​This property gets and sets the amount of blue to apply to the image.+
  
-**{{wiki:​PublicProperty.gif|}}[[#​GreenTranslation|GreenTranslation]]** +  ​//This method returns an image based on the worldExtent and image width and height.// 
-  * **Return**:​Single +== Remarks == 
-  * **Summary**:​This property gets and sets the amount ​of green to apply to the image.+  * //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.//
  
-**{{wiki:PublicProperty.gif|}}[[#​HasProjectionText|HasProjectionText]]** +== Return Value == 
-  * **Return**:​Boolean +  ​Type:[[ThinkGeo.MapSuite.Core.GeoImage|GeoImage]] 
-  * **Summary**:This property ​returns ​true if the RasterSource has projection text, false if not.+  * Description:This method ​returns ​an image based on the worldExtent and image width and height.
  
-**{{wiki:PublicProperty.gif|}}[[#​IsGrayscale|IsGrayscale]]** +== Parameters == 
-  * **Return**:​Boolean +  ​//​worldExtent//​ 
-  * **Summary**:​This ​property gets and sets if the image should be converted ​to grayscale.+    ​Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
 +    Description:This parameter represents ​the worldExtent you want to draw.
  
-**{{wiki:​PublicProperty.gif|}}[[#​IsNegative|IsNegative]]** +  ​//​canvasWidth//​ 
-  * **Return**:Boolean +    Type:Int32 
-  * **Summary**:​This ​property gets and sets whether ​the image should be converted ​to negative (inverse colors).+    Description:This parameter represents the width of the image you want to draw.
  
-**{{wiki:​PublicProperty.gif|}}[[#​IsOpen|IsOpen]]** +  ​//​canvasHeight//​ 
-  * **Return**:Boolean +    Type:Int32 
-  * **Summary**:​This ​property returns true if the RasterSource is open and false if it is not.+    Description:This parameter represents the height of the image you want to draw.
  
-**{{wiki:PublicProperty.gif|}}[[#​Projection|Projection]]** +<div newline></​div>​ 
-  * **Return**:​[[ThinkGeo.MapSuite.Core.Projection|Projection]] +** {{wiki:PublicMethod.gif|}} ​ToString() ​**
-  * **Summary**:​N/​A+
  
-**{{wiki:​PublicProperty.gif|}}[[#​RedTranslation|RedTranslation]]** +  ​//N/A// 
-  * **Return**:​Single +== Remarks == 
-  * **Summary**:​This property gets and sets the amount of red to apply to the image.+  * //N/A//
  
-**{{wiki:​PublicProperty.gif|}}[[#​Transparency|Transparency]]** +== Return Value == 
-  * **Return**:Single +  * Type:String 
-  * **Summary**:This property gets and sets the amount of transparency to apply to the image.+  * Description:N/A
  
-=== Protected Properties === +== Parameters ​== 
-**{{wiki:ProtectedProperty.gif|}}[[#​HasProjectionTextCore|HasProjectionTextCore]]** +<div newline></​div>​ 
-  * **Return**:​Boolean +** {{wiki:PublicMethod.gif|}} ​Equals(Object) ​**
-  * **Summary**:​This property returns true if the RasterSource has projection text, false if not.+
  
-=== Public Events === +  * //N/A// 
-**{{wiki:​PublicEvent.gif|}}[[#​ClosedRasterSource|ClosedRasterSource]]** +== Remarks ​== 
-  * **Event Arguments**:​[[ThinkGeo.MapSuite.Core.ClosedRasterSourceEventArgs|ClosedRasterSourceEventArgs]] +  * //N/A//
-  * **Summary**:​This event is called after the closing of the RasterSource.+
  
-**{{wiki:​PublicEvent.gif|}}[[#​ClosingRasterSource|ClosingRasterSource]]** +== Return Value == 
-  * **Event Arguments**:[[ThinkGeo.MapSuite.Core.ClosingRasterSourceEventArgs|ClosingRasterSourceEventArgs]] +  * Type:Boolean 
-  * **Summary**:This event is called before the closing of the RasterSource.+  * Description:N/A
  
-**{{wiki:​PublicEvent.gif|}}[[#​OpenedRasterSource|OpenedRasterSource]]** +== Parameters == 
-  * **Event Arguments**:[[ThinkGeo.MapSuite.Core.OpenedRasterSourceEventArgs|OpenedRasterSourceEventArgs]] +  * //obj// 
-  * **Summary**:This event is called after the opening of the RasterSource.+    ​Type:Object 
 +    Description:N/A
  
-**{{wiki:PublicEvent.gif|}}[[#​OpeningRasterSource|OpeningRasterSource]]** +<div newline></​div>​ 
-  * **Event Arguments**:​[[ThinkGeo.MapSuite.Core.OpeningRasterSourceEventArgs|OpeningRasterSourceEventArgs]] +** {{wiki:PublicMethod.gif|}} ​GetHashCode() ​**
-  * **Summary**:​This event is called before the opening of the RasterSource.+
  
-===== Public Constructors ===== +  * //N/A// 
-===== Protected Constructors ===== +== Remarks == 
-=== RasterSource() === +  * //N/A//
-This is the default new constructor for the RasterSource. +
-==== Remarks ​==== +
-None +
-==== Parameters ==== +
-[[#​Protected Constructors|Go Back]] +
-===== Public Methods ===== +
-=== CloneDeep() === +
-Create a copy of RasterSource using the deep clone process. +
-==== 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.+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:[[ThinkGeo.MapSuite.Core.RasterSource|RasterSource]] +  * Type:Int32 
-  ​* **Description**:A cloned RasterSource.+  * Description:​N/A
  
-==== Parameters ​==== +== Parameters == 
-[[#Public Methods|Go Back]] +<div newline></​div>​ 
-=== Close() === +** {{wiki:​PublicMethod.gif|}} GetType() **
-This method closes the RasterSource and releases any resources it was using. +
-==== 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.+
  
-**Return Value** +  ​//N/A// 
-  * **Return Type**:Void +== Remarks == 
-  * **Description**:​None+  * //N/A//
  
-==== Parameters ==== +== Return Value == 
-[[#Public Methods|Go Back]] +  * Type:Type 
-=== Equals(Object) === +  * Description:​N/A
-N/A +
-==== Remarks ==== +
-N/A+
  
-**Return Value** +== Parameters == 
-  * **Return Type**:Boolean +<div newline></​div>​ 
-  ​* **Description**:​N/​A+** {{wiki:PublicMethod.gif|}}{{wiki:​Static.gif|}} GenerateWorldFileText(RectangleShape,​Int32,​Int32) ​**
  
-==== Parameters ==== +  * //This method returns a string that represents the image'​s world file based on the parameters passed in.// 
-**obj** +== Remarks ​== 
-  * **Type**:​Object +  * //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.//​
-  * **Description**:​N/A+
  
-[[#Public Methods|Go Back]] +== Return Value == 
-=== GenerateWorldFileText(RectangleShape,​Int32,​Int32) === +  * Type:​String 
-This method returns a string that represents the image'​s world file based on the parameters passed in+  * Description:​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.+
  
-**Return Value** +== Parameters == 
-  * **Return ​Type**:String +  * //​worldExtent//​ 
-  * **Description**:This method returns a string that represents the image'​s ​world file based on the parameters passed in.+    ​* Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
 +    * Description:​This ​parameter ​represents ​the worldExtent of the image in world coordinates.
  
-==== Parameters ==== +  ​//​imageWidth//​ 
-**worldExtent*+    * Type:Int32 
-  * **Type**:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] +    * Description:​This parameter ​is the width of the image in screen ​coordinates.
-  * **Description**:This parameter ​represents ​the worldExtent ​of the image in world coordinates.+
  
-**imageWidth** +  ​//​imageHeight//​ 
-  * **Type**:Int32 +    * Type:​Int32 
-  * **Description**:This parameter is the width of the image in screen coordinates.+    * Description:​This parameter is the height ​of the image in screen coordinates.
  
-**imageHeight** +<div newline></​div>​ 
-  * **Type**:Int32 +==== Protected Methods ==== 
-  ​* **Description**:​This parameter is the height of the image in screen coordinates.+** {{wiki:ProtectedMethod.gif|}} OnOpeningRasterSource(OpeningRasterSourceEventArgs) ​**
  
-[[#Public Methods|Go Back]] +  * //This method ​allows you to raise the OpeningRasterSource event from a derived class.// 
-=== GetBoundingBox() === +== Remarks == 
-This method ​returns ​the bounding box of the RasterSource+  * //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 RasterSourcebut before ​the protected OpenCore method. It is typical that the RasterSource may be opened ​and closed may times during ​the life cycle of your applicationThe type of control the MapEngine is embedded in will dictate how often this happens. For examplein the case of the Web Editioneach 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 clientThis 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.//
-==== 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 methodIn this waywe leave our framework open on our endbut also allow you the developer ​to extend our logic to suit your needsIf you have questions about thisplease contact our support team as we would be happy to work with you on extending our framework.+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] +  * Type:Void 
-  ​* **Description**:This method returns the bounding box of the RasterSource.+  * Description:​None
  
-==== Parameters ​==== +== Parameters == 
-[[#Public Methods|Go Back]] +  * //e// 
-=== GetHashCode() === +    * Type:[[ThinkGeo.MapSuite.Core.OpeningRasterSourceEventArgs|OpeningRasterSourceEventArgs]] 
-N/A +    * Description:​This parameter is the event arguments that define the parameters passed to the recipient of the event.
-==== Remarks ==== +
-N/A+
  
-**Return Value** +<div newline></​div>​ 
-  * **Return Type**:Int32 +** {{wiki:ProtectedMethod.gif|}} OnOpenedRasterSource(OpenedRasterSourceEventArgs) ​**
-  ​* **Description**:​N/​A+
  
-==== Parameters ==== +  * //This method ​allows you to raise the OpenedRasterSource event from a derived class.// 
-[[#Public Methods|Go Back]] +== Remarks == 
-=== GetHorizontalResolution() === +  * //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 RasterSourceTechnically, ​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 examplein the case of the Web Editioneach 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 clientThis 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.//
-This method ​returns ​the horizontal resolution of the image+
-==== Remarks ​==== +
-This method ​returns ​the horizontal resolution ​of the imageAs 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 waywe leave our framework open on our endbut also allow you the developer ​to extend our logic to suit your needsIf you have questions about thisplease contact our support team as we would be happy to work with you on extending our framework.+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:Single +  * Type:Void 
-  ​* **Description**:This method returns the horizontal resolution of the image.+  * Description:​None
  
-==== Parameters ​==== +== Parameters == 
-[[#Public Methods|Go Back]] +  * //e// 
-=== GetImage(RectangleShape,​Int32,​Int32) === +    * Type:[[ThinkGeo.MapSuite.Core.OpenedRasterSourceEventArgs|OpenedRasterSourceEventArgs]] 
-This method returns an image based on the worldExtent and image width and height. +    * Description:​This parameter ​is the event arguments that define ​the parameters passed to the recipient ​of the event.
-==== 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.+
  
-**Return Value** +<div newline></​div>​ 
-  * **Return Type**:[[ThinkGeo.MapSuite.Core.GeoImage|GeoImage]] +** {{wiki:ProtectedMethod.gif|}} OnClosingRasterSource(ClosingRasterSourceEventArgs) ​**
-  ​* **Description**:​This method returns an image based on the worldExtent and image width and height.+
  
-==== Parameters ==== +  * //This method allows you to raise the ClosingRasterSource event from a derived class.// 
-**worldExtent** +== Remarks ​== 
-  * **Type**:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] +  * //You can call this method from a derived class to enable it to raise the ClosingRasterSource eventThis may be useful if you plan to extend the RasterSource and you need access to the eventDetails 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.//
-  * **Description**:This parameter represents ​the worldExtent you want to draw.+
  
-**canvasWidth** +== Return Value == 
-  ​* **Type**:Int32 +  * Type:Void 
-  ​* **Description**:This parameter represents the width of the image you want to draw.+  * Description:​None
  
-**canvasHeight** +== Parameters == 
-  * **Type**:Int32 +  * //e// 
-  * **Description**:This parameter ​represents ​the height ​of the image you want to draw.+    ​* Type:[[ThinkGeo.MapSuite.Core.ClosingRasterSourceEventArgs|ClosingRasterSourceEventArgs]] 
 +    * Description:​This parameter ​is the event arguments that define the parameters passed to the recipient ​of the event.
  
-[[#Public Methods|Go Back]] +<div newline></​div>​ 
-=== GetImageHeight() === +** {{wiki:​ProtectedMethod.gif|}} OnClosedRasterSource(ClosedRasterSourceEventArgs**
-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.+
  
-**Return Value** +  ​//This method allows you to raise the ClosedRasterSource event from a derived class.// 
-  * **Return Type**:​Int32 +== Remarks == 
-  * **Description**:This method ​returns ​the height ​of the image in screen coordinates.+  * //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.//
  
-==== Parameters ==== +== Return Value == 
-[[#Public Methods|Go Back]] +  * Type:Void 
-=== GetImageWidth() === +  * Description:​None
-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.+
  
-**Return Value** +== Parameters == 
-  * **Return ​Type**:Int32 +  * //e// 
-  * **Description**:This method returns ​the width of the image in screen coordinates.+    ​* Type:[[ThinkGeo.MapSuite.Core.ClosedRasterSourceEventArgs|ClosedRasterSourceEventArgs]] 
 +    * Description:​This ​parameter is the event arguments that define the parameters passed to the recipient ​of the event.
  
-==== Parameters ==== +<div newline></​div>​ 
-[[#Public Methods|Go Back]] +** {{wiki:​ProtectedMethod.gif|}} CloneDeepCore() **
-=== GetProjectionText() === +
-This method returns the projection text in proj4 format. +
-==== Remarks ==== +
-None+
  
-**Return Value** +  ​//Create a copy of RasterSource using the deep clone process. The default implementation uses serialization.//​ 
-  * **Return Type**:​String +== Remarks == 
-  * **Description**:This method returns ​the projection text in proj4 format.+  * //The difference between deep clone and shallow clone iswhen 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.//
  
-==== Parameters ==== +== Return Value == 
-[[#Public Methods|Go Back]] +  * Type:[[ThinkGeo.MapSuite.Core.RasterSource|RasterSource]] 
-=== GetType() === +  * Description:​cloned RasterSource.
-N/A +
-==== Remarks ==== +
-N/A+
  
-**Return Value** +== Parameters == 
-  * **Return Type**:Type +<div newline></​div>​ 
-  ​* **Description**:​N/​A+** {{wiki:ProtectedMethod.gif|}} GetImageWidthCore() ​**
  
-==== Parameters ==== +  * //This method returns the width of the image in screen coordinates.// 
-[[#Public Methods|Go Back]] +== Remarks == 
-=== GetVerticalResolution() === +  * //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 imageIt returns ​the width of the image in screen coordinates.//
-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 methodIn 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.+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:Single +  * Type:Int32 
-  ​* **Description**:This method returns the vertical resolution ​of the image.+  * Description:​This method returns the width of the image in screen coordinates.
  
-==== Parameters ​==== +== Parameters == 
-[[#Public Methods|Go Back]] +<div newline></​div>​ 
-=== GetWorldFileText() === +** {{wiki:​ProtectedMethod.gif|}} GetImageHeightCore() **
-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.+
  
-**Return Value** +  ​//This method returns the height of the image in screen coordinates.//​ 
-  * **Return Type**:​String +== Remarks == 
-  * **Description**:​This method returns ​a string that represents ​the image's world file.+  * //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.//
  
-==== Parameters ==== +== Return Value == 
-[[#Public Methods|Go Back]] +  * Type:Int32 
-=== Open() === +  * Description:​This method ​returns ​the height ​of the image in screen coordinates.
-This method ​opens the RasterSource so that it is initialized and ready to use. +
-==== 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.+
  
-**Return Value** +== Parameters == 
-  * **Return Type**:Void +<div newline></​div>​ 
-  ​* **Description**:​None+** {{wiki:ProtectedMethod.gif|}} GetBoundingBoxCore() ​**
  
-==== Parameters ==== +  * //This method returns the bounding box of the RasterSource./​
-[[#Public Methods|Go Back]] +== Remarks == 
-=== ToString() === +  * //This method returns the bounding box of the RasterSource./​/
-N/A +
-==== Remarks ​==== +
-N/A+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:String +  * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  ​* **Description**:N/A+  * Description:​This method returns the bounding box of the RasterSource.
  
-==== Parameters ​==== +== Parameters == 
-[[#Public Methods|Go Back]] +<div newline></​div>​ 
-===== Protected Methods ===== +** {{wiki:​ProtectedMethod.gif|}} GetProjectionTextCore() **
-=== CloneDeepCore() === +
-Create a copy of RasterSource using the deep clone process. The default implementation uses serialization. +
-==== 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.+
  
-**Return Value** +  ​//This method returns the projection text in proj4 format.// 
-  * **Return Type**:​[[ThinkGeo.MapSuite.Core.RasterSource|RasterSource]] +== Remarks == 
-  * **Description**:​A cloned ​RasterSource.+  * //This protected virtual method is called from the concrete public method GetProjectionText.The default implementation of this core method is to throw an exceptionSo you need to overwrite this method to return the RasterSource ​projection text.//
  
-==== Parameters ==== +== Return Value == 
-[[#​Protected Methods|Go Back]] +  * Type:String 
-=== CloseCore() === +  * Description:Projection text string.
-This method opens the RasterSource so that it is initialized and ready to use. +
-==== 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 accountThis 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.+
  
-**Return Value** +== Parameters == 
-  * **Return Type**:Void +<div newline></​div>​ 
-  ​* **Description**:​None+** {{wiki:ProtectedMethod.gif|}} OpenCore() ​**
  
-==== Parameters ==== +  * //This method opens the RasterSource so that it is initialized and ready to use./
-[[#​Protected Methods|Go Back]] +== Remarks == 
-=== Finalize() === +  * //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./​/
-N/A +
-==== Remarks ​==== +
-N/A+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:Void +  * Type:Void 
-  ​* **Description**:N/A+  * Description:​None
  
-==== Parameters ​==== +== Parameters == 
-[[#​Protected Methods|Go Back]] +<div newline></​div>​ 
-=== GetBoundingBoxCore() === +** {{wiki:​ProtectedMethod.gif|}} CloseCore() **
-This method returns the bounding box of the RasterSource. +
-==== Remarks ==== +
-This method returns the bounding box of the RasterSource.+
  
-**Return Value** +  ​//This method opens the RasterSource so that it is initialized and ready to use.// 
-  * **Return Type**:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] +== Remarks == 
-  * **Description**:This method ​returns the bounding box of the RasterSource.+  * //This protected virtual method is called from the concrete public method CloseThe Close method plays an important role in the life cycle of the RasterSourceIt may be called after drawing to release any memory and other resources that were allocated since the Open method was calledIf 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.//
  
-==== Parameters ==== +== Return Value == 
-[[#​Protected Methods|Go Back]] +  * Type:Void 
-=== GetImageCore(RectangleShape,​Int32,​Int32) === +  * Description:​None
-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.+
  
-**Return Value** +== Parameters == 
-  * **Return Type**:[[ThinkGeo.MapSuite.Core.GeoImage|GeoImage]] +<div newline></​div>​ 
-  ​* **Description**:​This method returns an image based on the worldExtent and image width and height.+** {{wiki:ProtectedMethod.gif|}} GetWrappingImageLeft(RectangleShape,​Double,​Double,​RectangleShape) ​**
  
-==== Parameters ==== +  * //N/A// 
-**worldExtent** +== Remarks ​== 
-  * **Type**:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] +  * //N/A//
-  * **Description**:​This parameter represents the worldExtent you want to draw.+
  
-**canvasWidth** +== Return Value == 
-  ​* **Type**:Int32 +  * Type:[[ThinkGeo.MapSuite.Core.GeoImage|GeoImage]] 
-  ​* **Description**:This parameter represents the width of the image you want to draw.+  * Description:​N/A
  
-**canvasHeight** +== Parameters == 
-  * **Type**:Int32 +  * //​boundingBox//​ 
-  * **Description**:This parameter represents the height of the image you want to draw.+    ​* Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
 +    * Description:​N/A
  
-[[#​Protected Methods|Go Back]] +  * //​screenWidth//​ 
-=== GetImageHeightCore() === +    * Type:Double 
-This method returns the height of the image in screen coordinates. +    * Description:​N/​A
-==== 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.+
  
-**Return Value** +  ​//​screenHeight//​ 
-  **Return ​Type**:Int32 +    * Type:Double 
-  * **Description**:This method returns the height of the image in screen coordinates.+    * Description:​N/A
  
-==== Parameters ==== +  * //​wrappingExtent//​ 
-[[#Protected Methods|Go Back]] +    * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-=== GetImageWidthCore() === +    * Description:​N/​A
-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.+
  
-**Return Value** +<div newline></​div>​ 
-  * **Return Type**:Int32 +** {{wiki:ProtectedMethod.gif|}} GetWrappingImageRight(RectangleShape,​Double,​Double,​RectangleShape) ​**
-  ​* **Description**:​This method returns the width of the image in screen coordinates.+
  
-==== Parameters ==== +  * //N/A// 
-[[#​Protected Methods|Go Back]] +== Remarks == 
-=== GetProjectionTextCore() === +  * //N/A//
-This method returns the projection text in proj4 format. +
-==== Remarks ​==== +
-This protected virtual method is called from the concrete public method GetProjectionText.The default implementation of this core method is to throw an exception. So you need to overwrite this method to return the RasterSource projection text.+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:String +  * Type:[[ThinkGeo.MapSuite.Core.GeoImage|GeoImage]] 
-  ​* **Description**:Projection text string.+  * Description:​N/A
  
-==== Parameters ​==== +== Parameters == 
-[[#Protected Methods|Go Back]] +  * //​boundingBox//​ 
-=== MemberwiseClone() === +    * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-N/A +    * Description:​N/A
-==== Remarks ==== +
-N/A+
  
-**Return Value** +  ​//​screenWidth//​ 
-  **Return ​Type**:Object +    * Type:Double 
-  * **Description**:N/A+    * Description:​N/​A
  
-==== Parameters ==== +  * //​screenHeight//​ 
-[[#​Protected Methods|Go Back]] +    * Type:Double 
-=== OnClosedRasterSource(ClosedRasterSourceEventArgs) === +    * Description:N/A
-This method allows you to raise the ClosedRasterSource event from a derived class. +
-==== 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 eventThis 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.+
  
-**Return Value** +  ​//​wrappingExtent//​ 
-  **Return ​Type**:Void +    * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * **Description**:None+    * Description:​N/A
  
-==== Parameters ==== +<div newline></​div>​ 
-**e** +** {{wiki:ProtectedMethod.gif|}} GetImageCore(RectangleShape,​Int32,​Int32) ​**
-  * **Type**:[[ThinkGeo.MapSuite.Core.ClosedRasterSourceEventArgs|ClosedRasterSourceEventArgs]] +
-  ​* **Description**:​This parameter is the event arguments that define the parameters passed to the recipient of the event.+
  
-[[#​Protected Methods|Go Back]] +  * //This method ​returns an image based on the worldExtent and image width and height.// 
-=== OnClosingRasterSource(ClosingRasterSourceEventArgs) === +== Remarks == 
-This method ​allows you to raise the ClosingRasterSource event from a derived class+  * //​This ​method is responsible for returning ​the image based on the parameters passed inAs the core version ​of this method ​is abstractyou will need to override it when creating our own RasterSource.//
-==== 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 methodIt 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 cycleit 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.+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:Void +  * Type:[[ThinkGeo.MapSuite.Core.GeoImage|GeoImage]] 
-  ​* **Description**:None+  * Description:​This method returns an image based on the worldExtent and image width and height.
  
-==== Parameters ​==== +== Parameters == 
-**e** +  //​worldExtent//​ 
-  * **Type**:​[[ThinkGeo.MapSuite.Core.ClosingRasterSourceEventArgs|ClosingRasterSourceEventArgs]] +    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * **Description**:This parameter ​is the event arguments that define the parameters passed ​to the recipient of the event.+    * Description:​This parameter ​represents ​the worldExtent you want to draw.
  
-[[#​Protected Methods|Go Back]] +  * //​canvasWidth//​ 
-=== OnOpenedRasterSource(OpenedRasterSourceEventArgs) === +    * Type:Int32 
-This method allows you to raise the OpenedRasterSource event from a derived class. +    * Description:This parameter represents ​the width of the image you want to draw.
-==== 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.+
  
-**Return Value** +  ​//​canvasHeight//​ 
-  **Return ​Type**:Void +    * Type:Int32 
-  * **Description**:None+    * Description:​This parameter represents the height of the image you want to draw.
  
-==== Parameters ==== +<div newline></​div>​ 
-**e** +** {{wiki:ProtectedMethod.gif|}} Finalize() ​**
-  * **Type**:[[ThinkGeo.MapSuite.Core.OpenedRasterSourceEventArgs|OpenedRasterSourceEventArgs]] +
-  ​* **Description**:​This parameter is the event arguments that define the parameters passed to the recipient of the event.+
  
-[[#​Protected Methods|Go Back]] +  * //N/A// 
-=== OnOpeningRasterSource(OpeningRasterSourceEventArgs) === +== Remarks == 
-This method allows you to raise the OpeningRasterSource event from a derived class. +  * //N/A//
-==== 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.+
  
-**Return Value** +== Return Value == 
-  * **Return ​Type**:Void +  * Type:Void 
-  ​* **Description**:None+  * Description:​N/A
  
-==== Parameters ​==== +== Parameters == 
-**e** +<div newline></​div>​ 
-  * **Type**:[[ThinkGeo.MapSuite.Core.OpeningRasterSourceEventArgs|OpeningRasterSourceEventArgs]] +** {{wiki:ProtectedMethod.gif|}} MemberwiseClone() ​**
-  ​* **Description**:​This parameter is the event arguments that define the parameters passed to the recipient of the event.+
  
-[[#​Protected Methods|Go Back]] +  * //N/A// 
-=== OpenCore() === +== Remarks == 
-This method opens the RasterSource so that it is initialized and ready to use. +  * //N/A//
-==== 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.+
  
-**Return Value** +== Return Value == 
-  * **Return Type**:Void +  ​Type:Object 
-  * **Description**:None+  * Description:​N/​A 
 + 
 +== Parameters == 
 +<div newline></​div>​ 
 +==== Public Properties ==== 
 +** {{wiki:​PublicProperty.gif|}} Projection ** 
 + 
 +N/A 
 +== Remarks == 
 +N/A 
 +== Return ​Value == 
 +  * Type:​[[ThinkGeo.MapSuite.Core.Projection|Projection]] 
 + 
 +** {{wiki:PublicProperty.gif|}} Transparency ** 
 + 
 +This property gets and sets the amount of transparency to apply to the image. 
 +== Remarks == 
 +None 
 +== Return Value == 
 +  * Type:​Single 
 + 
 +** {{wiki:​PublicProperty.gif|}} BlueTranslation ​**
  
-==== Parameters ==== 
-[[#​Protected Methods|Go Back]] 
-===== Public Properties ===== 
-=== BlueTranslation === 
 This property gets and sets the amount of blue to apply to the image. This property gets and sets the amount of blue to apply to the image.
-==== Remarks ​====+== Remarks ==
 None None
-==== Return Value ==== +== Return Value == 
-**Return ​Type**:Single+  * Type:Single
  
-[[#Public Properties|Go Back]] +** {{wiki:​PublicProperty.gif|}} RedTranslation ** 
-=== GreenTranslation === + 
-This property gets and sets the amount of green to apply to the image. +This property gets and sets the amount of red to apply to the image. 
-==== Remarks ​====+== Remarks ==
 None None
-==== Return Value ==== +== Return Value == 
-**Return ​Type**:Single+  * Type:Single
  
-[[#Public Properties|Go Back]] +** {{wiki:​PublicProperty.gif|}} GreenTranslation ​**
-=== HasProjectionText === +
-This property returns true if the RasterSource has projection text, false if not. +
-==== Remarks ==== +
-Before you call GetProjectionText method, you should check this property to ensure that your RasterSource has projection information. It will throw an exception if there is no projection information in the RasterSource. +
-==== Return Value ==== +
-**Return Type**:Boolean+
  
-[[#Public Properties|Go Back]] +This property gets and sets the amount of green to apply to the image. 
-=== IsGrayscale === +== Remarks ==
-This property gets and sets if the image should be converted to grayscale+
-==== Remarks ​====+
 None None
-==== Return Value ==== +== Return Value == 
-**Return ​Type**:Boolean+  * Type:Single 
 + 
 +** {{wiki:PublicProperty.gif|}} IsNegative **
  
-[[#Public Properties|Go Back]] 
-=== IsNegative === 
 This property gets and sets whether the image should be converted to negative (inverse colors). This property gets and sets whether the image should be converted to negative (inverse colors).
-==== Remarks ​====+== Remarks ==
 None None
-==== Return Value ==== +== Return Value == 
-**Return Type**:Boolean+  Type:​Boolean 
 + 
 +** {{wiki:​PublicProperty.gif|}} IsGrayscale ** 
 + 
 +This property gets and sets if the image should be converted to grayscale. 
 +== Remarks == 
 +None 
 +== Return ​Value == 
 +  * Type:Boolean 
 + 
 +** {{wiki:PublicProperty.gif|}} IsOpen **
  
-[[#Public Properties|Go Back]] 
-=== IsOpen === 
 This property returns true if the RasterSource is open and false if it is not. This property returns true if the RasterSource is open and false if it is not.
-==== Remarks ​====+== 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. 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.
-==== Return Value ==== +== Return Value == 
-**Return ​Type**:Boolean+  * Type:​Boolean
  
-[[#Public Properties|Go Back]] +** {{wiki:PublicProperty.gif|}} HasProjectionText **
-=== Projection === +
-N/A +
-==== Remarks ==== +
-N/A +
-==== Return Value ==== +
-**Return Type**:[[ThinkGeo.MapSuite.Core.Projection|Projection]]+
  
-[[#Public Properties|Go Back]] +This property ​returns true if the RasterSource has projection text, false if not
-=== RedTranslation === +== Remarks == 
-This property ​gets and sets the amount of red to apply to the image+Before you call GetProjectionText method, you should check this property to ensure that your RasterSource has projection information. It will throw an exception if there is no projection information in the RasterSource. 
-==== Remarks ​==== +== Return Value == 
-None +  * Type:Boolean
-==== Return Value ==== +
-**Return ​Type**:Single+
  
-[[#Public Properties|Go Back]] +==== Protected Properties ​==== 
-=== Transparency ​=== +** {{wiki:​ProtectedProperty.gif|}} HasProjectionTextCore ​**
-This property gets and sets the amount of transparency to apply to the image. +
-==== Remarks ==== +
-None +
-==== Return Value ==== +
-**Return Type**:Single+
  
-[[#Public Properties|Go Back]] 
-===== Protected Properties ===== 
-=== HasProjectionTextCore === 
 This property returns true if the RasterSource has projection text, false if not. This property returns true if the RasterSource has projection text, false if not.
-==== Remarks ​====+== Remarks ==
 This protected virtual method is called from the concrete public property HasProjectionText. The default implementation for this method returns false. So if you inherit RasterSource,​ please ensure that you override this virtual property to return the correct projection status of your RasterSource.We will check the HasProjectionText status before you call the GetProjectionText method. It will throw an exception if the HasProjectionText property returns false. This protected virtual method is called from the concrete public property HasProjectionText. The default implementation for this method returns false. So if you inherit RasterSource,​ please ensure that you override this virtual property to return the correct projection status of your RasterSource.We will check the HasProjectionText status before you call the GetProjectionText method. It will throw an exception if the HasProjectionText property returns false.
-==== Return Value ==== +== Return Value == 
-**Return ​Type**:Boolean+  * Type:​Boolean
  
-[[#​Protected Properties|Go Back]] +==== Public Events ==== 
-===== Public Events ​===== +** {{wiki:​PublicEvent.gif|}} OpeningRasterSource ** 
-=== ClosedRasterSource === +This event is called ​before ​the opening ​of the RasterSource. 
-This event is called ​after the closing ​of the RasterSource. +== Remarks == 
-==== 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.
-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.+
  
-**Event Arguments**:​[[ThinkGeo.MapSuite.Core.ClosedRasterSourceEventArgs|ClosedRasterSourceEventArgs]]+Event Arguments:​[[ThinkGeo.MapSuite.Core.OpeningRasterSourceEventArgs|OpeningRasterSourceEventArgs]]
  
-[[#Public Events|Go Back]] +** {{wiki:​PublicEvent.gif|}} OpenedRasterSource ** 
-=== ClosingRasterSource ​===+This event is called after the opening of the RasterSource. 
 +== 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. 
 + 
 +Event Arguments:[[ThinkGeo.MapSuite.Core.OpenedRasterSourceEventArgs|OpenedRasterSourceEventArgs]] 
 + 
 +** {{wiki:​PublicEvent.gif|}} ​ClosingRasterSource ​**
 This event is called before the closing of the RasterSource. This event is called before the closing of the RasterSource.
-==== Remarks ​====+== 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. 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.
  
-**Event Arguments**:​[[ThinkGeo.MapSuite.Core.ClosingRasterSourceEventArgs|ClosingRasterSourceEventArgs]]+Event Arguments:​[[ThinkGeo.MapSuite.Core.ClosingRasterSourceEventArgs|ClosingRasterSourceEventArgs]]
  
-[[#Public Events|Go Back]] +** {{wiki:​PublicEvent.gif|}} ClosedRasterSource ** 
-=== OpenedRasterSource === +This event is called after the closing ​of the RasterSource. 
-This event is called after the opening ​of the RasterSource. +== Remarks == 
-==== 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.
-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. +
- +
-**Event Arguments**:​[[ThinkGeo.MapSuite.Core.OpenedRasterSourceEventArgs|OpenedRasterSourceEventArgs]] +
- +
-[[#Public Events|Go Back]] +
-=== OpeningRasterSource === +
-This event is called before the opening of the RasterSource. +
-==== 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.+
  
-**Event Arguments**:​[[ThinkGeo.MapSuite.Core.OpeningRasterSourceEventArgs|OpeningRasterSourceEventArgs]]+Event Arguments:​[[ThinkGeo.MapSuite.Core.ClosedRasterSourceEventArgs|ClosedRasterSourceEventArgs]]
  
-[[#Public Events|Go Back]] 
  
thinkgeo.mapsuite.core.rastersource.1442486295.txt.gz · Last modified: 2015/09/17 10:38 by admin