====== ThinkGeo.Core.ProjectionConverter ======
===== Inheritance Hierarchy =====
*System.Object
***ThinkGeo.Core.ProjectionConverter**
*[[ThinkGeo.Core.RotationProjectionConverter]]
===== Members Summary =====
==== Public Constructors ====
** {{wiki:PublicMethod.gif|}} ProjectionConverter() **
* //This is the default constructor for this class.//
== Remarks ==
* //This conctructor pass nothing. After this cconstructor , you should set the InternalProjectionParametersString property and ExternalProjectionParametersString property before open to use.//
== Parameters ==
** {{wiki:PublicMethod.gif|}} ProjectionConverter(String,String) **
* //N/A//
== Remarks ==
* //N/A//
== Parameters ==
* //internalProjString//
* Type:String
* Description:N/A
* //externalProjString//
* Type:String
* Description:N/A
** {{wiki:PublicMethod.gif|}} ProjectionConverter(Int32,Int32) **
* //N/A//
== Remarks ==
* //N/A//
== Parameters ==
* //internalSrid//
* Type:Int32
* Description:N/A
* //externalSrid//
* Type:Int32
* Description:N/A
** {{wiki:PublicMethod.gif|}} ProjectionConverter(String,Int32) **
* //N/A//
== Remarks ==
* //N/A//
== Parameters ==
* //internalProjString//
* Type:String
* Description:N/A
* //externalSrid//
* Type:Int32
* Description:N/A
** {{wiki:PublicMethod.gif|}} ProjectionConverter(Int32,String) **
* //N/A//
== Remarks ==
* //N/A//
== Parameters ==
* //internalSridString//
* Type:Int32
* Description:N/A
* //externalProjString//
* Type:String
* Description:N/A
** {{wiki:PublicMethod.gif|}} ProjectionConverter(Projection,Projection) **
* //This is a constructor for the class.//
== Remarks ==
* //This constructor allows you to pass in Proj4 text parameters for the to and from projection. The parameters typically look like "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" You should use this constructor when you know the parameters. If you know the SRID directly you can use the other constructor that takes the SRID.//
== Parameters ==
* //internalProjection//
* Type:[[ThinkGeo.Core.Projection|Projection]]
* Description:This parameter is the projection parameters describing the data.
* //externalProjection//
* Type:[[ThinkGeo.Core.Projection|Projection]]
* Description:This parameter is the projection parameters describing the projection you want to go to.
==== Protected Constructors ====
==== Public Methods ====
** {{wiki:PublicMethod.gif|}} Open() **
* //N/A//
== Remarks ==
* //This method opens the projection and gets it ready to use. 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 ==
* Type:Void
* Description:None
== Parameters ==
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(GeoImage,RectangleShape,RectangleShape,Int32,Int32) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:[[ThinkGeo.Core.RasterProjectionResult|RasterProjectionResult]]
* Description:N/A
== Parameters ==
* //image//
* Type:[[ThinkGeo.Core.GeoImage|GeoImage]]
* Description:N/A
* //imageExtent//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:N/A
* //targetExtent//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:N/A
* //width//
* Type:Int32
* Description:N/A
* //height//
* Type:Int32
* Description:N/A
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(GeoImage,RectangleShape) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:[[ThinkGeo.Core.RasterProjectionResult|RasterProjectionResult]]
* Description:N/A
== Parameters ==
* //image//
* Type:[[ThinkGeo.Core.GeoImage|GeoImage]]
* Description:N/A
* //imageExtent//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:N/A
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(GeoImage,RectangleShape,RectangleShape) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:[[ThinkGeo.Core.RasterProjectionResult|RasterProjectionResult]]
* Description:N/A
== Parameters ==
* //image//
* Type:[[ThinkGeo.Core.GeoImage|GeoImage]]
* Description:N/A
* //imageExtent//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:N/A
* //targetExtent//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:N/A
** {{wiki:PublicMethod.gif|}} Close() **
* //N/A//
== Remarks ==
* //This method closes the projection and gets it ready for serialization if necessary. 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 ==
* Type:Void
* Description:None
== Parameters ==
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(Double,Double) **
* //N/A//
== Remarks ==
* //This method returns a projected vertex based on the coordinates passed in. 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 ==
* Type:[[ThinkGeo.Core.Vertex|Vertex]]
* Description:This method returns a projected vertex based on the coordinates passed in.
== Parameters ==
* //x//
* Type:Double
* Description:This parameter is the X decimalDegreesValue of the point that will be projected.
* //y//
* Type:Double
* Description:This parameter is the Y decimalDegreesValue of the point that will be projected.
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(BaseShape) **
* //N/A//
== Remarks ==
* //This method returns a projected baseShape based on the BaseShape passed in. 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 ==
* Type:[[ThinkGeo.Core.BaseShape|BaseShape]]
* Description:This method returns a projected baseShape for the passed-in BaseShape.
== Parameters ==
* //baseShape//
* Type:[[ThinkGeo.Core.BaseShape|BaseShape]]
* Description:This parameter is the baseShape (in decimalDegreesValue) to be projected.
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(Feature) **
* //N/A//
== Remarks ==
* //This method returns a projected Feature based on the Feature passed in. 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 ==
* Type:[[ThinkGeo.Core.Feature|Feature]]
* Description:This method returns a projected Feature for the passed-in Feature.
== Parameters ==
* //feature//
* Type:[[ThinkGeo.Core.Feature|Feature]]
* Description:This parameter is the Feature that contains a BaseShape in decimalDegreesValue to be projected.
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(IEnumerable) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Collection<[[ThinkGeo.Core.Feature|Feature]]>
* Description:N/A
== Parameters ==
* //features//
* Type:IEnumerable<[[ThinkGeo.Core.Feature|Feature]]>
* Description:N/A
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(RectangleShape) **
* //N/A//
== Remarks ==
* //This method returns a projected rectangle based on the rectangle passed in.//
== Return Value ==
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:This method returns a projected rectangle based on the rectangle passed in.
== Parameters ==
* //rectangleShape//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:This parameter represents the rectangle you want to project.
** {{wiki:PublicMethod.gif|}} ConvertToExternalProjection(IEnumerable) **
* //N/A//
== Remarks ==
* //This method returns a projected vertex based on the coordinates passed in. You will need to override this method for the Projection class. Typically, you can call the projection utility library that has interfaces for dozens of different types of projections.//
== Return Value ==
* Type:Collection<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:This method returns projected vertices based on the coordinates passed in.
== Parameters ==
* //vertices//
* Type:IEnumerable<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:This parameter is the vertices that will be projected.
** {{wiki:PublicMethod.gif|}} ConvertToInternalProjection(Double,Double) **
* //N/A//
== Remarks ==
* //This method returns a de-projected vertex based on the coordinates passed in. 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 ==
* Type:[[ThinkGeo.Core.Vertex|Vertex]]
* Description:This method returns a de-projected vertex based on the coordinates passed in.
== Parameters ==
* //x//
* Type:Double
* Description:This parameter is the X decimalDegreesValue of the point that will be de-projected.
* //y//
* Type:Double
* Description:This parameter is the Y decimalDegreesValue of the point that will be de-projected.
** {{wiki:PublicMethod.gif|}} ConvertToInternalProjection(BaseShape) **
* //N/A//
== Remarks ==
* //This method returns a de-projected BaseShape based on the BaseShape passed in. 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 ==
* Type:[[ThinkGeo.Core.BaseShape|BaseShape]]
* Description:This method returns a de-projected BaseShape for the passed in BaseShape.
== Parameters ==
* //baseShape//
* Type:[[ThinkGeo.Core.BaseShape|BaseShape]]
* Description:This parameter is the baseShape (in decimalDegreesValue) to be de-projected.
** {{wiki:PublicMethod.gif|}} ConvertToInternalProjection(Feature) **
* //N/A//
== Remarks ==
* //This method returns a de-projected Feature based on the Feature passed in. 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 ==
* Type:[[ThinkGeo.Core.Feature|Feature]]
* Description:This method returns a de-projected Feature for the passed-in Feature.
== Parameters ==
* //feature//
* Type:[[ThinkGeo.Core.Feature|Feature]]
* Description:This parameter is the Feature that contains a BaseShape in decimalDegreesValue to be de-projected.
** {{wiki:PublicMethod.gif|}} ConvertToInternalProjection(IEnumerable) **
* //N/A//
== Remarks ==
* //This method returns a de-projected vertex based on the coordinates passed in. The de-projection is important because, inside of the FeatureSource, you will in many cases go to and from various projections.//
== Return Value ==
* Type:Collection<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:This method returns de-projected vertices based on the coordinates passed in.
== Parameters ==
* //vertices//
* Type:IEnumerable<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:This parameter is the vertices that will be de-projected.
** {{wiki:PublicMethod.gif|}} ConvertToInternalProjection(RectangleShape) **
* //N/A//
== Remarks ==
* //This method returns a de-projected rectangle based on the rectangle passed in.//
== Return Value ==
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:This method returns a de-projected rectangle based on the rectangle passed in.
== Parameters ==
* //rectangleShape//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:This parameter represents the rectangle you want to de-project.
** {{wiki:PublicMethod.gif|}} GetType() **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Type
* Description:N/A
== Parameters ==
** {{wiki:PublicMethod.gif|}} ToString() **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:String
* Description:N/A
== Parameters ==
** {{wiki:PublicMethod.gif|}} Equals(Object) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Boolean
* Description:N/A
== Parameters ==
* //obj//
* Type:Object
* Description:N/A
** {{wiki:PublicMethod.gif|}} GetHashCode() **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Int32
* Description:N/A
== Parameters ==
===== Protected Methods =====
** {{wiki:ProtectedMethod.gif|}} ConvertToExternalProjectionCore(GeoImage,RectangleShape,RectangleShape,Int32,Int32) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:[[ThinkGeo.Core.RasterProjectionResult|RasterProjectionResult]]
* Description:N/A
== Parameters ==
* //image//
* Type:[[ThinkGeo.Core.GeoImage|GeoImage]]
* Description:N/A
* //imageExtent//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:N/A
* //targetExtent//
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
* Description:N/A
* //width//
* Type:Int32
* Description:N/A
* //height//
* Type:Int32
* Description:N/A
** {{wiki:ProtectedMethod.gif|}} OpenCore() **
* //N/A//
== Remarks ==
* //As this is the core version of the Open method, it is intended to be overridden in an inherited version of the class. When overriding, you will be responsible for getting the projection classes' state ready for doing projections.//
== Return Value ==
* Type:Void
* Description:None
== Parameters ==
** {{wiki:ProtectedMethod.gif|}} CloseCore() **
* //N/A//
== Remarks ==
* //As this is the core version of the Close method, it is intended to be overridden in an inherited version of the class. When overriding, you will be responsible freeing any state you have maintained and getting the class ready for serialization if necessary. Note that the object may be opened again, so you want to make sure you can open and close the object multiple times without any ill effects.//
== Return Value ==
* Type:Void
* Description:None
== Parameters ==
** {{wiki:ProtectedMethod.gif|}} UpdateToExternalProjection(Feature) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Void
* Description:N/A
== Parameters ==
* //feature//
* Type:[[ThinkGeo.Core.Feature|Feature]]
* Description:N/A
** {{wiki:ProtectedMethod.gif|}} ConvertToExternalProjectionCore(IEnumerable) **
* //N/A//
== Remarks ==
* //This method returns a projected vertex based on the coordinates passed in. You will need to override this method for the Projection class. Typically, you can call the projection utility library that has interfaces for dozens of different types of projections.//
== Return Value ==
* Type:Collection<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:This method returns projected vertices based on the coordinates passed in.
== Parameters ==
* //verticies//
* Type:IEnumerable<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:N/A
** {{wiki:ProtectedMethod.gif|}} ConvertToInternalProjectionCore(IEnumerable) **
* //N/A//
== Remarks ==
* //This method returns a de-projected vertex based on the coordinates passed in. You will need to override this method for the Projection class. Typically, you can call the projection utility library that has interfaces for dozens of different types of projections. The de-projection is important because, inside of the FeatureSource, you will in many cases go to and from various projections.//
== Return Value ==
* Type:Collection<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:This method returns de-projected vertices based on the coordinates passed in.
== Parameters ==
* //verticies//
* Type:IEnumerable<[[ThinkGeo.Core.Vertex|Vertex]]>
* Description:N/A
** {{wiki:ProtectedMethod.gif|}} UpdateToInternalProjection(Feature) **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Void
* Description:N/A
== Parameters ==
* //feature//
* Type:[[ThinkGeo.Core.Feature|Feature]]
* Description:N/A
** {{wiki:ProtectedMethod.gif|}} MemberwiseClone() **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Object
* Description:N/A
== Parameters ==
** {{wiki:ProtectedMethod.gif|}} Finalize() **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Void
* Description:N/A
== Parameters ==
==== Public Properties ====
** {{wiki:PublicProperty.gif|}} DecimalDegreeBoundary **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:[[ThinkGeo.Core.RectangleShape|RectangleShape]]
** {{wiki:PublicProperty.gif|}} InternalProjection **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:[[ThinkGeo.Core.Projection|Projection]]
** {{wiki:PublicProperty.gif|}} ExternalProjection **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:[[ThinkGeo.Core.Projection|Projection]]
** {{wiki:PublicProperty.gif|}} IsOpen **
* //N/A//
== Remarks ==
* //This method will reflect whether the projection is opened or closed. It is set in the concrete methods Open and Close, so if you inherit from this class and override OpenCore or CloseCore, you will not need to be concerned with setting this property.//
== Return Value ==
* Type:Boolean
** {{wiki:PublicProperty.gif|}} CanConvertRasterToExternalProjection **
* //N/A//
== Remarks ==
* //N/A//
== Return Value ==
* Type:Boolean
==== Protected Properties ====
==== Public Events ====