Obtendo unidades do ISpatialReference of ArcObjects?


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 .


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;
        }
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.