com.esri.arcgis.geometry
Interface IPolycurveGeodetic

All Superinterfaces:
IPolycurve4, Serializable
All Known Implementing Classes:
Polygon, Polyline

public interface IPolycurveGeodetic
extends IPolycurve4, Serializable

Provides various geodetic operations on curves.

Description

IPolycurveGeodetic densifies features by connecting existing vertices with geodetic curves. A geodetic curve is a 1-dimensional curve defined on the surface of a spheroid (ellipsoid). Four types of geodetic curves are supported for polylines; one type is supported for circles and ellipses. A geodesic curve defines the shortest distance between two points. A loxodrome is a line of equal azimuth (from a pole). The Mercator projection shows loxodromes as straight lines. A great elliptic curve is defined by the intersection of a plane that contains the center of the spheroid and the spheroid surface and passes through two points. A normal section can be thought of as a simplified geodesic. It is defined by the intersection of a plane that passes through two points on the surface of the spheroid and is perpendicular to the surface ('normal') at the first point. The geodetic curve types are:

enum esriGeodeticType
{
esriGeodeticTypeGeodesic = 0,
esriGeodeticTypeLoxodrome = 1,
esriGeodeticTypeGreatElliptic = 2,
esriGeodeticTypeNormalSection = 3
};

The vertex attributes are preserved on input vertices and created vertices have attributes interpolated for them, based on length along the true geodetic curve. For the circle and ellipse constructors, the input center point can have a z value, which will be assigned to all vertices on the boundary of the figure.

All methods accept a parameter which describes the linear units of input lengths and distances or output lengths. If the unit parameter is not specified, meters are assumed. Angular parameters are specified in the angular units of the GCS associated with the polycurve being constructed. Typically these will be degrees, but a GCS that uses a different angular unit is possible. You also can specify how the polycurve should be densified when it is constructed.

enum esriCurveDensifyMethod

{

  [

    helpstring("Densify parameter is curve length increment. Output line segments will be 

    no longer than this. This method cannot be used when constructing geodesic circles or 

    ellipses.")

  ]

  esriCurveDensifyByLength,



  [

    helpstring("Densify parameter is angle increment. Line segments will become shorter as 

    the curvature increases. For geodesic ellipses, the angle is with respect to the reference circle.")

  ]

  esriCurveDensifyByAngle,



  [

    helpstring("Densify parameter is deviation from true curve. Line segments of varying length 

    will be generated. The curve parameter specifies the maximum allowable distance between 

    a line segment and the portion of the curve that it is approximating.")

  ]

  esriCurveDensifyByDeviation

};

The recommended method is esriCurvedensifyByDeviation because it lets you control the absolute ground error of the densified approximation in the most direct way. It will also generate the fewest number of dense vertices subject to that constraint.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 void densifyGeodetic(int geodeticLineType, ILinearUnit pLU, int densifyMethod, double densifyParameter)
          Constructs different types of geodetic curves.
 double getLengthGeodetic(int geodeticLineType, ILinearUnit pLU)
          Returns length of this polycurve calculated using various types of geodetic methods.
 
Methods inherited from interface com.esri.arcgis.geometry.IPolycurve4
geodesicDensify
 

Method Detail

getLengthGeodetic

double getLengthGeodetic(int geodeticLineType,
                         ILinearUnit pLU)
                         throws IOException,
                                AutomationException
Returns length of this polycurve calculated using various types of geodetic methods.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
geodeticLineType - A com.esri.arcgis.geometry.esriGeodeticType constant (in)
pLU - A reference to a com.esri.arcgis.geometry.ILinearUnit (in)
Returns:
The pLength
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

densifyGeodetic

void densifyGeodetic(int geodeticLineType,
                     ILinearUnit pLU,
                     int densifyMethod,
                     double densifyParameter)
                     throws IOException,
                            AutomationException
Constructs different types of geodetic curves. The 'by length' and 'by deviation' densification methods are supported.

Description

Densifies the polycurve by connecting its existing vertices with geodetic curves of the specified type.

enum esriGeodeticType
{
esriGeodeticTypeGeodesic = 0,
esriGeodeticTypeLoxodrome = 1,
esriGeodeticTypeGreatElliptic = 2,
esriGeodeticTypeNormalSection = 3
};

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
geodeticLineType - A com.esri.arcgis.geometry.esriGeodeticType constant (in)
pLU - A reference to a com.esri.arcgis.geometry.ILinearUnit (in)
densifyMethod - A com.esri.arcgis.geometry.esriCurveDensifyMethod constant (in)
densifyParameter - The densifyParameter (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.