Pozyskiwanie jednostek od ISpatialReference of ArcObjects?


Odpowiedzi:


12

Jednostki liniowe można uzyskać z odniesienia przestrzennego tylko wtedy, gdy jest to rzutowany układ współrzędnych. Musisz więc rzutować odwołanie przestrzenne do IProjectedCoordinateSystem i uzyskać dostęp do jego właściwości IProjectedCoordinateSystem.CoordinateUnit .

Ale jeśli odniesieniem przestrzennym jest geograficzny układ współrzędnych, jego jednostki są kątowe i są dostępne podobnie poprzez IGeographicCoordinateSystem.CoordinateUnit .


1
+1 Właściwość ILinearUnit.MetersPerUnit może również uratować Cię przed pisaniem dużej ilości kodu.
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;
        }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.