Lấy các đơn vị từ ISpatialReference của ArcObjects?


Câu trả lời:


12

Các đơn vị tuyến tính có thể được lấy từ tham chiếu không gian chỉ khi nó là một hệ tọa độ dự kiến. Vì vậy, bạn cần truyền tham chiếu không gian đến IProjectionCoordinateSystem và truy cập vào thuộc tính IProjectionCoordinateSystem.CoordinateUnit của nó .

Nhưng nếu tham chiếu không gian là một hệ tọa độ địa lý, các đơn vị của nó có góc cạnh và được truy cập tương tự thông qua IGeographicCoordinateSystem.CoordineUnit .


1
+1 Thuộc tính ILinearUnit.MeterPerUnit cũng có thể giúp bạn tiết kiệm được rất nhiều mã.
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;
        }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.