¿Obteniendo unidades de ISpatialReference of ArcObjects?


Respuestas:


12

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 .


1
+1 La propiedad ILinearUnit.MetersPerUnit también puede evitar que escriba mucho código.
Kirk Kuykendall

0
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;
        }
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.