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