Obtendo unidades do ISpatialReference of ArcObjects?

9

Como obtenho as unidades (metros / pés) de um objeto ISpatialReference no ArcObjects?

user2449
fonte

Respostas:

12

As unidades lineares podem ser obtidas a partir da referência espacial apenas se for um sistema de coordenadas projetado. Portanto, você precisa converter a referência espacial para IProjectedCoordinateSystem e acessar sua propriedade IProjectedCoordinateSystem.CoordinateUnit .

Mas se a referência espacial for um sistema de coordenadas geográficas, suas unidades serão angulares e acessadas de maneira semelhante por meio do IGeographicCoordinateSystem.CoordinateUnit .

Petr Krebs
fonte
11
+1 A propriedade ILinearUnit.MetersPerUnit também pode evitar que você escreva muito código.
precisa saber é o seguinte
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;
        }
Chris Stayte
fonte