IGeometry5 Interface

Provides access to members that extend the IGeometry interface with a more sophisticated projection method.

Members

Name Description
Read-only property CentroidEx The center of gravity (centroid).
Read/write property Changed Indicates if a geometry has been changed (edited, projected, etc).
Read-only property Dimension The topological dimension of this geometry.
Read-only property Envelope Creates a copy of this geometry's envelope and returns it.
Read-only property GeometryType The type of this geometry.
Method GeoNormalize Shifts longitudes, if need be, into a continuous range of 360 degrees.
Method GeoNormalizeFromLongitude Normalizes longitudes into a continuous range containing the longitude. This method is obsolete.
Read-only property IsEmpty Indicates whether this geometry contains any points.
Method Project Projects this geometry into a new spatial reference.
Method Project5 Same as Project, but with additional parameter projectionHint.
Method ProjectEx Projects a geometry, optionally applies a GeoTransformation, and optionally densifies the geometry.
Method ProjectEx5 Same as ProjectEx, but with additional parameter projectionHint.
Method QueryEnvelope Copies this geometry's envelope properties into the specified envelope.
Method QueryWKSEnvelope Defines the specified wksenvelope to be the current extent of this geometry in the x-y plane.
Method SetEmpty Removes all points from this geometry.
Method SnapToSpatialReference Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.
Read/write property SpatialReference The spatial reference associated with this geometry.

IGeometry5.CentroidEx Property

The center of gravity (centroid).

Public ReadOnly Property CentroidEx As IPoint
public IPoint CentroidEx {get;}

IGeometry5.Project5 Method

Same as Project, but with additional parameter projectionHint.

Public Sub Project5 ( _
    ByVal newSpatialReference As ISpatialReference, _
    ByVal ProjectionHint As Integer _
)
public void Project5 (
    ISpatialReference newSpatialReference,
    int ProjectionHint
);

Description

To Project, the geometry needs to have a Spatial Referenceset, and not have an UnknownCoordinateSystem. The new spatial reference system passed to the method defines the output coordinate system. If either spatial reference is Unknown, the coordinates are not changed. The Z and measure values are not changed by the Project method.

A geometry is not densified before it is projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Use IGeometry2::ProjectEx if you want to densify the geometries while they are projected.

The projectionHint parameter contains information about whether a geometry will cross the coordinate system horizons. If it doesn't, parts of the code that check this and intersect the geometry with the horizons can be omitted. This can dramatically improve performance. Use ISpatialReference3::ProjectionHint to initialize this parameter.

IGeometry5.ProjectEx5 Method

Same as ProjectEx, but with additional parameter projectionHint.

Public Sub ProjectEx5 ( _
    ByVal newReferenceSystem As ISpatialReference, _
    ByVal Direction As esriTransformDirection, _
    ByVal Transformation As ITransformation, _
    ByVal bAngularDensify As Boolean, _
    ByVal maxSegmentLength As Double, _
    ByVal maxDeviation As Double, _
    ByVal ProjectionHint As Integer _
)
public void ProjectEx5 (
    ISpatialReference newReferenceSystem,
    esriTransformDirection Direction,
    ITransformation Transformation,
    bool bAngularDensify,
    double maxSegmentLength,
    double maxDeviation,
    int ProjectionHint
);

Description

The projectionHint parameter contains information about whether a geometry will cross the coordinate system horizons. If it doesn't, parts of the code that check this and intersect the geometry with the horizons can be omitted. This can dramatically improve performance. Use ISpatialReference3::ProjectionHint to initialize this parameter.

Remarks

By default, ProjectEx will not densify geometries as they are projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Set the bAngularDensify parameter__if you want to densify the geometries while they are projected.

Inherited Interfaces

Interfaces Description
IGeometry4 Provides access to methods that indicate if a geometry has been changed (edited, projected, etc).
IGeometry3 Provides rapid access to a geometry's extent in the x-y plane.
IGeometry2 Provides access to members that extend the IGeometry interface with a more sophisticated projection method.
IGeometry Provides access to members that describe properties and behavior of all geometric objects.

Classes that implement IGeometry5

Classes Description
Envelope A rectangle with sides parallel to a coordinate system defining the extent of another geometry; optionally has min and max measure, height and ID attributes.
GeometryBag An ordered collection of objects that support the IGeometry interface.
MultiPatch A collection of surface patches.
Multipoint An ordered collection of points; optionally has measure, height and ID attributes.
Point A two dimensional point, optionally with measure, height, and ID attributes.
Polygon A collection of rings ordered by their containment relationship; optionally has measure, height and ID attributes.
Polyline An ordered collection of paths; optionally has measure, height and ID attributes.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.