Risposte:
Le unità lineari possono essere ottenute dal riferimento spaziale solo se si tratta di un sistema di coordinate proiettato. Pertanto, è necessario eseguire il cast del riferimento spaziale a IProjectedCoordinateSystem e accedere alla sua proprietà IProjectedCoordinateSystem.CoordinateUnit .
Ma se il riferimento spaziale è un sistema di coordinate geografiche, le sue unità sono angolari e vi si accede in modo simile tramite 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;
}