9 votos

¿Obtener unidades de ISpatialReference de ArcObjects?

¿Cómo puedo obtener las unidades (metros/pies) de un objeto ISpatialReference en ArcObjects?

12voto

Nathan Bedford Puntos 3157

Las unidades lineales pueden obtenerse a partir de la referencia espacial sólo si se trata de un sistema de coordenadas proyectadas. Por lo tanto, es necesario convertir la referencia espacial en IProjectedCoordinateSystem y acceder a su IProjectedCoordinateSystem.CoordinateUnit propiedad.

Pero si la referencia espacial es un sistema de coordenadas geográficas, sus unidades son angulares y se accede a ellas de forma similar a través de IGeographicCoordinateSystem.CoordinateUnit .

1 votos

+1 La propiedad ILinearUnit.MetersPerUnit también puede ahorrarle escribir mucho código.

0voto

oloopy Puntos 11
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;
        }

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X