Mendapatkan unit dari ISpatialReference of ArcObjects?


Jawaban:


12

Unit linier dapat diperoleh dari referensi spasial hanya jika itu adalah sistem koordinat yang diproyeksikan. Jadi, Anda perlu memberikan referensi spasial ke IProjectedCoordinateSystem dan mengakses properti IProjectedCoordinateSystem.CoordinateUnit .

Tetapi jika referensi spasial adalah sistem koordinat geografis, unit-unitnya bersudut dan diakses dengan cara yang sama melalui IGeographicCoordinateSystem.CoordinateUnit .


1
+1 Properti ILinearUnit.MetersPerUnit juga dapat menyelamatkan Anda dari menulis banyak kode.
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;
        }
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.