Отримання одиниць з ISpatialReference ArcObjects?


Відповіді:


12

Лінійні одиниці можна отримати з просторової орієнтації, лише якщо це проектована система координат. Отже, вам потрібно навести просторове посилання на IProjectedCoordinateSystem та отримати доступ до його властивості IProjectedCoordinateSystem.CoordinateUnit .

Але якщо просторова довідка є географічною системою координат, її одиниці є кутовими та доступними аналогічно через IGeographicCoordinateSystem.CoordinateUnit .


1
+1 Властивість ILinearUnit.MetersPerUnit також може врятувати вас від написання великого коду.
Кірк Куйкендалл

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;
        }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.