Mendapatkan unit dari ISpatialReference of ArcObjects?

9

Bagaimana cara mendapatkan unit (meter / kaki) dari objek ISpatialReference di ArcObjects?

pengguna2449
sumber

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 .

Petr Krebs
sumber
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;
        }
Chris Stayte
sumber