Einheiten von ISpatialReference of ArcObjects abrufen?


Antworten:


12

Lineare Einheiten können nur dann aus dem Raumbezug erhalten werden, wenn es sich um ein projiziertes Koordinatensystem handelt. Sie müssen also den räumlichen Verweis in IProjectedCoordinateSystem umwandeln und auf die IProjectedCoordinateSystem.CoordinateUnit- Eigenschaft zugreifen .

Wenn der Raumbezug jedoch ein geografisches Koordinatensystem ist, sind seine Einheiten eckig und werden in ähnlicher Weise über IGeographicCoordinateSystem.CoordinateUnit aufgerufen .


1
+1 Die ILinearUnit.MetersPerUnit-Eigenschaft kann Sie auch davor bewahren, viel Code zu schreiben.
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;
        }
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.