Réponses:
Les unités linéaires ne peuvent être obtenues à partir de la référence spatiale que s'il s'agit d'un système de coordonnées projeté. Vous devez donc convertir la référence spatiale en IProjectedCoordinateSystem et accéder à sa propriété IProjectedCoordinateSystem.CoordinateUnit .
Mais si la référence spatiale est un système de coordonnées géographiques, ses unités sont angulaires et accessibles de la même manière via IGeographicCoordinateSystem.CoordinateUnit .
IFields fields = featureClass.Fields;
ISpatialReference spatialReference = fields.get_Field(fields.FindField(featureClass.ShapeFieldName)).GeometryDef.SpatialReference;
if (spatialReference is IProjectedCoordinateSystem)
{
IProjectedCoordinateSystem projectedCoordinateSystem = (IProjectedCoordinateSystem)spatialReference;
return projectedCoordinateSystem.CoordinateUnit.Name;
}
if (spatialReference is IGeographicCoordinateSystem)
{
IGeographicCoordinateSystem geographicCoordinateSystem = (IGeographicCoordinateSystem)spatialReference;
return geographicCoordinateSystem.CoordinateUnit.Name;
}