Jak uzyskać jednostki (metr / stopy) z obiektu ISpatialReference w ArcObjects?
Jak uzyskać jednostki (metr / stopy) z obiektu ISpatialReference w ArcObjects?
Odpowiedzi:
Jednostki liniowe można uzyskać z odniesienia przestrzennego tylko wtedy, gdy jest to rzutowany układ współrzędnych. Musisz więc rzutować odwołanie przestrzenne do IProjectedCoordinateSystem i uzyskać dostęp do jego właściwości IProjectedCoordinateSystem.CoordinateUnit .
Ale jeśli odniesieniem przestrzennym jest geograficzny układ współrzędnych, jego jednostki są kątowe i są dostępne podobnie poprzez IGeographicCoordinateSystem.CoordinateUnit .
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;
}