Antworten:
Lineare Einheiten können nur dann aus dem Raumbezug erhalten werden, wenn es sich um ein projiziertes Koordinatensystem handelt. Sie müssen also den räumlichen Verweis in IProjectedCoordinateSystem umwandeln und auf die IProjectedCoordinateSystem.CoordinateUnit- Eigenschaft zugreifen .
Wenn der Raumbezug jedoch ein geografisches Koordinatensystem ist, sind seine Einheiten eckig und werden in ähnlicher Weise über IGeographicCoordinateSystem.CoordinateUnit aufgerufen .
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;
}