รับหน่วยจาก ISpatialReference ของ ArcObjects หรือไม่


คำตอบ:


12

หน่วยเชิงเส้นสามารถรับได้จากการอ้างอิงเชิงพื้นที่เฉพาะถ้ามันเป็นระบบพิกัดที่คาดการณ์ไว้ ดังนั้นคุณจะต้องโยนอ้างอิงเชิงพื้นที่เพื่อIProjectedCoordinateSystemและการเข้าถึงของIProjectedCoordinateSystem.CoordinateUnitคุณสมบัติ

แต่ถ้ามีการอ้างอิงเชิงพื้นที่เป็นระบบพิกัดทางภูมิศาสตร์หน่วยที่มีเชิงมุมและเข้าถึงในทำนองเดียวกันผ่านIGeographicCoordinateSystem.CoordinateUnit


1
+1 คุณสมบัติ ILinearUnit.MetersPerUnit ยังช่วยให้คุณประหยัดจากการเขียนโค้ดจำนวนมาก
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;
        }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.