¿Cómo obtengo las unidades (metros / pies) de un objeto ISpatialReference en ArcObjects?
¿Cómo obtengo las unidades (metros / pies) de un objeto ISpatialReference en ArcObjects?
Respuestas:
Las unidades lineales se pueden obtener de la referencia espacial solo si se trata de un sistema de coordenadas proyectadas. Por lo tanto, debe convertir la referencia espacial a IProjectedCoordinateSystem y acceder a su propiedad IProjectedCoordinateSystem.CoordinateUnit .
Pero si la referencia espacial es un sistema de coordenadas geográficas, sus unidades son angulares y se accede de manera similar a través de 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;
}