IDistanceConverter Interface
Provides access to methods that allow a distance to be converted from one unit system to another.
Product Availability
Available with ArcGIS Desktop.
Members
|
Name |
Description |
|
GetValue |
Converts the string value to a double. |
Classes that implement IDistanceConverter
[C#] ///
/// IDistanceConverter example that shows how to convert a distance string /// to another linear unit. /// NOTE: Only projected coordinates systems will work ///
public void ConvertDistance()
{
IDistanceConverter distanceConverter = new DistanceConverter();
// IDistanceConverter::GetValue requires a spatial reference
//Get the spatial reference required from the current map
UID editorUID = new UIDClass();
editorUID.Value = "esriEditor.Editor";
IEditor editor = m_application.FindExtensionByCLSID(editorUID) as IEditor;
ISpatialReference spatialReference = editor.Map.SpatialReference;
//convert
distanceConverter.GetValue("150 ft", spatialReference);
System.Windows.Forms.MessageBox.Show("" +(distanceConverter.GetValue("150 ft", spatialReference)));
// Create an arbitrary SpatialReference, the only important part is the
// linear units
ISpatialReferenceFactory2 spatialReferenceFactory = new SpatialReferenceEnvironment() as ISpatialReferenceFactory2;
IProjectedCoordinateSystem projectedCoordinateSystem = spatialReferenceFactory.CreateProjectedCoordinateSystem((int)esriSRProjCSType.esriSRProjCS_WGS1984UTM_10N);
ILinearUnit linearUnit = spatialReferenceFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Foot) as ILinearUnit;
IProjectedCoordinateSystemEdit projectedCoordinateSystemEdit = projectedCoordinateSystem as IProjectedCoordinateSystemEdit;
//overhead casts
object linearUnitObject = linearUnit;
object missing = Type.Missing;
projectedCoordinateSystemEdit.Define(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref linearUnitObject, ref missing, ref missing);
spatialReference = projectedCoordinateSystem;
System.Windows.Forms.MessageBox.Show("" + (distanceConverter.GetValue("100m", spatialReference)));
}