ฉันจะรับหน่วย (เมตร / ฟุต) จากวัตถุ ISpatialReference ใน ArcObjects ได้อย่างไร
ฉันจะรับหน่วย (เมตร / ฟุต) จากวัตถุ ISpatialReference ใน ArcObjects ได้อย่างไร
คำตอบ:
หน่วยเชิงเส้นสามารถรับได้จากการอ้างอิงเชิงพื้นที่เฉพาะถ้ามันเป็นระบบพิกัดที่คาดการณ์ไว้ ดังนั้นคุณจะต้องโยนอ้างอิงเชิงพื้นที่เพื่อIProjectedCoordinateSystemและการเข้าถึงของIProjectedCoordinateSystem.CoordinateUnitคุณสมบัติ
แต่ถ้ามีการอ้างอิงเชิงพื้นที่เป็นระบบพิกัดทางภูมิศาสตร์หน่วยที่มีเชิงมุมและเข้าถึงในทำนองเดียวกันผ่าน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;
}