ArcObjectsのISpatialReferenceからユニットを取得していますか?


9

ArcObjectsのISpatialReferenceオブジェクトから単位(メートル/フィート)を取得するにはどうすればよいですか?

回答:


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;
        }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.