Converts an existing high precision spatial reference and returns a new low precision spatial reference.
[C#]
///<summary>Converts an existing high precision spatial reference and returns a new low precision spatial reference.</summary> /// ///<param name="highSpatialReference">An ISpatialReference interface that is a high precision spatial reference.</param> ///<param name="envelope">An IEnvelope that is the area covering the extent of the new low precision spatial reference.</param> /// ///<returns>An ISpatialReference interface that is the new low precision spatial reference.</returns> /// ///<remarks></remarks> public ESRI.ArcGIS.Geometry.ISpatialReference ConvertSpatialReferenceFromHighToLowPrecision(ESRI.ArcGIS.Geometry.ISpatialReference highSpatialReference, ESRI.ArcGIS.Geometry.IEnvelope envelope) { ESRI.ArcGIS.Geometry.IControlPrecision2 controlPrecision2 = highSpatialReference as ESRI.ArcGIS.Geometry.IControlPrecision2; // Dynamic Cast ESRI.ArcGIS.Geometry.ISpatialReference lowSpatialReference = null; if (controlPrecision2.IsHighPrecision) { ESRI.ArcGIS.Geometry.ISpatialReferenceFactory3 spatialReferenceFactory3 = new ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmentClass(); try { lowSpatialReference = spatialReferenceFactory3.ConstructLowPrecisionSpatialReference(true, highSpatialReference, envelope); } catch (System.Runtime.InteropServices.COMException ex) { if (ex.ErrorCode == -2147220986) { lowSpatialReference = spatialReferenceFactory3.ConstructLowPrecisionSpatialReference(false, highSpatialReference, envelope); } } return lowSpatialReference; } return null; }
[Visual Basic .NET]
'''<summary>Converts an existing high precision spatial reference and returns a new low precision spatial reference.</summary> ''' '''<param name="highSpatialReference">An ISpatialReference interface that is a high precision spatial reference.</param> '''<param name="envelope">An IEnvelope that is the area covering the extent of the new low precision spatial reference.</param> ''' '''<returns>An ISpatialReference interface that is the new low precision spatial reference.</returns> ''' '''<remarks></remarks> Public Function ConvertSpatialReferenceFromHighToLowPrecision(ByVal highSpatialReference As ESRI.ArcGIS.Geometry.ISpatialReference, ByVal envelope As ESRI.ArcGIS.Geometry.IEnvelope) As ESRI.ArcGIS.Geometry.ISpatialReference Dim controlPrecision2 As ESRI.ArcGIS.Geometry.IControlPrecision2 = CType(highSpatialReference, ESRI.ArcGIS.Geometry.IControlPrecision2) ' Explicit Cast Dim lowSpatialReference As ESRI.ArcGIS.Geometry.ISpatialReference = Nothing If controlPrecision2.IsHighPrecision Then Dim spatialReferenceFactory3 As ESRI.ArcGIS.Geometry.ISpatialReferenceFactory3 = New ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmentClass Try lowSpatialReference = spatialReferenceFactory3.ConstructLowPrecisionSpatialReference(True, highSpatialReference, envelope) Catch ex As System.Runtime.InteropServices.COMException If ex.ErrorCode = -2147220986 Then lowSpatialReference = spatialReferenceFactory3.ConstructLowPrecisionSpatialReference(False, highSpatialReference, envelope) End If End Try Return lowSpatialReference End If Return Nothing End Function